diff --git a/.idea/modules.xml b/.idea/modules.xml index 0a7425eab39dc1dae3d8af303528ceffddef70b3..ea8308a419efc3c3cf8b0ab518d4731b804f9722 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -4,6 +4,8 @@ <modules> <module fileurl="file://$PROJECT_DIR$/../../../../alvine/frontend/alvine.frontend.framework/alvine.frontend.alvine.alvine-frontend-framework.iml" filepath="$PROJECT_DIR$/../../../../alvine/frontend/alvine.frontend.framework/alvine.frontend.alvine.alvine-frontend-framework.iml" /> <module fileurl="file://$PROJECT_DIR$/monster.iml" filepath="$PROJECT_DIR$/monster.iml" /> + <module fileurl="file://$PROJECT_DIR$/../web-components/template/template.iml" filepath="$PROJECT_DIR$/../web-components/template/template.iml" /> + <module fileurl="file://$PROJECT_DIR$/../web-components/multiselect/web-components.multiselect.iml" filepath="$PROJECT_DIR$/../web-components/multiselect/web-components.multiselect.iml" /> </modules> </component> </project> \ No newline at end of file diff --git a/monster.iml b/monster.iml index 8021953ed9f8cc6cd6d71c79462bad4cd2b5394c..565eafd7a8b4479966b3c00a9e963616eac0c03b 100644 --- a/monster.iml +++ b/monster.iml @@ -2,7 +2,10 @@ <module type="WEB_MODULE" version="4"> <component name="NewModuleRootManager" inherit-compiler-output="true"> <exclude-output /> - <content url="file://$MODULE_DIR$" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/packages/monster/source" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/packages/monster/test" isTestSource="true" /> + </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> diff --git a/package-lock.json b/package-lock.json index a1d653db457f53f4596e5e09a676a3c201edd7ba..8fc00c9bf365168519dfa0ee9383eee9c69b1d4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,9 @@ "": { "version": "x.x.x", "license": "see LICENSE file", + "dependencies": { + "jsdom-global": "^3.0.2" + }, "devDependencies": { "@babel/cli": "^7.14.5", "@babel/core": "^7.14.6", @@ -2057,7 +2060,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, "engines": { "node": ">= 6" } @@ -2307,8 +2309,7 @@ "node_modules/abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" }, "node_modules/abbrev": { "version": "1.0.9", @@ -2333,7 +2334,6 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -2345,7 +2345,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -2375,7 +2374,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -2384,7 +2382,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "dependencies": { "debug": "4" }, @@ -2754,8 +2751,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/atob": { "version": "2.1.2", @@ -4698,7 +4694,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -5198,14 +5193,12 @@ "node_modules/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, "dependencies": { "cssom": "~0.3.6" }, @@ -5216,8 +5209,7 @@ "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/currently-unhandled": { "version": "0.4.1", @@ -5251,7 +5243,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -5265,7 +5256,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -5312,8 +5302,7 @@ "node_modules/decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, "node_modules/decode-uri-component": { "version": "0.2.0", @@ -5364,8 +5353,7 @@ "node_modules/deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "node_modules/define-properties": { "version": "1.1.3", @@ -5402,7 +5390,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -5540,7 +5527,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -5552,7 +5538,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, "engines": { "node": ">=8" } @@ -5859,7 +5844,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -5881,7 +5865,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, "engines": { "node": ">=4.0" } @@ -5890,7 +5873,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -5903,7 +5885,6 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -5920,7 +5901,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, "engines": { "node": ">= 0.8.0" } @@ -5929,7 +5909,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true, "engines": { "node": ">=0.10.0" @@ -5939,7 +5918,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "dependencies": { "prelude-ls": "~1.1.2" }, @@ -6222,7 +6200,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6319,7 +6296,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6789,8 +6765,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "node_modules/fast-safe-stringify": { "version": "2.0.8", @@ -6961,7 +6936,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -7425,7 +7399,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, "dependencies": { "whatwg-encoding": "^1.0.5" }, @@ -7542,7 +7515,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -7562,7 +7534,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -8022,8 +7993,7 @@ "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, "node_modules/is-regex": { "version": "1.1.3", @@ -8545,7 +8515,6 @@ "version": "16.6.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", - "dev": true, "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -8587,11 +8556,18 @@ } } }, + "node_modules/jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", + "peerDependencies": { + "jsdom": ">=10.0.0" + } + }, "node_modules/jsdom/node_modules/acorn": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -9089,8 +9065,7 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", @@ -9552,7 +9527,6 @@ "version": "1.49.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -9561,7 +9535,6 @@ "version": "2.1.32", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dev": true, "dependencies": { "mime-db": "1.49.0" }, @@ -11023,8 +10996,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multi-stage-sourcemap": { "version": "0.2.1", @@ -11362,8 +11334,7 @@ "node_modules/nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" }, "node_modules/object-assign": { "version": "4.1.1", @@ -11692,8 +11663,7 @@ "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, "node_modules/parseurl": { "version": "1.3.3", @@ -12019,8 +11989,7 @@ "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "node_modules/public-encrypt": { "version": "4.0.3", @@ -12813,8 +12782,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/saucelabs": { "version": "1.5.0", @@ -12866,7 +12834,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -13991,8 +13958,7 @@ "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "node_modules/syntax-error": { "version": "1.4.0", @@ -14358,7 +14324,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -14372,7 +14337,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, "engines": { "node": ">=6" } @@ -14381,7 +14345,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, "dependencies": { "punycode": "^2.1.1" }, @@ -14393,7 +14356,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, "engines": { "node": ">=6" } @@ -14844,7 +14806,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, "engines": { "node": ">= 4.0.0" } @@ -15058,7 +15019,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -15066,14 +15026,12 @@ "node_modules/w3c-hr-time/node_modules/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "node_modules/w3c-xmlserializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, "dependencies": { "xml-name-validator": "^3.0.0" }, @@ -15155,7 +15113,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, "engines": { "node": ">=10.4" } @@ -15187,7 +15144,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, "dependencies": { "iconv-lite": "0.4.24" } @@ -15196,7 +15152,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -15207,14 +15162,12 @@ "node_modules/whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" }, "node_modules/whatwg-url": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -15338,7 +15291,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15421,7 +15373,6 @@ "version": "7.5.3", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", - "dev": true, "engines": { "node": ">=8.3.0" }, @@ -15441,14 +15392,12 @@ "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, "node_modules/xmlcreate": { "version": "2.0.3", @@ -17092,8 +17041,7 @@ "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/accepts": { "version": "1.3.5", @@ -17331,8 +17279,7 @@ "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" }, "abbrev": { "version": "1.0.9", @@ -17353,14 +17300,12 @@ "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-globals": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -17387,14 +17332,12 @@ "acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "requires": { "debug": "4" } @@ -17701,8 +17644,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", @@ -19427,7 +19369,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -19874,14 +19815,12 @@ "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" }, "cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, "requires": { "cssom": "~0.3.6" }, @@ -19889,8 +19828,7 @@ "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" } } }, @@ -19923,7 +19861,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, "requires": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -19934,7 +19871,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -19966,8 +19902,7 @@ "decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, "decode-uri-component": { "version": "0.2.0", @@ -20008,8 +19943,7 @@ "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "define-properties": { "version": "1.1.3", @@ -20039,8 +19973,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", @@ -20155,7 +20088,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, "requires": { "webidl-conversions": "^5.0.0" }, @@ -20163,8 +20095,7 @@ "webidl-conversions": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" } } }, @@ -20449,7 +20380,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -20461,14 +20391,12 @@ "estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -20478,7 +20406,6 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -20491,21 +20418,18 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { "prelude-ls": "~1.1.2" } @@ -20717,8 +20641,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "espurify": { "version": "2.1.1", @@ -20796,8 +20719,7 @@ "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", @@ -21196,8 +21118,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fast-safe-stringify": { "version": "2.0.8", @@ -21337,7 +21258,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -21698,7 +21618,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, "requires": { "whatwg-encoding": "^1.0.5" } @@ -21795,7 +21714,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -21812,7 +21730,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, "requires": { "agent-base": "6", "debug": "4" @@ -22129,8 +22046,7 @@ "is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, "is-regex": { "version": "1.1.3", @@ -22514,7 +22430,6 @@ "version": "16.6.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", - "dev": true, "requires": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -22548,11 +22463,16 @@ "acorn": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", - "dev": true + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==" } } }, + "jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", + "requires": {} + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -22976,8 +22896,7 @@ "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.clonedeep": { "version": "4.5.0", @@ -23349,14 +23268,12 @@ "mime-db": { "version": "1.49.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" }, "mime-types": { "version": "2.1.32", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dev": true, "requires": { "mime-db": "1.49.0" } @@ -24491,8 +24408,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multi-stage-sourcemap": { "version": "0.2.1", @@ -24785,8 +24701,7 @@ "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" }, "object-assign": { "version": "4.1.1", @@ -25045,8 +24960,7 @@ "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, "parseurl": { "version": "1.3.3", @@ -25292,8 +25206,7 @@ "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "public-encrypt": { "version": "4.0.3", @@ -25924,8 +25837,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "saucelabs": { "version": "1.5.0", @@ -25970,7 +25882,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, "requires": { "xmlchars": "^2.2.0" } @@ -26914,8 +26825,7 @@ "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "syntax-error": { "version": "1.4.0", @@ -27227,7 +27137,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -27237,8 +27146,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" } } }, @@ -27246,7 +27154,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, "requires": { "punycode": "^2.1.1" }, @@ -27254,8 +27161,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" } } }, @@ -27597,8 +27503,7 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "unix-crypt-td-js": { "version": "1.1.4", @@ -27781,7 +27686,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, "requires": { "browser-process-hrtime": "^1.0.0" }, @@ -27789,8 +27693,7 @@ "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" } } }, @@ -27798,7 +27701,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, "requires": { "xml-name-validator": "^3.0.0" } @@ -27866,8 +27768,7 @@ "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" }, "websocket-driver": { "version": "0.7.4", @@ -27890,7 +27791,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, "requires": { "iconv-lite": "0.4.24" }, @@ -27899,7 +27799,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -27909,14 +27808,12 @@ "whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" }, "whatwg-url": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, "requires": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -28011,8 +27908,7 @@ "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wordwrap": { "version": "1.0.0", @@ -28079,20 +27975,17 @@ "version": "7.5.3", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", - "dev": true, "requires": {} }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, "xmlcreate": { "version": "2.0.3", diff --git a/package.json b/package.json index 605ea7b11229fe0e5ab2c055ad2500a3b894ce01..77f1e0f7203b4a6b9094bc7cd082fbd0cf51c068 100644 --- a/package.json +++ b/package.json @@ -46,5 +46,8 @@ "uglifycss": "^0.0.29", "watchify": "^4.0.0", "webcrypto-core": "^1.2.0" + }, + "dependencies": { + "jsdom-global": "^3.0.2" } } diff --git a/packages/monster/CHANGELOG b/packages/monster/CHANGELOG index 029ca0269ec1851c923d0b1266ef150d7f17692a..3ed36fb9e8faa85512c6c08c69759547e4cb213e 100644 --- a/packages/monster/CHANGELOG +++ b/packages/monster/CHANGELOG @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. +## [1.7.0] - 2021-07-31 + +### Added + +- [new Monster.DOM.CustomElement](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/20) + ## [1.6.0] - 2021-07-29 ### Added diff --git a/packages/monster/README.md b/packages/monster/README.md index bec315af4268f7e21f93e456a573e6dbca08363f..e26cbcd73a8c6dddf502be1f5d03e050a899daa5 100644 --- a/packages/monster/README.md +++ b/packages/monster/README.md @@ -38,7 +38,7 @@ thus supports all browsers that are compatible with ES5. <script type="module"> import { Monster - } from 'https://unpkg.com/@schukai/monster@1.6.0/dist/modules/monster.js'; + } from 'https://unpkg.com/@schukai/monster@1.7.0/dist/modules/monster.js'; let id = document.getElementById('version'); id.innerHTML = Monster.getVersion(); </script> @@ -49,8 +49,8 @@ thus supports all browsers that are compatible with ES5. nomodule for backwards compatibility ``` -<script type="module" src="https://unpkg.com/@schukai/monster@1.6.0/dist/modules/monster.js"></script> -<script nomodule src="https://unpkg.com/@schukai/monster@1.6.0/dist/monster.js"></script> +<script type="module" src="https://unpkg.com/@schukai/monster@1.7.0/dist/modules/monster.js"></script> +<script nomodule src="https://unpkg.com/@schukai/monster@1.7.0/dist/monster.js"></script> ``` ### compatibility diff --git a/packages/monster/dist/modules/constraints/abstract.js b/packages/monster/dist/modules/constraints/abstract.js index 0bb19fdd95447d27143ee7444009a981e7ede042..bb05cbaff27bcc85141119463d91614f29704c6b 100644 --- a/packages/monster/dist/modules/constraints/abstract.js +++ b/packages/monster/dist/modules/constraints/abstract.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{Base}from"../types/base.js";class AbstractConstraint extends Base{constructor(){super()}isValid(value){return Promise.reject(value)}}Monster.assignToNamespace("Monster.Constraints",AbstractConstraint);export{Monster,AbstractConstraint}; diff --git a/packages/monster/dist/modules/constraints/abstractoperator.js b/packages/monster/dist/modules/constraints/abstractoperator.js index f92b00ee8e7413468db3144b411426513cff2323..ed4f0078fcd0a4cf38c800ddf3206a0ef726d723 100644 --- a/packages/monster/dist/modules/constraints/abstractoperator.js +++ b/packages/monster/dist/modules/constraints/abstractoperator.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,AbstractConstraint}from"./abstract.js";class AbstractOperator extends AbstractConstraint{constructor(operantA,operantB){super();if(!(operantA instanceof AbstractConstraint)||!(operantB instanceof AbstractConstraint)){throw new TypeError("parameters must be from type AbstractConstraint")}this.operantA=operantA;this.operantB=operantB}}Monster.assignToNamespace("Monster.Constraints",AbstractOperator);export{Monster,AbstractOperator}; diff --git a/packages/monster/dist/modules/constraints/andoperator.js b/packages/monster/dist/modules/constraints/andoperator.js index 564fdef58c4d237f0ec30f44d520f3c8cffe958a..be58ede5fd55391776285896da92fefeab610276 100644 --- a/packages/monster/dist/modules/constraints/andoperator.js +++ b/packages/monster/dist/modules/constraints/andoperator.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,AbstractConstraint}from"./abstract.js";import{AbstractOperator}from"./abstractoperator.js";class AndOperator extends AbstractOperator{isValid(value){return Promise.all([this.operantA.isValid(value),this.operantB.isValid(value)])}}Monster.assignToNamespace("Monster.Constraints",AndOperator);export{Monster,AndOperator}; diff --git a/packages/monster/dist/modules/constraints/invalid.js b/packages/monster/dist/modules/constraints/invalid.js index 7f855a8e8de7bb8a805ee3539213aac9e3f659e9..a9ce55aec4ab679ba786e1ce5305dc0faa416d2a 100644 --- a/packages/monster/dist/modules/constraints/invalid.js +++ b/packages/monster/dist/modules/constraints/invalid.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,AbstractConstraint}from"./abstract.js";class Invalid extends AbstractConstraint{isValid(value){return Promise.reject(value)}}Monster.assignToNamespace("Monster.Constraints",Invalid);export{Monster,Invalid}; diff --git a/packages/monster/dist/modules/constraints/isarray.js b/packages/monster/dist/modules/constraints/isarray.js index fde2a57e47f9b6d18f0385594ec1fad83b5bd042..802acb994035870093e636d3a8c8532464954b15 100644 --- a/packages/monster/dist/modules/constraints/isarray.js +++ b/packages/monster/dist/modules/constraints/isarray.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,AbstractConstraint}from"./abstract.js";import{isArray}from"../types/is.js";class IsArray extends AbstractConstraint{isValid(value){if(isArray(value)){return Promise.resolve(value)}return Promise.reject(value)}}Monster.assignToNamespace("Monster.Constraints",IsArray);export{Monster,IsArray}; diff --git a/packages/monster/dist/modules/constraints/isobject.js b/packages/monster/dist/modules/constraints/isobject.js index bba70642c85d1161b381b5960e312b7b05d0e713..e2f50297b53d5f5bf06027d0dbd5d3bf606f00c7 100644 --- a/packages/monster/dist/modules/constraints/isobject.js +++ b/packages/monster/dist/modules/constraints/isobject.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,AbstractConstraint}from"./abstract.js";import{isObject}from"../types/is.js";class IsObject extends AbstractConstraint{isValid(value){if(isObject(value)){return Promise.resolve(value)}return Promise.reject(value)}}Monster.assignToNamespace("Monster.Constraints",IsObject);export{Monster,IsObject}; diff --git a/packages/monster/dist/modules/constraints/namespace.js b/packages/monster/dist/modules/constraints/namespace.js index 21ea376431503ddc484751c7db66b0c8b209ea8b..d786cc2092da191dc5a9a82d124e054b1db8de9f 100644 --- a/packages/monster/dist/modules/constraints/namespace.js +++ b/packages/monster/dist/modules/constraints/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.Constraints"; diff --git a/packages/monster/dist/modules/constraints/oroperator.js b/packages/monster/dist/modules/constraints/oroperator.js index ccdbfe8eee23ef0c5a0376bef966a916b218fe22..a6fb37c512aef36b5652adf78591fb48ee666e4a 100644 --- a/packages/monster/dist/modules/constraints/oroperator.js +++ b/packages/monster/dist/modules/constraints/oroperator.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,AbstractOperator}from"./abstractoperator.js";class OrOperator extends AbstractOperator{isValid(value){var self=this;return new Promise(function(resolve,reject){let a,b;self.operantA.isValid(value).then(function(){resolve()}).catch(function(){a=false;if(b===false){reject()}});self.operantB.isValid(value).then(function(){resolve()}).catch(function(){b=false;if(a===false){reject()}})})}}Monster.assignToNamespace("Monster.Constraints",OrOperator);export{Monster,OrOperator}; diff --git a/packages/monster/dist/modules/constraints/valid.js b/packages/monster/dist/modules/constraints/valid.js index 63ac62dc6e85b2ab39aea6064514ea2d0e04fdc0..49118e28d1b785d5ed28d6081d0554a55ffdf0cb 100644 --- a/packages/monster/dist/modules/constraints/valid.js +++ b/packages/monster/dist/modules/constraints/valid.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,AbstractConstraint}from"./abstract.js";class Valid extends AbstractConstraint{isValid(value){return Promise.resolve(value)}}Monster.assignToNamespace("Monster.Constraints",Valid);export{Monster,Valid}; diff --git a/packages/monster/dist/modules/data/diff.js b/packages/monster/dist/modules/data/diff.js index b7d664180a015040587e3ce07f0dd1cd3a26c9e3..e603008534acde156d29dbf2c15687604c9b87f2 100644 --- a/packages/monster/dist/modules/data/diff.js +++ b/packages/monster/dist/modules/data/diff.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,isArray,isObject}from"../types/is.js";function Diff(first,second){return doDiff(first,second)}function getKeys(a,b,type){if(isArray(type)){const keys=a.length>b.length?new Array(a.length):new Array(b.length);keys.fill(0);return new Set(keys.map((_,i)=>i))}return new Set(Object.keys(a).concat(Object.keys(b)))}function doDiff(a,b,path,diff){let typeA=typeof a;let typeB=typeof b;const currPath=path||[];const currDiff=diff||[];if(typeA===typeB&&typeA==="object"){getKeys(a,b,typeA).forEach(v=>{if(!Object.prototype.hasOwnProperty.call(a,v)){currDiff.push(buildResult(a[v],b[v],"add",currPath.concat(v)))}else if(!Object.prototype.hasOwnProperty.call(b,v)){currDiff.push(buildResult(a[v],b[v],"delete",currPath.concat(v)))}else{doDiff(a[v],b[v],currPath.concat(v),currDiff)}})}else{const o=getOperator(a,b,typeA,typeB);if(o!==undefined){currDiff.push(buildResult(a,b,o,path))}}return currDiff}function buildResult(a,b,operator,path){const result={operator,path};if(operator!=="add"){result.first={value:a,type:typeof a};if(isObject(a)){const name=Object.getPrototypeOf(a)?.constructor?.name;if(name!==undefined){result.first.instance=name}}}if(operator==="add"||operator==="update"){result.second={value:b,type:typeof b};if(isObject(b)){const name=Object.getPrototypeOf(b)?.constructor?.name;if(name!==undefined){result.second.instance=name}}}return result}function isNotEqual(a,b){if(typeof a!==typeof b){return true}if(a instanceof Date&&b instanceof Date){return a.getTime()!==b.getTime()}return a!==b}function getOperator(a,b){let operator;let typeA=typeof a;let typeB=typeof b;if(typeA==="undefined"&&typeB!=="undefined"){operator="add"}else if(typeA!=="undefined"&&typeB==="undefined"){operator="delete"}else if(isNotEqual(a,b)){operator="update"}return operator}Monster.assignToNamespace("Monster.Data",Diff);export{Monster,Diff}; diff --git a/packages/monster/dist/modules/data/namespace.js b/packages/monster/dist/modules/data/namespace.js index c964472062749ee67206981b0e1ca4de2d96417f..42ef97b7c8e5fd1f129a3d2001e4525952372b11 100644 --- a/packages/monster/dist/modules/data/namespace.js +++ b/packages/monster/dist/modules/data/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.Data"; diff --git a/packages/monster/dist/modules/data/pathfinder.js b/packages/monster/dist/modules/data/pathfinder.js index b502f44c9b5bdc8e53dc7ec2fc6ed38290dc713b..9b99e95cdcdb3a1e7e43e705c2ea79cd0685221c 100644 --- a/packages/monster/dist/modules/data/pathfinder.js +++ b/packages/monster/dist/modules/data/pathfinder.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{isObject,isArray,isInteger}from"../types/is.js";import{validateString,validateInteger}from"../types/validate.js";import{Base}from"../types/base.js";import{Stack}from"../types/stack.js";const DELIMITER=".";class Pathfinder extends Base{constructor(object){super();this.object=object}getVia(path){validateString(path);return getValueViaPath(this.object,path)}setVia(path,value){validateString(path);setValueViaPath(this.object,path,value);return this}deleteVia(path){validateString(path);deleteValueViaPath(this.object,path);return this}exists(path){validateString(path);try{getValueViaPath(this.object,path,true);return true}catch(e){}return false}}Monster.assignToNamespace("Monster.Data",Pathfinder);export{Monster,Pathfinder};function getValueViaPath(object,path,check){if(path===""){return object}let parts=path.split(DELIMITER);let current=parts.shift();if(isObject(object)||isArray(object)){let anchor;if(object instanceof Map||object instanceof WeakMap){anchor=object.get(current)}else if(object instanceof Set||object instanceof WeakSet){current=parseInt(current);validateInteger(current);anchor=[...object]?.[current]}else if(object instanceof WeakRef){throw Error("unsupported action for this data type")}else if(isArray(object)){current=parseInt(current);validateInteger(current);anchor=object?.[current]}else{anchor=object?.[current]}if(isObject(anchor)||isArray(anchor)){return getValueViaPath(anchor,parts.join(DELIMITER),check)}if(parts.length>0){throw Error("the journey is not at its end ("+parts.join(DELIMITER)+")")}if(check===true&&!object.hasOwnProperty(current)){throw Error("unknown value")}return anchor}throw TypeError("unsupported type")}function setValueViaPath(object,path,value){let parts=path.split(DELIMITER);let last=parts.pop();let subpath=parts.join(DELIMITER);let stack=new Stack;let current=subpath;while(true){try{getValueViaPath(object,current,true);break}catch(e){}stack.push(current);parts.pop();current=parts.join(DELIMITER);if(current==="")break}while(!stack.isEmpty()){current=stack.pop();let obj={};if(!stack.isEmpty()){let n=stack.peek().split(DELIMITER).pop();if(isInteger(parseInt(n))){obj=[]}}setValueViaPath(object,current,obj)}let anchor=getValueViaPath(object,subpath);if(!isObject(object)&&!isArray(object)){throw TypeError("unsupported type: "+typeof object)}if(anchor instanceof Map||anchor instanceof WeakMap){anchor.set(last,value)}else if(anchor instanceof Set||anchor instanceof WeakSet){anchor.append(value)}else if(anchor instanceof WeakRef){throw Error("unsupported action for this data type")}else if(isArray(anchor)){last=parseInt(last);validateInteger(last);anchor[last]=value}else{anchor[last]=value}return}function deleteValueViaPath(object,path){const parts=path.split(DELIMITER);let last=parts.pop();const subpath=parts.join(DELIMITER);const anchor=getValueViaPath.call(this,object,subpath);if(anchor instanceof Map){anchor.delete(last)}else if(anchor instanceof Set||anchor instanceof WeakMap||anchor instanceof WeakSet||anchor instanceof WeakRef){throw Error("unsupported action for this data type")}else if(isArray(anchor)){last=parseInt(last);validateInteger(last);delete anchor[last]}else{delete anchor[last]}return} diff --git a/packages/monster/dist/modules/data/pipe.js b/packages/monster/dist/modules/data/pipe.js index d6944abbdd45e10bf63777ea4ff47ff80dee204e..7990037f4f8b596f3c23c3666e6e42a0c1e23626 100644 --- a/packages/monster/dist/modules/data/pipe.js +++ b/packages/monster/dist/modules/data/pipe.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{Transformer}from"./transformer.js";import{Base}from"../types/base.js";import{validateString}from"../types/validate.js";const DELIMITER="|";class Pipe extends Base{constructor(pipe){super();validateString(pipe);this.pipe=pipe.split(DELIMITER).map(v=>{return new Transformer(v)})}run(value){return this.pipe.reduce((accumulator,currentValue,currentIndex,array)=>{return currentValue.run(accumulator)},value)}}Monster.assignToNamespace("Monster.Data",Pipe);export{Monster,Pipe}; diff --git a/packages/monster/dist/modules/data/transformer.js b/packages/monster/dist/modules/data/transformer.js index 12ad8c9498d6b9cae0f2359a36d642b9581f6b01..67570814192fd5aa7f9d88532d82183f2630cb67 100644 --- a/packages/monster/dist/modules/data/transformer.js +++ b/packages/monster/dist/modules/data/transformer.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{Base}from"../types/base.js";import{validateString,validatePrimitive,validateFunction,validateInteger}from"../types/validate.js";import{isObject,isString,isArray}from"../types/is.js";import{ID}from"../types/id.js";import{clone}from"../util/clone.js";import{Pathfinder}from"./pathfinder.js";class Transformer extends Base{constructor(definition){super();validateString(definition);this.args=disassemble(definition);this.command=this.args.shift();this.callbacks=new Map}setCallback(name,callback){validateString(name);validateFunction(callback);this.callbacks.set(name,callback);return this}run(value){return transform.apply(this,[value])}}Monster.assignToNamespace("Monster.Data",Transformer);export{Monster,Transformer};function disassemble(command){validateString(command);let placeholder=new Map;const regex=/((?<pattern>\\(?<char>.)){1})/mig;let result=command.matchAll(regex);for(let m of result){let g=m?.["groups"];if(!isObject(g)){continue}let p=g?.["pattern"];let c=g?.["char"];if(p&&c){let r="__"+new ID().toString()+"__";placeholder.set(r,c);command=command.replace(p,r)}}let parts=command.split(":");parts=parts.map(function(value){let v=value.trim();for(let k of placeholder){v=v.replace(k[0],k[1])}return v});return parts}function convertToString(value){if(isObject(value)&&value.hasOwnProperty("toString")){value=value.toString()}validateString(value);return value}function transform(value){let args=clone(this.args);let key;switch(this.command){case"static":return this.args.join(":");case"tolower":case"strtolower":case"tolowercase":validateString(value);return value.toLowerCase();case"toupper":case"strtoupper":case"touppercase":validateString(value);return value.toUpperCase();case"tostring":return""+value;case"tointeger":let n=parseInt(value);validateInteger(n);return n;case"trim":validateString(value);return value.trim();case"rawurlencode":validateString(value);return encodeURIComponent(value).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A");case"call":let callback;let callbackName=args.shift();if(isObject(value)&&calue.hasOwnProperty(callbackName)){callback=value[callbackName]}else if(this.callbacks.has(callbackName)){callback=this.callbacks.get(callbackName)}else if(typeof window==="object"&&window.hasOwnProperty(callbackName)){callback=window[callbackName]}validateFunction(callback);args.unshift(value);return callback(...args);case"plain":case"plaintext":validateString(value);let doc=new DOMParser().parseFromString(value,"text/html");return doc.body.textContent||"";case"if":case"?":validatePrimitive(value);let trueStatement=args.shift()||undefined;let falseStatement=args.shift()||undefined;if(trueStatement==="value"){trueStatement=value}if(trueStatement==="\\value"){trueStatement="value"}if(falseStatement==="value"){falseStatement=value}if(falseStatement==="\\value"){falseStatement="value"}let condition=value!==undefined&&value!==""&&value!=="off"&&value!=="false"&&value!==false||value==="on"||value==="true"||value===true;return condition?trueStatement:falseStatement;case"ucfirst":validateString(value);let firstchar=value.charAt(0).toUpperCase();return firstchar+value.substr(1);case"ucwords":validateString(value);return value.replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(v){return v.toUpperCase()});case"count":case"length":if((isString(value)||isObject(value)||isArray(value))&&value.hasOwnProperty("length")){return value.length}throw new TypeError("unsupported type");case"base64":convertToString(value);return btoa(value);case"empty":return"";case"undefined":return undefined;case"prefix":validateString(value);let prefix=args?.[0];return prefix+value;case"suffix":validateString(value);let suffix=args?.[0];return value+suffix;case"uniqid":return new ID().toString();case"key":case"property":case"index":key=args.shift()||"undefined";let defaultValue=args.shift()||"";if(value instanceof Map){if(!value.has(key)){return defaultValue}return value.get(key)}if(isObject(value)||isArray(value)){if(value?.[key]){return value?.[key]}return defaultValue}throw new Error("type not supported");case"path":key=args.shift()||"undefined";return new Pathfinder(value).getVia(key);case"substring":validateString(value);let start=parseInt(args[0])||0;let end=(parseInt(args[1])||0)+start;return value.substring(start,end);case"nop":return value;default:throw new Error("unknown command");}return value} diff --git a/packages/monster/dist/modules/dom/assembler.js b/packages/monster/dist/modules/dom/assembler.js index 2ba10a2611476c202e9829ce4d4073a8a1a18b16..a8223a757cd6b351971a89f86ff612786883a903 100644 --- a/packages/monster/dist/modules/dom/assembler.js +++ b/packages/monster/dist/modules/dom/assembler.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,Base}from"../types/base.js";import{validateInstance,validateString}from"../types/validate.js";import{getGlobalFunction}from"../types/global.js";import{ProxyObserver}from"../types/proxyobserver.js";const ATTRIBUTEPREFIX="data-monster-";class Assembler extends Base{constructor(fragment){super();this.attributePrefix=ATTRIBUTEPREFIX;validateInstance(fragment,getGlobalFunction("DocumentFragment"));this.fragment=fragment}setAttributePrefix(prefix){validateString(prefix);this.attributePrefix=prefix;return this}getAttributePrefix(){return this.attributePrefix}createDocumentFragment(data){if(data===undefined){data=new ProxyObserver({})}validateInstance(data,ProxyObserver);let fragment=this.fragment.cloneNode(true);return fragment}}Monster.assignToNamespace("Monster.DOM",Assembler);export{Monster,ATTRIBUTEPREFIX,Assembler}; diff --git a/packages/monster/dist/modules/dom/customelement.js b/packages/monster/dist/modules/dom/customelement.js new file mode 100644 index 0000000000000000000000000000000000000000..36d1c5f82a821ef7557be365b8c9695e05216c83 --- /dev/null +++ b/packages/monster/dist/modules/dom/customelement.js @@ -0,0 +1,2 @@ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +'use strict';import{getGlobalObject}from"../types/global.js";import{Monster,validateFunction}from"../types/validate.js";class CustomElement extends HTMLElement{constructor(){super()}static getTag(){throw new Error("the method getTag must be overwritten by the derived class.")}}function registerCustomElement(element){validateFunction(element);getGlobalObject("customElements").define(element.getTag(),element);return}Monster.assignToNamespace("Monster.DOM",CustomElement,registerCustomElement);export{Monster,registerCustomElement,CustomElement}; diff --git a/packages/monster/dist/modules/dom/handle.js b/packages/monster/dist/modules/dom/handle.js index fb2cb28ba419e263c54bf6d2e3bfd506938eb0ca..7a1dce52ecd9c1af7494c58851f7c382aa06632a 100644 --- a/packages/monster/dist/modules/dom/handle.js +++ b/packages/monster/dist/modules/dom/handle.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,Base}from"../types/base.js";import{Stack}from"../types/stack.js";import{validateInstance}from"../types/validate.js";import{ProxyObserver}from"../types/proxyobserver.js";import{Observer}from"../types/observer.js";import{getGlobalFunction,getGlobalObject}from"../types/global.js";import{isInstance}from"../types/is.js";import{ATTRIBUTEPREFIX}from"./assembler.js";import{ID}from"../types/id.js";const MONSTERDOMHANDLE=Symbol("MonsterHandle");class Handle extends Base{constructor(data){super();let self=this;self.id=new ID;validateInstance(data,ProxyObserver);this.data=data;this.mutationObserver=createMutationObserver.call(this);this.dataObserver=createDataObserver.call(this);this.data.attachObserver(this.dataObserver);this.nodes=new WeakSet;this.updates=new Stack}update(){return}remove(node){if(isInstance(node,getGlobalFunction("Document"))){node=node.firstElementChild}validateInstance(node,getGlobalFunction("HTMLElement"));if(!this.nodes.has(node)){return this}this.mutationObserver.disconnect(node);delete node.dataset[MONSTERDOMHANDLE];node.removeAttribute(ATTRIBUTEPREFIX+"handler");return this}append(node){if(isInstance(node,getGlobalFunction("Document"))){node=node.firstElementChild}validateInstance(node,getGlobalFunction("HTMLElement"));if(this.nodes.has(node)){return this}node.dataset[MONSTERDOMHANDLE]=this;node.setAttribute(ATTRIBUTEPREFIX+"handler",true);this.mutationObserver.observe(node,{attributes:true,childList:true,subtree:true,characterData:true,characterDataOldValue:true,attributeOldValue:true});this.nodes.add(node);return this}}function createDataObserver(){const self=this;return new Observer(()=>{self.update()})}function createMutationObserver(){const self=this;const MutationObserver=getGlobalFunction("MutationObserver");return new MutationObserver((mutationsList,observer)=>{for(const mutation of mutationsList){self.updates.push(mutation)}self.update()})}function getHandleFromNode(node){validateInstance(node,getGlobalFunction("Node"));let handle=node.dataset?.[MONSTERDOMHANDLE];if(handle===undefined){let parentNode=node?.["parentNode"];if(isInstance(parentNode,getGlobalFunction("Node"))){return getHandleFromNode(parentNode)}}return handle}Monster.assignToNamespace("Monster.DOM",getHandleFromNode,Handle);export{Monster,getHandleFromNode,Handle}; diff --git a/packages/monster/dist/modules/dom/namespace.js b/packages/monster/dist/modules/dom/namespace.js index 92e65a20cfa5753bbeeae7212ff1bc66f785a2a3..fd33937de017321315be6e9df1ed2956ca398eba 100644 --- a/packages/monster/dist/modules/dom/namespace.js +++ b/packages/monster/dist/modules/dom/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.DOM"; diff --git a/packages/monster/dist/modules/dom/template.js b/packages/monster/dist/modules/dom/template.js index f7e0ae7d1880ce71c8f539ccfd407a24894e00a5..197b4562932d7d37e0a1f5e517dfc001a247fb69 100644 --- a/packages/monster/dist/modules/dom/template.js +++ b/packages/monster/dist/modules/dom/template.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,Base}from"../types/base.js";import{getGlobalFunction}from"../types/global.js";import{validateInstance}from"../types/validate.js";class Template extends Base{constructor(template){super();validateInstance(template,getGlobalFunction("HTMLTemplateElement"));this.template=template}getTemplateElement(){return this.template}createDocumentFragment(){return this.template.content.cloneNode(true)}}Monster.assignToNamespace("Monster.DOM",Template);export{Monster,Template}; diff --git a/packages/monster/dist/modules/dom/util.js b/packages/monster/dist/modules/dom/util.js index fe3ab47f27f3772d85643a85aa28399168424b48..f6ef9d365c56ee08cda6d0661350f5a8d0c6714c 100644 --- a/packages/monster/dist/modules/dom/util.js +++ b/packages/monster/dist/modules/dom/util.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,getGlobal}from"../types/global.js";import{validateString}from"../types/validate.js";function getDocument(){let document=getGlobal()?.["document"];if(typeof document!=="object"){throw new Error("not supported environment")}return document}function getWindow(){let window=getGlobal()?.["window"];if(typeof window!=="object"){throw new Error("not supported environment")}return window}function getDocumentFragmentFromString(html){validateString(html);const document=getDocument();const template=document.createElement("template");template.innerHTML=html;return template.content}Monster.assignToNamespace("Monster.DOM",getWindow,getDocument,getDocumentFragmentFromString);export{Monster,getWindow,getDocument,getDocumentFragmentFromString}; diff --git a/packages/monster/dist/modules/logging/handler.js b/packages/monster/dist/modules/logging/handler.js index 3aaf60bd86faefb0826db91a6a2318f17c9d3209..e07ca88f029e8b1daed74bd0905811dfd23e901e 100644 --- a/packages/monster/dist/modules/logging/handler.js +++ b/packages/monster/dist/modules/logging/handler.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{Base}from"../types/base.js";import{ALL,DEBUG,ERROR,FATAL,INFO,OFF,TRACE,WARN}from"./logger.js";import{LogEntry}from"./logentry.js";import{validateInstance,validateInteger}from"../types/validate.js";class Handler extends Base{constructor(){super();this.loglevel=OFF}log(entry){validateInstance(entry,LogEntry);if(this.loglevel<entry.getLogLevel()){return false}return true}setLogLevel(loglevel){validateInteger(loglevel);this.loglevel=loglevel;return this}getLogLevel(){return this.loglevel}setAll(){this.setLogLevel(ALL);return this}setTrace(){this.setLogLevel(TRACE);return this}setDebug(){this.setLogLevel(DEBUG);return this}setInfo(){this.setLogLevel(INFO);return this}setWarn(){this.setLogLevel(WARN);return this}setError(){this.setLogLevel(ERROR);return this}setFatal(){this.setLogLevel(FATAL);return this}setOff(){this.setLogLevel(OFF);return this}}Monster.assignToNamespace("Monster.Logging",Handler);export{Monster,Handler}; diff --git a/packages/monster/dist/modules/logging/handler/console.js b/packages/monster/dist/modules/logging/handler/console.js index eef7b6fa67a94672594a1d909e9b396088a1248a..592d6b93d4a8f37f7af3ff5c535fea1b19b19e97 100644 --- a/packages/monster/dist/modules/logging/handler/console.js +++ b/packages/monster/dist/modules/logging/handler/console.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../../namespace.js";import{Base}from"../../types/base.js";import{Handler}from"../../logging/handler.js";class ConsoleHandler extends Base{constructor(){super()}}Monster.assignToNamespace("Monster.Logging",ConsoleHandler);export{Monster,Handler}; diff --git a/packages/monster/dist/modules/logging/handler/namespace.js b/packages/monster/dist/modules/logging/handler/namespace.js index cff6ecc49a7ca8735f09757d49b0b22766f27133..2e82980cfc12bb38b933a14adef14b529703d091 100644 --- a/packages/monster/dist/modules/logging/handler/namespace.js +++ b/packages/monster/dist/modules/logging/handler/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.Logging.Handler"; diff --git a/packages/monster/dist/modules/logging/logentry.js b/packages/monster/dist/modules/logging/logentry.js index 1e08529e0523faa0cb776452aae2b3406bdaaa35..cbad8b77d9fcbaa0635819113c393bec9d91aaf9 100644 --- a/packages/monster/dist/modules/logging/logentry.js +++ b/packages/monster/dist/modules/logging/logentry.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{validateInteger}from"../types/validate.js";import{Base}from"../types/base.js";class LogEntry extends Base{constructor(loglevel,...args){super();validateInteger(loglevel);this.loglevel=loglevel;this.arguments=args}getLogLevel(){return this.loglevel}getArguments(){return this.arguments}}Monster.assignToNamespace("Monster.Logging",LogEntry);export{Monster,LogEntry}; diff --git a/packages/monster/dist/modules/logging/logger.js b/packages/monster/dist/modules/logging/logger.js index e31dbc0eb8b8a68610829aee22d9c7c7f249b7c5..da485982c64468ae62e74290f579207a45d93c47 100644 --- a/packages/monster/dist/modules/logging/logger.js +++ b/packages/monster/dist/modules/logging/logger.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{validateInteger,validateObject,validateString}from"../types/validate.js";import{Handler}from"../logging/handler.js";import{LogEntry}from"../logging/logentry.js";import{Base}from"../types/base.js";const ALL=255;const TRACE=64;const DEBUG=32;const INFO=16;const WARN=8;const ERROR=4;const FATAL=2;const OFF=0;class Logger extends Base{constructor(){super();this.handler=new Set}addHandler(handler){validateObject(handler);if(!(handler instanceof Handler)){throw new Error("the handler must be an instance of Handler")}this.handler.add(handler);return this}removeHandler(handler){validateObject(handler);if(!(handler instanceof Handler)){throw new Error("the handler must be an instance of Handler")}this.handler.delete(handler);return this}logTrace(){triggerLog.apply(this,[TRACE,...arguments]);return this}logDebug(){triggerLog.apply(this,[DEBUG,...arguments]);return this}logInfo(){triggerLog.apply(this,[INFO,...arguments]);return this}logWarn(){triggerLog.apply(this,[WARN,...arguments]);return this}logError(){triggerLog.apply(this,[ERROR,...arguments]);return this}logFatal(){triggerLog.apply(this,[FATAL,...arguments]);return this}getLabel(level){validateInteger(level);if(level===ALL)return"ALL";if(level===TRACE)return"TRACE";if(level===DEBUG)return"DEBUG";if(level===INFO)return"INFO";if(level===WARN)return"WARN";if(level===ERROR)return"ERROR";if(level===FATAL)return"FATAL";if(level===OFF)return"OFF";return"unknown"}getLevel(label){validateString(label);if(label==="ALL")return ALL;if(label==="TRACE")return TRACE;if(label==="DEBUG")return DEBUG;if(label==="INFO")return INFO;if(label==="WARN")return WARN;if(label==="ERROR")return ERROR;if(label==="FATAL")return FATAL;if(label==="OFF")return OFF;return 0}}Monster.assignToNamespace("Monster.Logging",Logger);export{Monster,Logger,ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF};function triggerLog(loglevel,...args){var logger=this;for(let handler of logger.handler){handler.log(new LogEntry(loglevel,args))}return logger} diff --git a/packages/monster/dist/modules/logging/namespace.js b/packages/monster/dist/modules/logging/namespace.js index 51751c7a07b7a2b3ecdd7fb8b43183d045bbe20f..687977b55bdc40eee1e876e66879a936ecb73912 100644 --- a/packages/monster/dist/modules/logging/namespace.js +++ b/packages/monster/dist/modules/logging/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.Logging"; diff --git a/packages/monster/dist/modules/math/namespace.js b/packages/monster/dist/modules/math/namespace.js index 01aee7f35077995b955f86e890941a709844eee3..dcbba0022efe40caf02ddc47ff7aeadb9f9aa335 100644 --- a/packages/monster/dist/modules/math/namespace.js +++ b/packages/monster/dist/modules/math/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.Math"; diff --git a/packages/monster/dist/modules/math/random.js b/packages/monster/dist/modules/math/random.js index b83c90b32480ac2d8e064d4efe0b6b85e8b511ef..c598824984a9a7dbe5bb6a214bed50c7301f1005 100644 --- a/packages/monster/dist/modules/math/random.js +++ b/packages/monster/dist/modules/math/random.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,getGlobal}from"../types/global.js";function random(min,max){if(min===undefined){min=0}if(max===undefined){max=MAX}if(max<min){throw new Error("max must be greater than min")}return Math.round(create(min,max))}var MAX=1000000000;Math.log2=Math.log2||function(n){return Math.log(n)/Math.log(2)};function create(min,max){let crypt;let globalReference=getGlobal();crypt=globalReference?.["crypto"]||globalReference?.["msCrypto"]||globalReference?.["crypto"]||undefined;if(typeof crypt==="undefined"){throw new Error("missing crypt")}let rval=0;const range=max-min;if(range<2){return min}const bitsNeeded=Math.ceil(Math.log2(range));if(bitsNeeded>53){throw new Error("we cannot generate numbers larger than 53 bits.")}const bytesNeeded=Math.ceil(bitsNeeded/8);const mask=Math.pow(2,bitsNeeded)-1;const byteArray=new Uint8Array(bytesNeeded);crypt.getRandomValues(byteArray);let p=(bytesNeeded-1)*8;for(var i=0;i<bytesNeeded;i++){rval+=byteArray[i]*Math.pow(2,p);p-=8}rval=rval&mask;if(rval>=range){return create(min,max)}return min+rval}Monster.assignToNamespace("Monster.Math",random);export{Monster,random}; diff --git a/packages/monster/dist/modules/monster.js b/packages/monster/dist/modules/monster.js index 5aced453599b66ac81f99395cc99e32b7bdd70aa..63cc6b46d163e3d2b7de782a76cc76769cd6ac6c 100644 --- a/packages/monster/dist/modules/monster.js +++ b/packages/monster/dist/modules/monster.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ -'use strict';import{Monster}from"./namespace.js";import"./types/base.js";import"./types/global.js";import"./types/id.js";import"./types/is.js";import"./types/observer.js";import"./types/observerlist.js";import"./types/proxyobserver.js";import"./types/queue.js";import"./types/randomid.js";import"./types/stack.js";import"./types/tokenlist.js";import"./types/uniquequeue.js";import"./types/validate.js";import"./types/version.js";import"./math/random.js";import"./data/diff.js";import"./data/pathfinder.js";import"./data/pipe.js";import"./data/transformer.js";import"./logging/handler.js";import"./logging/logentry.js";import"./logging/logger.js";import"./logging/handler/console.js";import"./util/clone.js";import"./util/comparator.js";import"./util/freeze.js";import"./constraints/abstract.js";import"./constraints/abstractoperator.js";import"./constraints/andoperator.js";import"./constraints/invalid.js";import"./constraints/isarray.js";import"./constraints/isobject.js";import"./constraints/oroperator.js";import"./constraints/valid.js";import"./dom/util.js";import"./dom/template.js";import"./dom/handle.js";import"./dom/assembler.js";Monster.Util.deepFreeze(Monster);export{Monster};let rootName;try{rootName=Monster.Types.getGlobalObject("__MonsterRootName__")}catch(e){}if(!rootName)rootName="Monster";Monster.Types.getGlobal()[rootName]=Monster; +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +'use strict';import{Monster}from"./namespace.js";import"./types/base.js";import"./types/global.js";import"./types/id.js";import"./types/is.js";import"./types/observer.js";import"./types/observerlist.js";import"./types/proxyobserver.js";import"./types/queue.js";import"./types/randomid.js";import"./types/stack.js";import"./types/tokenlist.js";import"./types/uniquequeue.js";import"./types/validate.js";import"./types/version.js";import"./math/random.js";import"./data/diff.js";import"./data/pathfinder.js";import"./data/pipe.js";import"./data/transformer.js";import"./logging/handler.js";import"./logging/logentry.js";import"./logging/logger.js";import"./logging/handler/console.js";import"./util/clone.js";import"./util/comparator.js";import"./util/freeze.js";import"./constraints/abstract.js";import"./constraints/abstractoperator.js";import"./constraints/andoperator.js";import"./constraints/invalid.js";import"./constraints/isarray.js";import"./constraints/isobject.js";import"./constraints/oroperator.js";import"./constraints/valid.js";import"./dom/util.js";import"./dom/template.js";import"./dom/handle.js";import"./dom/assembler.js";import"./dom/customelement.js";Monster.Util.deepFreeze(Monster);export{Monster};let rootName;try{rootName=Monster.Types.getGlobalObject("__MonsterRootName__")}catch(e){}if(!rootName)rootName="Monster";Monster.Types.getGlobal()[rootName]=Monster; diff --git a/packages/monster/dist/modules/namespace.js b/packages/monster/dist/modules/namespace.js index c20c10a4161232f360be464021f20fa8fd34102b..ee70c4cfe270b897165692e089a6d69c1a17c259 100644 --- a/packages/monster/dist/modules/namespace.js +++ b/packages/monster/dist/modules/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';class Namespace{constructor(namespace){if(namespace===undefined||typeof namespace!=="string"){throw new Error("namespace is not a string")}this.namespace=namespace}getNamespace(){return this.namespace}toString(){return this.getNamespace()}}export const Monster=new Namespace("Monster");assignToNamespace("Monster",assignToNamespace);function assignToNamespace(ns,...obj){let current=namespaceFor(ns.split("."));for(let i=0,l=obj.length;i<l;i++){current[objectName(obj[i])]=obj[i]}}function objectName(fn){try{if(typeof fn!=="function"){throw new Error("the first argument is not a function or class.")}if(fn.hasOwnProperty("name")){return fn.name}if("function"===typeof fn.toString){let s=fn.toString();let f=s.match(/^\s*function\s+([^\s(]+)/);if(Array.isArray(f)&&typeof f[1]==="string"){return f[1]}let c=s.match(/^\s*class\s+([^\s(]+)/);if(Array.isArray(c)&&typeof c[1]==="string"){return c[1]}}}catch(e){throw new Error("exception "+e)}throw new Error("the name of the class or function cannot be resolved.")}function namespaceFor(parts){var space=Monster,ns="Monster";for(let i=0;i<parts.length;i++){if("Monster"===parts[i]){continue}ns+="."+parts[i];if(!space.hasOwnProperty(parts[i])){space[parts[i]]=new Namespace(ns)}space=space[parts[i]]}return space}export{assignToNamespace}; diff --git a/packages/monster/dist/modules/types/base.js b/packages/monster/dist/modules/types/base.js index a21c8dc5e98776db8360b50074f804e2ed5042b6..7f8faa02ca911f8862647bc73dbd85f3c089ecc2 100644 --- a/packages/monster/dist/modules/types/base.js +++ b/packages/monster/dist/modules/types/base.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";class Base extends Object{toString(){return JSON.stringify(this)}}Monster.assignToNamespace("Monster.Types",Base);export{Monster,Base}; diff --git a/packages/monster/dist/modules/types/global.js b/packages/monster/dist/modules/types/global.js index f6ff0e907c4acbc488340d2858f168bddad192ee..084143ddceb52e59739654e57bad390cdc354fc3 100644 --- a/packages/monster/dist/modules/types/global.js +++ b/packages/monster/dist/modules/types/global.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{validateFunction,validateString,validateObject}from"./validate.js";var globalReference;(function(){if(typeof globalThis==="object"){globalReference=globalThis;return}Object.defineProperty(Object.prototype,"__monster__",{get:function(){return this},configurable:true});__monster__.globalThis=__monster__;delete Object.prototype.__monster__;globalReference=globalThis})();function getGlobal(){return globalReference}function getGlobalObject(name){validateString(name);let o=globalReference?.[name];if(typeof o==="undefined")throw new Error("the object "+name+" is not defined");validateObject(o);return o}function getGlobalFunction(name){validateString(name);let f=globalReference?.[name];if(typeof f==="undefined")throw new Error("the function "+name+" is not defined");validateFunction(f);return f}Monster.assignToNamespace("Monster.Types",getGlobal,getGlobalObject,getGlobalFunction);export{Monster,getGlobal,getGlobalObject,getGlobalFunction}; diff --git a/packages/monster/dist/modules/types/id.js b/packages/monster/dist/modules/types/id.js index 76d71ffe761bbfce68826db116b9070d1ef7dbe6..8da922790d3d402b2d63211483e94a29bdd7dad0 100644 --- a/packages/monster/dist/modules/types/id.js +++ b/packages/monster/dist/modules/types/id.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,Base}from"./base.js";import{validateString}from"./validate.js";let internalCounter=new Map;class ID extends Base{constructor(prefix){super();if(prefix===undefined){prefix="id"}validateString(prefix);if(!internalCounter.has(prefix)){internalCounter.set(prefix,1)}let count=internalCounter.get(prefix);this.id=prefix+count;internalCounter.set(prefix,++count)}toString(){return this.id}}Monster.assignToNamespace("Monster.Types",ID);export{Monster,ID}; diff --git a/packages/monster/dist/modules/types/is.js b/packages/monster/dist/modules/types/is.js index 4f06ce84d28a2b60639f1c433d86d675761bc5ec..8b3c11103305cee7bea206b95896df49d7237220 100644 --- a/packages/monster/dist/modules/types/is.js +++ b/packages/monster/dist/modules/types/is.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";function isIterable(value){if(value===undefined)return false;if(value===null)return false;return typeof value?.[Symbol.iterator]==="function"}function isPrimitive(value){var type;if(value===undefined||value===null||value===NaN){return true}type=typeof value;if(type==="string"||type==="number"||type==="boolean"||type==="symbol"){return true}return false}function isBoolean(value){if(value===true||value===false){return true}return false}function isString(value){if(value===undefined||typeof value!=="string"){return false}return true}function isObject(value){if(isArray(value))return false;if(isPrimitive(value))return false;if(typeof value==="object"){return true}return false}function isInstance(value,instance){if(!isObject(value))return false;if(!isFunction(instance))return false;if(!instance.hasOwnProperty("prototype"))return false;return value instanceof instance?true:false}function isArray(value){if(Array.isArray(value)){return true}return false}function isFunction(value){if(isArray(value))return false;if(isPrimitive(value))return false;if(typeof value==="function"){return true}return false}function isInteger(value){return Number.isInteger(value)}Monster.assignToNamespace("Monster.Types",isPrimitive,isBoolean,isString,isObject,isArray,isFunction,isIterable,isInteger);export{Monster,isPrimitive,isBoolean,isString,isObject,isInstance,isArray,isFunction,isIterable,isInteger}; diff --git a/packages/monster/dist/modules/types/namespace.js b/packages/monster/dist/modules/types/namespace.js index 0a8ecbdea31bea1175f66884adce6f3af648f06f..4a1fdad040b411b6a45d216aee4448e07c78859b 100644 --- a/packages/monster/dist/modules/types/namespace.js +++ b/packages/monster/dist/modules/types/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.Types"; diff --git a/packages/monster/dist/modules/types/observer.js b/packages/monster/dist/modules/types/observer.js index 7d522c4f7612ef97b629ad1357758a5461795b76..7643bfe500c97790a43ffee12b34ecbd6dd29f04 100644 --- a/packages/monster/dist/modules/types/observer.js +++ b/packages/monster/dist/modules/types/observer.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{TokenList}from"./tokenlist.js";import{isObject}from"./is.js";import{Base}from"./base.js";import{UniqueQueue}from"./uniquequeue.js";class Observer extends Base{constructor(callback,...args){super();if(typeof callback!=="function"){throw new Error("observer callback must be a function")}this.callback=callback;this.arguments=args;this.tags=new TokenList;this.queue=new UniqueQueue}addTag(tag){this.tags.add(tag);return this}removeTag(tag){this.tags.remove(tag);return this}getTags(){return this.tags.entries()}hasTag(tag){return this.tags.contains(tag)}update(subject){let self=this;return new Promise(function(resolve,reject){if(!isObject(subject)){reject("subject must be an object");return}self.queue.add(subject);setTimeout(()=>{if(self.queue.isEmpty()){resolve();return}let s=self.queue.poll();let result=self.callback.apply(s,self.arguments);if(isObject(result)&&result instanceof Promise){result.then(resolve).catch(reject);return}resolve(result)},0)})}}Monster.assignToNamespace("Monster.Types",Observer);export{Monster,Observer}; diff --git a/packages/monster/dist/modules/types/observerlist.js b/packages/monster/dist/modules/types/observerlist.js index 50b3a05d0bc0219ef820decc2799851f781f9bd5..8a98482d762f97ac6a8a9e4603aa08be518ffb35 100644 --- a/packages/monster/dist/modules/types/observerlist.js +++ b/packages/monster/dist/modules/types/observerlist.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{Base}from"./base.js";import{Observer}from"./observer.js";import{validateInstance}from"./validate.js";class ObserverList extends Base{constructor(){super();this.observers=[]}attach(observer){validateInstance(observer,Observer);this.observers.push(observer);return this}detach(observer){validateInstance(observer,Observer);var i=0,l=this.observers.length;for(;i<l;i++){if(this.observers[i]===observer){this.observers.splice(i,1)}}return this}contains(observer){validateInstance(observer,Observer);var i=0,l=this.observers.length;for(;i<l;i++){if(this.observers[i]===observer){return true}}return false}notify(subject){let pomises=[];var i=0,l=this.observers.length;for(;i<l;i++){pomises.push(this.observers[i].update(subject))}return Promise.all(pomises)}}Monster.assignToNamespace("Monster.Types",ObserverList);export{Monster,ObserverList}; diff --git a/packages/monster/dist/modules/types/proxyobserver.js b/packages/monster/dist/modules/types/proxyobserver.js index 940b8e3101d12d7862db77b3f8adc58456d6d06b..9c1311d9b998cc7dde4044ce714ac9da4b854153 100644 --- a/packages/monster/dist/modules/types/proxyobserver.js +++ b/packages/monster/dist/modules/types/proxyobserver.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{Base}from"./base.js";import{validateObject}from"./validate.js";import{ObserverList}from"./observerlist.js";import{Observer}from"./observer.js";import{isObject,isArray,isPrimitive}from"./is.js";class ProxyObserver extends Base{constructor(object){super();validateObject(object);this.realSubject=object;this.subject=new Proxy(object,getHandler.call(this));this.objectMap=new WeakMap;this.objectMap.set(this.realSubject,this.subject);this.observers=new ObserverList}getSubject(){return this.subject}getRealSubject(){return this.realSubject}attachObserver(observer){this.observers.attach(observer);return this}detachObserver(observer){this.observers.detach(observer);return this}notifyObservers(){this.observers.notify(this);return this}containsObserver(observer){return this.observers.contains(observer)}}Monster.assignToNamespace("Monster.Types",ProxyObserver);export{Monster,ProxyObserver};function getHandler(){const proxy=this;const handler={get:function(target,key,receiver){const value=Reflect.get(target,key,receiver);if(typeof key==="symbol"){return value}if(isPrimitive(value)){return value}if(isArray(value)||isObject(value)){if(proxy.objectMap.has(value)){return proxy.objectMap.get(value)}else{let p=new Proxy(value,handler);proxy.objectMap.set(value,p);return p}}return value},set:function(target,key,value,receiver){const result=Reflect.set(target,key,value,receiver);if(typeof property!=="symbol"){proxy.observers.notify(proxy)}return result},deleteProperty:function(target,key){if(key in target){delete target[key];if(typeof key!=="symbol"){proxy.observers.notify(proxy)}return true}return false},defineProperty:function(target,key,descriptor){let result=Reflect.defineProperty(target,key,descriptor);if(typeof key!=="symbol"){proxy.observers.notify(proxy)}return result},setPrototypeOf:function(target,key){let result=Reflect.setPrototypeOf(object1,key);if(typeof key!=="symbol"){proxy.observers.notify(proxy)}return result}};return handler} diff --git a/packages/monster/dist/modules/types/queue.js b/packages/monster/dist/modules/types/queue.js index 97ef3d0bb3227c50ccaaecf3a4cdde6a86628d9a..43b4a74d4572f6f71b49c8148f7cc004ff83c5b7 100644 --- a/packages/monster/dist/modules/types/queue.js +++ b/packages/monster/dist/modules/types/queue.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ import{Monster,Base}from"./base.js";class Queue extends Base{constructor(){super();this.data=[]}isEmpty(){return this.data.length===0}peek(){if(this.isEmpty()){return undefined}return this.data[0]}add(value){this.data.push(value);return this}clear(){this.data=[];return this}poll(){if(this.isEmpty()){return undefined}return this.data.shift()}}Monster.assignToNamespace("Monster.Types",Queue);export{Monster,Queue}; diff --git a/packages/monster/dist/modules/types/randomid.js b/packages/monster/dist/modules/types/randomid.js index bcf3d11d84d8e6a89168a282bc3aac8740ee77ea..9469adfb7e6c0b2e6f754b1f3a5c94b8d2f76615 100644 --- a/packages/monster/dist/modules/types/randomid.js +++ b/packages/monster/dist/modules/types/randomid.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,ID}from"./id.js";import{getGlobal}from"./global.js";import{random}from"../math/random.js";let internalCounter=0;class RandomID extends ID{constructor(){super();internalCounter+=1;this.id=getGlobal().btoa(random(1,10000)).replace(/=/g,"").replace(/^[0-9]+/,"X")+internalCounter}}Monster.assignToNamespace("Monster.Types",RandomID);export{Monster,RandomID}; diff --git a/packages/monster/dist/modules/types/stack.js b/packages/monster/dist/modules/types/stack.js index 3d7e9f3d1d91b88c73198bc201d3969471e64602..904c3449c156e6bfa8d01919155883812f043b38 100644 --- a/packages/monster/dist/modules/types/stack.js +++ b/packages/monster/dist/modules/types/stack.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ import{Monster,Base}from"./base.js";class Stack extends Base{constructor(){super();this.data=[]}isEmpty(){return this.data.length===0}peek(){if(this.isEmpty()){return undefined}return this.data?.[this.data.length-1]}push(value){this.data.push(value);return this}clear(){this.data=[];return this}pop(){if(this.isEmpty()){return undefined}return this.data.pop()}}Monster.assignToNamespace("Monster.Types",Stack);export{Monster,Stack}; diff --git a/packages/monster/dist/modules/types/tokenlist.js b/packages/monster/dist/modules/types/tokenlist.js index 41af1e178f1a3e5acf5cae0005a743f99663a495..f2ed1b0dffe6fa30517ec66ff5a7c080c42c3e60 100644 --- a/packages/monster/dist/modules/types/tokenlist.js +++ b/packages/monster/dist/modules/types/tokenlist.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{Base}from"./base.js";import{isString,isIterable}from"../types/is.js";import{validateString,validateFunction}from"../types/validate.js";class TokenList extends Base{constructor(init){super();this.tokens=new Set;if(typeof init!=="undefined"){this.add(init)}}getIterator(){return this[Symbol.iterator]()}[Symbol.iterator](){let index=0;let entries=this.entries();return{next:()=>{if(index<entries.length){return{value:entries?.[index++],done:false}}else{return{done:true}}}}}contains(value){if(isString(value)){value=value.trim();let counter=0;value.split(" ").forEach(token=>{if(this.tokens.has(token.trim())===false)return false;counter++});return counter>0?true:false}if(isIterable(value)){let counter=0;for(let token of value){validateString(token);if(this.tokens.has(token.trim())===false)return false;counter++}return counter>0?true:false}return false}add(value){if(isString(value)){value.split(" ").forEach(token=>{this.tokens.add(token.trim())})}else if(isIterable(value)){for(let token of value){validateString(token);this.tokens.add(token.trim())}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}clear(){this.tokens.clear();return this}remove(value){if(isString(value)){value.split(" ").forEach(token=>{this.tokens.delete(token.trim())})}else if(isIterable(value)){for(let token of value){validateString(token);this.tokens.delete(token.trim())}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}replace(token,newToken){validateString(token);validateString(newToken);if(!this.contains(token)){return this}let a=Array.from(this.tokens);let i=a.indexOf(token);if(i===-1)return this;a.splice(i,1,newToken);this.tokens=new Set;this.add(a);return this}toggle(value){if(isString(value)){value.split(" ").forEach(token=>{toggleValue.call(this,token)})}else if(isIterable(value)){for(let token of value){toggleValue.call(this,token)}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}entries(){return Array.from(this.tokens)}forEach(callback){validateFunction(callback);this.tokens.forEach(callback);return this}toString(){return this.entries().join(" ")}}function toggleValue(token){if(!(this instanceof TokenList))throw Error("must be called with TokenList.call");validateString(token);token=token.trim();if(this.contains(token)){this.remove(token);return this}this.add(token);return this}Monster.assignToNamespace("Monster.Types",TokenList);export{Monster,TokenList}; diff --git a/packages/monster/dist/modules/types/uniquequeue.js b/packages/monster/dist/modules/types/uniquequeue.js index 01da98cedffe40d65fa12b46966cff6556b97a45..95b12757ff22c1c757330af6ef52edcfde6868d9 100644 --- a/packages/monster/dist/modules/types/uniquequeue.js +++ b/packages/monster/dist/modules/types/uniquequeue.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ import{Monster,Queue}from"./queue.js";import{validateObject}from"./validate.js";class UniqueQueue extends Queue{constructor(){super();this.unique=new WeakSet}add(value){validateObject(value);if(!this.unique.has(value)){this.unique.add(value);super.add(value)}return this}clear(){super.clear();this.unique=new WeakSet;return this}poll(){if(this.isEmpty()){return undefined}let value=this.data.shift();this.unique.delete(value);return value}}Monster.assignToNamespace("Monster.Types",UniqueQueue);export{Monster,UniqueQueue}; diff --git a/packages/monster/dist/modules/types/validate.js b/packages/monster/dist/modules/types/validate.js index 780ff349eb0a8f5cc88282749f24f02f769e1807..d304259c362cbf712eaf0528d551634a05428022 100644 --- a/packages/monster/dist/modules/types/validate.js +++ b/packages/monster/dist/modules/types/validate.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{isPrimitive,isBoolean,isString,isObject,isArray,isFunction,isIterable,isInstance,isInteger}from"./is.js";function validateIterable(value){if(!isIterable(value)){throw new TypeError("value is not iterable")}}function validatePrimitive(value){if(!isPrimitive(value)){throw new TypeError("value is not a primitive")}}function validateBoolean(value){if(!isBoolean(value)){throw new TypeError("value is not a boolean")}}function validateString(value){if(!isString(value)){throw new TypeError("value is not a string")}}function validateObject(value){if(!isObject(value)){throw new TypeError("value is not a object")}}function validateInstance(value,instance){if(!isInstance(value,instance)){let n="";if(isObject(instance)||isFunction(instance)){n=instance?.["name"]}if(n){n=" "+n}throw new TypeError("value is not an instance of"+n)}}function validateArray(value){if(!isArray(value)){throw new TypeError("value is not an array")}}function validateFunction(value){if(!isFunction(value)){throw new TypeError("value is not a function")}}function validateInteger(value){if(!isInteger(value)){throw new TypeError("value is not an integer")}}Monster.assignToNamespace("Monster.Types",validatePrimitive,validateBoolean,validateString,validateObject,validateArray,validateFunction,validateIterable,validateInteger);export{Monster,validatePrimitive,validateBoolean,validateString,validateObject,validateInstance,validateArray,validateFunction,validateIterable,validateInteger}; diff --git a/packages/monster/dist/modules/types/version.js b/packages/monster/dist/modules/types/version.js index be1e12dc0d118977a9ae26ae8ceb7319a53de223..66e62fcd1f17ce5b62fc362d79a152a46e5ca7e1 100644 --- a/packages/monster/dist/modules/types/version.js +++ b/packages/monster/dist/modules/types/version.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ -'use strict';import{Monster}from"../namespace.js";import{Base}from"./base.js";class Version extends Base{constructor(major,minor,patch){super();if(typeof major==="string"&&minor===undefined&&patch===undefined){let parts=major.toString().split(".");major=parseInt(parts[0]||0);minor=parseInt(parts[1]||0);patch=parseInt(parts[2]||0)}if(major===undefined){throw new Error("major version is undefined")}if(minor===undefined){minor=0}if(patch===undefined){patch=0}this.major=parseInt(major);this.minor=parseInt(minor);this.patch=parseInt(patch);if(isNaN(this.major)){throw new Error("major is not a number")}if(isNaN(this.minor)){throw new Error("minor is not a number")}if(isNaN(this.patch)){throw new Error("patch is not a number")}}toString(){return this.major+"."+this.minor+"."+this.patch}compareTo(version){if(version instanceof Version){version=version.toString()}if(typeof version!=="string"){throw new Error("type exception")}if(version===this.toString()){return 0}let a=[this.major,this.minor,this.patch];let b=version.split(".");let len=Math.max(a.length,b.length);for(let i=0;i<len;i+=1){if(a[i]&&!b[i]&&parseInt(a[i])>0||parseInt(a[i])>parseInt(b[i])){return 1}else if(b[i]&&!a[i]&&parseInt(b[i])>0||parseInt(a[i])<parseInt(b[i])){return-1}}return 0}}Monster.assignToNamespace("Monster.Types",Version);let monsterVersion;function getVersion(){if(monsterVersion instanceof Version){return monsterVersion}monsterVersion=new Version("1.6.0");return monsterVersion}Monster.assignToNamespace("Monster",getVersion);export{Monster,Version,getVersion}; +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +'use strict';import{Monster}from"../namespace.js";import{Base}from"./base.js";class Version extends Base{constructor(major,minor,patch){super();if(typeof major==="string"&&minor===undefined&&patch===undefined){let parts=major.toString().split(".");major=parseInt(parts[0]||0);minor=parseInt(parts[1]||0);patch=parseInt(parts[2]||0)}if(major===undefined){throw new Error("major version is undefined")}if(minor===undefined){minor=0}if(patch===undefined){patch=0}this.major=parseInt(major);this.minor=parseInt(minor);this.patch=parseInt(patch);if(isNaN(this.major)){throw new Error("major is not a number")}if(isNaN(this.minor)){throw new Error("minor is not a number")}if(isNaN(this.patch)){throw new Error("patch is not a number")}}toString(){return this.major+"."+this.minor+"."+this.patch}compareTo(version){if(version instanceof Version){version=version.toString()}if(typeof version!=="string"){throw new Error("type exception")}if(version===this.toString()){return 0}let a=[this.major,this.minor,this.patch];let b=version.split(".");let len=Math.max(a.length,b.length);for(let i=0;i<len;i+=1){if(a[i]&&!b[i]&&parseInt(a[i])>0||parseInt(a[i])>parseInt(b[i])){return 1}else if(b[i]&&!a[i]&&parseInt(b[i])>0||parseInt(a[i])<parseInt(b[i])){return-1}}return 0}}Monster.assignToNamespace("Monster.Types",Version);let monsterVersion;function getVersion(){if(monsterVersion instanceof Version){return monsterVersion}monsterVersion=new Version("1.7.0");return monsterVersion}Monster.assignToNamespace("Monster",getVersion);export{Monster,Version,getVersion}; diff --git a/packages/monster/dist/modules/util/clone.js b/packages/monster/dist/modules/util/clone.js index 808e0bc079c6e23c771b0e7f85dec2b71025310f..bf5340bce4ac37523878faca8f16ba67fff9ad63 100644 --- a/packages/monster/dist/modules/util/clone.js +++ b/packages/monster/dist/modules/util/clone.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{isObject,isFunction,isPrimitive,isArray}from"../types/is.js";import{getGlobal}from"../types/global.js";function clone(obj){if(null===obj){return obj}if(isPrimitive(obj)){return obj}if(isFunction(obj)){return obj}if(isArray(obj)){let copy=[];for(var i=0,len=obj.length;i<len;i++){copy[i]=clone(obj[i])}return copy}if(isObject(obj)){if(obj instanceof Date){let copy=new Date;copy.setTime(obj.getTime());return copy}if(typeof Element!=="undefined"&&obj instanceof Element)return obj;if(typeof HTMLDocument!=="undefined"&&obj instanceof HTMLDocument)return obj;if(typeof DocumentFragment!=="undefined"&&obj instanceof DocumentFragment)return obj;if(obj===getGlobal())return obj;if(typeof globalContext!=="undefined"&&obj===globalContext)return obj;if(typeof window!=="undefined"&&obj===window)return obj;if(typeof document!=="undefined"&&obj===document)return obj;if(typeof navigator!=="undefined"&&obj===navigator)return obj;if(typeof JSON!=="undefined"&&obj===JSON)return obj;try{if(obj instanceof Proxy){return obj}}catch(e){}return cloneObject(obj)}throw new Error("unable to clone obj! its type isn't supported.")}function cloneObject(obj){var copy;if(typeof obj.hasOwnProperty("getClone")&&obj.getClone==="function"){return obj.getClone()}copy={};if(typeof obj.constructor==="function"&&typeof obj.constructor.call==="function"){copy=new obj.constructor}for(let key in obj){if(!obj.hasOwnProperty(key)){continue}if(Monster.Types.isPrimitive(obj[key])){copy[key]=obj[key];continue}copy[key]=clone(obj[key])}return copy}Monster.assignToNamespace("Monster.Util",clone);export{Monster,clone}; diff --git a/packages/monster/dist/modules/util/comparator.js b/packages/monster/dist/modules/util/comparator.js index e70c174284fb1bf3c27b5d499ed5a60a0a7bf26a..ab226bc6a1877bfdd2063e90520a5f680f0ba695 100644 --- a/packages/monster/dist/modules/util/comparator.js +++ b/packages/monster/dist/modules/util/comparator.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster,Base}from"../types/base.js";import{isFunction}from"../types/is.js";class Comparator extends Base{constructor(callback){super();if(isFunction(callback)){this.compare=callback}else if(callback!==undefined){throw new TypeError("unsupported type")}else{this.compare=function(a,b){if(typeof a!==typeof b){throw new TypeError("impractical comparison")}if(a===b){return 0}return a<b?-1:1}}}reverse(){const original=this.compare;this.compare=(a,b)=>original(b,a);return this}equal(a,b){return this.compare(a,b)===0}greaterThan(a,b){return this.compare(a,b)>0}greaterThanOrEqual(a,b){return this.greaterThan(a,b)||this.equal(a,b)}lessThanOrEqual(a,b){return this.lessThan(a,b)||this.equal(a,b)}lessThan(a,b){return this.compare(a,b)<0}}Monster.assignToNamespace("Monster.Util",Comparator);export{Monster,Comparator}; diff --git a/packages/monster/dist/modules/util/freeze.js b/packages/monster/dist/modules/util/freeze.js index e7a4136897bd08970ce440f9a62a61613cdcfb82..5c9a032eacfd6d03c9c403c1c0c7f8d1f3c033fb 100644 --- a/packages/monster/dist/modules/util/freeze.js +++ b/packages/monster/dist/modules/util/freeze.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';import{Monster}from"../namespace.js";import{validateObject}from"../types/validate.js";function deepFreeze(object){validateObject(object);var propNames=Object.getOwnPropertyNames(object);for(let name of propNames){let value=object[name];object[name]=value&&typeof value==="object"?deepFreeze(value):value}return Object.freeze(object)}Monster.assignToNamespace("Monster.Util",deepFreeze);export{Monster,deepFreeze}; diff --git a/packages/monster/dist/modules/util/namespace.js b/packages/monster/dist/modules/util/namespace.js index ccd8af26f19ca1b47a336dafadaf144b91a7bf58..d831f7a15869960d3daa168237257a64888f54f7 100644 --- a/packages/monster/dist/modules/util/namespace.js +++ b/packages/monster/dist/modules/util/namespace.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ 'use strict';const namespace="Monster.Util"; diff --git a/packages/monster/dist/monster.dev.js b/packages/monster/dist/monster.dev.js index 2d233fd0d8bfe33ebcee6f1f4d2e08234bdc26bf..68d6c9a7b7d4c8fbc115375551dc95f7e054ff13 100644 --- a/packages/monster/dist/monster.dev.js +++ b/packages/monster/dist/monster.dev.js @@ -85,7 +85,7 @@ exports.AbstractConstraint = AbstractConstraint; _namespace.Monster.assignToNamespace('Monster.Constraints', AbstractConstraint); -},{"../namespace.js":23,"../types/base.js":24}],2:[function(require,module,exports){ +},{"../namespace.js":24,"../types/base.js":25}],2:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -211,7 +211,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js'; * new Monster.Constraint.AndOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -220,8 +220,8 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js'; - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js'; * new AndOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -310,7 +310,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js'; * new Monster.Constraint.Invalid().catch(()=>console.log(true)); * </script> * ``` @@ -319,7 +319,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js'; + * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js'; * new Invalid().catch(()=>console.log(true)); * </script> * ``` @@ -408,7 +408,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js'; * console.log(new Monster.Constraint.IsArray()) * </script> * ``` @@ -417,7 +417,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js'; + * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js'; * console.log(new IsArray()) * </script> * ``` @@ -462,7 +462,7 @@ exports.IsArray = IsArray; _abstract.Monster.assignToNamespace('Monster.Constraints', IsArray); -},{"../types/is.js":27,"./abstract.js":1}],6:[function(require,module,exports){ +},{"../types/is.js":28,"./abstract.js":1}],6:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -510,7 +510,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js'; * console.log(new Monster.Constraint.IsObject()) * </script> * ``` @@ -519,7 +519,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js'; + * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js'; * console.log(new IsObject()) * </script> * ``` @@ -564,7 +564,7 @@ exports.IsObject = IsObject; _abstract.Monster.assignToNamespace('Monster.Constraints', IsObject); -},{"../types/is.js":27,"./abstract.js":1}],7:[function(require,module,exports){ +},{"../types/is.js":28,"./abstract.js":1}],7:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -610,7 +610,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js'; * new Monster.Constraint.OrOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -619,8 +619,8 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js'; - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js'; * new OrOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -732,7 +732,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js'; * new Monster.Constraint.Valid().then(()=>console.log(true)); * </script> * ``` @@ -741,7 +741,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js'; * new Valid().then(()=>console.log(true)); * </script> * ``` @@ -812,7 +812,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js'; * console.log(Monster.Data.Diff(a, b)) * </script> * ``` @@ -821,7 +821,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js'; * console.log(Diff(a, b)) * </script> * ``` @@ -1048,7 +1048,7 @@ function getOperator(a, b) { _is.Monster.assignToNamespace('Monster.Data', Diff); -},{"../types/is.js":27}],10:[function(require,module,exports){ +},{"../types/is.js":28}],10:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -1121,7 +1121,7 @@ var DELIMITER = '.'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js'; * console.log(new Monster.Data.Pathfinder()) * </script> * ``` @@ -1130,7 +1130,7 @@ var DELIMITER = '.'; * * ``` * <script type="module"> - * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js'; + * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js'; * console.log(new Pathfinder()) * </script> * ``` @@ -1443,7 +1443,7 @@ function deleteValueViaPath(object, path) { return; } -},{"../namespace.js":23,"../types/base.js":24,"../types/is.js":27,"../types/stack.js":33,"../types/validate.js":36}],11:[function(require,module,exports){ +},{"../namespace.js":24,"../types/base.js":25,"../types/is.js":28,"../types/stack.js":34,"../types/validate.js":37}],11:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -1498,7 +1498,7 @@ var DELIMITER = '|'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js'; * console.log(new Monster.Data.Pipe()) * </script> * ``` @@ -1507,7 +1507,7 @@ var DELIMITER = '|'; * * ``` * <script type="module"> - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js'; * console.log(new Pipe()) * </script> * ``` @@ -1582,7 +1582,7 @@ exports.Pipe = Pipe; _namespace.Monster.assignToNamespace('Monster.Data', Pipe); -},{"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36,"./transformer.js":12}],12:[function(require,module,exports){ +},{"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37,"./transformer.js":12}],12:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -1658,7 +1658,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js'; * console.log(new Monster.Data.Transformer()) * </script> * ``` @@ -1667,7 +1667,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js'; + * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js'; * console.log(new Transformer()) * </script> * ``` @@ -2080,7 +2080,7 @@ function transform(value) { return value; } -},{"../namespace.js":23,"../types/base.js":24,"../types/id.js":26,"../types/is.js":27,"../types/validate.js":36,"../util/clone.js":38,"./pathfinder.js":10}],13:[function(require,module,exports){ +},{"../namespace.js":24,"../types/base.js":25,"../types/id.js":27,"../types/is.js":28,"../types/validate.js":37,"../util/clone.js":39,"./pathfinder.js":10}],13:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -2139,7 +2139,7 @@ var ATTRIBUTEPREFIX = "data-monster-"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js'; * console.log(new Monster.DOM.Assembler()) * </script> * ``` @@ -2148,7 +2148,7 @@ var ATTRIBUTEPREFIX = "data-monster-"; * * ``` * <script type="module"> - * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js'; + * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js'; * console.log(new Assembler()) * </script> * ``` @@ -2234,7 +2234,125 @@ exports.Assembler = Assembler; _base.Monster.assignToNamespace('Monster.DOM', Assembler); -},{"../types/base.js":24,"../types/global.js":25,"../types/proxyobserver.js":30,"../types/validate.js":36}],14:[function(require,module,exports){ +},{"../types/base.js":25,"../types/global.js":26,"../types/proxyobserver.js":31,"../types/validate.js":37}],14:[function(require,module,exports){ +'use strict'; +/** + * @author schukai GmbH + */ + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.registerCustomElement = registerCustomElement; +Object.defineProperty(exports, "Monster", { + enumerable: true, + get: function get() { + return _validate.Monster; + } +}); +exports.CustomElement = void 0; + +var _global = require("../types/global.js"); + +var _validate = require("../types/validate.js"); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } + +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +/** + * you can call the method via the monster namespace `new Monster.DOM.Element()`. + * + * ``` + * <script type="module"> + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js'; + * console.log(new Monster.DOM.CustomElement()) + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js'; + * console.log(new CustomElement()) + * </script> + * ``` + * + * @since 1.7.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + */ +var CustomElement = /*#__PURE__*/function (_HTMLElement) { + _inherits(CustomElement, _HTMLElement); + + var _super = _createSuper(CustomElement); + + function CustomElement() { + _classCallCheck(this, CustomElement); + + return _super.call(this); + } + /** + * + * @return {string} + * @throws {Error} the method getTag must be overwritten by the derived class. + */ + + + _createClass(CustomElement, null, [{ + key: "getTag", + value: function getTag() { + throw new Error("the method getTag must be overwritten by the derived class."); + } + }]); + + return CustomElement; +}( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); +/** + * @param {CustomElement} element + * @return {void} + * @since 1.7.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + */ + + +exports.CustomElement = CustomElement; + +function registerCustomElement(element) { + (0, _validate.validateFunction)(element); + (0, _global.getGlobalObject)('customElements').define(element.getTag(), element); + return; +} + +_validate.Monster.assignToNamespace('Monster.DOM', CustomElement, registerCustomElement); + +},{"../types/global.js":26,"../types/validate.js":37}],15:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -2308,7 +2426,7 @@ var MONSTERDOMHANDLE = Symbol('MonsterHandle'); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(new Monster.DOM.Handle()) * </script> * ``` @@ -2317,7 +2435,7 @@ var MONSTERDOMHANDLE = Symbol('MonsterHandle'); * * ``` * <script type="module"> - * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(new Handle()) * </script> * ``` @@ -2486,7 +2604,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(Monster.DOM.getHandleFromNode()) * </script> * ``` @@ -2495,7 +2613,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(getHandleFromNode()) * </script> * ``` @@ -2528,7 +2646,7 @@ function getHandleFromNode(node) { _base.Monster.assignToNamespace('Monster.DOM', getHandleFromNode, Handle); -},{"../types/base.js":24,"../types/global.js":25,"../types/id.js":26,"../types/is.js":27,"../types/observer.js":28,"../types/proxyobserver.js":30,"../types/stack.js":33,"../types/validate.js":36,"./assembler.js":13}],15:[function(require,module,exports){ +},{"../types/base.js":25,"../types/global.js":26,"../types/id.js":27,"../types/is.js":28,"../types/observer.js":29,"../types/proxyobserver.js":31,"../types/stack.js":34,"../types/validate.js":37,"./assembler.js":13}],16:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -2578,7 +2696,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js'; * console.log(new Monster.DOM.Template()) * </script> * ``` @@ -2587,7 +2705,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js'; + * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js'; * console.log(new Template()) * </script> * ``` @@ -2649,7 +2767,7 @@ exports.Template = Template; _base.Monster.assignToNamespace('Monster.DOM', Template); -},{"../types/base.js":24,"../types/global.js":25,"../types/validate.js":36}],16:[function(require,module,exports){ +},{"../types/base.js":25,"../types/global.js":26,"../types/validate.js":37}],17:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -2679,7 +2797,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocument()) * </script> * ``` @@ -2688,7 +2806,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getDocument()) * </script> * ``` @@ -2742,7 +2860,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getWindow()) * </script> * ``` @@ -2751,7 +2869,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getWindow(null)) * </script> * ``` @@ -2811,7 +2929,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocumentFragmentFromString()) * </script> * ``` @@ -2820,7 +2938,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getDocumentFragmentFromString('<div></div>')) * </script> * ``` @@ -2871,7 +2989,7 @@ function getDocumentFragmentFromString(html) { _global.Monster.assignToNamespace('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString); -},{"../types/global.js":25,"../types/validate.js":36}],17:[function(require,module,exports){ +},{"../types/global.js":26,"../types/validate.js":37}],18:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -2925,7 +3043,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js'; * console.log(new Monster.Logging.Handler()) * </script> * ``` @@ -2934,7 +3052,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js'; * console.log(new Handler()) * </script> * ``` @@ -3125,7 +3243,7 @@ exports.Handler = Handler; _namespace.Monster.assignToNamespace('Monster.Logging', Handler); -},{"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36,"./logentry.js":19,"./logger.js":20}],18:[function(require,module,exports){ +},{"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37,"./logentry.js":20,"./logger.js":21}],19:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -3176,7 +3294,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler/console.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler/console.js'; * console.log(new Monster.Logging.Handler.ConsoleHandler()) * </script> * ``` @@ -3185,7 +3303,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler/console.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler/console.js'; * console.log(new ConsoleHandler()) * </script> * ``` @@ -3210,7 +3328,7 @@ var ConsoleHandler = /*#__PURE__*/function (_Base) { _namespace.Monster.assignToNamespace('Monster.Logging', ConsoleHandler); -},{"../../logging/handler.js":17,"../../namespace.js":23,"../../types/base.js":24}],19:[function(require,module,exports){ +},{"../../logging/handler.js":18,"../../namespace.js":24,"../../types/base.js":25}],20:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -3260,7 +3378,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logentry.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js'; * console.log(new Monster.Logging.LogEntry()) * </script> * ``` @@ -3269,7 +3387,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logentry.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js'; * console.log(new LogEntry()) * </script> * ``` @@ -3334,7 +3452,7 @@ exports.LogEntry = LogEntry; _namespace.Monster.assignToNamespace('Monster.Logging', LogEntry); -},{"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36}],20:[function(require,module,exports){ +},{"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37}],21:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -3456,7 +3574,7 @@ var OFF = 0; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js'; * console.log(new Monster.Logging.Logger()) * </script> * ``` @@ -3465,7 +3583,7 @@ var OFF = 0; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js'; * console.log(new Logger()) * </script> * ``` @@ -3713,7 +3831,7 @@ function triggerLog(loglevel) { return logger; } -},{"../logging/handler.js":17,"../logging/logentry.js":19,"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36}],21:[function(require,module,exports){ +},{"../logging/handler.js":18,"../logging/logentry.js":20,"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37}],22:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -3739,7 +3857,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js'; * console.log(Monster.Math.random(1,10)) // ↦ 5 * </script> * ``` @@ -3748,7 +3866,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js'; + * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js'; * console.log(random(1,10)) // ↦ 5 * </script> * ``` @@ -3840,7 +3958,7 @@ function create(min, max) { _global.Monster.assignToNamespace('Monster.Math', random); -},{"../types/global.js":25}],22:[function(require,module,exports){ +},{"../types/global.js":26}],23:[function(require,module,exports){ /** * @license * Copyright 2021 schukai GmbH @@ -3937,6 +4055,8 @@ require("./dom/handle.js"); require("./dom/assembler.js"); +require("./dom/customelement.js"); + _namespace.Monster.Util.deepFreeze(_namespace.Monster); var rootName; @@ -3948,7 +4068,7 @@ try { if (!rootName) rootName = "Monster"; _namespace.Monster.Types.getGlobal()[rootName] = _namespace.Monster; -},{"./constraints/abstract.js":1,"./constraints/abstractoperator.js":2,"./constraints/andoperator.js":3,"./constraints/invalid.js":4,"./constraints/isarray.js":5,"./constraints/isobject.js":6,"./constraints/oroperator.js":7,"./constraints/valid.js":8,"./data/diff.js":9,"./data/pathfinder.js":10,"./data/pipe.js":11,"./data/transformer.js":12,"./dom/assembler.js":13,"./dom/handle.js":14,"./dom/template.js":15,"./dom/util.js":16,"./logging/handler.js":17,"./logging/handler/console.js":18,"./logging/logentry.js":19,"./logging/logger.js":20,"./math/random.js":21,"./namespace.js":23,"./types/base.js":24,"./types/global.js":25,"./types/id.js":26,"./types/is.js":27,"./types/observer.js":28,"./types/observerlist.js":29,"./types/proxyobserver.js":30,"./types/queue.js":31,"./types/randomid.js":32,"./types/stack.js":33,"./types/tokenlist.js":34,"./types/uniquequeue.js":35,"./types/validate.js":36,"./types/version.js":37,"./util/clone.js":38,"./util/comparator.js":39,"./util/freeze.js":40}],23:[function(require,module,exports){ +},{"./constraints/abstract.js":1,"./constraints/abstractoperator.js":2,"./constraints/andoperator.js":3,"./constraints/invalid.js":4,"./constraints/isarray.js":5,"./constraints/isobject.js":6,"./constraints/oroperator.js":7,"./constraints/valid.js":8,"./data/diff.js":9,"./data/pathfinder.js":10,"./data/pipe.js":11,"./data/transformer.js":12,"./dom/assembler.js":13,"./dom/customelement.js":14,"./dom/handle.js":15,"./dom/template.js":16,"./dom/util.js":17,"./logging/handler.js":18,"./logging/handler/console.js":19,"./logging/logentry.js":20,"./logging/logger.js":21,"./math/random.js":22,"./namespace.js":24,"./types/base.js":25,"./types/global.js":26,"./types/id.js":27,"./types/is.js":28,"./types/observer.js":29,"./types/observerlist.js":30,"./types/proxyobserver.js":31,"./types/queue.js":32,"./types/randomid.js":33,"./types/stack.js":34,"./types/tokenlist.js":35,"./types/uniquequeue.js":36,"./types/validate.js":37,"./types/version.js":38,"./util/clone.js":39,"./util/comparator.js":40,"./util/freeze.js":41}],24:[function(require,module,exports){ 'use strict'; /** * @namespace Monster @@ -4041,7 +4161,7 @@ assignToNamespace('Monster', assignToNamespace); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/namespace.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/namespace.js'; * function hello() { * console.log('Hello World!'); * } @@ -4131,7 +4251,7 @@ function namespaceFor(parts) { return space; } -},{}],24:[function(require,module,exports){ +},{}],25:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -4185,7 +4305,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js'; * console.log(new Monster.Types.Base()) * console.log(new Monster.Types.Base()) * </script> @@ -4195,7 +4315,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js'; + * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js'; * console.log(new Base()) * console.log(new Base()) * </script> @@ -4237,7 +4357,7 @@ exports.Base = Base; _namespace.Monster.assignToNamespace('Monster.Types', Base); -},{"../namespace.js":23}],25:[function(require,module,exports){ +},{"../namespace.js":24}],26:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -4308,7 +4428,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -4317,7 +4437,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -4348,7 +4468,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -4357,7 +4477,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -4384,7 +4504,7 @@ function getGlobalFunction(name) { _namespace.Monster.assignToNamespace('Monster.Types', getGlobal, getGlobalObject, getGlobalFunction); -},{"../namespace.js":23,"./validate.js":36}],26:[function(require,module,exports){ +},{"../namespace.js":24,"./validate.js":37}],27:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -4443,7 +4563,7 @@ var internalCounter = new Map(); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Monster.Types.ID()) * </script> * ``` @@ -4452,7 +4572,7 @@ var internalCounter = new Map(); * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new ID()) * </script> * ``` @@ -4513,7 +4633,7 @@ exports.ID = ID; _base.Monster.assignToNamespace('Monster.Types', ID); -},{"./base.js":24,"./validate.js":36}],27:[function(require,module,exports){ +},{"./base.js":25,"./validate.js":37}],28:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -4549,7 +4669,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isIterable(null)) // ↦ false * console.log(Monster.Types.isIterable('hello')) // ↦ true * console.log(Monster.Types.isIterable([])) // ↦ true @@ -4560,7 +4680,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isIterable(null)) // ↦ false * console.log(isIterable('hello')) // ↦ true * console.log(isIterable([])) // ↦ true @@ -4585,7 +4705,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isPrimitive('2')) // ↦ false * console.log(Monster.Types.isPrimitive([])) // ↦ true * </script> @@ -4595,7 +4715,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isPrimitive('2')) // ↦ true * console.log(isPrimitive([])) // ↦ false * </script> @@ -4631,7 +4751,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isBoolean('2')) // ↦ false * console.log(Monster.Types.isBoolean([])) // ↦ false * console.log(Monster.Types.isBoolean(true)) // ↦ true @@ -4642,7 +4762,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isBoolean('2')) // ↦ false * console.log(isBoolean([])) // ↦ false * console.log(isBoolean(2>4)) // ↦ true @@ -4671,7 +4791,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isString('2')) // ↦ true * console.log(Monster.Types.isString([])) // ↦ false * </script> @@ -4681,7 +4801,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isString('2')) // ↦ true * console.log(isString([])) // ↦ false * </script> @@ -4709,7 +4829,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isObject('2')) // ↦ false * console.log(Monster.Types.isObject([])) // ↦ false * console.log(Monster.Types.isObject({})) // ↦ true @@ -4720,7 +4840,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isObject('2')) // ↦ false * console.log(isObject([])) // ↦ false * </script> @@ -4751,7 +4871,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInstance('2')) // ↦ false * console.log(Monster.Types.isInstance([])) // ↦ false * console.log(Monster.Types.isInstance({})) // ↦ true @@ -4762,7 +4882,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isInstance('2')) // ↦ false * console.log(isInstance([])) // ↦ false * </script> @@ -4790,7 +4910,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isArray('2')) // ↦ false * console.log(Monster.Types.isArray([])) // ↦ true * </script> @@ -4800,7 +4920,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isArray('2')) // ↦ false * console.log(isArray([])) // ↦ true * </script> @@ -4828,7 +4948,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isFunction(()=>{})) // ↦ true * console.log(Monster.Types.isFunction('2')) // ↦ false * console.log(Monster.Types.isFunction([])) // ↦ false @@ -4839,7 +4959,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isFunction(()=>{})) // ↦ true * console.log(isFunction('2')) // ↦ false * console.log(isFunction([])) // ↦ false @@ -4871,7 +4991,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInteger(()=>{})) // ↦ true * console.log(Monster.Types.isInteger('2')) // ↦ false * console.log(Monster.Types.isInteger(2)) // ↦ true @@ -4882,7 +5002,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isInteger(()=>{})) // ↦ true * console.log(isInteger('2')) // ↦ false * console.log(isInteger(2)) // ↦ true @@ -4903,7 +5023,7 @@ function isInteger(value) { _namespace.Monster.assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger); -},{"../namespace.js":23}],28:[function(require,module,exports){ +},{"../namespace.js":24}],29:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -4959,7 +5079,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js'; * console.log(new Monster.Types.Observer()) * </script> * ``` @@ -4968,7 +5088,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js'; * console.log(Observer()) * </script> * ``` @@ -5129,7 +5249,7 @@ exports.Observer = Observer; _namespace.Monster.assignToNamespace('Monster.Types', Observer); -},{"../namespace.js":23,"./base.js":24,"./is.js":27,"./tokenlist.js":34,"./uniquequeue.js":35}],29:[function(require,module,exports){ +},{"../namespace.js":24,"./base.js":25,"./is.js":28,"./tokenlist.js":35,"./uniquequeue.js":36}],30:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -5183,7 +5303,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js'; * console.log(new Monster.Types.ObserverList()) * console.log(new Monster.Types.ObserverList()) * </script> @@ -5193,7 +5313,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js'; + * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js'; * console.log(ObserverList()) * console.log(ObserverList()) * </script> @@ -5307,7 +5427,7 @@ exports.ObserverList = ObserverList; _namespace.Monster.assignToNamespace('Monster.Types', ObserverList); -},{"../namespace.js":23,"./base.js":24,"./observer.js":28,"./validate.js":36}],30:[function(require,module,exports){ +},{"../namespace.js":24,"./base.js":25,"./observer.js":29,"./validate.js":37}],31:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -5365,7 +5485,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js'; * console.log(new Monster.Types.ProxyObserver()) * </script> * ``` @@ -5374,7 +5494,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js'; * console.log(new ProxyObserver()) * </script> * ``` @@ -5601,7 +5721,7 @@ function getHandler() { return handler; } -},{"../namespace.js":23,"./base.js":24,"./is.js":27,"./observer.js":28,"./observerlist.js":29,"./validate.js":36}],31:[function(require,module,exports){ +},{"../namespace.js":24,"./base.js":25,"./is.js":28,"./observer.js":29,"./observerlist.js":30,"./validate.js":37}],32:[function(require,module,exports){ "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -5644,7 +5764,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js'; * console.log(new Monster.Types.Queue()) * </script> * ``` @@ -5653,7 +5773,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js'; * console.log(new Queue()) * </script> * ``` @@ -5754,7 +5874,7 @@ exports.Queue = Queue; _base.Monster.assignToNamespace('Monster.Types', Queue); -},{"./base.js":24}],32:[function(require,module,exports){ +},{"./base.js":25}],33:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -5805,7 +5925,7 @@ var internalCounter = 0; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js'; * console.log(new Monster.Types.RandomID()) * </script> * ``` @@ -5814,7 +5934,7 @@ var internalCounter = 0; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js'; * console.log(new RandomID()) * </script> * ``` @@ -5852,7 +5972,7 @@ exports.RandomID = RandomID; _id.Monster.assignToNamespace('Monster.Types', RandomID); -},{"../math/random.js":21,"./global.js":25,"./id.js":26}],33:[function(require,module,exports){ +},{"../math/random.js":22,"./global.js":26,"./id.js":27}],34:[function(require,module,exports){ "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -5895,7 +6015,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js'; * console.log(new Monster.Types.Stack()) * </script> * ``` @@ -5904,7 +6024,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js'; * console.log(new Stack()) * </script> * ``` @@ -6008,7 +6128,7 @@ exports.Stack = Stack; _base.Monster.assignToNamespace('Monster.Types', Stack); -},{"./base.js":24}],34:[function(require,module,exports){ +},{"./base.js":25}],35:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -6070,7 +6190,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js'; * console.log(new Monster.Types.TokenList("myclass row")) * console.log(new Monster.Types.TokenList("myclass row")) * </script> @@ -6080,7 +6200,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js'; + * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js'; * console.log(new TokenList("myclass row")) * console.log(new TokenList("myclass row")) * </script> @@ -6453,7 +6573,7 @@ function toggleValue(token) { _namespace.Monster.assignToNamespace('Monster.Types', TokenList); -},{"../namespace.js":23,"../types/is.js":27,"../types/validate.js":36,"./base.js":24}],35:[function(require,module,exports){ +},{"../namespace.js":24,"../types/is.js":28,"../types/validate.js":37,"./base.js":25}],36:[function(require,module,exports){ "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -6502,7 +6622,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js'; * console.log(new Monster.Types.UniqueQueue()) * </script> * ``` @@ -6511,7 +6631,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js'; * console.log(new UniqueQueue()) * </script> * ``` @@ -6600,7 +6720,7 @@ exports.UniqueQueue = UniqueQueue; _queue.Monster.assignToNamespace('Monster.Types', UniqueQueue); -},{"./queue.js":31,"./validate.js":36}],36:[function(require,module,exports){ +},{"./queue.js":32,"./validate.js":37}],37:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -6636,7 +6756,7 @@ var _is = require("./is.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError * console.log(Monster.Types.validateIterable([])) // ↦ undefined * </script> @@ -6646,7 +6766,7 @@ var _is = require("./is.js"); * * ``` * <script type="module"> - * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateIterable('2')) // ↦ TypeError * console.log(validateIterable([])) // ↦ undefined * </script> @@ -6674,7 +6794,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validatePrimitive('2')) // ↦ undefined * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError * </script> @@ -6684,7 +6804,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validatePrimitive('2')) // ↦ undefined * console.log(validatePrimitive([])) // ↦ TypeError * </script> @@ -6714,7 +6834,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateBoolean(true)) // ↦ undefined * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError @@ -6725,7 +6845,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateBoolean(false)) // ↦ undefined * console.log(validateBoolean('2')) // ↦ TypeError * console.log(validateBoolean([])) // ↦ TypeError @@ -6754,7 +6874,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateString('2')) // ↦ undefined * console.log(Monster.Types.validateString([])) // ↦ TypeError * </script> @@ -6764,7 +6884,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateString('2')) // ↦ undefined * console.log(validateString([])) // ↦ TypeError * </script> @@ -6791,7 +6911,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateObject({})) // ↦ undefined * console.log(Monster.Types.validateObject('2')) // ↦ TypeError * console.log(Monster.Types.validateObject([])) // ↦ TypeError @@ -6802,7 +6922,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateObject({})) // ↦ undefined * console.log(validateObject('2')) // ↦ TypeError * console.log(validateObject([])) // ↦ TypeError @@ -6830,7 +6950,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInstance({}, Object)) // ↦ undefined * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError @@ -6841,7 +6961,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateInstance({}, Object)) // ↦ undefined * console.log(validateInstance('2', Object)) // ↦ TypeError * console.log(validateInstance([], Object)) // ↦ TypeError @@ -6879,7 +6999,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateArray('2')) // ↦ TypeError * console.log(Monster.Types.validateArray([])) // ↦ undefined * </script> @@ -6889,7 +7009,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateArray('2')) // ↦ TypeError * console.log(validateArray([])) // ↦ undefined * </script> @@ -6916,7 +7036,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateFunction(()=>{})) // ↦ undefined * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError * console.log(Monster.Types.validateFunction([])) // ↦ TypeError @@ -6927,7 +7047,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateFunction(()=>{})) // ↦ undefined * console.log(validateFunction('2')) // ↦ TypeError * console.log(validateFunction([])) // ↦ TypeError @@ -6955,7 +7075,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError * console.log(Monster.Types.validateInteger(2)) // ↦ undefined @@ -6966,7 +7086,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateInteger(true)) // ↦ TypeError * console.log(validateInteger('2')) // ↦ TypeError * console.log(validateInteger(2)) // ↦ undefined @@ -6990,7 +7110,7 @@ function validateInteger(value) { _namespace.Monster.assignToNamespace('Monster.Types', validatePrimitive, validateBoolean, validateString, validateObject, validateArray, validateFunction, validateIterable, validateInteger); -},{"../namespace.js":23,"./is.js":27}],37:[function(require,module,exports){ +},{"../namespace.js":24,"./is.js":28}],38:[function(require,module,exports){ 'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -7038,7 +7158,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3 * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0 * </script> @@ -7048,7 +7168,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(new Version('1.2.3')) // ↦ 1.2.3 * console.log(new Version('1')) // ↦ 1.0.0 * </script> @@ -7191,7 +7311,7 @@ var monsterVersion; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(Monster.getVersion()) * console.log(Monster.getVersion()) * </script> @@ -7201,7 +7321,7 @@ var monsterVersion; * * ``` * <script type="module"> - * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(getVersion()) * console.log(getVersion()) * </script> @@ -7221,7 +7341,7 @@ function getVersion() { /**#@+ dont touch, replaced by make with package.json version */ - monsterVersion = new Version('1.6.0'); + monsterVersion = new Version('1.7.0'); /**#@-*/ return monsterVersion; @@ -7229,7 +7349,7 @@ function getVersion() { _namespace.Monster.assignToNamespace('Monster', getVersion); -},{"../namespace.js":23,"./base.js":24}],38:[function(require,module,exports){ +},{"../namespace.js":24,"./base.js":25}],39:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -7267,7 +7387,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js'; * console.log(Monster.Util.clone({})) * </script> * ``` @@ -7276,7 +7396,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi * * ``` * <script type="module"> - * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js'; + * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js'; * console.log(clone({})) * </script> * ``` @@ -7393,7 +7513,7 @@ function cloneObject(obj) { _namespace.Monster.assignToNamespace('Monster.Util', clone); -},{"../namespace.js":23,"../types/global.js":25,"../types/is.js":27}],39:[function(require,module,exports){ +},{"../namespace.js":24,"../types/global.js":26,"../types/is.js":28}],40:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -7441,7 +7561,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Monster.Util.Comparator()) * console.log(new Monster.Util.Comparator()) * </script> @@ -7451,7 +7571,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * * ``` * <script type="module"> - * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Util()) * console.log(new Util()) * </script> @@ -7615,7 +7735,7 @@ exports.Comparator = Comparator; _base.Monster.assignToNamespace('Monster.Util', Comparator); -},{"../types/base.js":24,"../types/is.js":27}],40:[function(require,module,exports){ +},{"../types/base.js":25,"../types/is.js":28}],41:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -7651,7 +7771,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/freeze.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/freeze.js'; * console.log(Monster.Util.deepFreeze({})) * </script> * ``` @@ -7660,7 +7780,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len * * ``` * <script type="module"> - * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/freeze.js'; + * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/freeze.js'; * console.log(deepFreeze({})) * </script> * ``` @@ -7697,5 +7817,5 @@ function deepFreeze(object) { _namespace.Monster.assignToNamespace('Monster.Util', deepFreeze); -},{"../namespace.js":23,"../types/validate.js":36}]},{},[22]) +},{"../namespace.js":24,"../types/validate.js":37}]},{},[23]) //# sourceMappingURL=monster.dev.js.map diff --git a/packages/monster/dist/monster.dev.js.map b/packages/monster/dist/monster.dev.js.map index dc716f4a958e365e93c8bf30d6637ab883e7b3d6..6a4fbee2e54bb76089df2f7aee10716877654230 100644 --- a/packages/monster/dist/monster.dev.js.map +++ b/packages/monster/dist/monster.dev.js.map @@ -15,6 +15,7 @@ "packages/monster/source/data/pipe.js", "packages/monster/source/data/transformer.js", "packages/monster/source/dom/assembler.js", + "packages/monster/source/dom/customelement.js", "packages/monster/source/dom/handle.js", "packages/monster/source/dom/template.js", "packages/monster/source/dom/util.js", @@ -44,50 +45,51 @@ "packages/monster/source/util/freeze.js" ], "names": [], - "mappings": "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,KAFW,CAAZ;AAHc;AAOjB;AAED;AACJ;AACA;AACA;AACA;AACA;;;;;WACI,aAAI,KAAJ,EAAW;AACP,aAAO,KAAK,IAAL,CAAU,MAAV,CAAiB,UAAC,WAAD,EAAc,YAAd,EAA4B,YAA5B,EAA0C,KAA1C,EAAoD;AACxE,eAAO,YAAY,CAAC,GAAb,CAAiB,WAAjB,CAAP;AACH,OAFM,EAEJ,KAFI,CAAP;AAGH;;;;EA1Bc,U;;;;AA6BnB,mBAAQ,iBAAR,CAA0B,cAA1B,EAA0C,IAA1C;;;ACvFA;AAEA;AACA;AACA;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,W;;;;;AACF;AACJ;AACA;AACA;AACI,uBAAY,UAAZ,EAAwB;AAAA;;AAAA;;AACpB;AACA,kCAAe,UAAf;AAEA,UAAK,IAAL,GAAY,WAAW,CAAC,UAAD,CAAvB;AACA,UAAK,OAAL,GAAe,MAAK,IAAL,CAAU,KAAV,EAAf;AACA,UAAK,SAAL,GAAiB,IAAI,GAAJ,EAAjB;AANoB;AAQvB;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;WACI,qBAAY,IAAZ,EAAkB,QAAlB,EAA4B;AACxB,oCAAe,I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EAA4D,MAA5D;;;ACjOA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,Q;;;;;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACI,oBAAY,QAAZ,EAAsB;AAAA;;AAAA;;AAClB;AACA,oCAAiB,QAAjB,EAA2B,+BAAkB,qBAAlB,CAA3B;AACA,UAAK,QAAL,GAAgB,QAAhB;AAHkB;AAIrB;AAED;AACJ;AACA;AACA;;;;;WACI,8BAAqB;AACjB,aAAO,KAAK,QAAZ;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,kCAAyB;AACrB,aAAO,KAAK,QAAL,CAAc,OAAd,CAAsB,SAAtB,CAAgC,IAAhC,CAAP;AACH;;;;EA7BkB,U;;;;AAiCvB,cAAQ,iBAAR,CAA0B,aAA1B,EAAyC,QAAzC;;;AClEA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAT,GAAuB;AAAA;;AACnB,MAAI,QAAQ,iBAAG,wBAAH,+CAAG,WAAc,UAAd,CAAf;;AACA,MAAI,QAAO,QAAP,MAAoB,QAAxB,EAAkC;AAC9B,UAAM,IAAI,KAAJ,CAAU,2BAAV,CAAN;AACH;;AAED,SAAO,QAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,SAAT,GAAqB;AAAA;;AACjB,MAAI,MAAM,kBAAG,wBAAH,gDAAG,YAAc,QAAd,CAAb;;AACA,MAAI,QAAO,MAAP,MAAkB,QAAtB,EAAgC;AAC5B,UAAM,IAAI,KAAJ,CAAU,2BAAV,CAAN;AACH;;AAED,SAAO,MAAP;AACH;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,6BAAT,CAAuC,IAAvC,EAA6C;AACzC,gCAAe,IAAf;AAEA,MAAM,QAAQ,GAAG,WAAW,EAA5B;AACA,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAT,CAAuB,UAAvB,CAAjB;AACA,EAAA,QAAQ,CAAC,SAAT,GAAqB,IAArB;AAEA,SAAO,QAAQ,CAAC,OAAhB;AACH;;AAGD,gBAAQ,iBAAR,CAA0B,aAA1B,EAAyC,SAAzC,EAAoD,WAApD,EAAiE,6BAAjE;;;ACzMA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,O;;;;;AACF,qBAAc;AAAA;;AAAA;;AACV;AAEA;AACR;AACA;AACA;AACA;;AACQ,UAAK,QAAL,GAAgB,WAAhB;AARU;AASb;AAED;AACJ;AACA;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SAAS,WAAT,CAAqB,KAArB,EAA4B;AACxB,MAAI,IAAJ;;AAEA,MAAI,KAAK,KAAK,SAAV,IAAuB,KAAK,KAAK,IAAjC,IAAyC,KAAK,KAAK,GAAvD,EAA4D;AACxD,WAAO,IAAP;AACH;;AAED,EAAA,IAAI,WAAU,KAAV,CAAJ;;AAEA,MAAI,IAAI,KAAK,QAAT,IAAqB,IAAI,KAAK,QAA9B,IAA0C,IAAI,KAAK,SAAnD,IAAgE,IAAI,KAAK,QAA7E,EAAuF;AACnF,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,SAAT,CAAmB,KAAnB,EAA0B;AAEtB,MAAI,KAAK,KAAK,IAAV,IAAkB,KAAK,KAAK,KAAhC,EAAuC;AACnC,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,QAAT,CAAkB,KAAlB,EAAyB;AACrB,MAAI,KAAK,KAAK,SAAV,IAAuB,OAAO,KAAP,KAAiB,QAA5C,EAAsD;AAClD,WAAO,KAAP;AACH;;AACD,SAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,QAAT,CAAkB,KAAlB,EAAyB;AAErB,MAAI,OAAO,CAAC,KAAD,CAAX,EAAoB,OAAO,KAAP;AACpB,MAAI,WAAW,CAAC,KAAD,CAAf,EAAwB,OAAO,KAAP;;AAExB,MAAI,QAAO,KAAP,MAAiB,QAArB,EAA+B;AAC3B,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,UAAT,CAAoB,KAApB,EAA2B,QAA3B,EAAqC;AAEjC,MAAI,CAAC,QAAQ,CAAC,KAAD,CAAb,EAAsB,OAAO,KAAP;AACtB,MAAI,CAAC,UAAU,CAAC,QAAD,CAAf,EAA2B,OAAO,KAAP;AAC3B,MAAI,CAAC,QAAQ,CAAC,cAAT,CAAwB,WAAxB,CAAL,EAA2C,OAAO,KAAP;AAC3C,SAAQ,KAAK,YAAY,QAAlB,GAA4B,IAA5B,GAAiC,KAAxC;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,OAAT,CAAiB,KAAjB,EAAwB;AACpB,MAAI,KAAK,CAAC,OAAN,CAAc,KAAd,CAAJ,EAA0B;AACtB,WAAO,IAAP;AACH;;AACD,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,UAAT,CAAoB,KAApB,EAA2B;AACvB,MAAI,OAAO,CAAC,KAAD,CAAX,EAAoB,OAAO,KAAP;AACpB,MAAI,WAAW,CAAC,KAAD,CAAf,EAAwB,OAAO,KAAP;;AAExB,MAAI,OAAO,KAAP,KAAiB,UAArB,EAAiC;AAC7B,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;;;ACrFA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAT,CAA0B,KAA1B,EAAiC;AAC7B,MAAI,CAAC,oBAAW,KAAX,CAAL,EAAwB;AACpB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,iBAAT,CAA2B,KAA3B,EAAkC;AAC9B,MAAI,CAAC,qBAAY,KAAZ,CAAL,EAAyB;AACrB,UAAM,IAAI,SAAJ,CAAc,0BAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,eAAT,CAAyB,KAAzB,EAAgC;AAC5B,MAAI,CAAC,mBAAU,KAAV,CAAL,EAAuB;AACnB,UAAM,IAAI,SAAJ,CAAc,wBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,cAAT,CAAwB,KAAxB,EAA+B;AAC3B,MAAI,CAAC,kBAAS,KAAT,CAAL,EAAsB;AAClB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,cAAT,CAAwB,KAAxB,EAA+B;AAC3B,MAAI,CAAC,kBAAS,KAAT,CAAL,EAAsB;AAClB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,gBAAT,CAA0B,KAA1B,EAAiC,QAAjC,EAA2C;AACvC,MAAI,CAAC,oBAAW,KAAX,EAAkB,QAAlB,CAAL,EAAkC;AAC9B,QAAI,CAAC,GAAG,EAAR;;AACA,QAAI,kBAAS,QAAT,KAAsB,oBAAW,QAAX,CAA1B,EAAgD;AAC5C,MAAA,CAAC,GAAG,QAAH,aAAG,QAAH,uBAAG,QAAQ,CAAG,MAAH,CAAZ;AACH;;AAED,QAAI,CAAJ,EAAO;AACH,MAAA,CAAC,GAAG,MAAM,CAAV;AACH;;AAED,UAAM,IAAI,SAAJ,CAAc,gCAAgC,CAA9C,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,aAAT,CAAuB,KAAvB,EAA8B;AAC1B,MAAI,CAAC,iBAAQ,KAAR,CAAL,EAAqB;AACjB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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", + "mappings": "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,KAFW,CAAZ;AAHc;AAOjB;AAED;AACJ;AACA;AACA;AACA;AACA;;;;;WACI,aAAI,KAAJ,EAAW;AACP,aAAO,KAAK,IAAL,CAAU,MAAV,CAAiB,UAAC,WAAD,EAAc,YAAd,EAA4B,YAA5B,EAA0C,KAA1C,EAAoD;AACxE,eAAO,YAAY,CAAC,GAAb,CAAiB,WAAjB,CAAP;AACH,OAFM,EAEJ,KAFI,CAAP;AAGH;;;;EA1Bc,U;;;;AA6BnB,mBAAQ,iBAAR,CAA0B,cAA1B,EAA0C,IAA1C;;;ACvFA;AAEA;AACA;AACA;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,W;;;;;AACF;AACJ;AACA;AACA;AACI,uBAAY,UAAZ,EAAwB;AAAA;;AAAA;;AACpB;AACA,kCAAe,UAAf;AAEA,UAAK,IAAL,GAAY,WAAW,CAAC,UAAD,CAAvB;AACA,UAAK,OAAL,GAAe,MAAK,IAAL,CAAU,KAAV,EAAf;AACA,UAAK,SAAL,GAAiB,IAAI,GAAJ,EAAjB;AANoB;AAQvB;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;WACI,qBAAY,IAAZ,EAAkB,QAAlB,EAA4B;AACxB,oCAAe,IAAf;AACA,sCAAiB,QAAjB;AACA,WAAK,SAAL,CAAe,GAAf,CAAmB,IAAnB,EAAyB,QAAzB;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,aAAI,KAAJ,EAAW;AACP,aAAO,SAAS,CAAC,KAAV,CAAgB,IAAhB,EAAsB,CAAC,KAAD,CAAtB,CAAP;AACH;;;;EAxCqB,U;;;;AA2C1B,mBAAQ,iBAAR,CAA0B,cAA1B,EAA0C,WAA1C;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAT,CAAqB,OAArB,EAA8B;AAE1B,gCAAe,OAAf;AAEA,MAAI,WAAW,GAAG,IAAI,GAAJ,EAAlB;;AACA,MAAM,KAAK,4BAAG,iBAAH;AAAA;AAAA;AAAA,IAAX,CAL0B,CAO1B;AACA;;;AACA,MAAI,MAAM,GAAG,OAAO,CAAC,QAAR,CAAiB,KAAjB,CAAb;;AAT0B,6CAWZ,MAXY;AAAA;;AAAA;AAW1B,wDAAsB;AAAA,UAAb,CAAa;AAClB,UAAI,CAAC,GAAC,CAAD,aAAC,CAAD,uBAAC,CAAC,CAAG,QAAH,CAAP;;AACA,UAAG,CAAC,kBAAS,CAAT,CAAJ,EAAiB;AACb;AACH;;AAED,UAAI,CAAC,GAAC,CAAD,aAAC,CAAD,uBAAC,CAAC,CAAG,SAAH,CAAP;AACA,UAAI,CAAC,GAAC,CAAD,aAAC,CAAD,uBAAC,CAAC,CAAG,MAAH,CAAP;;AAEA,UAAG,CAAC,IAAE,CAAN,EAAS;AACL,YAAI,CAAC,GAAC,OAAK,IAAI,MAAJ,GAAS,QAAT,EAAL,GAAyB,IAA/B;AACA,QAAA,WAAW,CAAC,GAAZ,CAAgB,CAAhB,EAAmB,CAAnB;AACA,QAAA,OAAO,GAAC,OAAO,CAAC,OAAR,CAAgB,CAAhB,EAAkB,CAAlB,CAAR;AACH;AAEJ;AA1ByB;AAAA;AAAA;AAAA;AAAA;;AA2B1B,MAAI,KAAK,GAAG,OAAO,CAAC,KAAR,CAAc,GAAd,CAAZ;AAEA,EAAA,KAAK,GAAG,KAAK,CAAC,GAAN,CAAU,UAAU,KAAV,EAAiB;AAC/B,QAAI,CAAC,GAAI,KAAK,CAAC,IAAN,EAAT;;AAD+B,gDAElB,WAFkB;AAAA;;AAAA;AAE/B,6DAA0B;AAAA,YAAlB,CAAkB;AACvB,QAAA,CAAC,GAAE,CAAC,CAAC,OAAF,CAAU,CAAC,CAAC,CAAD,CAAX,EAAgB,CAAC,CAAC,CAAD,CAAjB,CAAH;AACF;AAJ8B;AAAA;AAAA;AAAA;AAAA;;AAK/B,WAAO,CAAP;AAGH,GARO,CAAR;AAUA,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,eAAT,CAAyB,KAAzB,EAAgC;AAE5B,MAAI,kBAAS,KAAT,KAAmB,KAAK,CAAC,cAAN,CAAqB,UAArB,CAAvB,EAAyD;AACrD,IAAA,KAAK,GAAG,KAAK,CAAC,QAAN,EAAR;AACH;;AAED,gCAAe,KAAf;AACA,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,SAAT,CAAmB,KAAnB,EAA0B;AAEtB,MAAI,IAAI,GAAG,kBAAM,KAAK,IAAX,CAAX;AACA,MAAI,GAAJ;;AAEA,UAAQ,KAAK,OAAb;AAEI,SAAK,QAAL;AACI,aAAO,KAAK,IAAL,CAAU,IAAV,CAAe,GAAf,CAAP;;AAEJ,SAAK,SAAL;AACA,SAAK,YAAL;AACA,SAAK,aAAL;AACI,oCAAe,KAAf;AACA,aAAO,KAAK,CAAC,WAAN,EAAP;;AAEJ,SAAK,SAAL;AACA,SAAK,YAAL;AACA,SAAK,aAAL;AACI,oCAAe,KAAf;AACA,aAAO,KAAK,CAAC,WAAN,EAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,KAAK,KAAZ;;AAEJ,SAAK,WAAL;AACI,UAAI,CAAC,GAAG,QAAQ,CAAC,KAAD,CAAhB;AACA,qCAAgB,CAAhB;AACA,aAAO,CAAP;;AAEJ,SAAK,MAAL;AACI,oCAAe,KAAf;AACA,aAAO,KAAK,CAAC,IAAN,EAAP;;AAEJ,SAAK,cAAL;AACI,oCAAe,KAAf;AACA,aAAO,kBAAkB,CAAC,KAAD,CAAlB,CACF,OADE,CACM,IADN,EACY,KADZ,EAEF,OAFE,CAEM,IAFN,EAEY,KAFZ,EAGF,OAHE,CAGM,KAHN,EAGa,KAHb,EAIF,OAJE,CAIM,KAJN,EAIa,KAJb,EAKF,OALE,CAKM,KALN,EAKa,KALb,CAAP;;AAQJ,SAAM,MAAN;AAEI;AACZ;AACA;AACA;AACA;AACA;AAEY,UAAI,QAAJ;AACA,UAAI,YAAY,GAAG,IAAI,CAAC,KAAL,EAAnB;;AAEA,UAAI,kBAAS,KAAT,KAAmB,KAAK,CAAC,cAAN,CAAqB,YAArB,CAAvB,EAA2D;AACvD,QAAA,QAAQ,GAAG,KAAK,CAAC,YAAD,CAAhB;AACH,OAFD,MAEO,IAAI,KAAK,SAAL,CAAe,GAAf,CAAmB,YAAnB,CAAJ,EAAsC;AACzC,QAAA,QAAQ,GAAG,KAAK,SAAL,CAAe,GAAf,CAAmB,YAAnB,CAAX;AACH,OAFM,MAEA,IAAI,QAAO,MAAP,yCAAO,MAAP,OAAkB,QAAlB,IAA8B,MAAM,CAAC,cAAP,CAAsB,YAAtB,CAAlC,EAAuE;AAC1E,QAAA,QAAQ,GAAG,MAAM,CAAC,YAAD,CAAjB;AACH;;AACD,sCAAiB,QAAjB;AAEA,MAAA,IAAI,CAAC,OAAL,CAAa,KAAb;AACA,aAAO,QAAQ,MAAR,4BAAY,IAAZ,EAAP;;AAEJ,SAAM,OAAN;AACA,SAAM,WAAN;AACI,oCAAe,KAAf;AACA,UAAI,GAAG,GAAG,IAAI,SAAJ,GAAgB,eAAhB,CAAgC,KAAhC,EAAuC,WAAvC,CAAV;AACA,aAAO,GAAG,CAAC,IAAJ,CAAS,WAAT,IAAwB,EAA/B;;AAEJ,SAAM,IAAN;AACA,SAAM,GAAN;AAEI,uCAAkB,KAAlB;AAEA,UAAI,aAAa,GAAI,IAAI,CAAC,KAAL,MAAgB,SAArC;AACA,UAAI,cAAc,GAAI,IAAI,CAAC,KAAL,MAAgB,SAAtC;;AAEA,UAAI,aAAa,KAAK,OAAtB,EAA+B;AAC3B,QAAA,aAAa,GAAG,KAAhB;AACH;;AACD,UAAI,aAAa,KAAK,SAAtB,EAAiC;AAC7B,QAAA,aAAa,GAAG,OAAhB;AACH;;AACD,UAAI,cAAc,KAAK,OAAvB,EAAgC;AAC5B,QAAA,cAAc,GAAG,KAAjB;AACH;;AACD,UAAI,cAAc,KAAK,SAAvB,EAAkC;AAC9B,QAAA,cAAc,GAAG,OAAjB;AACH;;AAED,UAAI,SAAS,GAAK,KAAK,KAAK,SAAV,IAAuB,KAAK,KAAK,EAAjC,IAAuC,KAAK,KAAK,KAAjD,IAA0D,KAAK,KAAK,OAApE,IAA+E,KAAK,KAAK,KAA1F,IAAoG,KAAK,KAAK,IAA9G,IAAsH,KAAK,KAAK,MAAhI,IAA0I,KAAK,KAAK,IAArK;AACA,aAAO,SAAS,GAAG,aAAH,GAAmB,cAAnC;;AAGJ,SAAK,SAAL;AACI,oCAAe,KAAf;AAEA,UAAI,SAAS,GAAG,KAAK,CAAC,MAAN,CAAa,CAAb,EAAgB,WAAhB,EAAhB;AACA,aAAO,SAAS,GAAG,KAAK,CAAC,MAAN,CAAa,CAAb,CAAnB;;AACJ,SAAK,SAAL;AACI,oCAAe,KAAf;AAEA,aAAO,KAAK,CAAC,OAAN,CAAc,gDAAd,EAAgE,UAAU,CAAV,EAAa;AAChF,eAAO,CAAC,CAAC,WAAF,EAAP;AACH,OAFM,CAAP;;AAIJ,SAAM,OAAN;AACA,SAAM,QAAN;AAEI,UAAI,CAAC,kBAAS,KAAT,KAAmB,kBAAS,KAAT,CAAnB,IAAsC,iBAAQ,KAAR,CAAvC,KAA0D,KAAK,CAAC,cAAN,CAAqB,QAArB,CAA9D,EAA8F;AAC1F,eAAO,KAAK,CAAC,MAAb;AACH;;AAED,YAAM,IAAI,SAAJ,CAAc,kBAAd,CAAN;;AAEJ,SAAK,QAAL;AACI,MAAA,eAAe,CAAC,KAAD,CAAf;AACA,aAAO,IAAI,CAAC,KAAD,CAAX;;AAEJ,SAAK,OAAL;AACI,aAAO,EAAP;;AAEJ,SAAK,WAAL;AACI,aAAO,SAAP;;AAEJ,SAAK,QAAL;AACI,oCAAe,KAAf;AACA,UAAI,MAAM,GAAG,IAAH,aAAG,IAAH,uBAAG,IAAI,CAAG,CAAH,CAAjB;AACA,aAAO,MAAM,GAAG,KAAhB;;AAEJ,SAAK,QAAL;AACI,oCAAe,KAAf;AACA,UAAI,MAAM,GAAG,IAAH,aAAG,IAAH,uBAAG,IAAI,CAAG,CAAH,CAAjB;AACA,aAAO,KAAK,GAAG,MAAf;;AAEJ,SAAK,QAAL;AACI,aAAQ,IAAI,MAAJ,EAAD,CAAW,QAAX,EAAP;;AAEJ,SAAK,KAAL;AACA,SAAK,UAAL;AACA,SAAK,OAAL;AAEI,MAAA,GAAG,GAAI,IAAI,CAAC,KAAL,MAAgB,WAAvB;AACA,UAAI,YAAY,GAAI,IAAI,CAAC,KAAL,MAAgB,EAApC;;AAEA,UAAI,KAAK,YAAY,GAArB,EAA0B;AACtB,YAAG,CAAC,KAAK,CAAC,GAAN,CAAU,GAAV,CAAJ,EAAoB;AAChB,iBAAO,YAAP;AACH;;AACD,eAAO,KAAK,CAAC,GAAN,CAAU,GAAV,CAAP;AACH;;AAED,UAAI,kBAAS,KAAT,KAAiB,iBAAQ,KAAR,CAArB,EAAqC;AAEjC,YAAI,KAAJ,aAAI,KAAJ,eAAI,KAAK,CAAG,GAAH,CAAT,EAAkB;AACd,iBAAO,KAAP,aAAO,KAAP,uBAAO,KAAK,CAAG,GAAH,CAAZ;AACH;;AAED,eAAO,YAAP;AACH;;AAED,YAAM,IAAI,KAAJ,CAAU,oBAAV,CAAN;;AAEJ,SAAK,MAAL;AAEI,MAAA,GAAG,GAAI,IAAI,CAAC,KAAL,MAAgB,WAAvB;AACA,aAAO,IAAI,sBAAJ,CAAe,KAAf,EAAsB,MAAtB,CAA6B,GAA7B,CAAP;;AAGJ,SAAK,WAAL;AAEI,oCAAe,KAAf;AAEA,UAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAD,CAAL,CAAR,IAAqB,CAAjC;AACA,UAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAD,CAAL,CAAR,IAAqB,CAAtB,IAA2B,KAArC;AAEA,aAAO,KAAK,CAAC,SAAN,CAAgB,KAAhB,EAAuB,GAAvB,CAAP;;AAEJ,SAAK,KAAL;AACI,aAAO,KAAP;;AAEJ;AACI,YAAM,IAAI,KAAJ,CAAU,iBAAV,CAAN;AAtLR;;AAyLA,SAAO,KAAP;AACH;;;ACraD;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,IAAM,eAAe,GAAG,eAAxB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;IACM,S;;;;;AAEF;AACJ;AACA;AACA;AACA;AACA;AACI,qBAAY,QAAZ,EAAsB;AAAA;;AAAA;;AAClB;AACA,UAAK,eAAL,GAAuB,eAAvB;AACA,oCAAiB,QAAjB,EAA2B,+BAAkB,kBAAlB,CAA3B;AACA,UAAK,QAAL,GAAgB,QAAhB;AAJkB;AAKrB;AAED;AACJ;AACA;AACA;AACA;AACA;;;;;WACI,4BAAmB,MAAnB,EAA2B;AACvB,oCAAe,MAAf;AACA,WAAK,eAAL,GAAuB,MAAvB;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;;;;WACI,8BAAqB;AACjB,aAAO,KAAK,eAAZ;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,gCAAuB,IAAvB,EAA6B;AAEzB,UAAI,IAAI,KAAK,SAAb,EAAwB;AACpB,QAAA,IAAI,GAAG,IAAI,4BAAJ,CAAkB,EAAlB,CAAP;AACH;;AAED,sCAAiB,IAAjB,EAAuB,4BAAvB;AACA,UAAI,QAAQ,GAAG,KAAK,QAAL,CAAc,SAAd,CAAwB,IAAxB,CAAf;AACA,aAAO,QAAP;AACH;;;;EAlDmB,U;;;;AAsDxB,cAAQ,iBAAR,CAA0B,aAA1B,EAAyC,SAAzC;;;ACjGA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,a;;;;;AACF,2BAAc;AAAA;;AAAA;AAEb;AAED;AACJ;AACA;AACA;AACA;;;;;WACI,kBAAgB;AACZ,YAAM,IAAI,KAAJ,CAAU,6DAAV,CAAN;AACH;;;;iCAZuB,W;AAe5B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACA,SAAS,qBAAT,CAA+B,OAA/B,EAAwC;AACpC,kCAAiB,OAAjB;AACA,+BAAgB,gBAAhB,EAAkC,MAAlC,CAAyC,OAAO,CAAC,MAAR,EAAzC,EAA2D,OAA3D;AACA;AACH;;AAED,kBAAQ,iBAAR,CAA0B,aAA1B,EAAyC,aAAzC,EAAwD,qBAAxD;;;AC7DA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA,IAAM,gBAAgB,GAAG,MAAM,CAAC,eAAD,CAA/B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACM,M;;;;;AACF;AACJ;AACA;AACA;AACI,kBAAY,IAAZ,EAAkB;AAAA;;AAAA;;AACd;;AAEA,QAAI,IAAI,gCAAR;;AAEA,IAAA,IAAI,CAAC,EAAL,GAAU,IAAI,MAAJ,EAAV;AAEA,oCAAiB,IAAjB,EAAuB,4BAAvB;AAEA,UAAK,IAAL,GAAY,IAAZ;AAEA,UAAK,gBAAL,GAAwB,sBAAsB,CAAC,IAAvB,+BAAxB;AACA,UAAK,YAAL,GAAoB,kBAAkB,CAAC,IAAnB,+BAApB;;AACA,UAAK,IAAL,CAAU,cAAV,CAAyB,MAAK,YAA9B;;AAEA,UAAK,KAAL,GAAa,IAAI,OAAJ,EAAb;AACA,UAAK,OAAL,GAAe,IAAI,YAAJ,EAAf;AAhBc;AAkBjB;AAED;AACJ;AACA;;;;;WACI,kBAAS;AACL;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,gBAAO,IAAP,EAAa;AAET,UAAI,oBAAW,IAAX,EAAiB,+BAAkB,UAAlB,CAAjB,CAAJ,EAAqD;AACjD,QAAA,IAAI,GAAG,IAAI,CAAC,iBAAZ;AACH;;AAED,sCAAiB,IAAjB,EAAuB,+BAAkB,aAAlB,CAAvB;;AAEA,UAAI,CAAC,KAAK,KAAL,CAAW,GAAX,CAAe,IAAf,CAAL,EAA2B;AACvB,eAAO,IAAP;AACH;;AAED,WAAK,gBAAL,CAAsB,UAAtB,CAAiC,IAAjC;AAEA,aAAO,IAAI,CAAC,OAAL,CAAa,gBAAb,CAAP;AACA,MAAA,IAAI,CAAC,eAAL,CAAqB,6BAAkB,SAAvC;AAEA,aAAO,IAAP;AAEH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,gBAAO,IAAP,EAAa;AAET,UAAI,oBAAW,IAAX,EAAiB,+BAAkB,UAAlB,CAAjB,CAAJ,EAAqD;AACjD,QAAA,IAAI,GAAG,IAAI,CAAC,iBAAZ;AACH;;AAED,sCAAiB,IAAjB,EAAuB,+BAAkB,aAAlB,CAAvB;;AAEA,UAAI,KAAK,KAAL,CAAW,GAAX,CAAe,IAAf,CAAJ,EAA0B;AACtB,eAAO,IAAP;AACH;;AAED,MAAA,IAAI,CAAC,OAAL,CAAa,gBAAb,IAAiC,IAAjC;AACA,MAAA,IAAI,CAAC,YAAL,CAAkB,6BAAkB,SAApC,EAA+C,IAA/C;AAEA,WAAK,gBAAL,CAAsB,OAAtB,CAA8B,IAA9B,EAAoC;AAChC,QAAA,UAAU,EAAE,IADoB;AAEhC,QAAA,SAAS,EAAE,IAFqB;AAGhC,QAAA,OAAO,EAAE,IAHuB;AAIhC,QAAA,aAAa,EAAE,IAJiB;AAKhC,QAAA,qBAAqB,EAAE,IALS;AAMhC,QAAA,iBAAiB,EAAE;AANa,OAApC;AASA,WAAK,KAAL,CAAW,GAAX,CAAe,IAAf;AAEA,aAAO,IAAP;AAEH;;;;EA3FgB,U;AA8FrB;AACA;AACA;AACA;AACA;;;;;AACA,SAAS,kBAAT,GAA8B;AAC1B,MAAM,IAAI,GAAG,IAAb;AAEA,SAAO,IAAI,kBAAJ,CAAa,YAAM;AACtB,IAAA,IAAI,CAAC,MAAL;AACH,GAFM,CAAP;AAGH;AAED;AACA;AACA;AACA;AACA;;;AACA,SAAS,sBAAT,GAAkC;AAE9B,MAAM,IAAI,GAAG,IAAb;AAEA;AACJ;AACA;AACA;;AACI,MAAM,gBAAgB,GAAG,+BAAkB,kBAAlB,CAAzB,CAR8B,CAU9B;;AACA,SAAO,IAAI,gBAAJ,CAAqB,UAAC,aAAD,EAAgB,QAAhB,EAA6B;AAAA,+CAE1B,aAF0B;AAAA;;AAAA;AAEjD,0DAAsC;AAAA,YAA3B,QAA2B;AAClC,QAAA,IAAI,CAAC,OAAL,CAAa,IAAb,CAAkB,QAAlB;AACH;AAJgD;AAAA;AAAA;AAAA;AAAA;;AAMjD,IAAA,IAAI,CAAC,MAAL;AACH,GAPE,CAAP;AAUH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,iBAAT,CAA2B,IAA3B,EAAiC;AAAA;;AAC7B,kCAAiB,IAAjB,EAAuB,+BAAkB,MAAlB,CAAvB;AAEA,MAAI,MAAM,oBAAG,IAAI,CAAC,OAAR,kDAAG,cAAe,gBAAf,CAAb;;AACA,MAAI,MAAM,KAAK,SAAf,EAA0B;AACtB,QAAI,UAAU,GAAG,IAAH,aAAG,IAAH,uBAAG,IAAI,CAAG,YAAH,CAArB;;AACA,QAAI,oBAAW,UAAX,EAAuB,+BAAkB,MAAlB,CAAvB,CAAJ,EAAuD;AACnD,aAAO,iBAAiB,CAAC,UAAD,CAAxB;AACH;AACJ;;AAED,SAAO,MAAP;AACH;;AAED,cAAQ,iBAAR,CAA0B,aAA1B,EAAyC,iBAAzC,EAA4D,MAA5D;;;ACjOA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,Q;;;;;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACI,oBAAY,QAAZ,EAAsB;AAAA;;AAAA;;AAClB;AACA,oCAAiB,QAAjB,EAA2B,+BAAkB,qBAAlB,CAA3B;AACA,UAAK,QAAL,GAAgB,QAAhB;AAHkB;AAIrB;AAED;AACJ;AACA;AACA;;;;;WACI,8BAAqB;AACjB,aAAO,KAAK,QAAZ;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,kCAAyB;AACrB,aAAO,KAAK,QAAL,CAAc,OAAd,CAAsB,SAAtB,CAAgC,IAAhC,CAAP;AACH;;;;EA7BkB,U;;;;AAmCvB,cAAQ,iBAAR,CAA0B,aAA1B,EAAyC,QAAzC;;;ACpEA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAT,GAAuB;AAAA;;AACnB,MAAI,QAAQ,iBAAG,wBAAH,+CAAG,WAAc,UAAd,CAAf;;AACA,MAAI,QAAO,QAAP,MAAoB,QAAxB,EAAkC;AAC9B,UAAM,IAAI,KAAJ,CAAU,2BAAV,CAAN;AACH;;AAED,SAAO,QAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,SAAT,GAAqB;AAAA;;AACjB,MAAI,MAAM,kBAAG,wBAAH,gDAAG,YAAc,QAAd,CAAb;;AACA,MAAI,QAAO,MAAP,MAAkB,QAAtB,EAAgC;AAC5B,UAAM,IAAI,KAAJ,CAAU,2BAAV,CAAN;AACH;;AAED,SAAO,MAAP;AACH;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,6BAAT,CAAuC,IAAvC,EAA6C;AACz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AC/EA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AAEA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAT,CAAoB,KAApB,EAA2B;AACvB,MAAI,KAAK,KAAK,SAAd,EAAyB,OAAO,KAAP;AACzB,MAAI,KAAK,KAAK,IAAd,EAAoB,OAAO,KAAP;AACpB,SAAO,QAAO,KAAP,aAAO,KAAP,uBAAO,KAAK,CAAG,MAAM,CAAC,QAAV,CAAZ,MAAoC,UAA3C;AACH;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,WAAT,CAAqB,KAArB,EAA4B;AACxB,MAAI,IAAJ;;AAEA,MAAI,KAAK,KAAK,SAAV,IAAuB,KAAK,KAAK,IAAjC,IAAyC,KAAK,KAAK,GAAvD,EAA4D;AACxD,WAAO,IAAP;AACH;;AAED,EAAA,IAAI,WAAU,KAAV,CAAJ;;AAEA,MAAI,IAAI,KAAK,QAAT,IAAqB,IAAI,KAAK,QAA9B,IAA0C,IAAI,KAAK,SAAnD,IAAgE,IAAI,KAAK,QAA7E,EAAuF;AACnF,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,SAAT,CAAmB,KAAnB,EAA0B;AAEtB,MAAI,KAAK,KAAK,IAAV,IAAkB,KAAK,KAAK,KAAhC,EAAuC;AACnC,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,QAAT,CAAkB,KAAlB,EAAyB;AACrB,MAAI,KAAK,KAAK,SAAV,IAAuB,OAAO,KAAP,KAAiB,QAA5C,EAAsD;AAClD,WAAO,KAAP;AACH;;AACD,SAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,QAAT,CAAkB,KAAlB,EAAyB;AAErB,MAAI,OAAO,CAAC,KAAD,CAAX,EAAoB,OAAO,KAAP;AACpB,MAAI,WAAW,CAAC,KAAD,CAAf,EAAwB,OAAO,KAAP;;AAExB,MAAI,QAAO,KAAP,MAAiB,QAArB,EAA+B;AAC3B,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,UAAT,CAAoB,KAApB,EAA2B,QAA3B,EAAqC;AAEjC,MAAI,CAAC,QAAQ,CAAC,KAAD,CAAb,EAAsB,OAAO,KAAP;AACtB,MAAI,CAAC,UAAU,CAAC,QAAD,CAAf,EAA2B,OAAO,KAAP;AAC3B,MAAI,CAAC,QAAQ,CAAC,cAAT,CAAwB,WAAxB,CAAL,EAA2C,OAAO,KAAP;AAC3C,SAAQ,KAAK,YAAY,QAAlB,GAA4B,IAA5B,GAAiC,KAAxC;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,OAAT,CAAiB,KAAjB,EAAwB;AACpB,MAAI,KAAK,CAAC,OAAN,CAAc,KAAd,CAAJ,EAA0B;AACtB,WAAO,IAAP;AACH;;AACD,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,UAAT,CAAoB,KAApB,EAA2B;AACvB,MAAI,OAAO,CAAC,KAAD,CAAX,EAAoB,OAAO,KAAP;AACpB,MAAI,WAAW,CAAC,KAAD,CAAf,EAAwB,OAAO,KAAP;;AAExB,MAAI,OAAO,KAAP,KAAiB,UAArB,EAAiC;AAC7B,WAAO,IAAP;AACH;;AAED,SAAO,KAAP;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,SAAT,CAAmB,KAAnB,EAA0B;AACtB,SAAO,MAAM,CAAC,SAAP,CAAiB,KAAjB,CAAP;AACH;;AAGD,mBAAQ,iBAAR,CAA0B,eAA1B,EAA2C,WAA3C,EAAwD,SAAxD,EAAmE,QAAnE,EAA6E,QAA7E,EAAuF,OAAvF,EAAgG,UAAhG,EAA4G,UAA5G,EAAwH,SAAxH;;;AC5WA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,Q;;;;;AAEF;AACJ;AACA;AACA;AACA;AACI,oBAAY,QAAZ,EAA+B;AAAA;;AAAA;;AAC3B;;AAEA,QAAI,OAAO,QAAP,KAAoB,UAAxB,EAAoC;AAChC,YAAM,IAAI,KAAJ,CAAU,sCAAV,CAAN;AACH;;AAED,UAAK,QAAL,GAAgB,QAAhB;;AAP2B,sCAAN,IAAM;AAAN,MAAA,IAAM;AAAA;;AAQ3B,UAAK,SAAL,GAAiB,IAAjB;AACA,UAAK,IAAL,GAAY,IAAI,oBAAJ,EAAZ;AACA,UAAK,KAAL,GAAa,IAAI,wBAAJ,EAAb;AAV2B;AAW9B;AAED;AACJ;AACA;AACA;AACA;;;;;WACI,gBAAO,GAAP,EAAY;AACR,WAAK,IAAL,CAAU,GAAV,CAAc,GAAd;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,mBAAU,GAAV,EAAe;AACX,WAAK,IAAL,CAAU,MAAV,CAAiB,GAAjB;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;;;;WACI,mBAAU;AACN,aAAO,KAAK,IAAL,CAAU,OAAV,EAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,gBAAO,GAAP,EAAY;AACR,aAAO,KAAK,IAAL,CAAU,QAAV,CAAmB,GAAnB,CAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,gBAAO,OAAP,EAAgB;AACZ,UAAI,IAAI,GAAG,IAAX;AAEA,aAAO,IAAI,OAAJ,CAAY,UAAU,OAAV,EAAmB,MAAnB,EAA2B;AAC1C,YAAI,CAAC,kBAAS,OAAT,CAAL,EAAwB;AACpB,UAAA,MAAM,CAAC,2BAAD,CAAN;AACA;AACH;;AAED,QAAA,IAAI,CAAC,KAAL,CAAW,GAAX,CAAe,OAAf;AAEA,QAAA,UAAU,CAAC,YAAM;AAEb;AACA;AACA,cAAI,IAAI,CAAC,KAAL,CAAW,OAAX,EAAJ,EAA0B;AACtB,YAAA,OAAO;AACP;AACH;;AAED,cAAI,CAAC,GAAG,IAAI,CAAC,KAAL,CAAW,IAAX,EAAR;AACA,cAAI,MAAM,GAAG,IAAI,CAAC,QAAL,CAAc,KAAd,CAAoB,CAApB,EAAuB,IAAI,CAAC,SAA5B,CAAb;;AAEA,cAAI,kBAAS,MAAT,KAAoB,MAAM,YAAY,OAA1C,EAAmD;AAC/C,YAAA,MAAM,CAAC,IAAP,CAAY,OAAZ,WAA2B,MAA3B;AACA;AACH;;AAED,UAAA,OAAO,CAAC,MAAD,CAAP;AACH,SAlBS,EAkBP,CAlBO,CAAV;AAoBH,OA5BM,CAAP;AA8BH;;;;EA/FkB,U;;;;AAmGvB,mBAAQ,iBAAR,CAA0B,eAA1B,EAA2C,QAA3C;;;ACpKA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,Y;;;;;AAEF;AACJ;AACA;AACI,0BAAc;AAAA;;AAAA;;AACV;AACA,UAAK,SAAL,GAAiB,EAAjB;AAFU;AAGb;AAED;AACJ;AACA;AACA;AACA;AACA;;;;;WACI,gBAAO,QAAP,EAAiB;AACb,sCAAiB,QAAjB,EAA2B,kBAA3B;AAEA,WAAK,SAAL,CAAe,IAAf,CAAoB,QAApB;AACA,aAAO,IAAP;AACH;;;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,oBAAO,QAAP,EAAiB;AACb,sCAAiB,QAAjB,EAA2B,kBAA3B;AAEA,UAAI,CAAC,GAAG,CAAR;AAAA,UAAW,CAAC,GAAG,KAAK,SAAL,CAAe,MAA9B;;AACA,aAAO,CAAC,GAAG,CAAX,EAAc,CAAC,EAAf,EAAmB;AACf,YAAI,KAAK,SAAL,CAAe,CAAf,MAAsB,QAA1B,EAAoC;AAChC,eAAK,SAAL,CAAe,MAAf,CAAsB,CAAtB,EAAyB,CAAzB;AACH;AACJ;;AAED,aAAO,IAAP;AACH;;;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,sBAAS,QAAT,EAAmB;AACf,sCAAiB,QAAjB,EAA2B,kBAA3B;AACA,UAAI,CAAC,GAAG,CAAR;AAAA,UAAW,CAAC,GAAG,KAAK,SAAL,CAAe,MAA9B;;AACA,aAAO,CAAC,GAAG,CAAX,EAAc,CAAC,EAAf,EAAmB;AACf,YAAI,KAAK,SAAL,CAAe,CAAf,MAAsB,QAA1B,EAAoC;AAChC,iBAAO,IAAP;AACH;AACJ;;AACD,aAAO,KAAP;AACH;;;;AAED;AACJ;AACA;AACA;AACA;AACI,oBAAO,OAAP,EAAgB;AAEZ,UAAI,OAAO,GAAG,EAAd;AAEA,UAAI,CAAC,GAAG,CAAR;AAAA,UAAW,CAAC,GAAG,KAAK,SAAL,CAAe,MAA9B;;AACA,aAAO,CAAC,GAAG,CAAX,EAAc,CAAC,EAAf,EAAmB;AACf,QAAA,OAAO,CAAC,IAAR,CAAa,KAAK,SAAL,CAAe,CAAf,EAAkB,MAAlB,CAAyB,OAAzB,CAAb;AACH;;AAED,aAAO,OAAO,CAAC,GAAR,CAAY,OAAZ,CAAP;AACH;;;;EA1EsB,U;;;;AA8E3B,mBAAQ,iBAAR,CAA0B,eAA1B,EAA2C,YAA3C;;;ACpHA;AAEA;AACA;AACA;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,a;;;;;AAEF;AACJ;AACA;AACA;AACA;AACI,yBAAY,MAAZ,EAAoB;AAAA;;AAAA;;AAChB;AACA,kCAAe,MAAf;AACA,UAAK,WAAL,GAAmB,MAAnB;AACA,UAAK,OAAL,GAAe,IAAI,KAAJ,CAAU,MAAV,EAAkB,UAAU,CAAC,IAAX,+BAAlB,CAAf;AAEA,UAAK,SAAL,GAAiB,IAAI,OAAJ,EAAjB;;AACA,UAAK,SAAL,CAAe,GAAf,CAAmB,MAAK,WAAxB,EAAqC,MAAK,OAA1C;;AAEA,UAAK,SAAL,GAAiB,IAAI,0BAAJ,EAAjB;AATgB;AAUnB;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;;;WACI,sBAAa;AACT,aAAO,KAAK,OAAZ;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,0BAAiB;AACb,aAAO,KAAK,WAAZ;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,wBAAe,QAAf,EAAyB;AACrB,WAAK,SAAL,CAAe,MAAf,CAAsB,QAAtB;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,wBAAe,QAAf,EAAyB;AACrB,WAAK,SAAL,CAAe,MAAf,CAAsB,QAAtB;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,2BAAkB;AACd,WAAK,SAAL,CAAe,MAAf,CAAsB,IAAtB;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;;;;WACI,0BAAiB,QAAjB,EAA2B;AACvB,aAAO,KAAK,SAAL,CAAe,QAAf,CAAwB,QAAxB,CAAP;AACH;;;;EA7EuB,U;;;;AAiF5B,mBAAQ,iBAAR,CAA0B,eAA1B,EAA2C,aAA3C;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAT,GAAsB;AAElB,MAAM,KAAK,GAAG,IAAd,CAFkB,CAIlB;;AACA,MAAM,OAAO,GAAG;AAEZ;AACA,IAAA,GAAG,EAAE,aAAU,MAAV,EAAkB,GAAlB,EAAuB,QAAvB,EAAiC;AAElC,UAAM,KAAK,GAAG,OAAO,CAAC,GAAR,CAAY,MAAZ,EAAoB,GAApB,EAAyB,QAAzB,CAAd;;AAEA,UAAI,QAAO,GAAP,MAAe,QAAnB,EAA6B;AACzB,eAAO,KAAP;AACH;;AAED,UAAI,qBAAY,KAAZ,CAAJ,EAAwB;AACpB,eAAO,KAAP;AACH,OAViC,CAYlC;;;AACA,UAAK,iBAAQ,KAAR,KAAkB,kBAAS,KAAT,CAAvB,EAAyC;AACrC,YAAI,KAAK,CAAC,SAAN,CAAgB,GAAhB,CAAoB,KAApB,CAAJ,EAAgC;AAC5B,iBAAO,KAAK,CAAC,SAAN,CAAgB,GAAhB,CAAoB,KAApB,CAAP;AACH,SAFD,MAEO;AACH,cAAI,CAAC,GAAG,IAAI,KAAJ,CAAU,KAAV,EAAiB,OAAjB,CAAR;AACA,UAAA,KAAK,CAAC,SAAN,CAAgB,GAAhB,CAAoB,KAApB,EAA2B,CAA3B;AACA,iBAAO,CAAP;AACH;AAEJ;;AAED,aAAO,KAAP;AAEH,KA7BW;AA+BZ;AACA,IAAA,GAAG,EAAE,aAAU,MAAV,EAAkB,GAAlB,EAAuB,KAAvB,EAA8B,QAA9B,EAAwC;AACzC,UAAM,MAAM,GAAG,OAAO,CAAC,GAAR,CAAY,MAAZ,EAAoB,GAApB,EAAyB,KAAzB,EAAgC,QAAhC,CAAf;;AACA,UAAI,QAAO,QAAP,yCAAO,QAAP,OAAoB,QAAxB,EAAkC;AAC9B,QAAA,KAAK,CAAC,SAAN,CAAgB,MAAhB,CAAuB,KAAvB;AACH;;AAED,aAAO,MAAP;AACH,KAvCW;AAyCZ;AACA,IAAA,cAAc,EAAE,wBAAU,MAAV,EAAkB,GAAlB,EAAuB;AACnC,UAAI,GAAG,IAAI,MAAX,EAAmB;AACf,eAAO,MAAM,CAAC,GAAD,CAAb;;AAEA,YAAI,QAAO,GAAP,MAAe,QAAnB,EAA6B;AACzB,UAAA,KAAK,CAAC,SAAN,CAAgB,MAAhB,CAAuB,KAAvB;AACH;;AAGD,eAAO,IAAP;AACH;;AACD,aAAO,KAAP;AACH,KAtDW;AAwDZ;AACA,IAAA,cAAc,EAAE,wBAAU,MAAV,EAAkB,GAAlB,EAAuB,UAAvB,EAAmC;AAC/C,UAAI,MAAM,GAAG,OAAO,CAAC,cAAR,CAAuB,MAAvB,EAA+B,GAA/B,EAAoC,UAApC,CAAb;;AAEA,UAAI,QAAO,GAAP,MAAe,QAAnB,EAA6B;AACzB,QAAA,KAAK,CAAC,SAAN,CAAgB,MAAhB,CAAuB,KAAvB;AACH;;AAGD,aAAO,MAAP;AACH,KAlEW;AAoEZ;AACA,IAAA,cAAc,EAAE,wBAAU,MAAV,EAAkB,GAAlB,EAAuB;AACnC,UAAI,MAAM,GAAG,OAAO,CAAC,cAAR,CAAuB,OAAvB,EAAgC,GAAhC,CAAb;;AAEA,UAAI,QAAO,GAAP,MAAe,QAAnB,EAA6B;AACzB,QAAA,KAAK,CAAC,SAAN,CAAgB,MAAhB,CAAuB,KAAvB;AACH;;AAED,aAAO,MAAP;AACH;AA7EW,GAAhB;AAkFA,SAAO,OAAP;AACH;;;;;;;;;;;;;;;;;;ACnPD;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,K;;;;;AAEF;AACJ;AACA;AACI,mBAAc;AAAA;;AAAA;;AACV;AACA,UAAK,IAAL,GAAY,EAAZ;AAFU;AAGb;AAGD;AACJ;AACA;;;;;WACI,mBAAU;AACN,aAAO,KAAK,IAAL,CAAU,MAAV,KAAqB,CAA5B;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,gBAAO;AACH,UAAI,KAAK,OAAL,EAAJ,EAAoB;AAChB,eAAO,SAAP;AACH;;AAED,aAAO,KAAK,IAAL,CAAU,CAAV,CAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,aAAI,KAAJ,EAAW;AACP,WAAK,IAAL,CAAU,IAAV,CAAe,KAAf;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,iBAAQ;AACJ,WAAK,IAAL,GAAY,EAAZ;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,gBAAO;AACH,UAAI,KAAK,OAAL,EAAJ,EAAoB;AAChB,eAAO,SAAP;AACH;;AACD,aAAO,KAAK,IAAL,CAAU,KAAV,EAAP;AACH;;;;EA/De,U;;;;AAoEpB,cAAQ,iBAAR,CAA0B,eAA1B,EAA2C,KAA3C;;;AC7FA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG,CAAtB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACM,Q;;;;;AAEF;AACJ;AACA;AACI,sBAAc;AAAA;;AAAA;;AACV;AAEA,IAAA,eAAe,IAAI,CAAnB;AAEA,UAAK,EAAL,GAAU,yBAAY,IAAZ,CAAiB,oBAAO,CAAP,EAAU,KAAV,CAAjB,EACL,OADK,CACG,IADH,EACS,EADT;AAEN;AAFM,KAGL,OAHK,CAGG,SAHH,EAGc,GAHd,IAGqB,eAH/B;AALU;AASb;;;EAdkB,M;;;;AAkBvB,YAAQ,iBAAR,CAA0B,eAA1B,EAA2C,QAA3C;;;;;;;;;;;;;;;;;;ACzDA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,K;;;;;AAEF;AACJ;AACA;AACI,mBAAc;AAAA;;AAAA;;AACV;AACA,UAAK,IAAL,GAAY,EAAZ;AAFU;AAGb;AAGD;AACJ;AACA;;;;;WACI,mBAAU;AACN,aAAO,KAAK,IAAL,CAAU,MAAV,KAAqB,CAA5B;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,gBAAO;AAAA;;AACH,UAAI,KAAK,OAAL,EAAJ,EAAoB;AAChB,eAAO,SAAP;AACH;;AAED,2BAAO,KAAK,IAAZ,+CAAO,WAAY,KAAK,IAAL,CAAU,MAAV,GAAmB,CAA/B,CAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,cAAK,KAAL,EAAY;AACR,WAAK,IAAL,CAAU,IAAV,CAAe,KAAf;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,iBAAQ;AACJ,WAAK,IAAL,GAAY,EAAZ;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,eAAM;AACF,UAAI,KAAK,OAAL,EAAJ,EAAoB;AAChB,eAAO,SAAP;AACH;;AACD,aAAO,KAAK,IAAL,CAAU,GAAV,EAAP;AACH;;;;EAhEe,U;;;;AAqEpB,cAAQ,iBAAR,CAA0B,eAA1B,EAA2C,KAA3C;;;AC9FA;AAEA;AACA;AACA;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,S;;;;;AAEF;AACJ;AACA;AACA;AACI,qBAAY,IAAZ,EAAkB;AAAA;;AAAA;;AACd;AACA,UAAK,MAAL,GAAc,IAAI,GAAJ,EAAd;;AAEA,QAAI,OAAO,IAAP,KAAgB,WAApB,EAAiC;AAC7B,YAAK,GAAL,CAAS,IAAT;AACH;;AANa;AAQjB;AAED;AACJ;AACA;AACA;AACA;;;;;WACI,uBAAc;AACV,aAAO,KAAK,MAAM,CAAC,QAAZ,GAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;SACK,MAAM,CAAC,Q;WAAR,iBAAoB;AAChB;AACA;AACA;AACA,UAAI,KAAK,GAAG,CAAZ;AACA,UAAI,OAAO,GAAG,KAAK,OAAL,EAAd;AAEA,aAAO;AACH,QAAA,IAAI,EAAE,gBAAM;AACR,cAAI,KAAK,GAAG,OAAO,CAAC,MAApB,EAA4B;AACxB,mBAAO;AAAC,cAAA,KAAK,EAAE,OAAF,aAAE,OAAF,uBAAE,OAAO,CAAG,KAAK,EAAR,CAAf;AAA4B,cAAA,IAAI,EAAE;AAAlC,aAAP;AACH,WAFD,MAEO;AACH,mBAAO;AAAC,cAAA,IAAI,EAAE;AAAP,aAAP;AACH;AACJ;AAPE,OAAP;AASH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,kBAAS,KAAT,EAAgB;AAAA;;AACZ,UAAI,kBAAS,KAAT,CAAJ,EAAqB;AACjB,QAAA,KAAK,GAAG,KAAK,CAAC,IAAN,EAAR;AACA,YAAI,OAAO,GAAG,CAAd;AACA,QAAA,KAAK,CAAC,KAAN,CAAY,GAAZ,EAAiB,OAAjB,CAAyB,UAAA,KAAK,EAAI;AAC9B,cAAI,MAAI,CAAC,MAAL,CAAY,GAAZ,CAAgB,KAAK,CAAC,IAAN,EAAhB,MAAkC,KAAtC,EAA6C,OAAO,KAAP;AAC7C,UAAA,OAAO;AACV,SAHD;AAIA,eAAO,OAAO,GAAG,CAAV,GAAc,IAAd,GAAqB,KAA5B;AACH;;AAED,UAAI,oBAAW,KAAX,CAAJ,EAAuB;AACnB,YAAI,QAAO,GAAG,CAAd;;AADmB,mDAED,KAFC;AAAA;;AAAA;AAEnB,8DAAyB;AAAA,gBAAhB,KAAgB;AACrB,0CAAe,KAAf;AACA,gBAAI,KAAK,MAAL,CAAY,GAAZ,CAAgB,KAAK,CAAC,IAAN,EAAhB,MAAkC,KAAtC,EAA6C,OAAO,KAAP;AAC7C,YAAA,QAAO;AACV;AANkB;AAAA;AAAA;AAAA;AAAA;;AAOnB,eAAO,QAAO,GAAG,CAAV,GAAc,IAAd,GAAqB,KAA5B;AACH;;AAED,aAAO,KAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,aAAI,KAAJ,EAAW;AAAA;;AACP,UAAI,kBAAS,KAAT,CAAJ,EAAqB;AACjB,QAAA,KAAK,CAAC,KAAN,CAAY,GAAZ,EAAiB,OAAjB,CAAyB,UAAA,KAAK,EAAI;AAC9B,UAAA,MAAI,CAAC,MAAL,CAAY,GAAZ,CAAgB,KAAK,CAAC,IAAN,EAAhB;AACH,SAFD;AAGH,OAJD,MAIO,IAAI,oBAAW,KAAX,CAAJ,EAAuB;AAAA,oDACR,KADQ;AAAA;;AAAA;AAC1B,iEAAyB;AAAA,gBAAhB,KAAgB;AACrB,0CAAe,KAAf;AACA,iBAAK,MAAL,CAAY,GAAZ,CAAgB,KAAK,CAAC,IAAN,EAAhB;AACH;AAJyB;AAAA;AAAA;AAAA;AAAA;AAK7B,OALM,MAKA,IAAI,OAAO,KAAP,KAAiB,WAArB,EAAkC;AACrC,cAAM,IAAI,SAAJ,CAAc,mBAAd,CAAN;AACH;;AAED,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,iBAAQ;AACJ,WAAK,MAAL,CAAY,KAAZ;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,gBAAO,KAAP,EAAc;AAAA;;AACV,UAAI,kBAAS,KAAT,CAAJ,EAAqB;AACjB,QAAA,KAAK,CAAC,KAAN,CAAY,GAAZ,EAAiB,OAAjB,CAAyB,UAAA,KAAK,EAAI;AAC9B,UAAA,MAAI,CAAC,MAAL,WAAmB,KAAK,CAAC,IAAN,EAAnB;AACH,SAFD;AAGH,OAJD,MAIO,IAAI,oBAAW,KAAX,CAAJ,EAAuB;AAAA,oDACR,KADQ;AAAA;;AAAA;AAC1B,iEAAyB;AAAA,gBAAhB,KAAgB;AACrB,0CAAe,KAAf;AACA,iBAAK,MAAL,WAAmB,KAAK,CAAC,IAAN,EAAnB;AACH;AAJyB;AAAA;AAAA;AAAA;AAAA;AAK7B,OALM,MAKA,IAAI,OAAO,KAAP,KAAiB,WAArB,EAAkC;AACrC,cAAM,IAAI,SAAJ,CAAc,mBAAd,CAAN;AACH;;AAED,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,iBAAQ,KAAR,EAAe,QAAf,EAAyB;AACrB,oCAAe,KAAf;AACA,oCAAe,QAAf;;AACA,UAAI,CAAC,KAAK,QAAL,CAAc,KAAd,CAAL,EAA2B;AACvB,eAAO,IAAP;AACH;;AAED,UAAI,CAAC,GAAG,KAAK,CAAC,IAAN,CAAW,KAAK,MAAhB,CAAR;AACA,UAAI,CAAC,GAAG,CAAC,CAAC,OAAF,CAAU,KAAV,CAAR;AACA,UAAI,CAAC,KAAK,CAAC,CAAX,EAAc,OAAO,IAAP;AAEd,MAAA,CAAC,CAAC,MAAF,CAAS,CAAT,EAAY,CAAZ,EAAe,QAAf;AACA,WAAK,MAAL,GAAc,IAAI,GAAJ,EAAd;AACA,WAAK,GAAL,CAAS,CAAT;AAEA,aAAO,IAAP;AAGH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,gBAAO,KAAP,EAAc;AAAA;;AAEV,UAAI,kBAAS,KAAT,CAAJ,EAAqB;AACjB,QAAA,KAAK,CAAC,KAAN,CAAY,GAAZ,EAAiB,OAAjB,CAAyB,UAAA,KAAK,EAAI;AAC9B,UAAA,WAAW,CAAC,IAAZ,CAAiB,MAAjB,EAAuB,KAAvB;AACH,SAFD;AAGH,OAJD,MAIO,IAAI,oBAAW,KAAX,CAAJ,EAAuB;AAAA,oDACR,KADQ;AAAA;;AAAA;AAC1B,iEAAyB;AAAA,gBAAhB,KAAgB;AACrB,YAAA,WAAW,CAAC,IAAZ,CAAiB,IAAjB,EAAuB,KAAvB;AACH;AAHyB;AAAA;AAAA;AAAA;AAAA;AAI7B,OAJM,MAIA,IAAI,OAAO,KAAP,KAAiB,WAArB,EAAkC;AACrC,cAAM,IAAI,SAAJ,CAAc,mBAAd,CAAN;AACH;;AAED,aAAO,IAAP;AAEH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,mBAAU;AACN,aAAO,KAAK,CAAC,IAAN,CAAW,KAAK,MAAhB,CAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,iBAAQ,QAAR,EAAkB;AACd,sCAAiB,QAAjB;AACA,WAAK,MAAL,CAAY,OAAZ,CAAoB,QAApB;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,oBAAW;AACP,aAAO,KAAK,OAAL,GAAe,IAAf,CAAoB,GAApB,CAAP;AACH;;;;EArPmB,U;AAyPxB;AACA;AACA;AACA;AACA;AACA;;;;;AACA,SAAS,WAAT,CAAqB,KAArB,EAA4B;AACxB,MAAI,EAAE,gBAAgB,SAAlB,CAAJ,EAAkC,MAAM,KAAK,CAAC,oCAAD,CAAX;AAClC,gCAAe,KAAf;AACA,EAAA,KAAK,GAAG,KAAK,CAAC,IAAN,EAAR;;AACA,MAAI,KAAK,QAAL,CAAc,KAAd,CAAJ,EAA0B;AACtB,SAAK,MAAL,CAAY,KAAZ;AACA,WAAO,IAAP;AACH;;AACD,OAAK,GAAL,CAAS,KAAT;AACA,SAAO,IAAP;AACH;;AAED,mBAAQ,iBAAR,CAA0B,eAA1B,EAA2C,SAA3C;;;;;;;;;;;;;;;;;;AC1TA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACM,W;;;;;AAEF;AACJ;AACA;AACI,yBAAc;AAAA;;AAAA;;AACV;AACA,UAAK,MAAL,GAAc,IAAI,OAAJ,EAAd;AAFU;AAGb;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;;;WACI,aAAI,KAAJ,EAAW;AAEP,oCAAe,KAAf;;AAEA,UAAI,CAAC,KAAK,MAAL,CAAY,GAAZ,CAAgB,KAAhB,CAAL,EAA6B;AACzB,aAAK,MAAL,CAAY,GAAZ,CAAgB,KAAhB;;AACA,6EAAU,KAAV;AACH;;AAED,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;;;;WACI,iBAAQ;AACJ;;AACA,WAAK,MAAL,GAAc,IAAI,OAAJ,EAAd;AACA,aAAO,IAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,gBAAO;AAEH,UAAI,KAAK,OAAL,EAAJ,EAAoB;AAChB,eAAO,SAAP;AACH;;AACD,UAAI,KAAK,GAAG,KAAK,IAAL,CAAU,KAAV,EAAZ;AACA,WAAK,MAAL,WAAmB,KAAnB;AACA,aAAO,KAAP;AACH;;;;EAtDqB,Y;;;;AA2D1B,eAAQ,iBAAR,CAA0B,eAA1B,EAA2C,WAA3C;;;ACrFA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAT,CAA0B,KAA1B,EAAiC;AAC7B,MAAI,CAAC,oBAAW,KAAX,CAAL,EAAwB;AACpB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,iBAAT,CAA2B,KAA3B,EAAkC;AAC9B,MAAI,CAAC,qBAAY,KAAZ,CAAL,EAAyB;AACrB,UAAM,IAAI,SAAJ,CAAc,0BAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,eAAT,CAAyB,KAAzB,EAAgC;AAC5B,MAAI,CAAC,mBAAU,KAAV,CAAL,EAAuB;AACnB,UAAM,IAAI,SAAJ,CAAc,wBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,cAAT,CAAwB,KAAxB,EAA+B;AAC3B,MAAI,CAAC,kBAAS,KAAT,CAAL,EAAsB;AAClB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,cAAT,CAAwB,KAAxB,EAA+B;AAC3B,MAAI,CAAC,kBAAS,KAAT,CAAL,EAAsB;AAClB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,gBAAT,CAA0B,KAA1B,EAAiC,QAAjC,EAA2C;AACvC,MAAI,CAAC,oBAAW,KAAX,EAAkB,QAAlB,CAAL,EAAkC;AAC9B,QAAI,CAAC,GAAG,EAAR;;AACA,QAAI,kBAAS,QAAT,KAAsB,oBAAW,QAAX,CAA1B,EAAgD;AAC5C,MAAA,CAAC,GAAG,QAAH,aAAG,QAAH,uBAAG,QAAQ,CAAG,MAAH,CAAZ;AACH;;AAED,QAAI,CAAJ,EAAO;AACH,MAAA,CAAC,GAAG,MAAM,CAAV;AACH;;AAED,UAAM,IAAI,SAAJ,CAAc,gCAAgC,CAA9C,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,aAAT,CAAuB,KAAvB,EAA8B;AAC1B,MAAI,CAAC,iBAAQ,KAAR,CAAL,EAAqB;AACjB,UAAM,IAAI,SAAJ,CAAc,uBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,gBAAT,CAA0B,KAA1B,EAAiC;AAC7B,MAAI,CAAC,oBAAW,KAAX,CAAL,EAAwB;AACpB,UAAM,IAAI,SAAJ,CAAc,yBAAd,CAAN;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS,eAAT,CAAyB,KAAzB,EAAgC;AAC5B,MAAI,CAAC,mBAAU,KAAV,CAAL,EAAuB;AACnB,UAAM,IAAI,SAAJ,CAAc,yBAAd,CAAN;AACH;AACJ;;AAED,mBAAQ,iBAAR,CAA0B,eAA1B,EAA2C,iBAA3C,EAA8D,eAA9D,EAA+E,cAA/E,EAA+F,cAA/F,EAA+G,aAA/G,EAA8H,gBAA9H,EAAgJ,gBAAhJ,EAAkK,eAAlK;;;AClXA;;;;;;;;;;;;;;;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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", "file": "generated.js", "sourceRoot": "", "sourcesContent": [ "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()", "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from '../types/base.js';\n\n\n/**\n * the abstract contraint defines the api for all constraints. mainly the method isValid() is defined.\n *\n * derived classes must implement the method isValid().\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass AbstractConstraint extends Base {\n\n /**\n *\n */\n constructor() {\n super();\n }\n\n /**\n * this method must return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n return Promise.reject(value);\n }\n}\n\nMonster.assignToNamespace('Monster.Constraints', AbstractConstraint);\nexport {Monster, AbstractConstraint}", "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\n\n/**\n * Operators allow you to link constraints together. for example, you can check whether a value is an object or an array. each operator has two operands that are linked together.\n * \n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass AbstractOperator extends AbstractConstraint {\n\n /**\n *\n * @param {AbstractConstraint} operantA\n * @param {AbstractConstraint} operantB\n * @throws {TypeError} \"parameters must be from type AbstractConstraint\"\n */\n constructor(operantA, operantB) {\n super();\n\n if (!(operantA instanceof AbstractConstraint) || !(operantB instanceof AbstractConstraint)) {\n throw new TypeError(\"parameters must be from type AbstractConstraint\")\n }\n\n this.operantA = operantA;\n this.operantB = operantB;\n\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', AbstractOperator);\nexport {Monster, AbstractOperator}", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\nimport {AbstractOperator} from \"./abstractoperator.js\";\n\n/**\n * The AndOperator is used to link several contraints. The constraint is fulfilled if all constraints of the operators are fulfilled.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js';\n * new Monster.Constraint.AndOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js';\n * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js';\n * new AndOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass AndOperator extends AbstractOperator {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n return Promise.all([this.operantA.isValid(value), this.operantB.isValid(value)]);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', AndOperator);\nexport {Monster, AndOperator}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\n\n/**\n * the invalid constraint allows an always invalid query to be performed. this contraint is mainly intended for testing.\n *\n * you can call the method via the monster namespace `new Monster.Constraint.Invalid()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js';\n * new Monster.Constraint.Invalid().catch(()=>console.log(true));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js';\n * new Invalid().catch(()=>console.log(true));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass Invalid extends AbstractConstraint {\n\n /**\n * this method return a rejected promise\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n return Promise.reject(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', Invalid);\nexport {Monster, Invalid}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\nimport {isArray} from \"../types/is.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Constraint.IsObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js';\n * console.log(new Monster.Constraint.IsArray())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js';\n * console.log(new IsArray())\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass IsArray extends AbstractConstraint {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n if(isArray(value)) {\n return Promise.resolve(value);\n }\n\n return Promise.reject(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', IsArray);\nexport {Monster, IsArray}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\nimport {isObject} from \"../types/is.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Constraint.IsObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js';\n * console.log(new Monster.Constraint.IsObject())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js';\n * console.log(new IsObject())\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass IsObject extends AbstractConstraint {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n if (isObject(value)) {\n return Promise.resolve(value);\n }\n\n return Promise.reject(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', IsObject);\nexport {Monster, IsObject}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractOperator} from \"./abstractoperator.js\";\n\n/**\n * The OrOperator is used to link several constraints. The constraint is fulfilled if one of the constraints is fulfilled.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js';\n * new Monster.Constraint.OrOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js';\n * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js';\n * new OrOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass OrOperator extends AbstractOperator {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n var self = this;\n\n return new Promise(function (resolve, reject) {\n let a, b;\n\n self.operantA.isValid(value)\n .then(function () {\n resolve();\n }).catch(function () {\n a = false;\n /** b has already been evaluated and was not true */\n if (b === false) {\n reject();\n }\n });\n\n self.operantB.isValid(value)\n .then(function () {\n resolve();\n }).catch(function () {\n b = false;\n /** b has already been evaluated and was not true */\n if (a === false) {\n reject();\n }\n });\n });\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', OrOperator);\nexport {Monster, OrOperator}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\n\n/**\n * the valid constraint allows an always valid query to be performed. this contraint is mainly intended for testing.\n *\n * you can call the method via the monster namespace `new Monster.Constraint.Valid()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js';\n * new Monster.Constraint.Valid().then(()=>console.log(true));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js';\n * new Valid().then(()=>console.log(true));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass Valid extends AbstractConstraint {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n return Promise.resolve(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', Valid);\nexport {Monster, Valid}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\n\nimport {Monster, isArray, isObject} from \"../types/is.js\";\n\n/**\n * With the diff function you can perform the change of one object to another. The result shows the changes of the second object to the first object.\n *\n * The operator `add` means that something has been added to the second object. `delete` means that something has been deleted from the second object compared to the first object.\n *\n * you can call the method via the monster namespace `Monster.Data.Diff()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js';\n * console.log(Monster.Data.Diff(a, b))\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js';\n * console.log(Diff(a, b))\n * </script>\n * ```\n *\n * given are two objects x and y.\n *\n * ```\n * let x = {\n * a: 1,\n * b: \"Hello!\"\n * }\n *\n * let y = {\n * a: 2,\n * c: true\n * }\n * ```\n *\n * These two objects can be compared with each other.\n *\n * ```\n * console.log(Diff(x, y));\n * ```\n *\n * the result is then the following\n *\n * ```\n * [\n * {\n * operator: 'update',\n * path: [ 'a' ],\n * first: { value: 1, type: 'number' },\n * second: { value: 2, type: 'number' }\n * },\n * {\n * operator: 'delete',\n * path: [ 'b' ],\n * first: { value: 'Hello!', type: 'string' }\n * },\n * {\n * operator: 'add',\n * path: [ 'c' ],\n * second: { value: true, type: 'boolean' }\n * }\n * ]\n * ```\n *\n * @param {*} first\n * @param {*} second\n * @return {array}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nfunction Diff(first, second) {\n return doDiff(first, second)\n}\n\n/**\n * @private\n * @param a\n * @param b\n * @param type\n * @return {Set<string>|Set<number>}\n */\nfunction getKeys(a, b, type) {\n if (isArray(type)) {\n const keys = a.length > b.length ? new Array(a.length) : new Array(b.length);\n keys.fill(0);\n return new Set(keys.map((_, i) => i));\n }\n\n return new Set(Object.keys(a).concat(Object.keys(b)));\n}\n\n/**\n * @private\n * @param a\n * @param b\n * @param path\n * @param diff\n * @return {array}\n */\nfunction doDiff(a, b, path, diff) {\n\n let typeA = typeof a\n let typeB = typeof b\n\n const currPath = path || [];\n const currDiff = diff || [];\n\n if (typeA === typeB && typeA === 'object') { // array is object too\n\n getKeys(a, b, typeA).forEach((v) => {\n\n if (!(Object.prototype.hasOwnProperty.call(a, v))) {\n currDiff.push(buildResult(a[v], b[v], 'add', currPath.concat(v)));\n } else if (!(Object.prototype.hasOwnProperty.call(b, v))) {\n currDiff.push(buildResult(a[v], b[v], 'delete', currPath.concat(v)));\n } else {\n doDiff(a[v], b[v], currPath.concat(v), currDiff);\n }\n });\n\n } else {\n\n const o = getOperator(a, b, typeA, typeB);\n if (o !== undefined) {\n currDiff.push(buildResult(a, b, o, path));\n }\n\n }\n\n return currDiff;\n\n}\n\n/**\n *\n * @param {*} a\n * @param {*} b\n * @param {string} operator\n * @param {array} path\n * @return {{path: array, operator: string}}\n * @private\n */\nfunction buildResult(a, b, operator, path) {\n\n const result = {\n operator,\n path,\n };\n\n if (operator !== 'add') {\n result.first = {\n value: a,\n type: typeof a\n };\n\n if (isObject(a)) {\n const name = Object.getPrototypeOf(a)?.constructor?.name;\n if (name !== undefined) {\n result.first.instance = name;\n }\n }\n }\n\n if (operator === 'add' || operator === 'update') {\n result.second = {\n value: b,\n type: typeof b\n };\n\n if (isObject(b)) {\n const name = Object.getPrototypeOf(b)?.constructor?.name;\n if (name !== undefined) {\n result.second.instance = name;\n }\n }\n\n }\n\n return result;\n}\n\n/**\n * @private\n * @param {*} a\n * @param {*} b\n * @return {boolean}\n */\nfunction isNotEqual(a, b) {\n\n if (typeof a !== typeof b) {\n return true;\n }\n\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() !== b.getTime();\n }\n\n return a !== b;\n}\n\n/**\n * @private\n * @param {*} a\n * @param {*} b\n * @return {string|undefined}\n */\nfunction getOperator(a, b) {\n\n /**\n * @type {string|undefined}\n */\n let operator;\n\n /**\n * @type {string}\n */\n let typeA = typeof a;\n\n /**\n * @type {string}\n */\n let typeB = typeof b;\n\n if (typeA === 'undefined' && typeB !== 'undefined') {\n operator = 'add';\n } else if (typeA !== 'undefined' && typeB === 'undefined') {\n operator = 'delete';\n } else if (isNotEqual(a, b)) {\n operator = 'update';\n }\n\n return operator;\n\n}\n\nMonster.assignToNamespace('Monster.Data', Diff);\nexport {Monster, Diff}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {isObject, isArray, isInteger} from '../types/is.js';\nimport {validateString, validateInteger} from '../types/validate.js';\nimport {Base} from '../types/base.js';\nimport {Stack} from \"../types/stack.js\";\n\n/**\n * path separator\n *\n * @private\n * @type {string}\n */\nconst DELIMITER = '.';\n\n/**\n * you can call the method via the monster namespace `new Monster.Data.Pathfinder()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js';\n * console.log(new Monster.Data.Pathfinder())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js';\n * console.log(new Pathfinder())\n * </script>\n * ```\n *\n * With the help of the pathfinder, values can be read and written from an object construct.\n *\n * ```\n * new Pathfinder({\n * a: {\n * b: {\n * f: [\n * {\n * g: false,\n * }\n * ],\n * }\n * }\n * }).getVia(\"a.b.f.0.g\"); // ↦ false\n * ```\n *\n * if a value is not present or has the wrong type, a corresponding exception is thrown.\n *\n * ```\n * new Pathfinder({}).getVia(\"a.b.f.0.g\"); // ↦ Error\n * ```\n *\n * The `Pathfinder.exists()` method can be used to check whether access to the path is possible.\n *\n * ```\n * new Pathfinder({}).exists(\"a.b.f.0.g\"); // ↦ false\n * ```\n *\n * pathfinder can also be used to build object structures. to do this, the `Pathfinder.setVia()` method must be used.\n *\n * ```\n * obj = {};\n * new Pathfinder(obj).setVia('a.b.0.c', true); // ↦ {a:{b:[{c:true}]}}\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nclass Pathfinder extends Base {\n\n /**\n * @param {array|object|Map|Set} value\n * @since 1.4.0\n **/\n constructor(object) {\n super();\n this.object = object;\n }\n\n /**\n *\n * @param {string} path\n * @since 1.4.0\n * @returns {*}\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @throws {Error} unsupported action for this data type\n */\n getVia(path) {\n validateString(path);\n return getValueViaPath(this.object, path);\n }\n\n /**\n *\n * @param {string} path\n * @param {*} value\n * @returns {Pathfinder}\n * @since 1.4.0\n * @throws {TypeError} unsupported type\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @throws {Error} unsupported action for this data type\n */\n setVia(path, value) {\n validateString(path);\n setValueViaPath(this.object, path, value);\n return this;\n }\n\n /**\n * Delete Via Path\n *\n * @param {string} path\n * @returns {Pathfinder}\n * @since 1.6.0\n * @throws {TypeError} unsupported type\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @throws {Error} unsupported action for this data type\n */\n deleteVia(path) {\n validateString(path);\n deleteValueViaPath(this.object, path);\n return this;\n }\n\n /**\n *\n * @param {string} path\n * @return {bool}\n * @throws {TypeError} unsupported type\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @since 1.4.0\n */\n exists(path) {\n validateString(path);\n try {\n getValueViaPath(this.object, path, true);\n return true;\n } catch (e) {\n\n }\n\n return false;\n }\n\n}\n\nMonster.assignToNamespace('Monster.Data', Pathfinder);\nexport {Monster, Pathfinder}\n\n/**\n *\n * @param {*} object\n * @param [string} path\n * @param [boolean} check \n * @returns {*}\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {Error} unsupported action for this data type\n * @private\n */\nfunction getValueViaPath(object, path, check) {\n\n if (path === \"\") {\n return object;\n }\n\n let parts = path.split(DELIMITER)\n let current = parts.shift();\n\n if (isObject(object) || isArray(object)) {\n\n let anchor;\n if (object instanceof Map || object instanceof WeakMap) {\n anchor = object.get(current);\n\n } else if (object instanceof Set || object instanceof WeakSet) {\n current = parseInt(current);\n validateInteger(current)\n anchor = [...object]?.[current];\n\n } else if (object instanceof WeakRef) {\n throw Error('unsupported action for this data type');\n\n } else if (isArray(object)) {\n current = parseInt(current);\n validateInteger(current)\n anchor = object?.[current];\n } else {\n anchor = object?.[current];\n }\n\n if (isObject(anchor) || isArray(anchor)) {\n return getValueViaPath(anchor, parts.join(DELIMITER), check)\n }\n\n if (parts.length > 0) {\n throw Error(\"the journey is not at its end (\" + parts.join(DELIMITER) + \")\");\n }\n\n if (check === true && !object.hasOwnProperty(current)) {\n throw Error('unknown value');\n }\n\n return anchor;\n\n }\n\n throw TypeError(\"unsupported type\")\n\n}\n\n/**\n *\n * @param object\n * @param path\n * @param value\n * @returns {void}\n * @throws {TypeError} unsupported type\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {Error} unsupported action for this data type\n * @private\n */\nfunction setValueViaPath(object, path, value) {\n\n let parts = path.split(DELIMITER)\n let last = parts.pop();\n let subpath = parts.join(DELIMITER);\n\n let stack = new Stack()\n let current = subpath;\n while (true) {\n\n try {\n getValueViaPath(object, current, true)\n break;\n } catch (e) {\n\n }\n\n stack.push(current);\n parts.pop();\n current = parts.join(DELIMITER);\n\n if (current === \"\") break;\n }\n\n while (!stack.isEmpty()) {\n current = stack.pop();\n let obj = {};\n\n if (!stack.isEmpty()) {\n let n = stack.peek().split(DELIMITER).pop();\n if (isInteger(parseInt(n))) {\n obj = [];\n }\n\n }\n\n\n setValueViaPath(object, current, obj);\n }\n\n let anchor = getValueViaPath(object, subpath);\n\n if (!isObject(object) && !isArray(object)) {\n throw TypeError(\"unsupported type: \" + typeof object);\n }\n\n if (anchor instanceof Map || anchor instanceof WeakMap) {\n anchor.set(last, value);\n } else if (anchor instanceof Set || anchor instanceof WeakSet) {\n anchor.append(value)\n\n } else if (anchor instanceof WeakRef) {\n throw Error('unsupported action for this data type');\n\n } else if (isArray(anchor)) {\n last = parseInt(last);\n validateInteger(last)\n anchor[last] = value;\n } else {\n anchor[last] = value;\n }\n\n return;\n\n}\n\n/**\n *\n * @param object\n * @param path\n * @returns {void}\n * @throws {TypeError} unsupported type\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {Error} unsupported action for this data type\n * @since 1.6.0\n * @private\n */\nfunction deleteValueViaPath(object, path) {\n\n const parts = path.split(DELIMITER)\n let last = parts.pop();\n const subpath = parts.join(DELIMITER);\n\n const anchor = getValueViaPath.call(this, object, subpath);\n\n if (anchor instanceof Map) {\n anchor.delete(last);\n } else if (anchor instanceof Set || anchor instanceof WeakMap || anchor instanceof WeakSet || anchor instanceof WeakRef) {\n throw Error('unsupported action for this data type');\n\n } else if (isArray(anchor)) {\n last = parseInt(last);\n validateInteger(last)\n delete anchor[last];\n } else {\n delete anchor[last];\n }\n\n return;\n\n}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Transformer} from './transformer.js';\nimport {Base} from '../types/base.js';\nimport {validateString} from '../types/validate.js';\n\n\nconst DELIMITER = '|';\n\n/**\n * the pipe class makes it possible to combine several processing steps.\n *\n * you can call the method via the monster namespace `new Monster.Data.Pipe()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js';\n * console.log(new Monster.Data.Pipe())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js';\n * console.log(new Pipe())\n * </script>\n * ```\n *\n * a pipe consists of commands whose input and output are connected with the pipe symbol `|`.\n *\n * with the Pipe, processing steps can be combined. Here, the value of an object is accessed via the pathfinder (path command).\n * the word is then converted to uppercase letters and a prefix Hello is added. the two backslash safe the space char.\n *\n * ```\n * let obj = {\n * a: {\n * b: {\n * c: {\n * d: \"world\"\n * }\n * }\n * }\n * }\n *\n * new Pipe('path:a.b.c.d | toupper | prefix:Hello\\\\ ').run(obj); // ↦ Hello WORLD\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nclass Pipe extends Base {\n\n /**\n *\n * @param {string} pipe a pipe consists of commands whose input and output are connected with the pipe symbol `|`.\n * @throws {TypeError} \n */\n constructor(pipe) {\n super();\n validateString(pipe);\n this.pipe = pipe.split(DELIMITER).map((v) => {\n return new Transformer(v);\n });\n\n }\n\n /**\n * run a pipe\n *\n * @param {*} value\n * @returns {*}\n */\n run(value) {\n return this.pipe.reduce((accumulator, currentValue, currentIndex, array) => {\n return currentValue.run(accumulator);\n }, value);\n }\n}\n\nMonster.assignToNamespace('Monster.Data', Pipe);\nexport {Monster, Pipe}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from '../types/base.js';\nimport {validateString, validatePrimitive, validateFunction, validateInteger} from '../types/validate.js';\nimport {isObject, isString, isArray} from '../types/is.js';\nimport {ID} from '../types/id.js';\nimport {clone} from \"../util/clone.js\";\nimport {Pathfinder} from \"./pathfinder.js\";\n\n/**\n * the transformer class is a swiss army knife for manipulating values. especially in combination with the pipe, processing chains can be built up.\n *\n * you can call the method via the monster namespace `new Monster.Data.Transformer()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js';\n * console.log(new Monster.Data.Transformer())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js';\n * console.log(new Transformer())\n * </script>\n * ```\n *\n * a simple example is the conversion of all characters to lowercase. for this purpose the command tolower must be used.\n * \n * ```\n * let t = new Transformer('tolower').run('ABC'); // ↦ abc\n * ```\n * \n * **all commands**\n * \n * in the following table all commands, parameters and existing aliases are described.\n * \n * | command | parameter | alias | description |\n * |:-------------|:---------------------------|:------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | base64 | | | Converts the value to base64 |\n * | 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 |\n * | empty | | | Return empty String \"\" |\n * | if | statement1:statement2 | ? | Is the ternary operator, the first parameter is the valid statement, the second is the false part. To use the current value in the queue, you can set the value keyword. On the other hand, if you want to have the static string \"value\", you have to put one backslash \\\\ in front of it and write value. the follow values are true: 'on', true, 'true' |\n * | index | key:default | property, key | Fetches a value from an object, an array, a map or a set |\n * | length | | count | Length of the string or entries of an array or object |\n * | nop | | | Do nothing |\n * | path | path | | The access to an object is done via a Pathfinder object |\n * | plaintext | | plain | All HTML tags are removed (*) |\n * | prefix | text | | Adds a prefix |\n * | rawurlencode | | | URL coding |\n * | static | | none | The Arguments value is used and passed to the value. Special characters \\ <space> and : can be quotet by a preceding \\. |\n * | substring | start:length | | Returns a substring |\n * | suffix | text | | Adds a suffix |\n * | tointeger | | | Type conversion to an integer value |\n * | tolower | | strtolower, tolowercase | The input value is converted to lowercase letters |\n * | tostring | | | Type conversion to a string |\n * | toupper | | strtoupper, touppercase | The input value is converted to uppercase letters |\n * | trim | | | Remove spaces at the beginning and end |\n * | ucfirst | | | First character large |\n * | ucwords | | | Any word beginning large |\n * | undefined | | | Return undefined |\n * | uniqid | | | Creates a string with a unique value (**) |\n * \n * (*) for this functionality the extension [jsdom](https://www.npmjs.com/package/jsdom) must be loaded in the nodejs context.\n * \n * ```\n * // polyfill\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n * \n * [\n * 'self',\n * 'document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (global[key] = window[key]));\n * }\n * ```\n * \n * (**) for this command the crypt library is necessary in the nodejs context.\n * \n * ```\n * import * as Crypto from \"@peculiar/webcrypto\";\n * global['crypto'] = new Crypto.Crypto();\n * ```\n * \n * \n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nclass Transformer extends Base {\n /**\n *\n * @param {string} definition\n */\n constructor(definition) {\n super();\n validateString(definition);\n\n this.args = disassemble(definition);\n this.command = this.args.shift()\n this.callbacks = new Map();\n\n }\n\n /**\n *\n * @param {string} name\n * @param {function} callback\n * @returns {Transformer}\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not a function\n */\n setCallback(name, callback) {\n validateString(name)\n validateFunction(callback)\n this.callbacks.set(name, callback);\n return this;\n }\n\n /**\n *\n * @param {*} value\n * @returns {*}\n * @throws {Error} unknown command\n * @throws {TypeError} unsupported type\n * @throws {Error} type not supported\n */\n run(value) {\n return transform.apply(this, [value])\n }\n}\n\nMonster.assignToNamespace('Monster.Data', Transformer);\nexport {Monster, Transformer}\n\n/**\n *\n * @param {string} command\n * @returns {array}\n * @private\n */\nfunction disassemble(command) {\n\n validateString(command);\n \n let placeholder = new Map;\n const regex = /((?<pattern>\\\\(?<char>.)){1})/mig;\n\n // The separator for args must be quotable\n // undefined string which should not occur normally and is also not a regex\n let result = command.matchAll(regex)\n \n for (let m of result) {\n let g=m?.['groups'];\n if(!isObject(g)) {\n continue;\n }\n \n let p=g?.['pattern'];\n let c=g?.['char'];\n \n if(p&&c) {\n let r='__'+new ID().toString()+'__';\n placeholder.set(r, c);\n command=command.replace(p,r);\n }\n \n }\n let parts = command.split(':');\n\n parts = parts.map(function (value) {\n let v = value.trim();\n for(let k of placeholder) {\n v= v.replace(k[0], k[1]);\n }\n return v;\n \n \n });\n\n return parts\n}\n\n/**\n * tries to make a string out of value and if this succeeds to return it back\n * \n * @param {*} value\n * @returns {string}\n * @private\n */\nfunction convertToString(value) {\n\n if (isObject(value) && value.hasOwnProperty('toString')) {\n value = value.toString();\n }\n\n validateString(value)\n return value;\n}\n\n/**\n *\n * @param {*} value\n * @returns {*}\n * @private\n * @throws {Error} unknown command\n * @throws {TypeError} unsupported type\n * @throws {Error} type not supported\n */\nfunction transform(value) {\n\n let args = clone(this.args);\n let key\n\n switch (this.command) {\n\n case 'static':\n return this.args.join(':');\n\n case 'tolower':\n case 'strtolower':\n case 'tolowercase':\n validateString(value)\n return value.toLowerCase();\n\n case 'toupper':\n case 'strtoupper':\n case 'touppercase':\n validateString(value)\n return value.toUpperCase();\n\n case 'tostring':\n return \"\" + value;\n\n case 'tointeger':\n let n = parseInt(value);\n validateInteger(n);\n return n\n\n case 'trim':\n validateString(value)\n return value.trim();\n\n case 'rawurlencode':\n validateString(value)\n return encodeURIComponent(value)\n .replace(/!/g, '%21')\n .replace(/'/g, '%27')\n .replace(/\\(/g, '%28')\n .replace(/\\)/g, '%29')\n .replace(/\\*/g, '%2A');\n\n\n case 'call':\n\n /**\n * callback-definition\n * function callback(value, ...args) {\n * return value;\n * }\n */\n\n let callback;\n let callbackName = args.shift();\n\n if (isObject(value) && calue.hasOwnProperty(callbackName)) {\n callback = value[callbackName];\n } else if (this.callbacks.has(callbackName)) {\n callback = this.callbacks.get(callbackName);\n } else if (typeof window === 'object' && window.hasOwnProperty(callbackName)) {\n callback = window[callbackName];\n }\n validateFunction(callback);\n\n args.unshift(value);\n return callback(...args);\n\n case 'plain':\n case 'plaintext':\n validateString(value);\n let doc = new DOMParser().parseFromString(value, 'text/html');\n return doc.body.textContent || \"\";\n\n case 'if':\n case '?':\n\n validatePrimitive(value);\n\n let trueStatement = (args.shift() || undefined);\n let falseStatement = (args.shift() || undefined);\n\n if (trueStatement === 'value') {\n trueStatement = value;\n }\n if (trueStatement === '\\\\value') {\n trueStatement = 'value';\n }\n if (falseStatement === 'value') {\n falseStatement = value;\n }\n if (falseStatement === '\\\\value') {\n falseStatement = 'value';\n }\n\n let condition = ((value !== undefined && value !== '' && value !== 'off' && value !== 'false' && value !== false) || value === 'on' || value === 'true' || value === true);\n return condition ? trueStatement : falseStatement;\n\n\n case 'ucfirst':\n validateString(value);\n\n let firstchar = value.charAt(0).toUpperCase();\n return firstchar + value.substr(1);\n case 'ucwords':\n validateString(value);\n\n return value.replace(/^([a-z\\u00E0-\\u00FC])|\\s+([a-z\\u00E0-\\u00FC])/g, function (v) {\n return v.toUpperCase();\n });\n\n case 'count':\n case 'length':\n\n if ((isString(value) || isObject(value) || isArray(value)) && value.hasOwnProperty('length')) {\n return value.length;\n }\n\n throw new TypeError(\"unsupported type\");\n\n case 'base64':\n convertToString(value);\n return btoa(value);\n\n case 'empty':\n return '';\n\n case 'undefined':\n return undefined;\n\n case 'prefix':\n validateString(value);\n let prefix = args?.[0];\n return prefix + value;\n\n case 'suffix':\n validateString(value);\n let suffix = args?.[0];\n return value + suffix;\n\n case 'uniqid':\n return (new ID()).toString();\n\n case 'key':\n case 'property':\n case 'index':\n\n key = (args.shift() || 'undefined');\n let defaultValue = (args.shift() || '');\n\n if (value instanceof Map) {\n if(!value.has(key)) {\n return defaultValue;\n }\n return value.get(key);\n }\n\n if (isObject(value)||isArray(value)) {\n\n if (value?.[key]) {\n return value?.[key];\n }\n\n return defaultValue;\n }\n\n throw new Error(\"type not supported\")\n\n case 'path':\n\n key = (args.shift() || 'undefined');\n return new Pathfinder(value).getVia(key);\n \n \n case 'substring':\n\n validateString(value);\n \n let start = parseInt(args[0]) || 0;\n let end = (parseInt(args[1]) || 0) + start;\n\n return value.substring(start, end);\n \n case 'nop':\n return value;\n\n default:\n throw new Error(\"unknown command\")\n }\n\n return value;\n}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {validateInstance, validateString} from \"../types/validate.js\";\nimport {getGlobalFunction} from \"../types/global.js\";\nimport {ProxyObserver} from \"../types/proxyobserver.js\";\n\n\n/**\n * attribute prefix\n * \n * @type {string}\n * @memberOf Monster/DOM\n */\nconst ATTRIBUTEPREFIX = \"data-monster-\";\n\n/**\n * you can call the method via the monster namespace `new Monster.DOM.Assembler()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js';\n * console.log(new Monster.DOM.Assembler())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js';\n * console.log(new Assembler())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n */\nclass Assembler extends Base {\n\n /**\n * @param {DocumentFragment} fragment\n * @throws {TypeError} value is not an instance of\n * @throws {TypeError} value is not a function\n * @throws {Error} the function is not defined\n */\n constructor(fragment) {\n super();\n this.attributePrefix = ATTRIBUTEPREFIX;\n validateInstance(fragment, getGlobalFunction('DocumentFragment'));\n this.fragment = fragment;\n }\n\n /**\n *\n * @param {string} prefix\n * @returns {Assembler}\n * @throws {TypeError} value is not a string\n */\n setAttributePrefix(prefix) {\n validateString(prefix);\n this.attributePrefix = prefix;\n return this;\n }\n\n /**\n *\n * @returns {string}\n */\n getAttributePrefix() {\n return this.attributePrefix;\n }\n\n /**\n *\n * @param {ProxyObserver|undefined} data\n * @return {DocumentFragment}\n * @throws {TypeError} value is not an instance of\n */\n createDocumentFragment(data) {\n\n if (data === undefined) {\n data = new ProxyObserver({});\n }\n\n validateInstance(data, ProxyObserver);\n let fragment = this.fragment.cloneNode(true);\n return fragment;\n }\n\n}\n\nMonster.assignToNamespace('Monster.DOM', Assembler);\nexport {Monster, ATTRIBUTEPREFIX, Assembler}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {Stack} from \"../types/stack.js\";\nimport {validateInstance} from \"../types/validate.js\";\nimport {ProxyObserver} from \"../types/proxyobserver.js\";\nimport {Observer} from \"../types/observer.js\";\nimport {getGlobalFunction, getGlobalObject} from \"../types/global.js\";\nimport {isInstance} from \"../types/is.js\";\nimport {ATTRIBUTEPREFIX} from \"./assembler.js\"\nimport {ID} from \"../types/id.js\";\n\n/**\n * @private\n * @type {Symbol}\n */\nconst MONSTERDOMHANDLE = Symbol('MonsterHandle');\n\n/**\n * you can call the method via the monster namespace `new Monster.DOM.Handle()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js';\n * console.log(new Monster.DOM.Handle())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js';\n * console.log(new Handle())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster.DOM\n */\nclass Handle extends Base {\n /**\n *\n * @param {ProxyObserver} data\n */\n constructor(data) {\n super();\n\n let self = this;\n\n self.id = new ID();\n\n validateInstance(data, ProxyObserver);\n\n this.data = data\n\n this.mutationObserver = createMutationObserver.call(this);\n this.dataObserver = createDataObserver.call(this);\n this.data.attachObserver(this.dataObserver);\n\n this.nodes = new WeakSet\n this.updates = new Stack();\n\n }\n\n /**\n * @return {void}\n */\n update() {\n return;\n }\n\n /**\n *\n * @param {HTMLElement|Document} node\n * @return {Handle}\n */\n remove(node) {\n\n if (isInstance(node, getGlobalFunction('Document'))) {\n node = node.firstElementChild\n }\n\n validateInstance(node, getGlobalFunction('HTMLElement'))\n\n if (!this.nodes.has(node)) {\n return this;\n }\n\n this.mutationObserver.disconnect(node);\n\n delete node.dataset[MONSTERDOMHANDLE]\n node.removeAttribute(ATTRIBUTEPREFIX + \"handler\");\n\n return this;\n\n }\n\n /**\n *\n * @param {HTMLElement|Document} node\n * @return {Handle}\n */\n append(node) {\n\n if (isInstance(node, getGlobalFunction('Document'))) {\n node = node.firstElementChild\n }\n\n validateInstance(node, getGlobalFunction('HTMLElement'))\n\n if (this.nodes.has(node)) {\n return this;\n }\n\n node.dataset[MONSTERDOMHANDLE] = this;\n node.setAttribute(ATTRIBUTEPREFIX + \"handler\", true);\n\n this.mutationObserver.observe(node, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true,\n characterDataOldValue: true,\n attributeOldValue: true\n });\n\n this.nodes.add(node);\n\n return this;\n\n }\n}\n\n/**\n *\n * @private\n * @return {Observer}\n */\nfunction createDataObserver() {\n const self = this;\n\n return new Observer(() => {\n self.update();\n });\n}\n\n/**\n *\n * @private\n * @return {MutationObserver}\n */\nfunction createMutationObserver() {\n\n const self = this;\n\n /**\n * @private\n * @type {MutationObserver}\n */\n const MutationObserver = getGlobalFunction('MutationObserver');\n\n // @link https://developer.mozilla.org/en/docs/Web/API/MutationObserver\n return new MutationObserver((mutationsList, observer) => {\n\n for (const mutation of mutationsList) {\n self.updates.push(mutation);\n }\n\n self.update();\n }\n )\n\n}\n\n/**\n * get the handle of a node\n *\n * if a node is specified without a handler, a recursive search upwards is performed until the corresponding\n * handle is found, or undefined is returned.\n *\n * you can call the method via the monster namespace `Monster.DOM.getHandleFromNode()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js';\n * console.log(Monster.DOM.getHandleFromNode())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js';\n * console.log(getHandleFromNode())\n * </script>\n * ```\n *\n * @param {Node} node\n * @return {Handle|undefined}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {TypeError} value is not an instance of Node\n */\nfunction getHandleFromNode(node) {\n validateInstance(node, getGlobalFunction('Node'));\n\n let handle = node.dataset?.[MONSTERDOMHANDLE];\n if (handle === undefined) {\n let parentNode = node?.['parentNode'];\n if (isInstance(parentNode, getGlobalFunction('Node'))) {\n return getHandleFromNode(parentNode)\n }\n }\n\n return handle;\n}\n\nMonster.assignToNamespace('Monster.DOM', getHandleFromNode, Handle);\nexport {Monster, getHandleFromNode, Handle}\n\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {getGlobalFunction} from '../types/global.js';\nimport {validateInstance} from \"../types/validate.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.DOM.Template()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js';\n * console.log(new Monster.DOM.Template())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js';\n * console.log(new Template())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n */\nclass Template extends Base {\n /**\n *\n * @param {HTMLTemplateElement} template\n * @throws {TypeError} value is not an instance of\n * @throws {TypeError} value is not a function\n * @throws {Error} the function is not defined\n */\n constructor(template) {\n super();\n validateInstance(template, getGlobalFunction('HTMLTemplateElement'));\n this.template = template;\n }\n\n /**\n *\n * @returns {HTMLTemplateElement}\n */\n getTemplateElement() {\n return this.template;\n }\n\n /**\n *\n * @return {DocumentFragment}\n * @throws {TypeError} value is not an instance of\n */\n createDocumentFragment() {\n return this.template.content.cloneNode(true);\n }\n\n}\n\nMonster.assignToNamespace('Monster.DOM', Template);\nexport {Monster, Template}\n\n\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, getGlobal} from \"../types/global.js\";\nimport {validateString} from \"../types/validate.js\";\n\n\n/**\n * this method fetches the document object\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js';\n * console.log(Monster.DOM.getDocument())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js';\n * console.log(getDocument())\n * </script>\n * ```\n *\n * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).\n *\n * ```\n * import {JSDOM} from \"jsdom\"\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n *\n * [\n * 'self',\n * 'document',\n * 'Document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (getGlobal()[key] = window[key]));\n * }\n * ```\n *\n * @returns {object}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {Error} not supported environment\n */\nfunction getDocument() {\n let document = getGlobal()?.['document'];\n if (typeof document !== 'object') {\n throw new Error(\"not supported environment\")\n }\n\n return document;\n}\n\n/**\n * this method fetches the window object\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js';\n * console.log(Monster.DOM.getWindow())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js';\n * console.log(getWindow(null))\n * </script>\n * ```\n *\n * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).\n *\n * ```\n * import {JSDOM} from \"jsdom\"\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n *\n * getGlobal()['window']=window;\n * \n * [\n * 'self',\n * 'document',\n * 'Document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (getGlobal()[key] = window[key]));\n * }\n * ```\n *\n * @returns {object}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {Error} not supported environment\n */\nfunction getWindow() {\n let window = getGlobal()?.['window'];\n if (typeof window !== 'object') {\n throw new Error(\"not supported environment\")\n }\n\n return window;\n}\n\n\n/**\n *\n *\n * this method fetches the document object\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js';\n * console.log(Monster.DOM.getDocumentFragmentFromString())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js';\n * console.log(getDocumentFragmentFromString('<div></div>'))\n * </script>\n * ```\n *\n * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).\n *\n * ```\n * import {JSDOM} from \"jsdom\"\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n *\n * [\n * 'self',\n * 'document',\n * 'Document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (getGlobal()[key] = window[key]));\n * }\n * ```\n *\n * @returns {DocumentFragment}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {Error} not supported environment\n * @throws {TypeError} value is not a string\n */\nfunction getDocumentFragmentFromString(html) {\n validateString(html);\n\n const document = getDocument();\n const template = document.createElement('template');\n template.innerHTML = html;\n \n return template.content;\n}\n\n\nMonster.assignToNamespace('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString);\nexport {Monster, getWindow, getDocument, getDocumentFragmentFromString}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from '../types/base.js';\nimport {ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN} from \"./logger.js\";\nimport {LogEntry} from \"./logentry.js\";\nimport {validateInstance, validateInteger} from \"../types/validate.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.Handler()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler.js';\n * console.log(new Monster.Logging.Handler())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler.js';\n * console.log(new Handler())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging\n */\nclass Handler extends Base {\n constructor() {\n super();\n\n /**\n * Loglevel\n * \n * @type {integer} \n */\n this.loglevel = OFF;\n }\n\n /**\n * this is the central log function. this method must be\n * overwritten by derived handlers with their own logic.\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {LogEntry} entry\n * @returns {boolean}\n */\n log(entry) {\n validateInstance(entry, LogEntry);\n\n if (this.loglevel < entry.getLogLevel()) {\n return false;\n }\n\n return true;\n }\n\n /**\n * set loglevel\n *\n * @param {integer} loglevel\n * @returns {Handler}\n * @since 1.5.0\n */\n setLogLevel(loglevel) {\n validateInteger(loglevel)\n this.loglevel = loglevel;\n return this;\n }\n\n /**\n * get loglevel\n *\n * @returns {integer}\n * @since 1.5.0\n */\n getLogLevel() {\n return this.loglevel;\n }\n\n /**\n * Set log level to All\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setAll() {\n this.setLogLevel(ALL);\n return this;\n };\n\n /**\n * Set log level to Trace\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setTrace() {\n this.setLogLevel(TRACE);\n return this;\n };\n\n /**\n * Set log level to Debug\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setDebug() {\n this.setLogLevel(DEBUG);\n return this;\n };\n\n /**\n * Set log level to Info\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setInfo() {\n this.setLogLevel(INFO);\n return this;\n };\n\n /**\n * Set log level to Warn\n *\n * @returns {undefined}\n * @since 1.5.0\n */\n setWarn() {\n this.setLogLevel(WARN);\n return this;\n };\n\n /**\n * Set log level to Error\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setError() {\n this.setLogLevel(ERROR);\n return this;\n };\n\n /**\n * Set log level to Fatal\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setFatal() {\n this.setLogLevel(FATAL);\n return this;\n };\n\n\n /**\n * Set log level to Off\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setOff() {\n this.setLogLevel(OFF);\n return this;\n };\n\n\n}\n\n\nMonster.assignToNamespace('Monster.Logging', Handler);\nexport {Monster, Handler};\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../../namespace.js';\nimport {Base} from '../../types/base.js';\nimport {Handler} from '../../logging/handler.js';\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.Handler.ConsoleHandler()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler/console.js';\n * console.log(new Monster.Logging.Handler.ConsoleHandler())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler/console.js';\n * console.log(new ConsoleHandler())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging/Handler\n */\nclass ConsoleHandler extends Base {\n constructor() {\n super();\n }\n}\n\n\nMonster.assignToNamespace('Monster.Logging', ConsoleHandler);\nexport {Monster, Handler};\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateInteger} from '../types/validate.js';\nimport {Base} from '../types/base.js';\n\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.LogEntry()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logentry.js';\n * console.log(new Monster.Logging.LogEntry())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logentry.js';\n * console.log(new LogEntry())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging\n */\nclass LogEntry extends Base {\n /**\n *\n * @param {int} loglevel\n * @param {*} args\n */\n constructor(loglevel, ...args) {\n super();\n validateInteger(loglevel);\n\n this.loglevel = loglevel\n this.arguments = args\n }\n\n /**\n *\n * @returns {integerr}\n */\n getLogLevel() {\n return this.loglevel\n }\n\n /**\n *\n * @returns {array}\n */\n getArguments() {\n return this.arguments\n }\n\n}\n\nMonster.assignToNamespace('Monster.Logging', LogEntry);\nexport {Monster, LogEntry}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateInteger, validateObject, validateString} from '../types/validate.js';\nimport {Handler} from '../logging/handler.js';\nimport {LogEntry} from '../logging/logentry.js';\nimport {Base} from '../types/base.js';\n\n\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst ALL = 255;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst TRACE = 64;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst DEBUG = 32;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst INFO = 16;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst WARN = 8;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst ERROR = 4;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst FATAL = 2;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst OFF = 0;\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.Logger()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js';\n * console.log(new Monster.Logging.Logger())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js';\n * console.log(new Logger())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging\n */\nclass Logger extends Base {\n\n /**\n *\n */\n constructor() {\n super();\n this.handler = new Set;\n }\n\n /**\n *\n * @param {Handler} handler\n * @returns {Logger}\n * @throws {Error} the handler must be an instance of Handler\n */\n addHandler(handler) {\n validateObject(handler)\n if (!(handler instanceof Handler)) {\n throw new Error(\"the handler must be an instance of Handler\")\n }\n\n this.handler.add(handler)\n return this;\n }\n\n /**\n *\n * @param {Handler} handler\n * @returns {Logger}\n * @throws {Error} the handler must be an instance of Handler\n */\n removeHandler(handler) {\n validateObject(handler)\n if (!(handler instanceof Handler)) {\n throw new Error(\"the handler must be an instance of Handler\")\n }\n\n this.handler.delete(handler);\n return this;\n }\n\n /**\n * log Trace message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logTrace() {\n triggerLog.apply(this, [TRACE, ...arguments]);\n return this;\n };\n\n /**\n * log Debug message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logDebug() {\n triggerLog.apply(this, [DEBUG, ...arguments]);\n return this;\n };\n\n /**\n * log Info message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logInfo() {\n triggerLog.apply(this, [INFO, ...arguments]);\n return this;\n };\n\n /**\n * log Warn message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logWarn() {\n triggerLog.apply(this, [WARN, ...arguments]);\n return this;\n };\n\n /**\n * log Error message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logError() {\n triggerLog.apply(this, [ERROR, ...arguments]);\n return this;\n };\n\n /**\n * log Fatal message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logFatal() {\n triggerLog.apply(this, [FATAL, ...arguments]);\n return this;\n };\n\n\n /**\n * Labels\n *\n * @param {integer} level\n * @returns {string}\n */\n getLabel(level) {\n validateInteger(level);\n\n if (level === ALL) return 'ALL';\n if (level === TRACE) return 'TRACE';\n if (level === DEBUG) return 'DEBUG';\n if (level === INFO) return 'INFO';\n if (level === WARN) return 'WARN';\n if (level === ERROR) return 'ERROR';\n if (level === FATAL) return 'FATAL';\n if (level === OFF) return 'OFF';\n\n return 'unknown';\n };\n\n /**\n * Level\n *\n * @param {string} label\n * @returns {integer}\n */\n getLevel(label) {\n validateString(label);\n\n if (label === 'ALL') return ALL;\n if (label === 'TRACE') return TRACE;\n if (label === 'DEBUG') return DEBUG;\n if (label === 'INFO') return INFO;\n if (label === 'WARN') return WARN;\n if (label === 'ERROR') return ERROR;\n if (label === 'FATAL') return FATAL;\n if (label === 'OFF') return OFF;\n\n return 0;\n };\n\n\n}\n\nMonster.assignToNamespace('Monster.Logging', Logger);\nexport {Monster, Logger, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF};\n\n\n/**\n * Log triggern\n *\n * @param {integer} loglevel\n * @param {*} args\n * @returns {Logger}\n * @private\n */\nfunction triggerLog(loglevel, ...args) {\n var logger = this;\n\n for (let handler of logger.handler) {\n handler.log(new LogEntry(loglevel, args))\n }\n\n return logger;\n\n}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\n\nimport {Monster, getGlobal} from '../types/global.js';\n\n\n/**\n * this function uses crypt and returns a random number.\n *\n * you can call the method via the monster namespace `Monster.Math.random()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js';\n * console.log(Monster.Math.random(1,10)) // ↦ 5\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js';\n * console.log(random(1,10)) // ↦ 5\n * </script>\n * ```\n *\n * @param {number} min starting value of the definition set (default is 0)\n * @param {number} max end value of the definition set (default is 1000000000)\n * @returns {number}\n * @memberOf Monster/Math\n\n * @since 1.0.0\n * @copyright schukai GmbH\n */\nfunction random(min, max) {\n\n if (min === undefined) {\n min = 0;\n }\n if (max === undefined) {\n max = MAX;\n }\n\n if (max < min) {\n throw new Error(\"max must be greater than min\");\n }\n\n return Math.round(create(min, max));\n\n}\n\n/**\n * @private\n * @type {number}\n */\nvar MAX = 1000000000;\n\n\nMath.log2 = Math.log2 || function (n) {\n return Math.log(n) / Math.log(2);\n};\n\n/**\n *\n * @param min\n * @param max\n * @returns {*}\n * @private\n */\nfunction create(min, max) {\n let crypt;\n let globalReference = getGlobal();\n\n crypt = globalReference?.['crypto'] || globalReference?.['msCrypto'] || globalReference?.['crypto'] || undefined;\n\n if (typeof crypt === \"undefined\") {\n throw new Error(\"missing crypt\")\n }\n\n let rval = 0;\n const range = max - min;\n if (range < 2) {\n return min;\n }\n\n const bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error(\"we cannot generate numbers larger than 53 bits.\");\n }\n const bytesNeeded = Math.ceil(bitsNeeded / 8);\n const mask = Math.pow(2, bitsNeeded) - 1;\n\n const byteArray = new Uint8Array(bytesNeeded);\n crypt.getRandomValues(byteArray);\n\n let p = (bytesNeeded - 1) * 8;\n for (var i = 0; i < bytesNeeded; i++) {\n rval += byteArray[i] * Math.pow(2, p);\n p -= 8;\n }\n\n rval = rval & mask;\n\n if (rval >= range) {\n return create(min, max);\n }\n\n return min + rval;\n\n}\n\nMonster.assignToNamespace('Monster.Math', random);\nexport {Monster, random}\n\n\n\n\n", - "/**\n * @license\n * Copyright 2021 schukai GmbH\n * SPDX-License-Identifier: AGPL-3.0-only or COMMERCIAL\n * @author schukai GmbH\n */\n\n'use strict';\n\nimport {Monster} from './namespace.js';\nimport './types/base.js';\nimport './types/global.js';\nimport './types/id.js';\nimport './types/is.js';\nimport './types/observer.js';\nimport './types/observerlist.js';\nimport './types/proxyobserver.js';\nimport './types/queue.js';\nimport './types/randomid.js';\nimport './types/stack.js';\nimport './types/tokenlist.js';\nimport './types/uniquequeue.js';\nimport './types/validate.js';\nimport './types/version.js';\nimport './math/random.js';\nimport './data/diff.js';\nimport './data/pathfinder.js';\nimport './data/pipe.js';\nimport './data/transformer.js';\nimport './logging/handler.js';\nimport './logging/logentry.js';\nimport './logging/logger.js';\nimport './logging/handler/console.js';\nimport './util/clone.js';\nimport './util/comparator.js';\nimport './util/freeze.js';\nimport './constraints/abstract.js';\nimport './constraints/abstractoperator.js';\nimport './constraints/andoperator.js';\nimport './constraints/invalid.js';\nimport './constraints/isarray.js';\nimport './constraints/isobject.js';\nimport './constraints/oroperator.js';\nimport './constraints/valid.js';\nimport './dom/util.js';\nimport './dom/template.js';\nimport './dom/handle.js';\nimport './dom/assembler.js';\n\n\nMonster.Util.deepFreeze(Monster);\nexport {Monster};\n\nlet rootName\ntry {\n rootName = Monster.Types.getGlobalObject('__MonsterRootName__');\n} catch (e) {\n\n}\n\nif (!rootName) rootName = \"Monster\";\n\nMonster.Types.getGlobal()[rootName] = Monster", - "'use strict';\n\n/**\n * @namespace Monster\n * @author schukai GmbH\n */\n\n\n/**\n * namespace class objects form the basic framework of the namespace administration.\n *\n * all functions, classes and objects of the library hang within the namespace tree.\n *\n * via `obj instanceof Monster.Namespace` it is also easy to check whether it is an object or a namespace.\n *\n * @memberOf Monster\n * @copyright schukai GmbH\n * @since 1.0.0\n */\nclass Namespace {\n\n /**\n *\n * @param namespace\n * @param obj\n */\n constructor(namespace) {\n if (namespace === undefined || typeof namespace !== 'string') {\n throw new Error(\"namespace is not a string\")\n }\n this.namespace = namespace;\n }\n\n /**\n *\n * @returns {string}\n */\n getNamespace() {\n return this.namespace;\n }\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return this.getNamespace();\n }\n}\n\n/**\n * @type {Namespace}\n * @global\n */\nexport const Monster = new Namespace(\"Monster\");\n\n\n/**\n *\n */\nassignToNamespace('Monster', assignToNamespace);\n\n/**\n * To expand monster, the `Monster.assignToNamespace()` method can be used. \n *\n * you must call the method in the monster namespace. this allows you to mount your own classes, objects and functions into the namespace.\n * \n * To avoid confusion and so that you do not accidentally overwrite existing functions, you should use the custom namespace `X`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/namespace.js';\n * function hello() {\n * console.log('Hello World!');\n * }\n * Monster.assignToNamespace(\"Monster.X\",hello)\n * Monster.X.hello(); // ↦ Hello World!\n * </script>\n * \n * ```\n *\n * @param ns\n * @param obj\n * @memberOf Monster\n \n */\nfunction assignToNamespace(ns, ...obj) {\n let current = namespaceFor(ns.split(\".\"));\n\n for (let i = 0, l = obj.length; i < l; i++) {\n current[objectName(obj[i])] = obj[i];\n }\n}\n\n/**\n *\n * @param fn\n * @returns {string|*}\n * @private\n */\nfunction objectName(fn) {\n try {\n\n if (typeof fn !== 'function') {\n throw new Error(\"the first argument is not a function or class.\");\n }\n\n if (fn.hasOwnProperty('name')) {\n return fn.name;\n }\n\n if (\"function\" === typeof fn.toString) {\n let s = fn.toString();\n let f = s.match(/^\\s*function\\s+([^\\s(]+)/);\n if (Array.isArray(f) && typeof f[1] === 'string') {\n return f[1];\n }\n let c = s.match(/^\\s*class\\s+([^\\s(]+)/);\n if (Array.isArray(c) && typeof c[1] === 'string') {\n return c[1];\n }\n }\n\n } catch (e) {\n throw new Error(\"exception \" + e);\n }\n\n throw new Error(\"the name of the class or function cannot be resolved.\");\n}\n\n/**\n *\n * @param parts\n * @returns {Namespace}\n * @private\n */\nfunction namespaceFor(parts) {\n var space = Monster, ns = 'Monster';\n\n for (let i = 0; i < parts.length; i++) {\n\n if (\"Monster\" === parts[i]) {\n continue;\n }\n\n ns += '.' + parts[i];\n\n if (!space.hasOwnProperty(parts[i])) {\n space[parts[i]] = new Namespace(ns);\n }\n\n space = space[parts[i]];\n }\n\n return space;\n}\n\n\nexport {assignToNamespace}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\n\n\n/**\n * This is the base class from which all monster classes are derived.\n *\n * you can call the method via the monster namespace `new Monster.Types.Base()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js';\n * console.log(new Monster.Types.Base())\n * console.log(new Monster.Types.Base())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js';\n * console.log(new Base())\n * console.log(new Base())\n * </script>\n * ```\n *\n * the class was formerly called Object.\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Base extends Object {\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this);\n };\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', Base);\nexport {Monster, Base}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateFunction, validateString, validateObject} from \"./validate.js\";\n\n/**\n * @type {objec}\n * @private\n */\nvar globalReference;\n\n/**\n * @private\n */\n(function () {\n if (typeof globalThis === 'object') {\n globalReference = globalThis;\n return;\n }\n\n Object.defineProperty(Object.prototype, '__monster__', {\n get: function () {\n return this;\n },\n configurable: true\n });\n \n __monster__.globalThis = __monster__;\n delete Object.prototype.__monster__;\n\n globalReference = globalThis;\n\n}());\n\n/**\n * return globalThis\n *\n * if globalThis is not available, it will be polyfilled\n *\n * @since 1.6.0\n * @memberOf Monster/Types\n * @returns {objec} globalThis\n */\nfunction getGlobal() {\n return globalReference;\n}\n\n/**\n * return global object or throw Error\n *\n * you can call the method via the monster namespace `Monster.Types.getGlobalObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js';\n * console.log(Monster.Types.getGlobalObject('document')) // ↦ { }\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js';\n * console.log(getGlobalObject('document')) // ↦ { }\n * </script>\n * ```\n *\n * @since 1.6.0\n * @memberOf Monster/Types\n * @param {string} name\n * @returns {objec}\n * @throws {Error} the object is not defined\n * @throws {TypeError} value is not a object\n * @throws {TypeError} value is not a string\n */\nfunction getGlobalObject(name) {\n validateString(name);\n let o = globalReference?.[name];\n if (typeof o === 'undefined') throw new Error('the object '+name+' is not defined');\n validateObject(o);\n return o;\n}\n\n/**\n * return global function or throw Error\n *\n * you can call the method via the monster namespace `Monster.Types.getGlobalFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js';\n * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { }\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js';\n * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { }\n * </script>\n * ```\n *\n * @since 1.6.0\n * @memberOf Monster/Types\n * @param {string} name\n * @returns {objec}\n * @throws {TypeError} value is not a function\n * @throws {Error} the function is not defined\n * @throws {TypeError} value is not a string\n */\nfunction getGlobalFunction(name) {\n validateString(name);\n let f = globalReference?.[name];\n if (typeof f === 'undefined') throw new Error('the function '+name+' is not defined');\n validateFunction(f);\n return f;\n}\n\n\nMonster.assignToNamespace('Monster.Types', getGlobal, getGlobalObject, getGlobalFunction);\nexport {Monster, getGlobal, getGlobalObject, getGlobalFunction}", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from './base.js';\nimport {validateString} from \"./validate.js\";\n\n/**\n * @private\n * @type {Map<string, integer>}\n */\nlet internalCounter = new Map;\n\n/**\n * with the id class, sequences of ids can be created. for this purpose, an internal counter is incremented for each prefix.\n * thus, the first id with the prefix `myid` will be `myid1` and the second id `myid2`.\n * The ids are the same for every call, for example on a web page.\n *\n * so the ids can also be used for navigation. you just have to take care that the order stays the same.\n *\n * you can call the method via the monster namespace `new Monster.Types.ID()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js';\n * console.log(new Monster.Types.ID())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js';\n * console.log(new ID())\n * </script>\n * ```\n *\n * as of version 1.6.0 there is the new RandomID. this ID class is continuous from now on.\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass ID extends Base {\n\n /**\n * create new object\n */\n constructor(prefix) {\n super();\n\n if (prefix === undefined) {\n prefix = \"id\";\n }\n\n validateString(prefix);\n\n if (!internalCounter.has(prefix)) {\n internalCounter.set(prefix, 1);\n }\n\n let count = internalCounter.get(prefix);\n this.id = prefix + count;\n\n internalCounter.set(prefix, ++count);\n }\n\n /**\n * @return {string}\n */\n toString() {\n return this.id;\n }\n\n}\n\nMonster.assignToNamespace('Monster.Types', ID);\nexport {Monster, ID}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\n\n/**\n * with this function you can check if a value is iterable\n *\n * you can call the method via the monster namespace `Monster.Types.isPrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isIterable(null)) // ↦ false\n * console.log(Monster.Types.isIterable('hello')) // ↦ true\n * console.log(Monster.Types.isIterable([])) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isIterable(null)) // ↦ false\n * console.log(isIterable('hello')) // ↦ true\n * console.log(isIterable([])) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.2.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isIterable(value) {\n if (value === undefined) return false;\n if (value === null) return false;\n return typeof value?.[Symbol.iterator] === 'function';\n}\n\n\n/**\n * checks whether the value passed is a primitive (string, number, boolean, NaN, undefined, null or symbol)\n *\n * you can call the method via the monster namespace `Monster.Types.isPrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isPrimitive('2')) // ↦ false\n * console.log(Monster.Types.isPrimitive([])) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isPrimitive('2')) // ↦ true\n * console.log(isPrimitive([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isPrimitive(value) {\n var type;\n\n if (value === undefined || value === null || value === NaN) {\n return true;\n }\n\n type = typeof value;\n\n if (type === 'string' || type === 'number' || type === 'boolean' || type === 'symbol') {\n return true;\n }\n\n return false;\n}\n\n/**\n * checks whether the value passed is a boolean\n *\n * you can call the method via the monster namespace `Monster.Types.isBoolean()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isBoolean('2')) // ↦ false\n * console.log(Monster.Types.isBoolean([])) // ↦ false\n * console.log(Monster.Types.isBoolean(true)) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isBoolean('2')) // ↦ false\n * console.log(isBoolean([])) // ↦ false\n * console.log(isBoolean(2>4)) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isBoolean(value) {\n\n if (value === true || value === false) {\n return true;\n }\n\n return false;\n}\n\n/**\n * checks whether the value passed is a string\n *\n * you can call the method via the monster namespace `Monster.Types.isString()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isString('2')) // ↦ true\n * console.log(Monster.Types.isString([])) // ↦ false\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isString('2')) // ↦ true\n * console.log(isString([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isString(value) {\n if (value === undefined || typeof value !== 'string') {\n return false;\n }\n return true;\n}\n\n/**\n * checks whether the value passed is a object\n *\n * you can call the method via the monster namespace `Monster.Types.isObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isObject('2')) // ↦ false\n * console.log(Monster.Types.isObject([])) // ↦ false\n * console.log(Monster.Types.isObject({})) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isObject('2')) // ↦ false\n * console.log(isObject([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isObject(value) {\n\n if (isArray(value)) return false;\n if (isPrimitive(value)) return false;\n\n if (typeof value === 'object') {\n return true;\n }\n\n return false;\n}\n\n/**\n * checks whether the value passed is a object and instance of instance\n *\n * you can call the method via the monster namespace `Monster.Types.isInstance()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isInstance('2')) // ↦ false\n * console.log(Monster.Types.isInstance([])) // ↦ false\n * console.log(Monster.Types.isInstance({})) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isInstance('2')) // ↦ false\n * console.log(isInstance([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @param {*} instance\n * @returns {boolean}\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isInstance(value, instance) {\n\n if (!isObject(value)) return false;\n if (!isFunction(instance)) return false;\n if (!instance.hasOwnProperty('prototype')) return false;\n return (value instanceof instance)?true:false; \n\n}\n\n/**\n * checks whether the value passed is a array\n *\n * you can call the method via the monster namespace `Monster.Types.isArray()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isArray('2')) // ↦ false\n * console.log(Monster.Types.isArray([])) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isArray('2')) // ↦ false\n * console.log(isArray([])) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isArray(value) {\n if (Array.isArray(value)) {\n return true;\n }\n return false;\n}\n\n/**\n * checks whether the value passed is a function\n *\n * you can call the method via the monster namespace `Monster.Types.isFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isFunction(()=>{})) // ↦ true\n * console.log(Monster.Types.isFunction('2')) // ↦ false\n * console.log(Monster.Types.isFunction([])) // ↦ false\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isFunction(()=>{})) // ↦ true\n * console.log(isFunction('2')) // ↦ false\n * console.log(isFunction([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isFunction(value) {\n if (isArray(value)) return false;\n if (isPrimitive(value)) return false;\n\n if (typeof value === 'function') {\n return true;\n }\n\n return false;\n\n}\n\n/**\n * checks whether the value passed is an integer\n *\n * you can call the method via the monster namespace `Monster.Types.isFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isInteger(()=>{})) // ↦ true\n * console.log(Monster.Types.isInteger('2')) // ↦ false\n * console.log(Monster.Types.isInteger(2)) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js';\n * console.log(isInteger(()=>{})) // ↦ true\n * console.log(isInteger('2')) // ↦ false\n * console.log(isInteger(2)) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isInteger(value) {\n return Number.isInteger(value);\n}\n\n\nMonster.assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger);\nexport {Monster, isPrimitive, isBoolean, isString, isObject, isInstance, isArray, isFunction, isIterable, isInteger}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {TokenList} from './tokenlist.js';\nimport {isObject} from './is.js';\nimport {Base} from './base.js';\nimport {UniqueQueue} from './uniquequeue.js';\n\n/**\n * an observer manages a callback function\n *\n * you can call the method via the monster namespace `new Monster.Types.Observer()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js';\n * console.log(new Monster.Types.Observer())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js';\n * console.log(Observer())\n * </script>\n * ```\n *\n * the update method is called with the subject object as this pointer. for this reason the callback should not\n * be an arrow function, because it gets the this pointer of its own context.\n *\n * ```\n * <script>\n * Observer(()=>{\n * // this is not subject\n * })\n *\n * Observer(function() {\n * // this is subject\n * })\n * </script>\n * ```\n *\n * additional arguments can be passed to the callback. to do this, simply specify them.\n *\n * ```\n * <script>\n * Observer(function(a, b, c) {\n * console.log(a, b, c); // ↦ \"a\", 2, true \n * }, \"a\", 2, true)\n * </script>\n * ```\n *\n * the callback function must have as many parameters as arguments are given.\n *\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Observer extends Base {\n\n /**\n *\n * @param {function} callback\n * @param {*} args\n */\n constructor(callback, ...args) {\n super();\n\n if (typeof callback !== 'function') {\n throw new Error(\"observer callback must be a function\")\n }\n\n this.callback = callback;\n this.arguments = args;\n this.tags = new TokenList;\n this.queue = new UniqueQueue();\n }\n\n /**\n *\n * @param {string} tag\n * @returns {Observer}\n */\n addTag(tag) {\n this.tags.add(tag);\n return this;\n }\n\n /**\n *\n * @param {string} tag\n * @returns {Observer}\n */\n removeTag(tag) {\n this.tags.remove(tag);\n return this;\n }\n\n /**\n *\n * @returns {Array}\n */\n getTags() {\n return this.tags.entries()\n }\n\n /**\n *\n * @param {string} tag\n * @returns {boolean}\n */\n hasTag(tag) {\n return this.tags.contains(tag)\n }\n\n /**\n *\n * @param {object} subject\n * @returns {Promise}\n */\n update(subject) {\n let self = this;\n\n return new Promise(function (resolve, reject) {\n if (!isObject(subject)) {\n reject(\"subject must be an object\");\n return;\n }\n\n self.queue.add(subject);\n\n setTimeout(() => {\n\n // the queue and the settimeout ensure that an object is not \n // informed of the same change more than once.\n if (self.queue.isEmpty()) {\n resolve();\n return;\n }\n\n let s = self.queue.poll();\n let result = self.callback.apply(s, self.arguments);\n\n if (isObject(result) && result instanceof Promise) {\n result.then(resolve).catch(reject);\n return;\n }\n\n resolve(result);\n }, 0)\n\n });\n\n };\n\n}\n\nMonster.assignToNamespace('Monster.Types', Observer);\nexport {Monster, Observer}\n\n\n\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\nimport {Observer} from \"./observer.js\";\nimport {validateInstance} from \"./validate.js\";\n\n/**\n * With the help of the ObserverList class, observer can be managed.\n *\n * you can call the method via the monster namespace `new Monster.Types.ObserverList()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js';\n * console.log(new Monster.Types.ObserverList())\n * console.log(new Monster.Types.ObserverList())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js';\n * console.log(ObserverList())\n * console.log(ObserverList())\n * </script>\n * ```\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass ObserverList extends Base {\n\n /**\n *\n */\n constructor() {\n super();\n this.observers = [];\n }\n\n /**\n *\n * @param {Observer} observer\n * @return {ObserverList}\n * @throws {TypeError} value is not an instance of Observer\n */\n attach(observer) {\n validateInstance(observer, Observer)\n\n this.observers.push(observer);\n return this;\n };\n\n /**\n *\n * @param {Observer} observer\n * @return {ObserverList}\n * @throws {TypeError} value is not an instance of Observer\n */\n detach(observer) {\n validateInstance(observer, Observer)\n\n var i = 0, l = this.observers.length;\n for (; i < l; i++) {\n if (this.observers[i] === observer) {\n this.observers.splice(i, 1);\n }\n }\n\n return this;\n };\n\n /**\n *\n * @param {Observer} observer\n * @return {boolean}\n * @throws {TypeError} value is not an instance of Observer\n */\n contains(observer) {\n validateInstance(observer, Observer)\n var i = 0, l = this.observers.length;\n for (; i < l; i++) {\n if (this.observers[i] === observer) {\n return true;\n }\n }\n return false;\n };\n\n /**\n *\n * @param subject\n * @return {Promise}\n */\n notify(subject) {\n\n let pomises = []\n\n var i = 0, l = this.observers.length;\n for (; i < l; i++) {\n pomises.push(this.observers[i].update(subject));\n }\n\n return Promise.all(pomises);\n };\n\n}\n\nMonster.assignToNamespace('Monster.Types', ObserverList);\nexport {Monster, ObserverList}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\nimport {validateObject} from \"./validate.js\";\nimport {ObserverList} from \"./observerlist.js\";\nimport {Observer} from \"./observer.js\";\nimport {isObject, isArray, isPrimitive} from \"./is.js\";\n\n/**\n * an observer manages a callback function\n *\n * you can call the method via the monster namespace `new Monster.Types.Observer()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js';\n * console.log(new Monster.Types.ProxyObserver())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js';\n * console.log(new ProxyObserver())\n * </script>\n * ```\n *\n * with the ProxyObserver you can attach observer for observation. with each change at the object to be observed an update takes place.\n *\n * this also applies to nested objects.\n *\n * ```javascript\n * const o = new Observer(function () {\n * if (isObject(this) && this instanceof ProxyObserver) {\n * // do something (this ist ProxyObserver)\n * const subject = this.getSubject();\n * }\n * )\n * \n * let realSubject = {\n * a: {\n * b: {\n * c: true\n * },\n * d: 5\n * }\n * \n * \n * const p = new ProxyObserver(realSubject);\n * p.attachObserver(o);\n * const s = p.getSubject();\n * s.a.b.c = false;\n * ```\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass ProxyObserver extends Base {\n\n /**\n *\n * @param {object} object\n * @throws {TypeError} value is not a object\n */\n constructor(object) {\n super();\n validateObject(object);\n this.realSubject = object\n this.subject = new Proxy(object, getHandler.call(this));\n\n this.objectMap = new WeakMap();\n this.objectMap.set(this.realSubject, this.subject);\n\n this.observers = new ObserverList;\n }\n\n /**\n * get the real object\n *\n * changes to this object are not noticed by the observers, so you can make a large number of changes and inform the observers later.\n *\n * @returns {object}\n */\n getSubject() {\n return this.subject\n }\n\n /**\n * get the proxied object\n *\n * @returns {object}\n */\n getRealSubject() {\n return this.realSubject\n }\n\n /**\n * attach a new observer\n *\n * @param {Observer} observer\n * @returns {ProxyObserver}\n */\n attachObserver(observer) {\n this.observers.attach(observer)\n return this;\n }\n\n /**\n * detach a observer\n *\n * @param {Observer} observer\n * @returns {ProxyObserver}\n */\n detachObserver(observer) {\n this.observers.detach(observer)\n return this;\n }\n\n /**\n * notify all observer\n *\n * @returns {ProxyObserver}\n */\n notifyObservers() {\n this.observers.notify(this);\n return this;\n }\n\n /**\n * @param {Observer} observer\n * @returns {ProxyObserver}\n */\n containsObserver(observer) {\n return this.observers.contains(observer)\n }\n\n}\n\nMonster.assignToNamespace('Monster.Types', ProxyObserver);\nexport {Monster, ProxyObserver}\n\n/**\n *\n * @returns {{defineProperty: (function(*=, *=, *=): *), setPrototypeOf: (function(*, *=): boolean), set: (function(*, *, *, *): boolean), get: ((function(*=, *=, *=): (undefined))|*), deleteProperty: ((function(*, *): (boolean))|*)}}\n * @private\n * @see {@link https://gitlab.schukai.com/-/snippets/49}\n */\nfunction getHandler() {\n\n const proxy = this;\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots\n const handler = {\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver\n get: function (target, key, receiver) {\n\n const value = Reflect.get(target, key, receiver);\n\n if (typeof key === \"symbol\") {\n return value;\n }\n\n if (isPrimitive(value)) {\n return value;\n }\n\n // set value as proxy if object or array\n if ((isArray(value) || isObject(value))) {\n if (proxy.objectMap.has(value)) {\n return proxy.objectMap.get(value);\n } else {\n let p = new Proxy(value, handler);\n proxy.objectMap.set(value, p);\n return p;\n }\n\n }\n\n return value;\n\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver \n set: function (target, key, value, receiver) {\n const result = Reflect.set(target, key, value, receiver);\n if (typeof property !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n return result;\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-delete-p\n deleteProperty: function (target, key) {\n if (key in target) {\n delete target[key];\n\n if (typeof key !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n\n return true;\n }\n return false;\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc\n defineProperty: function (target, key, descriptor) {\n let result = Reflect.defineProperty(target, key, descriptor);\n\n if (typeof key !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n\n return result;\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-setprototypeof-v\n setPrototypeOf: function (target, key) {\n let result = Reflect.setPrototypeOf(object1, key);\n\n if (typeof key !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n return result;\n }\n\n };\n\n\n return handler;\n}\n", - "import {Monster, Base} from './base.js';\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.Queue()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js';\n * console.log(new Monster.Types.Queue())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js';\n * console.log(new Queue())\n * </script>\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Queue extends Base { \n\n /**\n *\n */\n constructor() {\n super();\n this.data = [];\n }\n\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.data.length === 0;\n }\n\n /**\n * Read the element at the front of the queue without removing it.\n *\n * @return {*}\n */\n peek() {\n if (this.isEmpty()) {\n return undefined;\n }\n\n return this.data[0];\n }\n\n /**\n * Add a new element to the end of the queue.\n *\n * @param {*} value\n * @returns {Queue}\n */\n add(value) {\n this.data.push(value)\n return this;\n }\n\n /**\n * remove all entries\n *\n * @returns {Queue}\n */\n clear() {\n this.data = [];\n return this;\n }\n\n /**\n * Remove the element at the front of the queue\n * If the queue is empty, return undefined.\n *\n * @return {*}\n */\n poll() {\n if (this.isEmpty()) {\n return undefined;\n }\n return this.data.shift();\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', Queue);\nexport {Monster, Queue}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, ID} from \"./id.js\";\nimport {getGlobal} from \"./global.js\";\nimport {random} from \"../math/random.js\";\n\n/**\n * @private\n * @type {number}\n */\nlet internalCounter = 0;\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.RandomID()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js';\n * console.log(new Monster.Types.RandomID())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js';\n * console.log(new RandomID())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass RandomID extends ID {\n\n /**\n * create new object\n */\n constructor() {\n super();\n\n internalCounter += 1;\n\n this.id = getGlobal().btoa(random(1, 10000))\n .replace(/=/g, '')\n /** No numbers at the beginning of the ID, because of possible problems with DOM */\n .replace(/^[0-9]+/, 'X') + internalCounter;\n }\n\n}\n\nMonster.assignToNamespace('Monster.Types', RandomID);\nexport {Monster, RandomID}\n", - "import {Monster, Base} from './base.js';\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.Queue()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js';\n * console.log(new Monster.Types.Stack())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js';\n * console.log(new Stack())\n * </script>\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Stack extends Base {\n\n /**\n *\n */\n constructor() {\n super();\n this.data = [];\n }\n\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.data.length === 0;\n }\n\n /**\n * looks at the object at the top of this stack without removing it from the stack.\n *\n * @return {*}\n */\n peek() {\n if (this.isEmpty()) {\n return undefined;\n }\n\n return this.data?.[this.data.length - 1];\n }\n\n /**\n * pushes an item onto the top of this stack.\n *\n * @param {*} value\n * @returns {Queue}\n */\n push(value) {\n this.data.push(value)\n return this;\n }\n\n /**\n * remove all entries\n *\n * @returns {Queue}\n */\n clear() {\n this.data = [];\n return this;\n }\n\n /**\n * removes the object at the top of this stack and returns\n * that object as the value of this function. is the stack empty\n * the return value is undefined.\n *\n * @return {*}\n */\n pop() {\n if (this.isEmpty()) {\n return undefined;\n }\n return this.data.pop();\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', Stack);\nexport {Monster, Stack}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\nimport {isString, isIterable} from '../types/is.js';\nimport {validateString, validateFunction} from '../types/validate.js';\n\n/**\n * A tokenlist allows you to manage tokens (individual character strings such as css classes in an attribute string).\n *\n * The tokenlist offers various functions to manipulate values. For example, you can add, remove or replace a class in a CSS list.\n *\n * you can call the method via the monster namespace `new Monster.Types.TokenList()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js';\n * console.log(new Monster.Types.TokenList(\"myclass row\"))\n * console.log(new Monster.Types.TokenList(\"myclass row\"))\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js';\n * console.log(new TokenList(\"myclass row\"))\n * console.log(new TokenList(\"myclass row\"))\n * </script>\n * ```\n *\n * This class implements the [iteration protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols).\n *\n * ```\n * console.log(typeof new TokenList(\"myclass row\")[Symbol.iterator]); // \"function\"\n * ```\n *\n *\n * @since 1.2.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass TokenList extends Base {\n\n /**\n *\n * @param {array|string|iteratable} init\n */\n constructor(init) {\n super();\n this.tokens = new Set();\n\n if (typeof init !== \"undefined\") {\n this.add(init);\n }\n\n }\n\n /**\n * Iterator protocol\n *\n * @returns {Symbol.iterator}\n */\n getIterator() {\n return this[Symbol.iterator]();\n }\n\n /**\n * Iterator\n *\n * @returns {{next: ((function(): ({value: *, done: boolean}))|*)}}\n */\n [Symbol.iterator]() {\n // Use a new index for each iterator. This makes multiple\n // iterations over the iterable safe for non-trivial cases,\n // such as use of break or nested looping over the same iterable.\n let index = 0;\n let entries = this.entries()\n\n return {\n next: () => {\n if (index < entries.length) {\n return {value: entries?.[index++], done: false}\n } else {\n return {done: true}\n }\n }\n }\n }\n\n /**\n * Returns true if it contains token, otherwise false\n *\n * ```\n * new TokenList(\"start middle end\").contains('start')); // ↦ true\n * new TokenList(\"start middle end\").contains('end')); // ↦ true\n * new TokenList(\"start middle end\").contains('xyz')); // ↦ false\n * new TokenList(\"start middle end\").contains(['end','start','middle'])); // ↦ true\n * new TokenList(\"start middle end\").contains(['end','start','xyz'])); // ↦ false\n * ```\n *\n * @param {array|string|iteratable} value\n * @returns {boolean}\n */\n contains(value) {\n if (isString(value)) {\n value = value.trim()\n let counter = 0;\n value.split(\" \").forEach(token => {\n if (this.tokens.has(token.trim()) === false) return false;\n counter++\n })\n return counter > 0 ? true : false;\n }\n\n if (isIterable(value)) {\n let counter = 0;\n for (let token of value) {\n validateString(token);\n if (this.tokens.has(token.trim()) === false) return false;\n counter++\n }\n return counter > 0 ? true : false;\n }\n\n return false;\n }\n\n /**\n * add tokens\n *\n * ```\n * new TokenList().add(\"abc xyz\").toString(); // ↦ \"abc xyz\"\n * new TokenList().add([\"abc\",\"xyz\"]).toString(); // ↦ \"abc xyz\"\n * new TokenList().add(undefined); // ↦ add nothing\n * ```\n *\n * @param {array|string|iteratable} value\n * @returns {TokenList}\n * @throws {TypeError} unsupported value\n */\n add(value) {\n if (isString(value)) {\n value.split(\" \").forEach(token => {\n this.tokens.add(token.trim());\n })\n } else if (isIterable(value)) {\n for (let token of value) {\n validateString(token);\n this.tokens.add(token.trim());\n }\n } else if (typeof value !== \"undefined\") {\n throw new TypeError(\"unsupported value\");\n }\n\n return this;\n }\n\n /**\n * remove all tokens\n *\n * @returns {TokenList}\n */\n clear() {\n this.tokens.clear();\n return this;\n }\n\n /**\n * Removes token\n *\n * ```\n * new TokenList(\"abc xyz\").remove(\"xyz\").toString(); // ↦ \"abc\"\n * new TokenList(\"abc xyz\").remove([\"xyz\"]).toString(); // ↦ \"abc\"\n * new TokenList(\"abc xyz\").remove(undefined); // ↦ remove nothing\n * ```\n *\n * @param {array|string|iteratable} value\n * @returns {TokenList}\n * @throws {TypeError} unsupported value\n */\n remove(value) {\n if (isString(value)) {\n value.split(\" \").forEach(token => {\n this.tokens.delete(token.trim());\n })\n } else if (isIterable(value)) {\n for (let token of value) {\n validateString(token);\n this.tokens.delete(token.trim());\n }\n } else if (typeof value !== \"undefined\") {\n throw new TypeError(\"unsupported value\");\n }\n\n return this;\n }\n\n /**\n * this method replaces a token with a new token.\n *\n * if the passed token exists, it is replaced with newToken and TokenList is returned.\n * if the token does not exist, newToken is not set and TokenList is returned.\n *\n * @param {string} token\n * @param {string} newToken\n * @returns {TokenList}\n */\n replace(token, newToken) {\n validateString(token);\n validateString(newToken);\n if (!this.contains(token)) {\n return this;\n }\n\n let a = Array.from(this.tokens)\n let i = a.indexOf(token);\n if (i === -1) return this;\n\n a.splice(i, 1, newToken);\n this.tokens = new Set();\n this.add(a);\n\n return this;\n\n\n }\n\n /**\n * Removes token from string. If token doesn't exist it's added.\n * \n * ```\n * new TokenList(\"abc def ghi\").toggle(\"def xyz\").toString(); // ↦ \"abc ghi xyz\"\n * new TokenList(\"abc def ghi\").toggle([\"abc\",\"xyz\"]).toString(); // ↦ \"def ghi xyz\"\n * new TokenList().toggle(undefined); // ↦ nothing\n * ```\n * \n * @param {array|string|iteratable} value\n * @returns {boolean}\n * @throws {TypeError} unsupported value\n */\n toggle(value) {\n\n if (isString(value)) {\n value.split(\" \").forEach(token => {\n toggleValue.call(this, token);\n })\n } else if (isIterable(value)) {\n for (let token of value) {\n toggleValue.call(this, token);\n }\n } else if (typeof value !== \"undefined\") {\n throw new TypeError(\"unsupported value\");\n }\n\n return this;\n\n }\n\n /**\n * returns an array with all tokens\n *\n * @returns {array}\n */\n entries() {\n return Array.from(this.tokens)\n }\n\n /**\n * executes the provided function with each value of the set\n *\n * @param {function} callback\n * @returns {TokenList}\n */\n forEach(callback) {\n validateFunction(callback);\n this.tokens.forEach(callback);\n return this;\n }\n\n /**\n * returns the individual tokens separated by a blank character\n *\n * @returns {string}\n */\n toString() {\n return this.entries().join(' ');\n }\n\n}\n\n/**\n * @private\n * @param token\n * @returns {toggleValue}\n * @throws {Error} must be called with TokenList.call\n */\nfunction toggleValue(token) {\n if (!(this instanceof TokenList)) throw Error(\"must be called with TokenList.call\")\n validateString(token);\n token = token.trim();\n if (this.contains(token)) {\n this.remove(token);\n return this;\n }\n this.add(token);\n return this;\n}\n\nMonster.assignToNamespace('Monster.Types', TokenList);\nexport {Monster, TokenList}\n", - "import {Monster, Queue} from \"./queue.js\";\nimport {validateObject} from \"./validate.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.Queue()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js';\n * console.log(new Monster.Types.UniqueQueue())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js';\n * console.log(new UniqueQueue())\n * </script>\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass UniqueQueue extends Queue {\n\n /**\n *\n */\n constructor() {\n super();\n this.unique = new WeakSet();\n }\n\n /**\n * Add a new element to the end of the queue.\n *\n * @param {object} value\n * @returns {Queue}\n * @throws {TypeError} value is not a object\n */\n add(value) {\n \n validateObject(value);\n \n if (!this.unique.has(value)) {\n this.unique.add(value);\n super.add(value);\n }\n \n return this;\n }\n\n /**\n * remove all entries\n *\n * @returns {Queue}\n */\n clear() {\n super.clear();\n this.unique = new WeakSet;\n return this;\n }\n\n /**\n * Remove the element at the front of the queue\n * If the queue is empty, return undefined.\n *\n * @return {object}\n */\n poll() {\n\n if (this.isEmpty()) {\n return undefined;\n }\n let value = this.data.shift();\n this.unique.delete(value);\n return value;\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', UniqueQueue);\nexport {Monster, UniqueQueue}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {\n isPrimitive,\n isBoolean,\n isString,\n isObject,\n isArray,\n isFunction,\n isIterable,\n isInstance,\n isInteger\n} from './is.js';\n\n/**\n * this method checks if the type matches the primitive type. this function is identical to isPrimitive() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validatePrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError\n * console.log(Monster.Types.validateIterable([])) // ↦ undefined\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateIterable('2')) // ↦ TypeError\n * console.log(validateIterable([])) // ↦ undefined\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.2.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a primitive\n * @see {@link isPrimitive}\n * @see {@link Monster/Types/isPrimitive}\n * @see {@link Monster/Types#isPrimitive}\n */\nfunction validateIterable(value) {\n if (!isIterable(value)) {\n throw new TypeError('value is not iterable')\n }\n}\n\n/**\n * this method checks if the type matches the primitive type. this function is identical to isPrimitive() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validatePrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validatePrimitive('2')) // ↦ undefined\n * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validatePrimitive('2')) // ↦ undefined\n * console.log(validatePrimitive([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a primitive\n * @see {@link isPrimitive}\n * @see {@link Monster/Types/isPrimitive}\n * @see {@link Monster/Types#isPrimitive}\n */\nfunction validatePrimitive(value) {\n if (!isPrimitive(value)) {\n throw new TypeError('value is not a primitive')\n }\n}\n\n/**\n * this method checks if the type matches the boolean type. this function is identical to isBoolean() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateBoolean()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateBoolean(true)) // ↦ undefined\n * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError\n * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateBoolean(false)) // ↦ undefined\n * console.log(validateBoolean('2')) // ↦ TypeError\n * console.log(validateBoolean([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n\n * @throws {TypeError} value is not primitive\n */\nfunction validateBoolean(value) {\n if (!isBoolean(value)) {\n throw new TypeError('value is not a boolean')\n }\n}\n\n/**\n * this method checks if the type matches the string type. this function is identical to isString() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateString()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateString('2')) // ↦ undefined\n * console.log(Monster.Types.validateString([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateString('2')) // ↦ undefined\n * console.log(validateString([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a string\n */\nfunction validateString(value) {\n if (!isString(value)) {\n throw new TypeError('value is not a string')\n }\n}\n\n\n/**\n * this method checks if the type matches the object type. this function is identical to isObject() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateObject({})) // ↦ undefined\n * console.log(Monster.Types.validateObject('2')) // ↦ TypeError\n * console.log(Monster.Types.validateObject([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateObject({})) // ↦ undefined\n * console.log(validateObject('2')) // ↦ TypeError\n * console.log(validateObject([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a object\n */\nfunction validateObject(value) {\n if (!isObject(value)) {\n throw new TypeError('value is not a object')\n }\n}\n\n/**\n * this method checks if the type matches the object instance.\n *\n * you can call the method via the monster namespace `Monster.Types.validateInstance()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateInstance({}, Object)) // ↦ undefined\n * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError\n * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateInstance({}, Object)) // ↦ undefined\n * console.log(validateInstance('2', Object)) // ↦ TypeError\n * console.log(validateInstance([], Object)) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not an instance of\n */\nfunction validateInstance(value, instance) {\n if (!isInstance(value, instance)) {\n let n = \"\";\n if (isObject(instance) || isFunction(instance)) {\n n = instance?.['name']\n }\n\n if (n) {\n n = \" \" + n;\n }\n\n throw new TypeError('value is not an instance of' + n)\n }\n}\n\n/**\n * this method checks if the type matches the array type. this function is identical to isArray() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateArray()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateArray('2')) // ↦ TypeError\n * console.log(Monster.Types.validateArray([])) // ↦ undefined\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateArray('2')) // ↦ TypeError\n * console.log(validateArray([])) // ↦ undefined\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not an array\n */\nfunction validateArray(value) {\n if (!isArray(value)) {\n throw new TypeError('value is not an array')\n }\n}\n\n/**\n * this method checks if the type matches the function type. this function is identical to isFunction() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateFunction(()=>{})) // ↦ undefined\n * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError\n * console.log(Monster.Types.validateFunction([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateFunction(()=>{})) // ↦ undefined\n * console.log(validateFunction('2')) // ↦ TypeError\n * console.log(validateFunction([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a function\n */\nfunction validateFunction(value) {\n if (!isFunction(value)) {\n throw new TypeError('value is not a function')\n }\n}\n\n/**\n * this method checks if the type is an integer. this function is identical to isInteger() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateInteger()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError\n * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError\n * console.log(Monster.Types.validateInteger(2)) // ↦ undefined\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js';\n * console.log(validateInteger(true)) // ↦ TypeError\n * console.log(validateInteger('2')) // ↦ TypeError\n * console.log(validateInteger(2)) // ↦ undefined\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not an integer\n */\nfunction validateInteger(value) {\n if (!isInteger(value)) {\n throw new TypeError('value is not an integer')\n }\n}\n\nMonster.assignToNamespace('Monster.Types', validatePrimitive, validateBoolean, validateString, validateObject, validateArray, validateFunction, validateIterable, validateInteger);\nexport {\n Monster,\n validatePrimitive,\n validateBoolean,\n validateString,\n validateObject,\n validateInstance,\n validateArray,\n validateFunction,\n validateIterable,\n validateInteger\n}\n", - "'use strict';\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\n\n/**\n * the version object contains a sematic version number\n *\n * you can create the object via the monster namespace `new Monster.Types.Version()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js';\n * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3\n * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this class individually.\n *\n * ```\n * <script type=\"module\">\n * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js';\n * console.log(new Version('1.2.3')) // ↦ 1.2.3\n * console.log(new Version('1')) // ↦ 1.0.0\n * </script>\n * ```\n *\n * some examples\n *\n * ```\n * new Monster.Types.Version('1.0.0') // 1.0.0\n * new Monster.Types.Version(1) // 1.0.0\n * new Monster.Types.Version(1, 0, 0) // 1.0.0\n * new Monster.Types.Version('1.2.3', 4, 5) // 1.4.5\n * ```\n *\n * @since 1.0.0\n * @author schukai GmbH\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Version extends Base {\n\n /**\n *\n * @param major\n * @param minor\n * @param patch\n * @throws major is not a number\n * @throws minor is not a number\n * @throws patch is not a number\n */\n constructor(major, minor, patch) {\n super();\n\n if (typeof major === 'string' && minor === undefined && patch === undefined) {\n\n let parts = major.toString().split('.');\n major = parseInt(parts[0] || 0);\n minor = parseInt(parts[1] || 0);\n patch = parseInt(parts[2] || 0);\n }\n\n if (major === undefined) {\n throw new Error(\"major version is undefined\");\n }\n\n if (minor === undefined) {\n minor = 0;\n }\n\n if (patch === undefined) {\n patch = 0;\n }\n\n this.major = parseInt(major);\n this.minor = parseInt(minor);\n this.patch = parseInt(patch);\n\n if (isNaN(this.major)) {\n throw new Error(\"major is not a number\");\n }\n\n if (isNaN(this.minor)) {\n throw new Error(\"minor is not a number\");\n }\n\n if (isNaN(this.patch)) {\n throw new Error(\"patch is not a number\");\n }\n\n }\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return this.major + '.' + this.minor + '.' + this.patch;\n }\n\n /**\n * returns 0 if equal, -1 if the object version is less and 1 if greater\n * then the compared version\n *\n * @param {string|Version} version Version to compare\n * @returns {number}\n */\n compareTo(version) {\n\n if (version instanceof Version) {\n version = version.toString();\n }\n\n if (typeof version !== 'string') {\n throw new Error(\"type exception\");\n }\n\n if (version === this.toString()) {\n return 0;\n }\n\n let a = [this.major, this.minor, this.patch];\n let b = version.split('.');\n let len = Math.max(a.length, b.length);\n\n for (let i = 0; i < len; i += 1) {\n if ((a[i] && !b[i] && parseInt(a[i]) > 0) || (parseInt(a[i]) > parseInt(b[i]))) {\n return 1;\n } else if ((b[i] && !a[i] && parseInt(b[i]) > 0) || (parseInt(a[i]) < parseInt(b[i]))) {\n return -1;\n }\n }\n\n return 0;\n };\n\n}\n\nMonster.assignToNamespace('Monster.Types', Version);\n\n\nlet monsterVersion;\n\n/**\n * Version of monster\n *\n * you can call the method via the monster namespace `Monster.getVersion()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js';\n * console.log(Monster.getVersion())\n * console.log(Monster.getVersion())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js';\n * console.log(getVersion())\n * console.log(getVersion())\n * </script>\n * ```\n *\n * @returns {Monster.Types.Version}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @author schukai GmbH\n * @memberOf Monster\n */\nfunction getVersion() {\n if (monsterVersion instanceof Version) {\n return monsterVersion;\n }\n /**#@+ dont touch, replaced by make with package.json version */\n monsterVersion = new Version('1.6.0')\n /**#@-*/\n return monsterVersion;\n\n}\n\nMonster.assignToNamespace('Monster', getVersion);\nexport {Monster, Version, getVersion}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {isObject, isFunction, isPrimitive, isArray} from '../types/is.js';\nimport {getGlobal} from '../types/global.js';\n\n\n/**\n * with this function, objects can be cloned.\n * the entire object tree is run through.\n *\n * Proxy, Element, HTMLDocument and DocumentFragment instances are not cloned.\n * Global objects such as windows are also not cloned,\n *\n * If an object has a method `getClone()`, this method is used to create the clone.\n *\n * you can call the method via the monster namespace `Monster.Util.clone()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js';\n * console.log(Monster.Util.clone({}))\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js';\n * console.log(clone({}))\n * </script>\n * ```\n *\n *\n * @param {*} obj object to be cloned\n * @returns {*}\n *\n * @since 1.0.0\n * @memberOf Monster/Util\n * @copyright schukai GmbH\n * @throws {Error} unable to clone obj! its type isn't supported.\n */\nfunction clone(obj) {\n\n // typeof null results in 'object'. https://2ality.com/2013/10/typeof-null.html\n if (null === obj) {\n return obj;\n }\n\n // Handle the two simple types, null and undefined\n if (isPrimitive(obj)) {\n return obj;\n }\n \n // Handle the two simple types, null and undefined\n if (isFunction(obj)) {\n return obj;\n }\n\n // Handle Array\n if (isArray(obj)) {\n let copy = [];\n for (var i = 0, len = obj.length; i < len; i++) {\n copy[i] = clone(obj[i]);\n }\n\n return copy;\n }\n\n if (isObject(obj)) {\n\n\n // Handle Date\n if (obj instanceof Date) {\n let copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n\n /** Do not clone DOM nodes */\n if (typeof Element !== 'undefined' && obj instanceof Element) return obj;\n if (typeof HTMLDocument !== 'undefined' && obj instanceof HTMLDocument) return obj;\n if (typeof DocumentFragment !== 'undefined' && obj instanceof DocumentFragment) return obj;\n\n /** Do not clone global objects */\n if (obj === getGlobal()) return obj;\n if (typeof globalContext !== 'undefined' && obj === globalContext) return obj;\n if (typeof window !== 'undefined' && obj === window) return obj;\n if (typeof document !== 'undefined' && obj === document) return obj;\n if (typeof navigator !== 'undefined' && obj === navigator) return obj;\n if (typeof JSON !== 'undefined' && obj === JSON) return obj;\n\n // Handle Proxy-Object\n try {\n // try/catch because possible: TypeError: Function has non-object prototype 'undefined' in instanceof check\n if (obj instanceof Proxy) {\n return obj;\n }\n } catch (e) {\n }\n\n return cloneObject(obj)\n\n }\n\n throw new Error(\"unable to clone obj! its type isn't supported.\");\n}\n\n/**\n *\n * @param {object} obj\n * @returns {object}\n * @private\n */\nfunction cloneObject(obj) {\n var copy;\n\n /** Object has clone method */\n if (typeof obj.hasOwnProperty('getClone') && obj.getClone === 'function') {\n return obj.getClone();\n }\n\n copy = {};\n if (typeof obj.constructor === 'function' &&\n typeof obj.constructor.call === 'function') {\n copy = new obj.constructor();\n }\n\n for (let key in obj) {\n\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n\n if (Monster.Types.isPrimitive(obj[key])) {\n copy[key] = obj[key];\n continue;\n }\n\n copy[key] = clone(obj[key]);\n }\n\n return copy;\n}\n\nMonster.assignToNamespace('Monster.Util', clone);\nexport {Monster, clone}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {isFunction} from '../types/is.js';\n\n/**\n * the comparator allows a comparison function to be abstracted.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js';\n * console.log(new Monster.Util.Comparator())\n * console.log(new Monster.Util.Comparator())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js';\n * console.log(new Util())\n * console.log(new Util())\n * </script>\n * ```\n *\n * the following are some examples of the application of the class.\n *\n * ```\n * new Comparator().lessThanOrEqual(2, 5) // ↦ true\n * new Comparator().greaterThan(4, 2) // ↦ true\n * new Comparator().equal(4, 4) // ↦ true\n * new Comparator().equal(4, 5) // ↦ false\n * ```\n *\n * you can also pass your own comparison function, and thus define the comparison function.\n *\n * ```\n * new Comparator(function (a, b) {\n * if (a.v === b.v) return 0;\n * return a.v < b.v ? -1 : 1;\n * }).equal({v: 2}, {v: 2}); // ↦ true\n * ```\n *\n * @since 1.3.0\n * @memberOf Monster/Util\n */\nclass Comparator extends Base {\n\n /**\n * create new comparator\n *\n * @param {function} callback\n * @throw {TypeError} \"unsupported type\"\n * @throw {TypeError} \"impractical comparison\"\n */\n constructor(callback) {\n super();\n\n if (isFunction(callback)) {\n this.compare = callback\n } else if (callback !== undefined) {\n throw new TypeError(\"unsupported type\")\n } else {\n // default compare function\n this.compare = function (a, b) {\n\n if (typeof a !== typeof b) {\n throw new TypeError(\"impractical comparison\")\n }\n\n if (a === b) {\n return 0;\n }\n return a < b ? -1 : 1;\n };\n }\n\n }\n\n /**\n * changes the order of the operators\n *\n * @return {Comparator}\n */\n reverse() {\n const original = this.compare;\n this.compare = (a, b) => original(b, a);\n return this;\n }\n\n /**\n * Checks if two variables are equal.\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n equal(a, b) {\n return this.compare(a, b) === 0;\n }\n\n\n /**\n * Checks if variable `a` is greater than `b`\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n greaterThan(a, b) {\n return this.compare(a, b) > 0;\n }\n\n /**\n * Checks if variable `a` is greater than or equal to `b`\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n greaterThanOrEqual(a, b) {\n return this.greaterThan(a, b) || this.equal(a, b);\n }\n\n /**\n * Checks if variable `a` is less than or equal to `b`\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n lessThanOrEqual(a, b) {\n return this.lessThan(a, b) || this.equal(a, b);\n }\n\n /**\n * Checks if variable a is less than b\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n lessThan(a, b) {\n return this.compare(a, b) < 0;\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Util', Comparator);\nexport {Monster, Comparator}\n", - "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateObject} from '../types/validate.js';\n\n/**\n * deep freeze a object\n *\n * you can call the method via the monster namespace `Monster.Util.deepFreeze()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/freeze.js';\n * console.log(Monster.Util.deepFreeze({})) \n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/freeze.js';\n * console.log(deepFreeze({})) \n * </script>\n * ```\n *\n * @param {object} obj object to be freeze\n * @since 1.0.0\n * @returns {object}\n * @memberOf Monster/Util\n * @copyright schukai GmbH\n * @throws {TypeError} value is not a object\n */\nfunction deepFreeze(object) {\n \n validateObject(object)\n\n // Retrieve the defined property names of the object\n var propNames = Object.getOwnPropertyNames(object);\n\n // Freeze properties before freezing yourself\n for (let name of propNames) {\n let value = object[name];\n\n object[name] = value && typeof value === \"object\" ?\n deepFreeze(value) : value;\n }\n\n return Object.freeze(object);\n}\n\nMonster.assignToNamespace('Monster.Util', deepFreeze);\nexport {Monster, deepFreeze}\n" + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\nimport {AbstractOperator} from \"./abstractoperator.js\";\n\n/**\n * The AndOperator is used to link several contraints. The constraint is fulfilled if all constraints of the operators are fulfilled.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js';\n * new Monster.Constraint.AndOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js';\n * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js';\n * new AndOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass AndOperator extends AbstractOperator {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n return Promise.all([this.operantA.isValid(value), this.operantB.isValid(value)]);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', AndOperator);\nexport {Monster, AndOperator}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\n\n/**\n * the invalid constraint allows an always invalid query to be performed. this contraint is mainly intended for testing.\n *\n * you can call the method via the monster namespace `new Monster.Constraint.Invalid()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js';\n * new Monster.Constraint.Invalid().catch(()=>console.log(true));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js';\n * new Invalid().catch(()=>console.log(true));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass Invalid extends AbstractConstraint {\n\n /**\n * this method return a rejected promise\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n return Promise.reject(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', Invalid);\nexport {Monster, Invalid}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\nimport {isArray} from \"../types/is.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Constraint.IsObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js';\n * console.log(new Monster.Constraint.IsArray())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js';\n * console.log(new IsArray())\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass IsArray extends AbstractConstraint {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n if(isArray(value)) {\n return Promise.resolve(value);\n }\n\n return Promise.reject(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', IsArray);\nexport {Monster, IsArray}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\nimport {isObject} from \"../types/is.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Constraint.IsObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js';\n * console.log(new Monster.Constraint.IsObject())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js';\n * console.log(new IsObject())\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass IsObject extends AbstractConstraint {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n if (isObject(value)) {\n return Promise.resolve(value);\n }\n\n return Promise.reject(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', IsObject);\nexport {Monster, IsObject}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractOperator} from \"./abstractoperator.js\";\n\n/**\n * The OrOperator is used to link several constraints. The constraint is fulfilled if one of the constraints is fulfilled.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js';\n * new Monster.Constraint.OrOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js';\n * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js';\n * new OrOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass OrOperator extends AbstractOperator {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n var self = this;\n\n return new Promise(function (resolve, reject) {\n let a, b;\n\n self.operantA.isValid(value)\n .then(function () {\n resolve();\n }).catch(function () {\n a = false;\n /** b has already been evaluated and was not true */\n if (b === false) {\n reject();\n }\n });\n\n self.operantB.isValid(value)\n .then(function () {\n resolve();\n }).catch(function () {\n b = false;\n /** b has already been evaluated and was not true */\n if (a === false) {\n reject();\n }\n });\n });\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', OrOperator);\nexport {Monster, OrOperator}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, AbstractConstraint} from \"./abstract.js\";\n\n/**\n * the valid constraint allows an always valid query to be performed. this contraint is mainly intended for testing.\n *\n * you can call the method via the monster namespace `new Monster.Constraint.Valid()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js';\n * new Monster.Constraint.Valid().then(()=>console.log(true));\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js';\n * new Valid().then(()=>console.log(true));\n * </script>\n * ```\n *\n * @since 1.3.0\n * @copyright schukai GmbH\n * @memberOf Monster/Constraints\n */\nclass Valid extends AbstractConstraint {\n\n /**\n * this method return a promise containing the result of the check.\n *\n * @param {*} value\n * @returns {Promise}\n */\n isValid(value) {\n return Promise.resolve(value);\n }\n\n}\n\nMonster.assignToNamespace('Monster.Constraints', Valid);\nexport {Monster, Valid}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\n\nimport {Monster, isArray, isObject} from \"../types/is.js\";\n\n/**\n * With the diff function you can perform the change of one object to another. The result shows the changes of the second object to the first object.\n *\n * The operator `add` means that something has been added to the second object. `delete` means that something has been deleted from the second object compared to the first object.\n *\n * you can call the method via the monster namespace `Monster.Data.Diff()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js';\n * console.log(Monster.Data.Diff(a, b))\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js';\n * console.log(Diff(a, b))\n * </script>\n * ```\n *\n * given are two objects x and y.\n *\n * ```\n * let x = {\n * a: 1,\n * b: \"Hello!\"\n * }\n *\n * let y = {\n * a: 2,\n * c: true\n * }\n * ```\n *\n * These two objects can be compared with each other.\n *\n * ```\n * console.log(Diff(x, y));\n * ```\n *\n * the result is then the following\n *\n * ```\n * [\n * {\n * operator: 'update',\n * path: [ 'a' ],\n * first: { value: 1, type: 'number' },\n * second: { value: 2, type: 'number' }\n * },\n * {\n * operator: 'delete',\n * path: [ 'b' ],\n * first: { value: 'Hello!', type: 'string' }\n * },\n * {\n * operator: 'add',\n * path: [ 'c' ],\n * second: { value: true, type: 'boolean' }\n * }\n * ]\n * ```\n *\n * @param {*} first\n * @param {*} second\n * @return {array}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nfunction Diff(first, second) {\n return doDiff(first, second)\n}\n\n/**\n * @private\n * @param a\n * @param b\n * @param type\n * @return {Set<string>|Set<number>}\n */\nfunction getKeys(a, b, type) {\n if (isArray(type)) {\n const keys = a.length > b.length ? new Array(a.length) : new Array(b.length);\n keys.fill(0);\n return new Set(keys.map((_, i) => i));\n }\n\n return new Set(Object.keys(a).concat(Object.keys(b)));\n}\n\n/**\n * @private\n * @param a\n * @param b\n * @param path\n * @param diff\n * @return {array}\n */\nfunction doDiff(a, b, path, diff) {\n\n let typeA = typeof a\n let typeB = typeof b\n\n const currPath = path || [];\n const currDiff = diff || [];\n\n if (typeA === typeB && typeA === 'object') { // array is object too\n\n getKeys(a, b, typeA).forEach((v) => {\n\n if (!(Object.prototype.hasOwnProperty.call(a, v))) {\n currDiff.push(buildResult(a[v], b[v], 'add', currPath.concat(v)));\n } else if (!(Object.prototype.hasOwnProperty.call(b, v))) {\n currDiff.push(buildResult(a[v], b[v], 'delete', currPath.concat(v)));\n } else {\n doDiff(a[v], b[v], currPath.concat(v), currDiff);\n }\n });\n\n } else {\n\n const o = getOperator(a, b, typeA, typeB);\n if (o !== undefined) {\n currDiff.push(buildResult(a, b, o, path));\n }\n\n }\n\n return currDiff;\n\n}\n\n/**\n *\n * @param {*} a\n * @param {*} b\n * @param {string} operator\n * @param {array} path\n * @return {{path: array, operator: string}}\n * @private\n */\nfunction buildResult(a, b, operator, path) {\n\n const result = {\n operator,\n path,\n };\n\n if (operator !== 'add') {\n result.first = {\n value: a,\n type: typeof a\n };\n\n if (isObject(a)) {\n const name = Object.getPrototypeOf(a)?.constructor?.name;\n if (name !== undefined) {\n result.first.instance = name;\n }\n }\n }\n\n if (operator === 'add' || operator === 'update') {\n result.second = {\n value: b,\n type: typeof b\n };\n\n if (isObject(b)) {\n const name = Object.getPrototypeOf(b)?.constructor?.name;\n if (name !== undefined) {\n result.second.instance = name;\n }\n }\n\n }\n\n return result;\n}\n\n/**\n * @private\n * @param {*} a\n * @param {*} b\n * @return {boolean}\n */\nfunction isNotEqual(a, b) {\n\n if (typeof a !== typeof b) {\n return true;\n }\n\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() !== b.getTime();\n }\n\n return a !== b;\n}\n\n/**\n * @private\n * @param {*} a\n * @param {*} b\n * @return {string|undefined}\n */\nfunction getOperator(a, b) {\n\n /**\n * @type {string|undefined}\n */\n let operator;\n\n /**\n * @type {string}\n */\n let typeA = typeof a;\n\n /**\n * @type {string}\n */\n let typeB = typeof b;\n\n if (typeA === 'undefined' && typeB !== 'undefined') {\n operator = 'add';\n } else if (typeA !== 'undefined' && typeB === 'undefined') {\n operator = 'delete';\n } else if (isNotEqual(a, b)) {\n operator = 'update';\n }\n\n return operator;\n\n}\n\nMonster.assignToNamespace('Monster.Data', Diff);\nexport {Monster, Diff}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {isObject, isArray, isInteger} from '../types/is.js';\nimport {validateString, validateInteger} from '../types/validate.js';\nimport {Base} from '../types/base.js';\nimport {Stack} from \"../types/stack.js\";\n\n/**\n * path separator\n *\n * @private\n * @type {string}\n */\nconst DELIMITER = '.';\n\n/**\n * you can call the method via the monster namespace `new Monster.Data.Pathfinder()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js';\n * console.log(new Monster.Data.Pathfinder())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js';\n * console.log(new Pathfinder())\n * </script>\n * ```\n *\n * With the help of the pathfinder, values can be read and written from an object construct.\n *\n * ```\n * new Pathfinder({\n * a: {\n * b: {\n * f: [\n * {\n * g: false,\n * }\n * ],\n * }\n * }\n * }).getVia(\"a.b.f.0.g\"); // ↦ false\n * ```\n *\n * if a value is not present or has the wrong type, a corresponding exception is thrown.\n *\n * ```\n * new Pathfinder({}).getVia(\"a.b.f.0.g\"); // ↦ Error\n * ```\n *\n * The `Pathfinder.exists()` method can be used to check whether access to the path is possible.\n *\n * ```\n * new Pathfinder({}).exists(\"a.b.f.0.g\"); // ↦ false\n * ```\n *\n * pathfinder can also be used to build object structures. to do this, the `Pathfinder.setVia()` method must be used.\n *\n * ```\n * obj = {};\n * new Pathfinder(obj).setVia('a.b.0.c', true); // ↦ {a:{b:[{c:true}]}}\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nclass Pathfinder extends Base {\n\n /**\n * @param {array|object|Map|Set} value\n * @since 1.4.0\n **/\n constructor(object) {\n super();\n this.object = object;\n }\n\n /**\n *\n * @param {string} path\n * @since 1.4.0\n * @returns {*}\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @throws {Error} unsupported action for this data type\n */\n getVia(path) {\n validateString(path);\n return getValueViaPath(this.object, path);\n }\n\n /**\n *\n * @param {string} path\n * @param {*} value\n * @returns {Pathfinder}\n * @since 1.4.0\n * @throws {TypeError} unsupported type\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @throws {Error} unsupported action for this data type\n */\n setVia(path, value) {\n validateString(path);\n setValueViaPath(this.object, path, value);\n return this;\n }\n\n /**\n * Delete Via Path\n *\n * @param {string} path\n * @returns {Pathfinder}\n * @since 1.6.0\n * @throws {TypeError} unsupported type\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @throws {Error} unsupported action for this data type\n */\n deleteVia(path) {\n validateString(path);\n deleteValueViaPath(this.object, path);\n return this;\n }\n\n /**\n *\n * @param {string} path\n * @return {bool}\n * @throws {TypeError} unsupported type\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not an integer\n * @since 1.4.0\n */\n exists(path) {\n validateString(path);\n try {\n getValueViaPath(this.object, path, true);\n return true;\n } catch (e) {\n\n }\n\n return false;\n }\n\n}\n\nMonster.assignToNamespace('Monster.Data', Pathfinder);\nexport {Monster, Pathfinder}\n\n/**\n *\n * @param {*} object\n * @param [string} path\n * @param [boolean} check \n * @returns {*}\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {Error} unsupported action for this data type\n * @private\n */\nfunction getValueViaPath(object, path, check) {\n\n if (path === \"\") {\n return object;\n }\n\n let parts = path.split(DELIMITER)\n let current = parts.shift();\n\n if (isObject(object) || isArray(object)) {\n\n let anchor;\n if (object instanceof Map || object instanceof WeakMap) {\n anchor = object.get(current);\n\n } else if (object instanceof Set || object instanceof WeakSet) {\n current = parseInt(current);\n validateInteger(current)\n anchor = [...object]?.[current];\n\n } else if (object instanceof WeakRef) {\n throw Error('unsupported action for this data type');\n\n } else if (isArray(object)) {\n current = parseInt(current);\n validateInteger(current)\n anchor = object?.[current];\n } else {\n anchor = object?.[current];\n }\n\n if (isObject(anchor) || isArray(anchor)) {\n return getValueViaPath(anchor, parts.join(DELIMITER), check)\n }\n\n if (parts.length > 0) {\n throw Error(\"the journey is not at its end (\" + parts.join(DELIMITER) + \")\");\n }\n\n if (check === true && !object.hasOwnProperty(current)) {\n throw Error('unknown value');\n }\n\n return anchor;\n\n }\n\n throw TypeError(\"unsupported type\")\n\n}\n\n/**\n *\n * @param object\n * @param path\n * @param value\n * @returns {void}\n * @throws {TypeError} unsupported type\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {Error} unsupported action for this data type\n * @private\n */\nfunction setValueViaPath(object, path, value) {\n\n let parts = path.split(DELIMITER)\n let last = parts.pop();\n let subpath = parts.join(DELIMITER);\n\n let stack = new Stack()\n let current = subpath;\n while (true) {\n\n try {\n getValueViaPath(object, current, true)\n break;\n } catch (e) {\n\n }\n\n stack.push(current);\n parts.pop();\n current = parts.join(DELIMITER);\n\n if (current === \"\") break;\n }\n\n while (!stack.isEmpty()) {\n current = stack.pop();\n let obj = {};\n\n if (!stack.isEmpty()) {\n let n = stack.peek().split(DELIMITER).pop();\n if (isInteger(parseInt(n))) {\n obj = [];\n }\n\n }\n\n\n setValueViaPath(object, current, obj);\n }\n\n let anchor = getValueViaPath(object, subpath);\n\n if (!isObject(object) && !isArray(object)) {\n throw TypeError(\"unsupported type: \" + typeof object);\n }\n\n if (anchor instanceof Map || anchor instanceof WeakMap) {\n anchor.set(last, value);\n } else if (anchor instanceof Set || anchor instanceof WeakSet) {\n anchor.append(value)\n\n } else if (anchor instanceof WeakRef) {\n throw Error('unsupported action for this data type');\n\n } else if (isArray(anchor)) {\n last = parseInt(last);\n validateInteger(last)\n anchor[last] = value;\n } else {\n anchor[last] = value;\n }\n\n return;\n\n}\n\n/**\n *\n * @param object\n * @param path\n * @returns {void}\n * @throws {TypeError} unsupported type\n * @throws {TypeError} unsupported type\n * @throws {Error} the journey is not at its end\n * @throws {Error} unsupported action for this data type\n * @since 1.6.0\n * @private\n */\nfunction deleteValueViaPath(object, path) {\n\n const parts = path.split(DELIMITER)\n let last = parts.pop();\n const subpath = parts.join(DELIMITER);\n\n const anchor = getValueViaPath.call(this, object, subpath);\n\n if (anchor instanceof Map) {\n anchor.delete(last);\n } else if (anchor instanceof Set || anchor instanceof WeakMap || anchor instanceof WeakSet || anchor instanceof WeakRef) {\n throw Error('unsupported action for this data type');\n\n } else if (isArray(anchor)) {\n last = parseInt(last);\n validateInteger(last)\n delete anchor[last];\n } else {\n delete anchor[last];\n }\n\n return;\n\n}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Transformer} from './transformer.js';\nimport {Base} from '../types/base.js';\nimport {validateString} from '../types/validate.js';\n\n\nconst DELIMITER = '|';\n\n/**\n * the pipe class makes it possible to combine several processing steps.\n *\n * you can call the method via the monster namespace `new Monster.Data.Pipe()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js';\n * console.log(new Monster.Data.Pipe())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js';\n * console.log(new Pipe())\n * </script>\n * ```\n *\n * a pipe consists of commands whose input and output are connected with the pipe symbol `|`.\n *\n * with the Pipe, processing steps can be combined. Here, the value of an object is accessed via the pathfinder (path command).\n * the word is then converted to uppercase letters and a prefix Hello is added. the two backslash safe the space char.\n *\n * ```\n * let obj = {\n * a: {\n * b: {\n * c: {\n * d: \"world\"\n * }\n * }\n * }\n * }\n *\n * new Pipe('path:a.b.c.d | toupper | prefix:Hello\\\\ ').run(obj); // ↦ Hello WORLD\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nclass Pipe extends Base {\n\n /**\n *\n * @param {string} pipe a pipe consists of commands whose input and output are connected with the pipe symbol `|`.\n * @throws {TypeError} \n */\n constructor(pipe) {\n super();\n validateString(pipe);\n this.pipe = pipe.split(DELIMITER).map((v) => {\n return new Transformer(v);\n });\n\n }\n\n /**\n * run a pipe\n *\n * @param {*} value\n * @returns {*}\n */\n run(value) {\n return this.pipe.reduce((accumulator, currentValue, currentIndex, array) => {\n return currentValue.run(accumulator);\n }, value);\n }\n}\n\nMonster.assignToNamespace('Monster.Data', Pipe);\nexport {Monster, Pipe}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from '../types/base.js';\nimport {validateString, validatePrimitive, validateFunction, validateInteger} from '../types/validate.js';\nimport {isObject, isString, isArray} from '../types/is.js';\nimport {ID} from '../types/id.js';\nimport {clone} from \"../util/clone.js\";\nimport {Pathfinder} from \"./pathfinder.js\";\n\n/**\n * the transformer class is a swiss army knife for manipulating values. especially in combination with the pipe, processing chains can be built up.\n *\n * you can call the method via the monster namespace `new Monster.Data.Transformer()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js';\n * console.log(new Monster.Data.Transformer())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js';\n * console.log(new Transformer())\n * </script>\n * ```\n *\n * a simple example is the conversion of all characters to lowercase. for this purpose the command tolower must be used.\n * \n * ```\n * let t = new Transformer('tolower').run('ABC'); // ↦ abc\n * ```\n * \n * **all commands**\n * \n * in the following table all commands, parameters and existing aliases are described.\n * \n * | command | parameter | alias | description |\n * |:-------------|:---------------------------|:------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | base64 | | | Converts the value to base64 |\n * | 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 |\n * | empty | | | Return empty String \"\" |\n * | if | statement1:statement2 | ? | Is the ternary operator, the first parameter is the valid statement, the second is the false part. To use the current value in the queue, you can set the value keyword. On the other hand, if you want to have the static string \"value\", you have to put one backslash \\\\ in front of it and write value. the follow values are true: 'on', true, 'true' |\n * | index | key:default | property, key | Fetches a value from an object, an array, a map or a set |\n * | length | | count | Length of the string or entries of an array or object |\n * | nop | | | Do nothing |\n * | path | path | | The access to an object is done via a Pathfinder object |\n * | plaintext | | plain | All HTML tags are removed (*) |\n * | prefix | text | | Adds a prefix |\n * | rawurlencode | | | URL coding |\n * | static | | none | The Arguments value is used and passed to the value. Special characters \\ <space> and : can be quotet by a preceding \\. |\n * | substring | start:length | | Returns a substring |\n * | suffix | text | | Adds a suffix |\n * | tointeger | | | Type conversion to an integer value |\n * | tolower | | strtolower, tolowercase | The input value is converted to lowercase letters |\n * | tostring | | | Type conversion to a string |\n * | toupper | | strtoupper, touppercase | The input value is converted to uppercase letters |\n * | trim | | | Remove spaces at the beginning and end |\n * | ucfirst | | | First character large |\n * | ucwords | | | Any word beginning large |\n * | undefined | | | Return undefined |\n * | uniqid | | | Creates a string with a unique value (**) |\n * \n * (*) for this functionality the extension [jsdom](https://www.npmjs.com/package/jsdom) must be loaded in the nodejs context.\n * \n * ```\n * // polyfill\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n * \n * [\n * 'self',\n * 'document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (global[key] = window[key]));\n * }\n * ```\n * \n * (**) for this command the crypt library is necessary in the nodejs context.\n * \n * ```\n * import * as Crypto from \"@peculiar/webcrypto\";\n * global['crypto'] = new Crypto.Crypto();\n * ```\n * \n * \n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Data\n */\nclass Transformer extends Base {\n /**\n *\n * @param {string} definition\n */\n constructor(definition) {\n super();\n validateString(definition);\n\n this.args = disassemble(definition);\n this.command = this.args.shift()\n this.callbacks = new Map();\n\n }\n\n /**\n *\n * @param {string} name\n * @param {function} callback\n * @returns {Transformer}\n * @throws {TypeError} value is not a string\n * @throws {TypeError} value is not a function\n */\n setCallback(name, callback) {\n validateString(name)\n validateFunction(callback)\n this.callbacks.set(name, callback);\n return this;\n }\n\n /**\n *\n * @param {*} value\n * @returns {*}\n * @throws {Error} unknown command\n * @throws {TypeError} unsupported type\n * @throws {Error} type not supported\n */\n run(value) {\n return transform.apply(this, [value])\n }\n}\n\nMonster.assignToNamespace('Monster.Data', Transformer);\nexport {Monster, Transformer}\n\n/**\n *\n * @param {string} command\n * @returns {array}\n * @private\n */\nfunction disassemble(command) {\n\n validateString(command);\n \n let placeholder = new Map;\n const regex = /((?<pattern>\\\\(?<char>.)){1})/mig;\n\n // The separator for args must be quotable\n // undefined string which should not occur normally and is also not a regex\n let result = command.matchAll(regex)\n \n for (let m of result) {\n let g=m?.['groups'];\n if(!isObject(g)) {\n continue;\n }\n \n let p=g?.['pattern'];\n let c=g?.['char'];\n \n if(p&&c) {\n let r='__'+new ID().toString()+'__';\n placeholder.set(r, c);\n command=command.replace(p,r);\n }\n \n }\n let parts = command.split(':');\n\n parts = parts.map(function (value) {\n let v = value.trim();\n for(let k of placeholder) {\n v= v.replace(k[0], k[1]);\n }\n return v;\n \n \n });\n\n return parts\n}\n\n/**\n * tries to make a string out of value and if this succeeds to return it back\n * \n * @param {*} value\n * @returns {string}\n * @private\n */\nfunction convertToString(value) {\n\n if (isObject(value) && value.hasOwnProperty('toString')) {\n value = value.toString();\n }\n\n validateString(value)\n return value;\n}\n\n/**\n *\n * @param {*} value\n * @returns {*}\n * @private\n * @throws {Error} unknown command\n * @throws {TypeError} unsupported type\n * @throws {Error} type not supported\n */\nfunction transform(value) {\n\n let args = clone(this.args);\n let key\n\n switch (this.command) {\n\n case 'static':\n return this.args.join(':');\n\n case 'tolower':\n case 'strtolower':\n case 'tolowercase':\n validateString(value)\n return value.toLowerCase();\n\n case 'toupper':\n case 'strtoupper':\n case 'touppercase':\n validateString(value)\n return value.toUpperCase();\n\n case 'tostring':\n return \"\" + value;\n\n case 'tointeger':\n let n = parseInt(value);\n validateInteger(n);\n return n\n\n case 'trim':\n validateString(value)\n return value.trim();\n\n case 'rawurlencode':\n validateString(value)\n return encodeURIComponent(value)\n .replace(/!/g, '%21')\n .replace(/'/g, '%27')\n .replace(/\\(/g, '%28')\n .replace(/\\)/g, '%29')\n .replace(/\\*/g, '%2A');\n\n\n case 'call':\n\n /**\n * callback-definition\n * function callback(value, ...args) {\n * return value;\n * }\n */\n\n let callback;\n let callbackName = args.shift();\n\n if (isObject(value) && calue.hasOwnProperty(callbackName)) {\n callback = value[callbackName];\n } else if (this.callbacks.has(callbackName)) {\n callback = this.callbacks.get(callbackName);\n } else if (typeof window === 'object' && window.hasOwnProperty(callbackName)) {\n callback = window[callbackName];\n }\n validateFunction(callback);\n\n args.unshift(value);\n return callback(...args);\n\n case 'plain':\n case 'plaintext':\n validateString(value);\n let doc = new DOMParser().parseFromString(value, 'text/html');\n return doc.body.textContent || \"\";\n\n case 'if':\n case '?':\n\n validatePrimitive(value);\n\n let trueStatement = (args.shift() || undefined);\n let falseStatement = (args.shift() || undefined);\n\n if (trueStatement === 'value') {\n trueStatement = value;\n }\n if (trueStatement === '\\\\value') {\n trueStatement = 'value';\n }\n if (falseStatement === 'value') {\n falseStatement = value;\n }\n if (falseStatement === '\\\\value') {\n falseStatement = 'value';\n }\n\n let condition = ((value !== undefined && value !== '' && value !== 'off' && value !== 'false' && value !== false) || value === 'on' || value === 'true' || value === true);\n return condition ? trueStatement : falseStatement;\n\n\n case 'ucfirst':\n validateString(value);\n\n let firstchar = value.charAt(0).toUpperCase();\n return firstchar + value.substr(1);\n case 'ucwords':\n validateString(value);\n\n return value.replace(/^([a-z\\u00E0-\\u00FC])|\\s+([a-z\\u00E0-\\u00FC])/g, function (v) {\n return v.toUpperCase();\n });\n\n case 'count':\n case 'length':\n\n if ((isString(value) || isObject(value) || isArray(value)) && value.hasOwnProperty('length')) {\n return value.length;\n }\n\n throw new TypeError(\"unsupported type\");\n\n case 'base64':\n convertToString(value);\n return btoa(value);\n\n case 'empty':\n return '';\n\n case 'undefined':\n return undefined;\n\n case 'prefix':\n validateString(value);\n let prefix = args?.[0];\n return prefix + value;\n\n case 'suffix':\n validateString(value);\n let suffix = args?.[0];\n return value + suffix;\n\n case 'uniqid':\n return (new ID()).toString();\n\n case 'key':\n case 'property':\n case 'index':\n\n key = (args.shift() || 'undefined');\n let defaultValue = (args.shift() || '');\n\n if (value instanceof Map) {\n if(!value.has(key)) {\n return defaultValue;\n }\n return value.get(key);\n }\n\n if (isObject(value)||isArray(value)) {\n\n if (value?.[key]) {\n return value?.[key];\n }\n\n return defaultValue;\n }\n\n throw new Error(\"type not supported\")\n\n case 'path':\n\n key = (args.shift() || 'undefined');\n return new Pathfinder(value).getVia(key);\n \n \n case 'substring':\n\n validateString(value);\n \n let start = parseInt(args[0]) || 0;\n let end = (parseInt(args[1]) || 0) + start;\n\n return value.substring(start, end);\n \n case 'nop':\n return value;\n\n default:\n throw new Error(\"unknown command\")\n }\n\n return value;\n}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {validateInstance, validateString} from \"../types/validate.js\";\nimport {getGlobalFunction} from \"../types/global.js\";\nimport {ProxyObserver} from \"../types/proxyobserver.js\";\n\n\n/**\n * attribute prefix\n * \n * @type {string}\n * @memberOf Monster/DOM\n */\nconst ATTRIBUTEPREFIX = \"data-monster-\";\n\n/**\n * you can call the method via the monster namespace `new Monster.DOM.Assembler()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js';\n * console.log(new Monster.DOM.Assembler())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js';\n * console.log(new Assembler())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n */\nclass Assembler extends Base {\n\n /**\n * @param {DocumentFragment} fragment\n * @throws {TypeError} value is not an instance of\n * @throws {TypeError} value is not a function\n * @throws {Error} the function is not defined\n */\n constructor(fragment) {\n super();\n this.attributePrefix = ATTRIBUTEPREFIX;\n validateInstance(fragment, getGlobalFunction('DocumentFragment'));\n this.fragment = fragment;\n }\n\n /**\n *\n * @param {string} prefix\n * @returns {Assembler}\n * @throws {TypeError} value is not a string\n */\n setAttributePrefix(prefix) {\n validateString(prefix);\n this.attributePrefix = prefix;\n return this;\n }\n\n /**\n *\n * @returns {string}\n */\n getAttributePrefix() {\n return this.attributePrefix;\n }\n\n /**\n *\n * @param {ProxyObserver|undefined} data\n * @return {DocumentFragment}\n * @throws {TypeError} value is not an instance of\n */\n createDocumentFragment(data) {\n\n if (data === undefined) {\n data = new ProxyObserver({});\n }\n\n validateInstance(data, ProxyObserver);\n let fragment = this.fragment.cloneNode(true);\n return fragment;\n }\n\n}\n\nMonster.assignToNamespace('Monster.DOM', Assembler);\nexport {Monster, ATTRIBUTEPREFIX, Assembler}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {getGlobalObject} from \"../types/global.js\";\nimport {Monster, validateFunction} from \"../types/validate.js\";\n\n\n/**\n * you can call the method via the monster namespace `new Monster.DOM.Element()`.\n *\n * ```\n * <script type=\"module\">\n * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js';\n * console.log(new Monster.DOM.CustomElement())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js';\n * console.log(new CustomElement())\n * </script>\n * ```\n *\n * @since 1.7.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n */\nclass CustomElement extends HTMLElement {\n constructor() {\n super();\n }\n\n /**\n * \n * @return {string}\n * @throws {Error} the method getTag must be overwritten by the derived class.\n */\n static getTag() {\n throw new Error(\"the method getTag must be overwritten by the derived class.\");\n }\n}\n\n/**\n * @param {CustomElement} element\n * @return {void}\n * @since 1.7.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n */\nfunction registerCustomElement(element) {\n validateFunction(element);\n getGlobalObject('customElements').define(element.getTag(), element);\n return;\n}\n\nMonster.assignToNamespace('Monster.DOM', CustomElement, registerCustomElement);\nexport {Monster, registerCustomElement, CustomElement}", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {Stack} from \"../types/stack.js\";\nimport {validateInstance} from \"../types/validate.js\";\nimport {ProxyObserver} from \"../types/proxyobserver.js\";\nimport {Observer} from \"../types/observer.js\";\nimport {getGlobalFunction, getGlobalObject} from \"../types/global.js\";\nimport {isInstance} from \"../types/is.js\";\nimport {ATTRIBUTEPREFIX} from \"./assembler.js\"\nimport {ID} from \"../types/id.js\";\n\n/**\n * @private\n * @type {Symbol}\n */\nconst MONSTERDOMHANDLE = Symbol('MonsterHandle');\n\n/**\n * you can call the method via the monster namespace `new Monster.DOM.Handle()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js';\n * console.log(new Monster.DOM.Handle())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js';\n * console.log(new Handle())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster.DOM\n */\nclass Handle extends Base {\n /**\n *\n * @param {ProxyObserver} data\n */\n constructor(data) {\n super();\n\n let self = this;\n\n self.id = new ID();\n\n validateInstance(data, ProxyObserver);\n\n this.data = data\n\n this.mutationObserver = createMutationObserver.call(this);\n this.dataObserver = createDataObserver.call(this);\n this.data.attachObserver(this.dataObserver);\n\n this.nodes = new WeakSet\n this.updates = new Stack();\n\n }\n\n /**\n * @return {void}\n */\n update() {\n return;\n }\n\n /**\n *\n * @param {HTMLElement|Document} node\n * @return {Handle}\n */\n remove(node) {\n\n if (isInstance(node, getGlobalFunction('Document'))) {\n node = node.firstElementChild\n }\n\n validateInstance(node, getGlobalFunction('HTMLElement'))\n\n if (!this.nodes.has(node)) {\n return this;\n }\n\n this.mutationObserver.disconnect(node);\n\n delete node.dataset[MONSTERDOMHANDLE]\n node.removeAttribute(ATTRIBUTEPREFIX + \"handler\");\n\n return this;\n\n }\n\n /**\n *\n * @param {HTMLElement|Document} node\n * @return {Handle}\n */\n append(node) {\n\n if (isInstance(node, getGlobalFunction('Document'))) {\n node = node.firstElementChild\n }\n\n validateInstance(node, getGlobalFunction('HTMLElement'))\n\n if (this.nodes.has(node)) {\n return this;\n }\n\n node.dataset[MONSTERDOMHANDLE] = this;\n node.setAttribute(ATTRIBUTEPREFIX + \"handler\", true);\n\n this.mutationObserver.observe(node, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true,\n characterDataOldValue: true,\n attributeOldValue: true\n });\n\n this.nodes.add(node);\n\n return this;\n\n }\n}\n\n/**\n *\n * @private\n * @return {Observer}\n */\nfunction createDataObserver() {\n const self = this;\n\n return new Observer(() => {\n self.update();\n });\n}\n\n/**\n *\n * @private\n * @return {MutationObserver}\n */\nfunction createMutationObserver() {\n\n const self = this;\n\n /**\n * @private\n * @type {MutationObserver}\n */\n const MutationObserver = getGlobalFunction('MutationObserver');\n\n // @link https://developer.mozilla.org/en/docs/Web/API/MutationObserver\n return new MutationObserver((mutationsList, observer) => {\n\n for (const mutation of mutationsList) {\n self.updates.push(mutation);\n }\n\n self.update();\n }\n )\n\n}\n\n/**\n * get the handle of a node\n *\n * if a node is specified without a handler, a recursive search upwards is performed until the corresponding\n * handle is found, or undefined is returned.\n *\n * you can call the method via the monster namespace `Monster.DOM.getHandleFromNode()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js';\n * console.log(Monster.DOM.getHandleFromNode())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js';\n * console.log(getHandleFromNode())\n * </script>\n * ```\n *\n * @param {Node} node\n * @return {Handle|undefined}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {TypeError} value is not an instance of Node\n */\nfunction getHandleFromNode(node) {\n validateInstance(node, getGlobalFunction('Node'));\n\n let handle = node.dataset?.[MONSTERDOMHANDLE];\n if (handle === undefined) {\n let parentNode = node?.['parentNode'];\n if (isInstance(parentNode, getGlobalFunction('Node'))) {\n return getHandleFromNode(parentNode)\n }\n }\n\n return handle;\n}\n\nMonster.assignToNamespace('Monster.DOM', getHandleFromNode, Handle);\nexport {Monster, getHandleFromNode, Handle}\n\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {getGlobalFunction} from '../types/global.js';\nimport {validateInstance} from \"../types/validate.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.DOM.Template()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js';\n * console.log(new Monster.DOM.Template())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js';\n * console.log(new Template())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n */\nclass Template extends Base {\n /**\n *\n * @param {HTMLTemplateElement} template\n * @throws {TypeError} value is not an instance of\n * @throws {TypeError} value is not a function\n * @throws {Error} the function is not defined\n */\n constructor(template) {\n super();\n validateInstance(template, getGlobalFunction('HTMLTemplateElement'));\n this.template = template;\n }\n\n /**\n *\n * @returns {HTMLTemplateElement}\n */\n getTemplateElement() {\n return this.template;\n }\n\n /**\n *\n * @return {DocumentFragment}\n * @throws {TypeError} value is not an instance of\n */\n createDocumentFragment() {\n return this.template.content.cloneNode(true);\n }\n\n}\n\n\n\nMonster.assignToNamespace('Monster.DOM', Template);\nexport {Monster, Template}\n\n\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, getGlobal} from \"../types/global.js\";\nimport {validateString} from \"../types/validate.js\";\n\n\n/**\n * this method fetches the document object\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js';\n * console.log(Monster.DOM.getDocument())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js';\n * console.log(getDocument())\n * </script>\n * ```\n *\n * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).\n *\n * ```\n * import {JSDOM} from \"jsdom\"\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n *\n * [\n * 'self',\n * 'document',\n * 'Document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (getGlobal()[key] = window[key]));\n * }\n * ```\n *\n * @returns {object}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {Error} not supported environment\n */\nfunction getDocument() {\n let document = getGlobal()?.['document'];\n if (typeof document !== 'object') {\n throw new Error(\"not supported environment\")\n }\n\n return document;\n}\n\n/**\n * this method fetches the window object\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js';\n * console.log(Monster.DOM.getWindow())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js';\n * console.log(getWindow(null))\n * </script>\n * ```\n *\n * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).\n *\n * ```\n * import {JSDOM} from \"jsdom\"\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n *\n * getGlobal()['window']=window;\n * \n * [\n * 'self',\n * 'document',\n * 'Document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (getGlobal()[key] = window[key]));\n * }\n * ```\n *\n * @returns {object}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {Error} not supported environment\n */\nfunction getWindow() {\n let window = getGlobal()?.['window'];\n if (typeof window !== 'object') {\n throw new Error(\"not supported environment\")\n }\n\n return window;\n}\n\n\n/**\n *\n *\n * this method fetches the document object\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js';\n * console.log(Monster.DOM.getDocumentFragmentFromString())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js';\n * console.log(getDocumentFragmentFromString('<div></div>'))\n * </script>\n * ```\n *\n * in nodejs this functionality can be performed with [jsdom](https://www.npmjs.com/package/jsdom).\n *\n * ```\n * import {JSDOM} from \"jsdom\"\n * if (typeof window !== \"object\") {\n * const {window} = new JSDOM('', {\n * url: 'http://example.com/',\n * pretendToBeVisual: true\n * });\n *\n * [\n * 'self',\n * 'document',\n * 'Document',\n * 'Node',\n * 'Element',\n * 'HTMLElement',\n * 'DocumentFragment',\n * 'DOMParser',\n * 'XMLSerializer',\n * 'NodeFilter',\n * 'InputEvent',\n * 'CustomEvent'\n * ].forEach(key => (getGlobal()[key] = window[key]));\n * }\n * ```\n *\n * @returns {DocumentFragment}\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/DOM\n * @throws {Error} not supported environment\n * @throws {TypeError} value is not a string\n */\nfunction getDocumentFragmentFromString(html) {\n validateString(html);\n\n const document = getDocument();\n const template = document.createElement('template');\n template.innerHTML = html;\n \n return template.content;\n}\n\n\nMonster.assignToNamespace('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString);\nexport {Monster, getWindow, getDocument, getDocumentFragmentFromString}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from '../types/base.js';\nimport {ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN} from \"./logger.js\";\nimport {LogEntry} from \"./logentry.js\";\nimport {validateInstance, validateInteger} from \"../types/validate.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.Handler()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js';\n * console.log(new Monster.Logging.Handler())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js';\n * console.log(new Handler())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging\n */\nclass Handler extends Base {\n constructor() {\n super();\n\n /**\n * Loglevel\n * \n * @type {integer} \n */\n this.loglevel = OFF;\n }\n\n /**\n * this is the central log function. this method must be\n * overwritten by derived handlers with their own logic.\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {LogEntry} entry\n * @returns {boolean}\n */\n log(entry) {\n validateInstance(entry, LogEntry);\n\n if (this.loglevel < entry.getLogLevel()) {\n return false;\n }\n\n return true;\n }\n\n /**\n * set loglevel\n *\n * @param {integer} loglevel\n * @returns {Handler}\n * @since 1.5.0\n */\n setLogLevel(loglevel) {\n validateInteger(loglevel)\n this.loglevel = loglevel;\n return this;\n }\n\n /**\n * get loglevel\n *\n * @returns {integer}\n * @since 1.5.0\n */\n getLogLevel() {\n return this.loglevel;\n }\n\n /**\n * Set log level to All\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setAll() {\n this.setLogLevel(ALL);\n return this;\n };\n\n /**\n * Set log level to Trace\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setTrace() {\n this.setLogLevel(TRACE);\n return this;\n };\n\n /**\n * Set log level to Debug\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setDebug() {\n this.setLogLevel(DEBUG);\n return this;\n };\n\n /**\n * Set log level to Info\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setInfo() {\n this.setLogLevel(INFO);\n return this;\n };\n\n /**\n * Set log level to Warn\n *\n * @returns {undefined}\n * @since 1.5.0\n */\n setWarn() {\n this.setLogLevel(WARN);\n return this;\n };\n\n /**\n * Set log level to Error\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setError() {\n this.setLogLevel(ERROR);\n return this;\n };\n\n /**\n * Set log level to Fatal\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setFatal() {\n this.setLogLevel(FATAL);\n return this;\n };\n\n\n /**\n * Set log level to Off\n *\n * @returns {Handler}\n * @since 1.5.0\n */\n setOff() {\n this.setLogLevel(OFF);\n return this;\n };\n\n\n}\n\n\nMonster.assignToNamespace('Monster.Logging', Handler);\nexport {Monster, Handler};\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../../namespace.js';\nimport {Base} from '../../types/base.js';\nimport {Handler} from '../../logging/handler.js';\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.Handler.ConsoleHandler()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler/console.js';\n * console.log(new Monster.Logging.Handler.ConsoleHandler())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler/console.js';\n * console.log(new ConsoleHandler())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging/Handler\n */\nclass ConsoleHandler extends Base {\n constructor() {\n super();\n }\n}\n\n\nMonster.assignToNamespace('Monster.Logging', ConsoleHandler);\nexport {Monster, Handler};\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateInteger} from '../types/validate.js';\nimport {Base} from '../types/base.js';\n\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.LogEntry()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js';\n * console.log(new Monster.Logging.LogEntry())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js';\n * console.log(new LogEntry())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging\n */\nclass LogEntry extends Base {\n /**\n *\n * @param {int} loglevel\n * @param {*} args\n */\n constructor(loglevel, ...args) {\n super();\n validateInteger(loglevel);\n\n this.loglevel = loglevel\n this.arguments = args\n }\n\n /**\n *\n * @returns {integerr}\n */\n getLogLevel() {\n return this.loglevel\n }\n\n /**\n *\n * @returns {array}\n */\n getArguments() {\n return this.arguments\n }\n\n}\n\nMonster.assignToNamespace('Monster.Logging', LogEntry);\nexport {Monster, LogEntry}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateInteger, validateObject, validateString} from '../types/validate.js';\nimport {Handler} from '../logging/handler.js';\nimport {LogEntry} from '../logging/logentry.js';\nimport {Base} from '../types/base.js';\n\n\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst ALL = 255;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst TRACE = 64;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst DEBUG = 32;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst INFO = 16;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst WARN = 8;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst ERROR = 4;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst FATAL = 2;\n/**\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF\n * @type {number}\n * @memberOf Monster/Logging\n */\nconst OFF = 0;\n\n/**\n * you can call the method via the monster namespace `new Monster.Logging.Logger()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js';\n * console.log(new Monster.Logging.Logger())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js';\n * console.log(new Logger())\n * </script>\n * ```\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Logging\n */\nclass Logger extends Base {\n\n /**\n *\n */\n constructor() {\n super();\n this.handler = new Set;\n }\n\n /**\n *\n * @param {Handler} handler\n * @returns {Logger}\n * @throws {Error} the handler must be an instance of Handler\n */\n addHandler(handler) {\n validateObject(handler)\n if (!(handler instanceof Handler)) {\n throw new Error(\"the handler must be an instance of Handler\")\n }\n\n this.handler.add(handler)\n return this;\n }\n\n /**\n *\n * @param {Handler} handler\n * @returns {Logger}\n * @throws {Error} the handler must be an instance of Handler\n */\n removeHandler(handler) {\n validateObject(handler)\n if (!(handler instanceof Handler)) {\n throw new Error(\"the handler must be an instance of Handler\")\n }\n\n this.handler.delete(handler);\n return this;\n }\n\n /**\n * log Trace message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logTrace() {\n triggerLog.apply(this, [TRACE, ...arguments]);\n return this;\n };\n\n /**\n * log Debug message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logDebug() {\n triggerLog.apply(this, [DEBUG, ...arguments]);\n return this;\n };\n\n /**\n * log Info message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logInfo() {\n triggerLog.apply(this, [INFO, ...arguments]);\n return this;\n };\n\n /**\n * log Warn message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logWarn() {\n triggerLog.apply(this, [WARN, ...arguments]);\n return this;\n };\n\n /**\n * log Error message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logError() {\n triggerLog.apply(this, [ERROR, ...arguments]);\n return this;\n };\n\n /**\n * log Fatal message\n *\n * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00;\n *\n * @param {*} arguments\n * @returns {Logger}\n * @since 1.5.0\n */\n logFatal() {\n triggerLog.apply(this, [FATAL, ...arguments]);\n return this;\n };\n\n\n /**\n * Labels\n *\n * @param {integer} level\n * @returns {string}\n */\n getLabel(level) {\n validateInteger(level);\n\n if (level === ALL) return 'ALL';\n if (level === TRACE) return 'TRACE';\n if (level === DEBUG) return 'DEBUG';\n if (level === INFO) return 'INFO';\n if (level === WARN) return 'WARN';\n if (level === ERROR) return 'ERROR';\n if (level === FATAL) return 'FATAL';\n if (level === OFF) return 'OFF';\n\n return 'unknown';\n };\n\n /**\n * Level\n *\n * @param {string} label\n * @returns {integer}\n */\n getLevel(label) {\n validateString(label);\n\n if (label === 'ALL') return ALL;\n if (label === 'TRACE') return TRACE;\n if (label === 'DEBUG') return DEBUG;\n if (label === 'INFO') return INFO;\n if (label === 'WARN') return WARN;\n if (label === 'ERROR') return ERROR;\n if (label === 'FATAL') return FATAL;\n if (label === 'OFF') return OFF;\n\n return 0;\n };\n\n\n}\n\nMonster.assignToNamespace('Monster.Logging', Logger);\nexport {Monster, Logger, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF};\n\n\n/**\n * Log triggern\n *\n * @param {integer} loglevel\n * @param {*} args\n * @returns {Logger}\n * @private\n */\nfunction triggerLog(loglevel, ...args) {\n var logger = this;\n\n for (let handler of logger.handler) {\n handler.log(new LogEntry(loglevel, args))\n }\n\n return logger;\n\n}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\n\nimport {Monster, getGlobal} from '../types/global.js';\n\n\n/**\n * this function uses crypt and returns a random number.\n *\n * you can call the method via the monster namespace `Monster.Math.random()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js';\n * console.log(Monster.Math.random(1,10)) // ↦ 5\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js';\n * console.log(random(1,10)) // ↦ 5\n * </script>\n * ```\n *\n * @param {number} min starting value of the definition set (default is 0)\n * @param {number} max end value of the definition set (default is 1000000000)\n * @returns {number}\n * @memberOf Monster/Math\n\n * @since 1.0.0\n * @copyright schukai GmbH\n */\nfunction random(min, max) {\n\n if (min === undefined) {\n min = 0;\n }\n if (max === undefined) {\n max = MAX;\n }\n\n if (max < min) {\n throw new Error(\"max must be greater than min\");\n }\n\n return Math.round(create(min, max));\n\n}\n\n/**\n * @private\n * @type {number}\n */\nvar MAX = 1000000000;\n\n\nMath.log2 = Math.log2 || function (n) {\n return Math.log(n) / Math.log(2);\n};\n\n/**\n *\n * @param min\n * @param max\n * @returns {*}\n * @private\n */\nfunction create(min, max) {\n let crypt;\n let globalReference = getGlobal();\n\n crypt = globalReference?.['crypto'] || globalReference?.['msCrypto'] || globalReference?.['crypto'] || undefined;\n\n if (typeof crypt === \"undefined\") {\n throw new Error(\"missing crypt\")\n }\n\n let rval = 0;\n const range = max - min;\n if (range < 2) {\n return min;\n }\n\n const bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error(\"we cannot generate numbers larger than 53 bits.\");\n }\n const bytesNeeded = Math.ceil(bitsNeeded / 8);\n const mask = Math.pow(2, bitsNeeded) - 1;\n\n const byteArray = new Uint8Array(bytesNeeded);\n crypt.getRandomValues(byteArray);\n\n let p = (bytesNeeded - 1) * 8;\n for (var i = 0; i < bytesNeeded; i++) {\n rval += byteArray[i] * Math.pow(2, p);\n p -= 8;\n }\n\n rval = rval & mask;\n\n if (rval >= range) {\n return create(min, max);\n }\n\n return min + rval;\n\n}\n\nMonster.assignToNamespace('Monster.Math', random);\nexport {Monster, random}\n\n\n\n\n", + "/**\n * @license\n * Copyright 2021 schukai GmbH\n * SPDX-License-Identifier: AGPL-3.0-only or COMMERCIAL\n * @author schukai GmbH\n */\n\n'use strict';\n\nimport {Monster} from './namespace.js';\nimport './types/base.js';\nimport './types/global.js';\nimport './types/id.js';\nimport './types/is.js';\nimport './types/observer.js';\nimport './types/observerlist.js';\nimport './types/proxyobserver.js';\nimport './types/queue.js';\nimport './types/randomid.js';\nimport './types/stack.js';\nimport './types/tokenlist.js';\nimport './types/uniquequeue.js';\nimport './types/validate.js';\nimport './types/version.js';\nimport './math/random.js';\nimport './data/diff.js';\nimport './data/pathfinder.js';\nimport './data/pipe.js';\nimport './data/transformer.js';\nimport './logging/handler.js';\nimport './logging/logentry.js';\nimport './logging/logger.js';\nimport './logging/handler/console.js';\nimport './util/clone.js';\nimport './util/comparator.js';\nimport './util/freeze.js';\nimport './constraints/abstract.js';\nimport './constraints/abstractoperator.js';\nimport './constraints/andoperator.js';\nimport './constraints/invalid.js';\nimport './constraints/isarray.js';\nimport './constraints/isobject.js';\nimport './constraints/oroperator.js';\nimport './constraints/valid.js';\nimport './dom/util.js';\nimport './dom/template.js';\nimport './dom/handle.js';\nimport './dom/assembler.js';\nimport './dom/customelement.js';\n\n\nMonster.Util.deepFreeze(Monster);\nexport {Monster};\n\nlet rootName\ntry {\n rootName = Monster.Types.getGlobalObject('__MonsterRootName__');\n} catch (e) {\n\n}\n\nif (!rootName) rootName = \"Monster\";\n\nMonster.Types.getGlobal()[rootName] = Monster", + "'use strict';\n\n/**\n * @namespace Monster\n * @author schukai GmbH\n */\n\n\n/**\n * namespace class objects form the basic framework of the namespace administration.\n *\n * all functions, classes and objects of the library hang within the namespace tree.\n *\n * via `obj instanceof Monster.Namespace` it is also easy to check whether it is an object or a namespace.\n *\n * @memberOf Monster\n * @copyright schukai GmbH\n * @since 1.0.0\n */\nclass Namespace {\n\n /**\n *\n * @param namespace\n * @param obj\n */\n constructor(namespace) {\n if (namespace === undefined || typeof namespace !== 'string') {\n throw new Error(\"namespace is not a string\")\n }\n this.namespace = namespace;\n }\n\n /**\n *\n * @returns {string}\n */\n getNamespace() {\n return this.namespace;\n }\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return this.getNamespace();\n }\n}\n\n/**\n * @type {Namespace}\n * @global\n */\nexport const Monster = new Namespace(\"Monster\");\n\n\n/**\n *\n */\nassignToNamespace('Monster', assignToNamespace);\n\n/**\n * To expand monster, the `Monster.assignToNamespace()` method can be used. \n *\n * you must call the method in the monster namespace. this allows you to mount your own classes, objects and functions into the namespace.\n * \n * To avoid confusion and so that you do not accidentally overwrite existing functions, you should use the custom namespace `X`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/namespace.js';\n * function hello() {\n * console.log('Hello World!');\n * }\n * Monster.assignToNamespace(\"Monster.X\",hello)\n * Monster.X.hello(); // ↦ Hello World!\n * </script>\n * \n * ```\n *\n * @param ns\n * @param obj\n * @memberOf Monster\n \n */\nfunction assignToNamespace(ns, ...obj) {\n let current = namespaceFor(ns.split(\".\"));\n\n for (let i = 0, l = obj.length; i < l; i++) {\n current[objectName(obj[i])] = obj[i];\n }\n}\n\n/**\n *\n * @param fn\n * @returns {string|*}\n * @private\n */\nfunction objectName(fn) {\n try {\n\n if (typeof fn !== 'function') {\n throw new Error(\"the first argument is not a function or class.\");\n }\n\n if (fn.hasOwnProperty('name')) {\n return fn.name;\n }\n\n if (\"function\" === typeof fn.toString) {\n let s = fn.toString();\n let f = s.match(/^\\s*function\\s+([^\\s(]+)/);\n if (Array.isArray(f) && typeof f[1] === 'string') {\n return f[1];\n }\n let c = s.match(/^\\s*class\\s+([^\\s(]+)/);\n if (Array.isArray(c) && typeof c[1] === 'string') {\n return c[1];\n }\n }\n\n } catch (e) {\n throw new Error(\"exception \" + e);\n }\n\n throw new Error(\"the name of the class or function cannot be resolved.\");\n}\n\n/**\n *\n * @param parts\n * @returns {Namespace}\n * @private\n */\nfunction namespaceFor(parts) {\n var space = Monster, ns = 'Monster';\n\n for (let i = 0; i < parts.length; i++) {\n\n if (\"Monster\" === parts[i]) {\n continue;\n }\n\n ns += '.' + parts[i];\n\n if (!space.hasOwnProperty(parts[i])) {\n space[parts[i]] = new Namespace(ns);\n }\n\n space = space[parts[i]];\n }\n\n return space;\n}\n\n\nexport {assignToNamespace}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\n\n\n/**\n * This is the base class from which all monster classes are derived.\n *\n * you can call the method via the monster namespace `new Monster.Types.Base()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js';\n * console.log(new Monster.Types.Base())\n * console.log(new Monster.Types.Base())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js';\n * console.log(new Base())\n * console.log(new Base())\n * </script>\n * ```\n *\n * the class was formerly called Object.\n *\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Base extends Object {\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this);\n };\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', Base);\nexport {Monster, Base}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateFunction, validateString, validateObject} from \"./validate.js\";\n\n/**\n * @type {objec}\n * @private\n */\nvar globalReference;\n\n/**\n * @private\n */\n(function () {\n if (typeof globalThis === 'object') {\n globalReference = globalThis;\n return;\n }\n\n Object.defineProperty(Object.prototype, '__monster__', {\n get: function () {\n return this;\n },\n configurable: true\n });\n \n __monster__.globalThis = __monster__;\n delete Object.prototype.__monster__;\n\n globalReference = globalThis;\n\n}());\n\n/**\n * return globalThis\n *\n * if globalThis is not available, it will be polyfilled\n *\n * @since 1.6.0\n * @memberOf Monster/Types\n * @returns {objec} globalThis\n */\nfunction getGlobal() {\n return globalReference;\n}\n\n/**\n * return global object or throw Error\n *\n * you can call the method via the monster namespace `Monster.Types.getGlobalObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js';\n * console.log(Monster.Types.getGlobalObject('document')) // ↦ { }\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js';\n * console.log(getGlobalObject('document')) // ↦ { }\n * </script>\n * ```\n *\n * @since 1.6.0\n * @memberOf Monster/Types\n * @param {string} name\n * @returns {objec}\n * @throws {Error} the object is not defined\n * @throws {TypeError} value is not a object\n * @throws {TypeError} value is not a string\n */\nfunction getGlobalObject(name) {\n validateString(name);\n let o = globalReference?.[name];\n if (typeof o === 'undefined') throw new Error('the object '+name+' is not defined');\n validateObject(o);\n return o;\n}\n\n/**\n * return global function or throw Error\n *\n * you can call the method via the monster namespace `Monster.Types.getGlobalFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js';\n * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { }\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js';\n * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { }\n * </script>\n * ```\n *\n * @since 1.6.0\n * @memberOf Monster/Types\n * @param {string} name\n * @returns {objec}\n * @throws {TypeError} value is not a function\n * @throws {Error} the function is not defined\n * @throws {TypeError} value is not a string\n */\nfunction getGlobalFunction(name) {\n validateString(name);\n let f = globalReference?.[name];\n if (typeof f === 'undefined') throw new Error('the function '+name+' is not defined');\n validateFunction(f);\n return f;\n}\n\n\nMonster.assignToNamespace('Monster.Types', getGlobal, getGlobalObject, getGlobalFunction);\nexport {Monster, getGlobal, getGlobalObject, getGlobalFunction}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from './base.js';\nimport {validateString} from \"./validate.js\";\n\n/**\n * @private\n * @type {Map<string, integer>}\n */\nlet internalCounter = new Map;\n\n/**\n * with the id class, sequences of ids can be created. for this purpose, an internal counter is incremented for each prefix.\n * thus, the first id with the prefix `myid` will be `myid1` and the second id `myid2`.\n * The ids are the same for every call, for example on a web page.\n *\n * so the ids can also be used for navigation. you just have to take care that the order stays the same.\n *\n * you can call the method via the monster namespace `new Monster.Types.ID()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js';\n * console.log(new Monster.Types.ID())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js';\n * console.log(new ID())\n * </script>\n * ```\n *\n * as of version 1.6.0 there is the new RandomID. this ID class is continuous from now on.\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass ID extends Base {\n\n /**\n * create new object\n */\n constructor(prefix) {\n super();\n\n if (prefix === undefined) {\n prefix = \"id\";\n }\n\n validateString(prefix);\n\n if (!internalCounter.has(prefix)) {\n internalCounter.set(prefix, 1);\n }\n\n let count = internalCounter.get(prefix);\n this.id = prefix + count;\n\n internalCounter.set(prefix, ++count);\n }\n\n /**\n * @return {string}\n */\n toString() {\n return this.id;\n }\n\n}\n\nMonster.assignToNamespace('Monster.Types', ID);\nexport {Monster, ID}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\n\n/**\n * with this function you can check if a value is iterable\n *\n * you can call the method via the monster namespace `Monster.Types.isPrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isIterable(null)) // ↦ false\n * console.log(Monster.Types.isIterable('hello')) // ↦ true\n * console.log(Monster.Types.isIterable([])) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isIterable(null)) // ↦ false\n * console.log(isIterable('hello')) // ↦ true\n * console.log(isIterable([])) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.2.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isIterable(value) {\n if (value === undefined) return false;\n if (value === null) return false;\n return typeof value?.[Symbol.iterator] === 'function';\n}\n\n\n/**\n * checks whether the value passed is a primitive (string, number, boolean, NaN, undefined, null or symbol)\n *\n * you can call the method via the monster namespace `Monster.Types.isPrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isPrimitive('2')) // ↦ false\n * console.log(Monster.Types.isPrimitive([])) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isPrimitive('2')) // ↦ true\n * console.log(isPrimitive([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isPrimitive(value) {\n var type;\n\n if (value === undefined || value === null || value === NaN) {\n return true;\n }\n\n type = typeof value;\n\n if (type === 'string' || type === 'number' || type === 'boolean' || type === 'symbol') {\n return true;\n }\n\n return false;\n}\n\n/**\n * checks whether the value passed is a boolean\n *\n * you can call the method via the monster namespace `Monster.Types.isBoolean()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isBoolean('2')) // ↦ false\n * console.log(Monster.Types.isBoolean([])) // ↦ false\n * console.log(Monster.Types.isBoolean(true)) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isBoolean('2')) // ↦ false\n * console.log(isBoolean([])) // ↦ false\n * console.log(isBoolean(2>4)) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isBoolean(value) {\n\n if (value === true || value === false) {\n return true;\n }\n\n return false;\n}\n\n/**\n * checks whether the value passed is a string\n *\n * you can call the method via the monster namespace `Monster.Types.isString()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isString('2')) // ↦ true\n * console.log(Monster.Types.isString([])) // ↦ false\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isString('2')) // ↦ true\n * console.log(isString([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isString(value) {\n if (value === undefined || typeof value !== 'string') {\n return false;\n }\n return true;\n}\n\n/**\n * checks whether the value passed is a object\n *\n * you can call the method via the monster namespace `Monster.Types.isObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isObject('2')) // ↦ false\n * console.log(Monster.Types.isObject([])) // ↦ false\n * console.log(Monster.Types.isObject({})) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isObject('2')) // ↦ false\n * console.log(isObject([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isObject(value) {\n\n if (isArray(value)) return false;\n if (isPrimitive(value)) return false;\n\n if (typeof value === 'object') {\n return true;\n }\n\n return false;\n}\n\n/**\n * checks whether the value passed is a object and instance of instance\n *\n * you can call the method via the monster namespace `Monster.Types.isInstance()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isInstance('2')) // ↦ false\n * console.log(Monster.Types.isInstance([])) // ↦ false\n * console.log(Monster.Types.isInstance({})) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isInstance('2')) // ↦ false\n * console.log(isInstance([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @param {*} instance\n * @returns {boolean}\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isInstance(value, instance) {\n\n if (!isObject(value)) return false;\n if (!isFunction(instance)) return false;\n if (!instance.hasOwnProperty('prototype')) return false;\n return (value instanceof instance)?true:false; \n\n}\n\n/**\n * checks whether the value passed is a array\n *\n * you can call the method via the monster namespace `Monster.Types.isArray()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isArray('2')) // ↦ false\n * console.log(Monster.Types.isArray([])) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isArray('2')) // ↦ false\n * console.log(isArray([])) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isArray(value) {\n if (Array.isArray(value)) {\n return true;\n }\n return false;\n}\n\n/**\n * checks whether the value passed is a function\n *\n * you can call the method via the monster namespace `Monster.Types.isFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isFunction(()=>{})) // ↦ true\n * console.log(Monster.Types.isFunction('2')) // ↦ false\n * console.log(Monster.Types.isFunction([])) // ↦ false\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isFunction(()=>{})) // ↦ true\n * console.log(isFunction('2')) // ↦ false\n * console.log(isFunction([])) // ↦ false\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isFunction(value) {\n if (isArray(value)) return false;\n if (isPrimitive(value)) return false;\n\n if (typeof value === 'function') {\n return true;\n }\n\n return false;\n\n}\n\n/**\n * checks whether the value passed is an integer\n *\n * you can call the method via the monster namespace `Monster.Types.isFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(Monster.Types.isInteger(()=>{})) // ↦ true\n * console.log(Monster.Types.isInteger('2')) // ↦ false\n * console.log(Monster.Types.isInteger(2)) // ↦ true\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js';\n * console.log(isInteger(()=>{})) // ↦ true\n * console.log(isInteger('2')) // ↦ false\n * console.log(isInteger(2)) // ↦ true\n * </script>\n * ```\n *\n * @param {*} value\n * @returns {boolean}\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nfunction isInteger(value) {\n return Number.isInteger(value);\n}\n\n\nMonster.assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger);\nexport {Monster, isPrimitive, isBoolean, isString, isObject, isInstance, isArray, isFunction, isIterable, isInteger}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {TokenList} from './tokenlist.js';\nimport {isObject} from './is.js';\nimport {Base} from './base.js';\nimport {UniqueQueue} from './uniquequeue.js';\n\n/**\n * an observer manages a callback function\n *\n * you can call the method via the monster namespace `new Monster.Types.Observer()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js';\n * console.log(new Monster.Types.Observer())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js';\n * console.log(Observer())\n * </script>\n * ```\n *\n * the update method is called with the subject object as this pointer. for this reason the callback should not\n * be an arrow function, because it gets the this pointer of its own context.\n *\n * ```\n * <script>\n * Observer(()=>{\n * // this is not subject\n * })\n *\n * Observer(function() {\n * // this is subject\n * })\n * </script>\n * ```\n *\n * additional arguments can be passed to the callback. to do this, simply specify them.\n *\n * ```\n * <script>\n * Observer(function(a, b, c) {\n * console.log(a, b, c); // ↦ \"a\", 2, true \n * }, \"a\", 2, true)\n * </script>\n * ```\n *\n * the callback function must have as many parameters as arguments are given.\n *\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Observer extends Base {\n\n /**\n *\n * @param {function} callback\n * @param {*} args\n */\n constructor(callback, ...args) {\n super();\n\n if (typeof callback !== 'function') {\n throw new Error(\"observer callback must be a function\")\n }\n\n this.callback = callback;\n this.arguments = args;\n this.tags = new TokenList;\n this.queue = new UniqueQueue();\n }\n\n /**\n *\n * @param {string} tag\n * @returns {Observer}\n */\n addTag(tag) {\n this.tags.add(tag);\n return this;\n }\n\n /**\n *\n * @param {string} tag\n * @returns {Observer}\n */\n removeTag(tag) {\n this.tags.remove(tag);\n return this;\n }\n\n /**\n *\n * @returns {Array}\n */\n getTags() {\n return this.tags.entries()\n }\n\n /**\n *\n * @param {string} tag\n * @returns {boolean}\n */\n hasTag(tag) {\n return this.tags.contains(tag)\n }\n\n /**\n *\n * @param {object} subject\n * @returns {Promise}\n */\n update(subject) {\n let self = this;\n\n return new Promise(function (resolve, reject) {\n if (!isObject(subject)) {\n reject(\"subject must be an object\");\n return;\n }\n\n self.queue.add(subject);\n\n setTimeout(() => {\n\n // the queue and the settimeout ensure that an object is not \n // informed of the same change more than once.\n if (self.queue.isEmpty()) {\n resolve();\n return;\n }\n\n let s = self.queue.poll();\n let result = self.callback.apply(s, self.arguments);\n\n if (isObject(result) && result instanceof Promise) {\n result.then(resolve).catch(reject);\n return;\n }\n\n resolve(result);\n }, 0)\n\n });\n\n };\n\n}\n\nMonster.assignToNamespace('Monster.Types', Observer);\nexport {Monster, Observer}\n\n\n\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\nimport {Observer} from \"./observer.js\";\nimport {validateInstance} from \"./validate.js\";\n\n/**\n * With the help of the ObserverList class, observer can be managed.\n *\n * you can call the method via the monster namespace `new Monster.Types.ObserverList()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js';\n * console.log(new Monster.Types.ObserverList())\n * console.log(new Monster.Types.ObserverList())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js';\n * console.log(ObserverList())\n * console.log(ObserverList())\n * </script>\n * ```\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass ObserverList extends Base {\n\n /**\n *\n */\n constructor() {\n super();\n this.observers = [];\n }\n\n /**\n *\n * @param {Observer} observer\n * @return {ObserverList}\n * @throws {TypeError} value is not an instance of Observer\n */\n attach(observer) {\n validateInstance(observer, Observer)\n\n this.observers.push(observer);\n return this;\n };\n\n /**\n *\n * @param {Observer} observer\n * @return {ObserverList}\n * @throws {TypeError} value is not an instance of Observer\n */\n detach(observer) {\n validateInstance(observer, Observer)\n\n var i = 0, l = this.observers.length;\n for (; i < l; i++) {\n if (this.observers[i] === observer) {\n this.observers.splice(i, 1);\n }\n }\n\n return this;\n };\n\n /**\n *\n * @param {Observer} observer\n * @return {boolean}\n * @throws {TypeError} value is not an instance of Observer\n */\n contains(observer) {\n validateInstance(observer, Observer)\n var i = 0, l = this.observers.length;\n for (; i < l; i++) {\n if (this.observers[i] === observer) {\n return true;\n }\n }\n return false;\n };\n\n /**\n *\n * @param subject\n * @return {Promise}\n */\n notify(subject) {\n\n let pomises = []\n\n var i = 0, l = this.observers.length;\n for (; i < l; i++) {\n pomises.push(this.observers[i].update(subject));\n }\n\n return Promise.all(pomises);\n };\n\n}\n\nMonster.assignToNamespace('Monster.Types', ObserverList);\nexport {Monster, ObserverList}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\nimport {validateObject} from \"./validate.js\";\nimport {ObserverList} from \"./observerlist.js\";\nimport {Observer} from \"./observer.js\";\nimport {isObject, isArray, isPrimitive} from \"./is.js\";\n\n/**\n * an observer manages a callback function\n *\n * you can call the method via the monster namespace `new Monster.Types.Observer()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js';\n * console.log(new Monster.Types.ProxyObserver())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js';\n * console.log(new ProxyObserver())\n * </script>\n * ```\n *\n * with the ProxyObserver you can attach observer for observation. with each change at the object to be observed an update takes place.\n *\n * this also applies to nested objects.\n *\n * ```javascript\n * const o = new Observer(function () {\n * if (isObject(this) && this instanceof ProxyObserver) {\n * // do something (this ist ProxyObserver)\n * const subject = this.getSubject();\n * }\n * )\n * \n * let realSubject = {\n * a: {\n * b: {\n * c: true\n * },\n * d: 5\n * }\n * \n * \n * const p = new ProxyObserver(realSubject);\n * p.attachObserver(o);\n * const s = p.getSubject();\n * s.a.b.c = false;\n * ```\n *\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass ProxyObserver extends Base {\n\n /**\n *\n * @param {object} object\n * @throws {TypeError} value is not a object\n */\n constructor(object) {\n super();\n validateObject(object);\n this.realSubject = object\n this.subject = new Proxy(object, getHandler.call(this));\n\n this.objectMap = new WeakMap();\n this.objectMap.set(this.realSubject, this.subject);\n\n this.observers = new ObserverList;\n }\n\n /**\n * get the real object\n *\n * changes to this object are not noticed by the observers, so you can make a large number of changes and inform the observers later.\n *\n * @returns {object}\n */\n getSubject() {\n return this.subject\n }\n\n /**\n * get the proxied object\n *\n * @returns {object}\n */\n getRealSubject() {\n return this.realSubject\n }\n\n /**\n * attach a new observer\n *\n * @param {Observer} observer\n * @returns {ProxyObserver}\n */\n attachObserver(observer) {\n this.observers.attach(observer)\n return this;\n }\n\n /**\n * detach a observer\n *\n * @param {Observer} observer\n * @returns {ProxyObserver}\n */\n detachObserver(observer) {\n this.observers.detach(observer)\n return this;\n }\n\n /**\n * notify all observer\n *\n * @returns {ProxyObserver}\n */\n notifyObservers() {\n this.observers.notify(this);\n return this;\n }\n\n /**\n * @param {Observer} observer\n * @returns {ProxyObserver}\n */\n containsObserver(observer) {\n return this.observers.contains(observer)\n }\n\n}\n\nMonster.assignToNamespace('Monster.Types', ProxyObserver);\nexport {Monster, ProxyObserver}\n\n/**\n *\n * @returns {{defineProperty: (function(*=, *=, *=): *), setPrototypeOf: (function(*, *=): boolean), set: (function(*, *, *, *): boolean), get: ((function(*=, *=, *=): (undefined))|*), deleteProperty: ((function(*, *): (boolean))|*)}}\n * @private\n * @see {@link https://gitlab.schukai.com/-/snippets/49}\n */\nfunction getHandler() {\n\n const proxy = this;\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots\n const handler = {\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver\n get: function (target, key, receiver) {\n\n const value = Reflect.get(target, key, receiver);\n\n if (typeof key === \"symbol\") {\n return value;\n }\n\n if (isPrimitive(value)) {\n return value;\n }\n\n // set value as proxy if object or array\n if ((isArray(value) || isObject(value))) {\n if (proxy.objectMap.has(value)) {\n return proxy.objectMap.get(value);\n } else {\n let p = new Proxy(value, handler);\n proxy.objectMap.set(value, p);\n return p;\n }\n\n }\n\n return value;\n\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver \n set: function (target, key, value, receiver) {\n const result = Reflect.set(target, key, value, receiver);\n if (typeof property !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n return result;\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-delete-p\n deleteProperty: function (target, key) {\n if (key in target) {\n delete target[key];\n\n if (typeof key !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n\n return true;\n }\n return false;\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc\n defineProperty: function (target, key, descriptor) {\n let result = Reflect.defineProperty(target, key, descriptor);\n\n if (typeof key !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n\n return result;\n },\n\n // https://262.ecma-international.org/9.0/#sec-proxy-object-internal-methods-and-internal-slots-setprototypeof-v\n setPrototypeOf: function (target, key) {\n let result = Reflect.setPrototypeOf(object1, key);\n\n if (typeof key !== \"symbol\") {\n proxy.observers.notify(proxy);\n }\n\n return result;\n }\n\n };\n\n\n return handler;\n}\n", + "import {Monster, Base} from './base.js';\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.Queue()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js';\n * console.log(new Monster.Types.Queue())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js';\n * console.log(new Queue())\n * </script>\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Queue extends Base { \n\n /**\n *\n */\n constructor() {\n super();\n this.data = [];\n }\n\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.data.length === 0;\n }\n\n /**\n * Read the element at the front of the queue without removing it.\n *\n * @return {*}\n */\n peek() {\n if (this.isEmpty()) {\n return undefined;\n }\n\n return this.data[0];\n }\n\n /**\n * Add a new element to the end of the queue.\n *\n * @param {*} value\n * @returns {Queue}\n */\n add(value) {\n this.data.push(value)\n return this;\n }\n\n /**\n * remove all entries\n *\n * @returns {Queue}\n */\n clear() {\n this.data = [];\n return this;\n }\n\n /**\n * Remove the element at the front of the queue\n * If the queue is empty, return undefined.\n *\n * @return {*}\n */\n poll() {\n if (this.isEmpty()) {\n return undefined;\n }\n return this.data.shift();\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', Queue);\nexport {Monster, Queue}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, ID} from \"./id.js\";\nimport {getGlobal} from \"./global.js\";\nimport {random} from \"../math/random.js\";\n\n/**\n * @private\n * @type {number}\n */\nlet internalCounter = 0;\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.RandomID()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js';\n * console.log(new Monster.Types.RandomID())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js';\n * console.log(new RandomID())\n * </script>\n * ```\n *\n * @since 1.6.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass RandomID extends ID {\n\n /**\n * create new object\n */\n constructor() {\n super();\n\n internalCounter += 1;\n\n this.id = getGlobal().btoa(random(1, 10000))\n .replace(/=/g, '')\n /** No numbers at the beginning of the ID, because of possible problems with DOM */\n .replace(/^[0-9]+/, 'X') + internalCounter;\n }\n\n}\n\nMonster.assignToNamespace('Monster.Types', RandomID);\nexport {Monster, RandomID}\n", + "import {Monster, Base} from './base.js';\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.Queue()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js';\n * console.log(new Monster.Types.Stack())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js';\n * console.log(new Stack())\n * </script>\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Stack extends Base {\n\n /**\n *\n */\n constructor() {\n super();\n this.data = [];\n }\n\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.data.length === 0;\n }\n\n /**\n * looks at the object at the top of this stack without removing it from the stack.\n *\n * @return {*}\n */\n peek() {\n if (this.isEmpty()) {\n return undefined;\n }\n\n return this.data?.[this.data.length - 1];\n }\n\n /**\n * pushes an item onto the top of this stack.\n *\n * @param {*} value\n * @returns {Queue}\n */\n push(value) {\n this.data.push(value)\n return this;\n }\n\n /**\n * remove all entries\n *\n * @returns {Queue}\n */\n clear() {\n this.data = [];\n return this;\n }\n\n /**\n * removes the object at the top of this stack and returns\n * that object as the value of this function. is the stack empty\n * the return value is undefined.\n *\n * @return {*}\n */\n pop() {\n if (this.isEmpty()) {\n return undefined;\n }\n return this.data.pop();\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', Stack);\nexport {Monster, Stack}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\nimport {isString, isIterable} from '../types/is.js';\nimport {validateString, validateFunction} from '../types/validate.js';\n\n/**\n * A tokenlist allows you to manage tokens (individual character strings such as css classes in an attribute string).\n *\n * The tokenlist offers various functions to manipulate values. For example, you can add, remove or replace a class in a CSS list.\n *\n * you can call the method via the monster namespace `new Monster.Types.TokenList()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js';\n * console.log(new Monster.Types.TokenList(\"myclass row\"))\n * console.log(new Monster.Types.TokenList(\"myclass row\"))\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js';\n * console.log(new TokenList(\"myclass row\"))\n * console.log(new TokenList(\"myclass row\"))\n * </script>\n * ```\n *\n * This class implements the [iteration protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols).\n *\n * ```\n * console.log(typeof new TokenList(\"myclass row\")[Symbol.iterator]); // \"function\"\n * ```\n *\n *\n * @since 1.2.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass TokenList extends Base {\n\n /**\n *\n * @param {array|string|iteratable} init\n */\n constructor(init) {\n super();\n this.tokens = new Set();\n\n if (typeof init !== \"undefined\") {\n this.add(init);\n }\n\n }\n\n /**\n * Iterator protocol\n *\n * @returns {Symbol.iterator}\n */\n getIterator() {\n return this[Symbol.iterator]();\n }\n\n /**\n * Iterator\n *\n * @returns {{next: ((function(): ({value: *, done: boolean}))|*)}}\n */\n [Symbol.iterator]() {\n // Use a new index for each iterator. This makes multiple\n // iterations over the iterable safe for non-trivial cases,\n // such as use of break or nested looping over the same iterable.\n let index = 0;\n let entries = this.entries()\n\n return {\n next: () => {\n if (index < entries.length) {\n return {value: entries?.[index++], done: false}\n } else {\n return {done: true}\n }\n }\n }\n }\n\n /**\n * Returns true if it contains token, otherwise false\n *\n * ```\n * new TokenList(\"start middle end\").contains('start')); // ↦ true\n * new TokenList(\"start middle end\").contains('end')); // ↦ true\n * new TokenList(\"start middle end\").contains('xyz')); // ↦ false\n * new TokenList(\"start middle end\").contains(['end','start','middle'])); // ↦ true\n * new TokenList(\"start middle end\").contains(['end','start','xyz'])); // ↦ false\n * ```\n *\n * @param {array|string|iteratable} value\n * @returns {boolean}\n */\n contains(value) {\n if (isString(value)) {\n value = value.trim()\n let counter = 0;\n value.split(\" \").forEach(token => {\n if (this.tokens.has(token.trim()) === false) return false;\n counter++\n })\n return counter > 0 ? true : false;\n }\n\n if (isIterable(value)) {\n let counter = 0;\n for (let token of value) {\n validateString(token);\n if (this.tokens.has(token.trim()) === false) return false;\n counter++\n }\n return counter > 0 ? true : false;\n }\n\n return false;\n }\n\n /**\n * add tokens\n *\n * ```\n * new TokenList().add(\"abc xyz\").toString(); // ↦ \"abc xyz\"\n * new TokenList().add([\"abc\",\"xyz\"]).toString(); // ↦ \"abc xyz\"\n * new TokenList().add(undefined); // ↦ add nothing\n * ```\n *\n * @param {array|string|iteratable} value\n * @returns {TokenList}\n * @throws {TypeError} unsupported value\n */\n add(value) {\n if (isString(value)) {\n value.split(\" \").forEach(token => {\n this.tokens.add(token.trim());\n })\n } else if (isIterable(value)) {\n for (let token of value) {\n validateString(token);\n this.tokens.add(token.trim());\n }\n } else if (typeof value !== \"undefined\") {\n throw new TypeError(\"unsupported value\");\n }\n\n return this;\n }\n\n /**\n * remove all tokens\n *\n * @returns {TokenList}\n */\n clear() {\n this.tokens.clear();\n return this;\n }\n\n /**\n * Removes token\n *\n * ```\n * new TokenList(\"abc xyz\").remove(\"xyz\").toString(); // ↦ \"abc\"\n * new TokenList(\"abc xyz\").remove([\"xyz\"]).toString(); // ↦ \"abc\"\n * new TokenList(\"abc xyz\").remove(undefined); // ↦ remove nothing\n * ```\n *\n * @param {array|string|iteratable} value\n * @returns {TokenList}\n * @throws {TypeError} unsupported value\n */\n remove(value) {\n if (isString(value)) {\n value.split(\" \").forEach(token => {\n this.tokens.delete(token.trim());\n })\n } else if (isIterable(value)) {\n for (let token of value) {\n validateString(token);\n this.tokens.delete(token.trim());\n }\n } else if (typeof value !== \"undefined\") {\n throw new TypeError(\"unsupported value\");\n }\n\n return this;\n }\n\n /**\n * this method replaces a token with a new token.\n *\n * if the passed token exists, it is replaced with newToken and TokenList is returned.\n * if the token does not exist, newToken is not set and TokenList is returned.\n *\n * @param {string} token\n * @param {string} newToken\n * @returns {TokenList}\n */\n replace(token, newToken) {\n validateString(token);\n validateString(newToken);\n if (!this.contains(token)) {\n return this;\n }\n\n let a = Array.from(this.tokens)\n let i = a.indexOf(token);\n if (i === -1) return this;\n\n a.splice(i, 1, newToken);\n this.tokens = new Set();\n this.add(a);\n\n return this;\n\n\n }\n\n /**\n * Removes token from string. If token doesn't exist it's added.\n * \n * ```\n * new TokenList(\"abc def ghi\").toggle(\"def xyz\").toString(); // ↦ \"abc ghi xyz\"\n * new TokenList(\"abc def ghi\").toggle([\"abc\",\"xyz\"]).toString(); // ↦ \"def ghi xyz\"\n * new TokenList().toggle(undefined); // ↦ nothing\n * ```\n * \n * @param {array|string|iteratable} value\n * @returns {boolean}\n * @throws {TypeError} unsupported value\n */\n toggle(value) {\n\n if (isString(value)) {\n value.split(\" \").forEach(token => {\n toggleValue.call(this, token);\n })\n } else if (isIterable(value)) {\n for (let token of value) {\n toggleValue.call(this, token);\n }\n } else if (typeof value !== \"undefined\") {\n throw new TypeError(\"unsupported value\");\n }\n\n return this;\n\n }\n\n /**\n * returns an array with all tokens\n *\n * @returns {array}\n */\n entries() {\n return Array.from(this.tokens)\n }\n\n /**\n * executes the provided function with each value of the set\n *\n * @param {function} callback\n * @returns {TokenList}\n */\n forEach(callback) {\n validateFunction(callback);\n this.tokens.forEach(callback);\n return this;\n }\n\n /**\n * returns the individual tokens separated by a blank character\n *\n * @returns {string}\n */\n toString() {\n return this.entries().join(' ');\n }\n\n}\n\n/**\n * @private\n * @param token\n * @returns {toggleValue}\n * @throws {Error} must be called with TokenList.call\n */\nfunction toggleValue(token) {\n if (!(this instanceof TokenList)) throw Error(\"must be called with TokenList.call\")\n validateString(token);\n token = token.trim();\n if (this.contains(token)) {\n this.remove(token);\n return this;\n }\n this.add(token);\n return this;\n}\n\nMonster.assignToNamespace('Monster.Types', TokenList);\nexport {Monster, TokenList}\n", + "import {Monster, Queue} from \"./queue.js\";\nimport {validateObject} from \"./validate.js\";\n\n/**\n * you can call the method via the monster namespace `new Monster.Types.Queue()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js';\n * console.log(new Monster.Types.UniqueQueue())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js';\n * console.log(new UniqueQueue())\n * </script>\n * ```\n *\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass UniqueQueue extends Queue {\n\n /**\n *\n */\n constructor() {\n super();\n this.unique = new WeakSet();\n }\n\n /**\n * Add a new element to the end of the queue.\n *\n * @param {object} value\n * @returns {Queue}\n * @throws {TypeError} value is not a object\n */\n add(value) {\n \n validateObject(value);\n \n if (!this.unique.has(value)) {\n this.unique.add(value);\n super.add(value);\n }\n \n return this;\n }\n\n /**\n * remove all entries\n *\n * @returns {Queue}\n */\n clear() {\n super.clear();\n this.unique = new WeakSet;\n return this;\n }\n\n /**\n * Remove the element at the front of the queue\n * If the queue is empty, return undefined.\n *\n * @return {object}\n */\n poll() {\n\n if (this.isEmpty()) {\n return undefined;\n }\n let value = this.data.shift();\n this.unique.delete(value);\n return value;\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Types', UniqueQueue);\nexport {Monster, UniqueQueue}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {\n isPrimitive,\n isBoolean,\n isString,\n isObject,\n isArray,\n isFunction,\n isIterable,\n isInstance,\n isInteger\n} from './is.js';\n\n/**\n * this method checks if the type matches the primitive type. this function is identical to isPrimitive() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validatePrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError\n * console.log(Monster.Types.validateIterable([])) // ↦ undefined\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateIterable('2')) // ↦ TypeError\n * console.log(validateIterable([])) // ↦ undefined\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.2.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a primitive\n * @see {@link isPrimitive}\n * @see {@link Monster/Types/isPrimitive}\n * @see {@link Monster/Types#isPrimitive}\n */\nfunction validateIterable(value) {\n if (!isIterable(value)) {\n throw new TypeError('value is not iterable')\n }\n}\n\n/**\n * this method checks if the type matches the primitive type. this function is identical to isPrimitive() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validatePrimitive()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validatePrimitive('2')) // ↦ undefined\n * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validatePrimitive('2')) // ↦ undefined\n * console.log(validatePrimitive([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a primitive\n * @see {@link isPrimitive}\n * @see {@link Monster/Types/isPrimitive}\n * @see {@link Monster/Types#isPrimitive}\n */\nfunction validatePrimitive(value) {\n if (!isPrimitive(value)) {\n throw new TypeError('value is not a primitive')\n }\n}\n\n/**\n * this method checks if the type matches the boolean type. this function is identical to isBoolean() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateBoolean()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateBoolean(true)) // ↦ undefined\n * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError\n * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateBoolean(false)) // ↦ undefined\n * console.log(validateBoolean('2')) // ↦ TypeError\n * console.log(validateBoolean([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n\n * @throws {TypeError} value is not primitive\n */\nfunction validateBoolean(value) {\n if (!isBoolean(value)) {\n throw new TypeError('value is not a boolean')\n }\n}\n\n/**\n * this method checks if the type matches the string type. this function is identical to isString() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateString()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateString('2')) // ↦ undefined\n * console.log(Monster.Types.validateString([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateString('2')) // ↦ undefined\n * console.log(validateString([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a string\n */\nfunction validateString(value) {\n if (!isString(value)) {\n throw new TypeError('value is not a string')\n }\n}\n\n\n/**\n * this method checks if the type matches the object type. this function is identical to isObject() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateObject()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateObject({})) // ↦ undefined\n * console.log(Monster.Types.validateObject('2')) // ↦ TypeError\n * console.log(Monster.Types.validateObject([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateObject({})) // ↦ undefined\n * console.log(validateObject('2')) // ↦ TypeError\n * console.log(validateObject([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a object\n */\nfunction validateObject(value) {\n if (!isObject(value)) {\n throw new TypeError('value is not a object')\n }\n}\n\n/**\n * this method checks if the type matches the object instance.\n *\n * you can call the method via the monster namespace `Monster.Types.validateInstance()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateInstance({}, Object)) // ↦ undefined\n * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError\n * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateInstance({}, Object)) // ↦ undefined\n * console.log(validateInstance('2', Object)) // ↦ TypeError\n * console.log(validateInstance([], Object)) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.5.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not an instance of\n */\nfunction validateInstance(value, instance) {\n if (!isInstance(value, instance)) {\n let n = \"\";\n if (isObject(instance) || isFunction(instance)) {\n n = instance?.['name']\n }\n\n if (n) {\n n = \" \" + n;\n }\n\n throw new TypeError('value is not an instance of' + n)\n }\n}\n\n/**\n * this method checks if the type matches the array type. this function is identical to isArray() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateArray()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateArray('2')) // ↦ TypeError\n * console.log(Monster.Types.validateArray([])) // ↦ undefined\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateArray('2')) // ↦ TypeError\n * console.log(validateArray([])) // ↦ undefined\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not an array\n */\nfunction validateArray(value) {\n if (!isArray(value)) {\n throw new TypeError('value is not an array')\n }\n}\n\n/**\n * this method checks if the type matches the function type. this function is identical to isFunction() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateFunction()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateFunction(()=>{})) // ↦ undefined\n * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError\n * console.log(Monster.Types.validateFunction([])) // ↦ TypeError\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateFunction(()=>{})) // ↦ undefined\n * console.log(validateFunction('2')) // ↦ TypeError\n * console.log(validateFunction([])) // ↦ TypeError\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not a function\n */\nfunction validateFunction(value) {\n if (!isFunction(value)) {\n throw new TypeError('value is not a function')\n }\n}\n\n/**\n * this method checks if the type is an integer. this function is identical to isInteger() except that a TypeError is thrown.\n *\n * you can call the method via the monster namespace `Monster.Types.validateInteger()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError\n * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError\n * console.log(Monster.Types.validateInteger(2)) // ↦ undefined\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js';\n * console.log(validateInteger(true)) // ↦ TypeError\n * console.log(validateInteger('2')) // ↦ TypeError\n * console.log(validateInteger(2)) // ↦ undefined\n * </script>\n * ```\n *\n * @param {*} value\n * @return {undefined}\n * @since 1.4.0\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n * @throws {TypeError} value is not an integer\n */\nfunction validateInteger(value) {\n if (!isInteger(value)) {\n throw new TypeError('value is not an integer')\n }\n}\n\nMonster.assignToNamespace('Monster.Types', validatePrimitive, validateBoolean, validateString, validateObject, validateArray, validateFunction, validateIterable, validateInteger);\nexport {\n Monster,\n validatePrimitive,\n validateBoolean,\n validateString,\n validateObject,\n validateInstance,\n validateArray,\n validateFunction,\n validateIterable,\n validateInteger\n}\n", + "'use strict';\n\nimport {Monster} from '../namespace.js';\nimport {Base} from './base.js';\n\n/**\n * the version object contains a sematic version number\n *\n * you can create the object via the monster namespace `new Monster.Types.Version()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js';\n * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3\n * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this class individually.\n *\n * ```\n * <script type=\"module\">\n * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js';\n * console.log(new Version('1.2.3')) // ↦ 1.2.3\n * console.log(new Version('1')) // ↦ 1.0.0\n * </script>\n * ```\n *\n * some examples\n *\n * ```\n * new Monster.Types.Version('1.0.0') // 1.0.0\n * new Monster.Types.Version(1) // 1.0.0\n * new Monster.Types.Version(1, 0, 0) // 1.0.0\n * new Monster.Types.Version('1.2.3', 4, 5) // 1.4.5\n * ```\n *\n * @since 1.0.0\n * @author schukai GmbH\n * @copyright schukai GmbH\n * @memberOf Monster/Types\n */\nclass Version extends Base {\n\n /**\n *\n * @param major\n * @param minor\n * @param patch\n * @throws major is not a number\n * @throws minor is not a number\n * @throws patch is not a number\n */\n constructor(major, minor, patch) {\n super();\n\n if (typeof major === 'string' && minor === undefined && patch === undefined) {\n\n let parts = major.toString().split('.');\n major = parseInt(parts[0] || 0);\n minor = parseInt(parts[1] || 0);\n patch = parseInt(parts[2] || 0);\n }\n\n if (major === undefined) {\n throw new Error(\"major version is undefined\");\n }\n\n if (minor === undefined) {\n minor = 0;\n }\n\n if (patch === undefined) {\n patch = 0;\n }\n\n this.major = parseInt(major);\n this.minor = parseInt(minor);\n this.patch = parseInt(patch);\n\n if (isNaN(this.major)) {\n throw new Error(\"major is not a number\");\n }\n\n if (isNaN(this.minor)) {\n throw new Error(\"minor is not a number\");\n }\n\n if (isNaN(this.patch)) {\n throw new Error(\"patch is not a number\");\n }\n\n }\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return this.major + '.' + this.minor + '.' + this.patch;\n }\n\n /**\n * returns 0 if equal, -1 if the object version is less and 1 if greater\n * then the compared version\n *\n * @param {string|Version} version Version to compare\n * @returns {number}\n */\n compareTo(version) {\n\n if (version instanceof Version) {\n version = version.toString();\n }\n\n if (typeof version !== 'string') {\n throw new Error(\"type exception\");\n }\n\n if (version === this.toString()) {\n return 0;\n }\n\n let a = [this.major, this.minor, this.patch];\n let b = version.split('.');\n let len = Math.max(a.length, b.length);\n\n for (let i = 0; i < len; i += 1) {\n if ((a[i] && !b[i] && parseInt(a[i]) > 0) || (parseInt(a[i]) > parseInt(b[i]))) {\n return 1;\n } else if ((b[i] && !a[i] && parseInt(b[i]) > 0) || (parseInt(a[i]) < parseInt(b[i]))) {\n return -1;\n }\n }\n\n return 0;\n };\n\n}\n\nMonster.assignToNamespace('Monster.Types', Version);\n\n\nlet monsterVersion;\n\n/**\n * Version of monster\n *\n * you can call the method via the monster namespace `Monster.getVersion()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js';\n * console.log(Monster.getVersion())\n * console.log(Monster.getVersion())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js';\n * console.log(getVersion())\n * console.log(getVersion())\n * </script>\n * ```\n *\n * @returns {Monster.Types.Version}\n * @since 1.0.0\n * @copyright schukai GmbH\n * @author schukai GmbH\n * @memberOf Monster\n */\nfunction getVersion() {\n if (monsterVersion instanceof Version) {\n return monsterVersion;\n }\n /**#@+ dont touch, replaced by make with package.json version */\n monsterVersion = new Version('1.7.0')\n /**#@-*/\n return monsterVersion;\n\n}\n\nMonster.assignToNamespace('Monster', getVersion);\nexport {Monster, Version, getVersion}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {isObject, isFunction, isPrimitive, isArray} from '../types/is.js';\nimport {getGlobal} from '../types/global.js';\n\n\n/**\n * with this function, objects can be cloned.\n * the entire object tree is run through.\n *\n * Proxy, Element, HTMLDocument and DocumentFragment instances are not cloned.\n * Global objects such as windows are also not cloned,\n *\n * If an object has a method `getClone()`, this method is used to create the clone.\n *\n * you can call the method via the monster namespace `Monster.Util.clone()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js';\n * console.log(Monster.Util.clone({}))\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js';\n * console.log(clone({}))\n * </script>\n * ```\n *\n *\n * @param {*} obj object to be cloned\n * @returns {*}\n *\n * @since 1.0.0\n * @memberOf Monster/Util\n * @copyright schukai GmbH\n * @throws {Error} unable to clone obj! its type isn't supported.\n */\nfunction clone(obj) {\n\n // typeof null results in 'object'. https://2ality.com/2013/10/typeof-null.html\n if (null === obj) {\n return obj;\n }\n\n // Handle the two simple types, null and undefined\n if (isPrimitive(obj)) {\n return obj;\n }\n \n // Handle the two simple types, null and undefined\n if (isFunction(obj)) {\n return obj;\n }\n\n // Handle Array\n if (isArray(obj)) {\n let copy = [];\n for (var i = 0, len = obj.length; i < len; i++) {\n copy[i] = clone(obj[i]);\n }\n\n return copy;\n }\n\n if (isObject(obj)) {\n\n\n // Handle Date\n if (obj instanceof Date) {\n let copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n\n /** Do not clone DOM nodes */\n if (typeof Element !== 'undefined' && obj instanceof Element) return obj;\n if (typeof HTMLDocument !== 'undefined' && obj instanceof HTMLDocument) return obj;\n if (typeof DocumentFragment !== 'undefined' && obj instanceof DocumentFragment) return obj;\n\n /** Do not clone global objects */\n if (obj === getGlobal()) return obj;\n if (typeof globalContext !== 'undefined' && obj === globalContext) return obj;\n if (typeof window !== 'undefined' && obj === window) return obj;\n if (typeof document !== 'undefined' && obj === document) return obj;\n if (typeof navigator !== 'undefined' && obj === navigator) return obj;\n if (typeof JSON !== 'undefined' && obj === JSON) return obj;\n\n // Handle Proxy-Object\n try {\n // try/catch because possible: TypeError: Function has non-object prototype 'undefined' in instanceof check\n if (obj instanceof Proxy) {\n return obj;\n }\n } catch (e) {\n }\n\n return cloneObject(obj)\n\n }\n\n throw new Error(\"unable to clone obj! its type isn't supported.\");\n}\n\n/**\n *\n * @param {object} obj\n * @returns {object}\n * @private\n */\nfunction cloneObject(obj) {\n var copy;\n\n /** Object has clone method */\n if (typeof obj.hasOwnProperty('getClone') && obj.getClone === 'function') {\n return obj.getClone();\n }\n\n copy = {};\n if (typeof obj.constructor === 'function' &&\n typeof obj.constructor.call === 'function') {\n copy = new obj.constructor();\n }\n\n for (let key in obj) {\n\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n\n if (Monster.Types.isPrimitive(obj[key])) {\n copy[key] = obj[key];\n continue;\n }\n\n copy[key] = clone(obj[key]);\n }\n\n return copy;\n}\n\nMonster.assignToNamespace('Monster.Util', clone);\nexport {Monster, clone}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster, Base} from '../types/base.js';\nimport {isFunction} from '../types/is.js';\n\n/**\n * the comparator allows a comparison function to be abstracted.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js';\n * console.log(new Monster.Util.Comparator())\n * console.log(new Monster.Util.Comparator())\n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js';\n * console.log(new Util())\n * console.log(new Util())\n * </script>\n * ```\n *\n * the following are some examples of the application of the class.\n *\n * ```\n * new Comparator().lessThanOrEqual(2, 5) // ↦ true\n * new Comparator().greaterThan(4, 2) // ↦ true\n * new Comparator().equal(4, 4) // ↦ true\n * new Comparator().equal(4, 5) // ↦ false\n * ```\n *\n * you can also pass your own comparison function, and thus define the comparison function.\n *\n * ```\n * new Comparator(function (a, b) {\n * if (a.v === b.v) return 0;\n * return a.v < b.v ? -1 : 1;\n * }).equal({v: 2}, {v: 2}); // ↦ true\n * ```\n *\n * @since 1.3.0\n * @memberOf Monster/Util\n */\nclass Comparator extends Base {\n\n /**\n * create new comparator\n *\n * @param {function} callback\n * @throw {TypeError} \"unsupported type\"\n * @throw {TypeError} \"impractical comparison\"\n */\n constructor(callback) {\n super();\n\n if (isFunction(callback)) {\n this.compare = callback\n } else if (callback !== undefined) {\n throw new TypeError(\"unsupported type\")\n } else {\n // default compare function\n this.compare = function (a, b) {\n\n if (typeof a !== typeof b) {\n throw new TypeError(\"impractical comparison\")\n }\n\n if (a === b) {\n return 0;\n }\n return a < b ? -1 : 1;\n };\n }\n\n }\n\n /**\n * changes the order of the operators\n *\n * @return {Comparator}\n */\n reverse() {\n const original = this.compare;\n this.compare = (a, b) => original(b, a);\n return this;\n }\n\n /**\n * Checks if two variables are equal.\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n equal(a, b) {\n return this.compare(a, b) === 0;\n }\n\n\n /**\n * Checks if variable `a` is greater than `b`\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n greaterThan(a, b) {\n return this.compare(a, b) > 0;\n }\n\n /**\n * Checks if variable `a` is greater than or equal to `b`\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n greaterThanOrEqual(a, b) {\n return this.greaterThan(a, b) || this.equal(a, b);\n }\n\n /**\n * Checks if variable `a` is less than or equal to `b`\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n lessThanOrEqual(a, b) {\n return this.lessThan(a, b) || this.equal(a, b);\n }\n\n /**\n * Checks if variable a is less than b\n *\n * @param {*} a\n * @param {*} b\n *\n * @return {boolean}\n */\n lessThan(a, b) {\n return this.compare(a, b) < 0;\n }\n\n\n}\n\nMonster.assignToNamespace('Monster.Util', Comparator);\nexport {Monster, Comparator}\n", + "'use strict';\n\n/**\n * @author schukai GmbH\n */\n\nimport {Monster} from '../namespace.js';\nimport {validateObject} from '../types/validate.js';\n\n/**\n * deep freeze a object\n *\n * you can call the method via the monster namespace `Monster.Util.deepFreeze()`.\n *\n * ```\n * <script type=\"module\">\n * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/freeze.js';\n * console.log(Monster.Util.deepFreeze({})) \n * </script>\n * ```\n *\n * Alternatively, you can also integrate this function individually.\n *\n * ```\n * <script type=\"module\">\n * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/freeze.js';\n * console.log(deepFreeze({})) \n * </script>\n * ```\n *\n * @param {object} obj object to be freeze\n * @since 1.0.0\n * @returns {object}\n * @memberOf Monster/Util\n * @copyright schukai GmbH\n * @throws {TypeError} value is not a object\n */\nfunction deepFreeze(object) {\n \n validateObject(object)\n\n // Retrieve the defined property names of the object\n var propNames = Object.getOwnPropertyNames(object);\n\n // Freeze properties before freezing yourself\n for (let name of propNames) {\n let value = object[name];\n\n object[name] = value && typeof value === \"object\" ?\n deepFreeze(value) : value;\n }\n\n return Object.freeze(object);\n}\n\nMonster.assignToNamespace('Monster.Util', deepFreeze);\nexport {Monster, deepFreeze}\n" ] } \ No newline at end of file diff --git a/packages/monster/dist/monster.js b/packages/monster/dist/monster.js index 707d95b92dce6b81c5db38b572d750795c9c098c..28a2bb0716647f9490f4e3f721b6b2265489f5dc 100644 --- a/packages/monster/dist/monster.js +++ b/packages/monster/dist/monster.js @@ -1,2 +1,2 @@ -/** Monster 1.6.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.AbstractConstraint=void 0;var _namespace=require("../namespace.js");var _base=require("../types/base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var AbstractConstraint=function(_Base){_inherits(AbstractConstraint,_Base);var _super=_createSuper(AbstractConstraint);function AbstractConstraint(){_classCallCheck(this,AbstractConstraint);return _super.call(this)}_createClass(AbstractConstraint,[{key:"isValid",value:function isValid(value){return Promise.reject(value)}}]);return AbstractConstraint}(_base.Base);exports.AbstractConstraint=AbstractConstraint;_namespace.Monster.assignToNamespace("Monster.Constraints",AbstractConstraint)},{"../namespace.js":23,"../types/base.js":24}],2:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.AbstractOperator=void 0;var _abstract=require("./abstract.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var AbstractOperator=function(_AbstractConstraint){_inherits(AbstractOperator,_AbstractConstraint);var _super=_createSuper(AbstractOperator);function AbstractOperator(operantA,operantB){var _this;_classCallCheck(this,AbstractOperator);_this=_super.call(this);if(!(operantA instanceof _abstract.AbstractConstraint)||!(operantB instanceof _abstract.AbstractConstraint)){throw new TypeError("parameters must be from type AbstractConstraint")}_this.operantA=operantA;_this.operantB=operantB;return _this}return AbstractOperator}(_abstract.AbstractConstraint);exports.AbstractOperator=AbstractOperator;_abstract.Monster.assignToNamespace("Monster.Constraints",AbstractOperator)},{"./abstract.js":1}],3:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.AndOperator=void 0;var _abstract=require("./abstract.js");var _abstractoperator=require("./abstractoperator.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var AndOperator=function(_AbstractOperator){_inherits(AndOperator,_AbstractOperator);var _super=_createSuper(AndOperator);function AndOperator(){_classCallCheck(this,AndOperator);return _super.apply(this,arguments)}_createClass(AndOperator,[{key:"isValid",value:function isValid(value){return Promise.all([this.operantA.isValid(value),this.operantB.isValid(value)])}}]);return AndOperator}(_abstractoperator.AbstractOperator);exports.AndOperator=AndOperator;_abstract.Monster.assignToNamespace("Monster.Constraints",AndOperator)},{"./abstract.js":1,"./abstractoperator.js":2}],4:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.Invalid=void 0;var _abstract=require("./abstract.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Invalid=function(_AbstractConstraint){_inherits(Invalid,_AbstractConstraint);var _super=_createSuper(Invalid);function Invalid(){_classCallCheck(this,Invalid);return _super.apply(this,arguments)}_createClass(Invalid,[{key:"isValid",value:function isValid(value){return Promise.reject(value)}}]);return Invalid}(_abstract.AbstractConstraint);exports.Invalid=Invalid;_abstract.Monster.assignToNamespace("Monster.Constraints",Invalid)},{"./abstract.js":1}],5:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.IsArray=void 0;var _abstract=require("./abstract.js");var _is=require("../types/is.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var IsArray=function(_AbstractConstraint){_inherits(IsArray,_AbstractConstraint);var _super=_createSuper(IsArray);function IsArray(){_classCallCheck(this,IsArray);return _super.apply(this,arguments)}_createClass(IsArray,[{key:"isValid",value:function isValid(value){if((0,_is.isArray)(value)){return Promise.resolve(value)}return Promise.reject(value)}}]);return IsArray}(_abstract.AbstractConstraint);exports.IsArray=IsArray;_abstract.Monster.assignToNamespace("Monster.Constraints",IsArray)},{"../types/is.js":27,"./abstract.js":1}],6:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.IsObject=void 0;var _abstract=require("./abstract.js");var _is=require("../types/is.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var IsObject=function(_AbstractConstraint){_inherits(IsObject,_AbstractConstraint);var _super=_createSuper(IsObject);function IsObject(){_classCallCheck(this,IsObject);return _super.apply(this,arguments)}_createClass(IsObject,[{key:"isValid",value:function isValid(value){if((0,_is.isObject)(value)){return Promise.resolve(value)}return Promise.reject(value)}}]);return IsObject}(_abstract.AbstractConstraint);exports.IsObject=IsObject;_abstract.Monster.assignToNamespace("Monster.Constraints",IsObject)},{"../types/is.js":27,"./abstract.js":1}],7:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstractoperator.Monster}});exports.OrOperator=void 0;var _abstractoperator=require("./abstractoperator.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var OrOperator=function(_AbstractOperator){_inherits(OrOperator,_AbstractOperator);var _super=_createSuper(OrOperator);function OrOperator(){_classCallCheck(this,OrOperator);return _super.apply(this,arguments)}_createClass(OrOperator,[{key:"isValid",value:function isValid(value){var self=this;return new Promise(function(resolve,reject){var a,b;self.operantA.isValid(value).then(function(){resolve()})["catch"](function(){a=false;if(b===false){reject()}});self.operantB.isValid(value).then(function(){resolve()})["catch"](function(){b=false;if(a===false){reject()}})})}}]);return OrOperator}(_abstractoperator.AbstractOperator);exports.OrOperator=OrOperator;_abstractoperator.Monster.assignToNamespace("Monster.Constraints",OrOperator)},{"./abstractoperator.js":2}],8:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.Valid=void 0;var _abstract=require("./abstract.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Valid=function(_AbstractConstraint){_inherits(Valid,_AbstractConstraint);var _super=_createSuper(Valid);function Valid(){_classCallCheck(this,Valid);return _super.apply(this,arguments)}_createClass(Valid,[{key:"isValid",value:function isValid(value){return Promise.resolve(value)}}]);return Valid}(_abstract.AbstractConstraint);exports.Valid=Valid;_abstract.Monster.assignToNamespace("Monster.Constraints",Valid)},{"./abstract.js":1}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Diff=Diff;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _is.Monster}});var _is=require("../types/is.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function Diff(first,second){return doDiff(first,second)}function getKeys(a,b,type){if((0,_is.isArray)(type)){var keys=a.length>b.length?new Array(a.length):new Array(b.length);keys.fill(0);return new Set(keys.map(function(_,i){return i}))}return new Set(Object.keys(a).concat(Object.keys(b)))}function doDiff(a,b,path,diff){var typeA=_typeof(a);var typeB=_typeof(b);var currPath=path||[];var currDiff=diff||[];if(typeA===typeB&&typeA==="object"){getKeys(a,b,typeA).forEach(function(v){if(!Object.prototype.hasOwnProperty.call(a,v)){currDiff.push(buildResult(a[v],b[v],"add",currPath.concat(v)))}else if(!Object.prototype.hasOwnProperty.call(b,v)){currDiff.push(buildResult(a[v],b[v],"delete",currPath.concat(v)))}else{doDiff(a[v],b[v],currPath.concat(v),currDiff)}})}else{var o=getOperator(a,b,typeA,typeB);if(o!==undefined){currDiff.push(buildResult(a,b,o,path))}}return currDiff}function buildResult(a,b,operator,path){var result={operator:operator,path:path};if(operator!=="add"){result.first={value:a,type:_typeof(a)};if((0,_is.isObject)(a)){var _Object$getPrototypeO,_Object$getPrototypeO2;var name=(_Object$getPrototypeO=Object.getPrototypeOf(a))===null||_Object$getPrototypeO===void 0?void 0:(_Object$getPrototypeO2=_Object$getPrototypeO.constructor)===null||_Object$getPrototypeO2===void 0?void 0:_Object$getPrototypeO2.name;if(name!==undefined){result.first.instance=name}}}if(operator==="add"||operator==="update"){result.second={value:b,type:_typeof(b)};if((0,_is.isObject)(b)){var _Object$getPrototypeO3,_Object$getPrototypeO4;var _name=(_Object$getPrototypeO3=Object.getPrototypeOf(b))===null||_Object$getPrototypeO3===void 0?void 0:(_Object$getPrototypeO4=_Object$getPrototypeO3.constructor)===null||_Object$getPrototypeO4===void 0?void 0:_Object$getPrototypeO4.name;if(_name!==undefined){result.second.instance=_name}}}return result}function isNotEqual(a,b){if(_typeof(a)!==_typeof(b)){return true}if(a instanceof Date&&b instanceof Date){return a.getTime()!==b.getTime()}return a!==b}function getOperator(a,b){var operator;var typeA=_typeof(a);var typeB=_typeof(b);if(typeA==="undefined"&&typeB!=="undefined"){operator="add"}else if(typeA!=="undefined"&&typeB==="undefined"){operator="delete"}else if(isNotEqual(a,b)){operator="update"}return operator}_is.Monster.assignToNamespace("Monster.Data",Diff)},{"../types/is.js":27}],10:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Pathfinder=void 0;var _namespace=require("../namespace.js");var _is=require("../types/is.js");var _validate=require("../types/validate.js");var _base=require("../types/base.js");var _stack=require("../types/stack.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var DELIMITER=".";var Pathfinder=function(_Base){_inherits(Pathfinder,_Base);var _super=_createSuper(Pathfinder);function Pathfinder(object){var _this;_classCallCheck(this,Pathfinder);_this=_super.call(this);_this.object=object;return _this}_createClass(Pathfinder,[{key:"getVia",value:function getVia(path){(0,_validate.validateString)(path);return getValueViaPath(this.object,path)}},{key:"setVia",value:function setVia(path,value){(0,_validate.validateString)(path);setValueViaPath(this.object,path,value);return this}},{key:"deleteVia",value:function deleteVia(path){(0,_validate.validateString)(path);deleteValueViaPath(this.object,path);return this}},{key:"exists",value:function exists(path){(0,_validate.validateString)(path);try{getValueViaPath(this.object,path,true);return true}catch(e){}return false}}]);return Pathfinder}(_base.Base);exports.Pathfinder=Pathfinder;_namespace.Monster.assignToNamespace("Monster.Data",Pathfinder);function getValueViaPath(object,path,check){if(path===""){return object}var parts=path.split(DELIMITER);var current=parts.shift();if((0,_is.isObject)(object)||(0,_is.isArray)(object)){var anchor;if(object instanceof Map||object instanceof WeakMap){anchor=object.get(current)}else if(object instanceof Set||object instanceof WeakSet){var _ref;current=parseInt(current);(0,_validate.validateInteger)(current);anchor=(_ref=_toConsumableArray(object))===null||_ref===void 0?void 0:_ref[current]}else if(object instanceof WeakRef){throw Error("unsupported action for this data type")}else if((0,_is.isArray)(object)){current=parseInt(current);(0,_validate.validateInteger)(current);anchor=object===null||object===void 0?void 0:object[current]}else{anchor=object===null||object===void 0?void 0:object[current]}if((0,_is.isObject)(anchor)||(0,_is.isArray)(anchor)){return getValueViaPath(anchor,parts.join(DELIMITER),check)}if(parts.length>0){throw Error("the journey is not at its end ("+parts.join(DELIMITER)+")")}if(check===true&&!object.hasOwnProperty(current)){throw Error("unknown value")}return anchor}throw TypeError("unsupported type")}function setValueViaPath(object,path,value){var parts=path.split(DELIMITER);var last=parts.pop();var subpath=parts.join(DELIMITER);var stack=new _stack.Stack;var current=subpath;while(true){try{getValueViaPath(object,current,true);break}catch(e){}stack.push(current);parts.pop();current=parts.join(DELIMITER);if(current==="")break}while(!stack.isEmpty()){current=stack.pop();var obj={};if(!stack.isEmpty()){var n=stack.peek().split(DELIMITER).pop();if((0,_is.isInteger)(parseInt(n))){obj=[]}}setValueViaPath(object,current,obj)}var anchor=getValueViaPath(object,subpath);if(!(0,_is.isObject)(object)&&!(0,_is.isArray)(object)){throw TypeError("unsupported type: "+_typeof(object))}if(anchor instanceof Map||anchor instanceof WeakMap){anchor.set(last,value)}else if(anchor instanceof Set||anchor instanceof WeakSet){anchor.append(value)}else if(anchor instanceof WeakRef){throw Error("unsupported action for this data type")}else if((0,_is.isArray)(anchor)){last=parseInt(last);(0,_validate.validateInteger)(last);anchor[last]=value}else{anchor[last]=value}return}function deleteValueViaPath(object,path){var parts=path.split(DELIMITER);var last=parts.pop();var subpath=parts.join(DELIMITER);var anchor=getValueViaPath.call(this,object,subpath);if(anchor instanceof Map){anchor["delete"](last)}else if(anchor instanceof Set||anchor instanceof WeakMap||anchor instanceof WeakSet||anchor instanceof WeakRef){throw Error("unsupported action for this data type")}else if((0,_is.isArray)(anchor)){last=parseInt(last);(0,_validate.validateInteger)(last);delete anchor[last]}else{delete anchor[last]}return}},{"../namespace.js":23,"../types/base.js":24,"../types/is.js":27,"../types/stack.js":33,"../types/validate.js":36}],11:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Pipe=void 0;var _namespace=require("../namespace.js");var _transformer=require("./transformer.js");var _base=require("../types/base.js");var _validate=require("../types/validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var DELIMITER="|";var Pipe=function(_Base){_inherits(Pipe,_Base);var _super=_createSuper(Pipe);function Pipe(pipe){var _this;_classCallCheck(this,Pipe);_this=_super.call(this);(0,_validate.validateString)(pipe);_this.pipe=pipe.split(DELIMITER).map(function(v){return new _transformer.Transformer(v)});return _this}_createClass(Pipe,[{key:"run",value:function run(value){return this.pipe.reduce(function(accumulator,currentValue,currentIndex,array){return currentValue.run(accumulator)},value)}}]);return Pipe}(_base.Base);exports.Pipe=Pipe;_namespace.Monster.assignToNamespace("Monster.Data",Pipe)},{"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36,"./transformer.js":12}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Transformer=void 0;var _namespace=require("../namespace.js");var _base=require("../types/base.js");var _validate=require("../types/validate.js");var _is=require("../types/is.js");var _id=require("../types/id.js");var _clone=require("../util/clone.js");var _pathfinder=require("./pathfinder.js");function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _wrapRegExp(){_wrapRegExp=function _wrapRegExp(re,groups){return new BabelRegExp(re,undefined,groups)};var _super=RegExp.prototype;var _groups=new WeakMap;function BabelRegExp(re,flags,groups){var _this=new RegExp(re,flags);_groups.set(_this,groups||_groups.get(re));return _setPrototypeOf(_this,BabelRegExp.prototype)}_inherits(BabelRegExp,RegExp);BabelRegExp.prototype.exec=function(str){var result=_super.exec.call(this,str);if(result)result.groups=buildGroups(result,this);return result};BabelRegExp.prototype[Symbol.replace]=function(str,substitution){if(typeof substitution==="string"){var groups=_groups.get(this);return _super[Symbol.replace].call(this,str,substitution.replace(/\$<([^>]+)>/g,function(_,name){return"$"+groups[name]}))}else if(typeof substitution==="function"){var _this=this;return _super[Symbol.replace].call(this,str,function(){var args=arguments;if(_typeof(args[args.length-1])!=="object"){args=[].slice.call(args);args.push(buildGroups(args,_this))}return substitution.apply(this,args)})}else{return _super[Symbol.replace].call(this,str,substitution)}};function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce(function(groups,name){groups[name]=result[g[name]];return groups},Object.create(null))}return _wrapRegExp.apply(this,arguments)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Transformer=function(_Base){_inherits(Transformer,_Base);var _super=_createSuper(Transformer);function Transformer(definition){var _this;_classCallCheck(this,Transformer);_this=_super.call(this);(0,_validate.validateString)(definition);_this.args=disassemble(definition);_this.command=_this.args.shift();_this.callbacks=new Map;return _this}_createClass(Transformer,[{key:"setCallback",value:function setCallback(name,callback){(0,_validate.validateString)(name);(0,_validate.validateFunction)(callback);this.callbacks.set(name,callback);return this}},{key:"run",value:function run(value){return transform.apply(this,[value])}}]);return Transformer}(_base.Base);exports.Transformer=Transformer;_namespace.Monster.assignToNamespace("Monster.Data",Transformer);function disassemble(command){(0,_validate.validateString)(command);var placeholder=new Map;var regex=_wrapRegExp(/((\\(.)){1})/gim,{pattern:2,char:3});var result=command.matchAll(regex);var _iterator=_createForOfIteratorHelper(result),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var m=_step.value;var g=m===null||m===void 0?void 0:m["groups"];if(!(0,_is.isObject)(g)){continue}var p=g===null||g===void 0?void 0:g["pattern"];var c=g===null||g===void 0?void 0:g["char"];if(p&&c){var r="__"+(new _id.ID).toString()+"__";placeholder.set(r,c);command=command.replace(p,r)}}}catch(err){_iterator.e(err)}finally{_iterator.f()}var parts=command.split(":");parts=parts.map(function(value){var v=value.trim();var _iterator2=_createForOfIteratorHelper(placeholder),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var k=_step2.value;v=v.replace(k[0],k[1])}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}return v});return parts}function convertToString(value){if((0,_is.isObject)(value)&&value.hasOwnProperty("toString")){value=value.toString()}(0,_validate.validateString)(value);return value}function transform(value){var args=(0,_clone.clone)(this.args);var key;switch(this.command){case"static":return this.args.join(":");case"tolower":case"strtolower":case"tolowercase":(0,_validate.validateString)(value);return value.toLowerCase();case"toupper":case"strtoupper":case"touppercase":(0,_validate.validateString)(value);return value.toUpperCase();case"tostring":return""+value;case"tointeger":var n=parseInt(value);(0,_validate.validateInteger)(n);return n;case"trim":(0,_validate.validateString)(value);return value.trim();case"rawurlencode":(0,_validate.validateString)(value);return encodeURIComponent(value).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A");case"call":var callback;var callbackName=args.shift();if((0,_is.isObject)(value)&&calue.hasOwnProperty(callbackName)){callback=value[callbackName]}else if(this.callbacks.has(callbackName)){callback=this.callbacks.get(callbackName)}else if((typeof window==="undefined"?"undefined":_typeof(window))==="object"&&window.hasOwnProperty(callbackName)){callback=window[callbackName]}(0,_validate.validateFunction)(callback);args.unshift(value);return callback.apply(void 0,_toConsumableArray(args));case"plain":case"plaintext":(0,_validate.validateString)(value);var doc=(new DOMParser).parseFromString(value,"text/html");return doc.body.textContent||"";case"if":case"?":(0,_validate.validatePrimitive)(value);var trueStatement=args.shift()||undefined;var falseStatement=args.shift()||undefined;if(trueStatement==="value"){trueStatement=value}if(trueStatement==="\\value"){trueStatement="value"}if(falseStatement==="value"){falseStatement=value}if(falseStatement==="\\value"){falseStatement="value"}var condition=value!==undefined&&value!==""&&value!=="off"&&value!=="false"&&value!==false||value==="on"||value==="true"||value===true;return condition?trueStatement:falseStatement;case"ucfirst":(0,_validate.validateString)(value);var firstchar=value.charAt(0).toUpperCase();return firstchar+value.substr(1);case"ucwords":(0,_validate.validateString)(value);return value.replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(v){return v.toUpperCase()});case"count":case"length":if(((0,_is.isString)(value)||(0,_is.isObject)(value)||(0,_is.isArray)(value))&&value.hasOwnProperty("length")){return value.length}throw new TypeError("unsupported type");case"base64":convertToString(value);return btoa(value);case"empty":return"";case"undefined":return undefined;case"prefix":(0,_validate.validateString)(value);var prefix=args===null||args===void 0?void 0:args[0];return prefix+value;case"suffix":(0,_validate.validateString)(value);var suffix=args===null||args===void 0?void 0:args[0];return value+suffix;case"uniqid":return(new _id.ID).toString();case"key":case"property":case"index":key=args.shift()||"undefined";var defaultValue=args.shift()||"";if(value instanceof Map){if(!value.has(key)){return defaultValue}return value.get(key)}if((0,_is.isObject)(value)||(0,_is.isArray)(value)){if(value!==null&&value!==void 0&&value[key]){return value===null||value===void 0?void 0:value[key]}return defaultValue}throw new Error("type not supported");case"path":key=args.shift()||"undefined";return new _pathfinder.Pathfinder(value).getVia(key);case"substring":(0,_validate.validateString)(value);var start=parseInt(args[0])||0;var end=(parseInt(args[1])||0)+start;return value.substring(start,end);case"nop":return value;default:throw new Error("unknown command")}return value}},{"../namespace.js":23,"../types/base.js":24,"../types/id.js":26,"../types/is.js":27,"../types/validate.js":36,"../util/clone.js":38,"./pathfinder.js":10}],13:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Assembler=exports.ATTRIBUTEPREFIX=void 0;var _base=require("../types/base.js");var _validate=require("../types/validate.js");var _global=require("../types/global.js");var _proxyobserver=require("../types/proxyobserver.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ATTRIBUTEPREFIX="data-monster-";exports.ATTRIBUTEPREFIX=ATTRIBUTEPREFIX;var Assembler=function(_Base){_inherits(Assembler,_Base);var _super=_createSuper(Assembler);function Assembler(fragment){var _this;_classCallCheck(this,Assembler);_this=_super.call(this);_this.attributePrefix=ATTRIBUTEPREFIX;(0,_validate.validateInstance)(fragment,(0,_global.getGlobalFunction)("DocumentFragment"));_this.fragment=fragment;return _this}_createClass(Assembler,[{key:"setAttributePrefix",value:function setAttributePrefix(prefix){(0,_validate.validateString)(prefix);this.attributePrefix=prefix;return this}},{key:"getAttributePrefix",value:function getAttributePrefix(){return this.attributePrefix}},{key:"createDocumentFragment",value:function createDocumentFragment(data){if(data===undefined){data=new _proxyobserver.ProxyObserver({})}(0,_validate.validateInstance)(data,_proxyobserver.ProxyObserver);var fragment=this.fragment.cloneNode(true);return fragment}}]);return Assembler}(_base.Base);exports.Assembler=Assembler;_base.Monster.assignToNamespace("Monster.DOM",Assembler)},{"../types/base.js":24,"../types/global.js":25,"../types/proxyobserver.js":30,"../types/validate.js":36}],14:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});exports.getHandleFromNode=getHandleFromNode;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Handle=void 0;var _base=require("../types/base.js");var _stack=require("../types/stack.js");var _validate=require("../types/validate.js");var _proxyobserver=require("../types/proxyobserver.js");var _observer=require("../types/observer.js");var _global=require("../types/global.js");var _is=require("../types/is.js");var _assembler=require("./assembler.js");var _id=require("../types/id.js");function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var MONSTERDOMHANDLE=Symbol("MonsterHandle");var Handle=function(_Base){_inherits(Handle,_Base);var _super=_createSuper(Handle);function Handle(data){var _this;_classCallCheck(this,Handle);_this=_super.call(this);var self=_assertThisInitialized(_this);self.id=new _id.ID;(0,_validate.validateInstance)(data,_proxyobserver.ProxyObserver);_this.data=data;_this.mutationObserver=createMutationObserver.call(_assertThisInitialized(_this));_this.dataObserver=createDataObserver.call(_assertThisInitialized(_this));_this.data.attachObserver(_this.dataObserver);_this.nodes=new WeakSet;_this.updates=new _stack.Stack;return _this}_createClass(Handle,[{key:"update",value:function update(){return}},{key:"remove",value:function remove(node){if((0,_is.isInstance)(node,(0,_global.getGlobalFunction)("Document"))){node=node.firstElementChild}(0,_validate.validateInstance)(node,(0,_global.getGlobalFunction)("HTMLElement"));if(!this.nodes.has(node)){return this}this.mutationObserver.disconnect(node);delete node.dataset[MONSTERDOMHANDLE];node.removeAttribute(_assembler.ATTRIBUTEPREFIX+"handler");return this}},{key:"append",value:function append(node){if((0,_is.isInstance)(node,(0,_global.getGlobalFunction)("Document"))){node=node.firstElementChild}(0,_validate.validateInstance)(node,(0,_global.getGlobalFunction)("HTMLElement"));if(this.nodes.has(node)){return this}node.dataset[MONSTERDOMHANDLE]=this;node.setAttribute(_assembler.ATTRIBUTEPREFIX+"handler",true);this.mutationObserver.observe(node,{attributes:true,childList:true,subtree:true,characterData:true,characterDataOldValue:true,attributeOldValue:true});this.nodes.add(node);return this}}]);return Handle}(_base.Base);exports.Handle=Handle;function createDataObserver(){var self=this;return new _observer.Observer(function(){self.update()})}function createMutationObserver(){var self=this;var MutationObserver=(0,_global.getGlobalFunction)("MutationObserver");return new MutationObserver(function(mutationsList,observer){var _iterator=_createForOfIteratorHelper(mutationsList),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var mutation=_step.value;self.updates.push(mutation)}}catch(err){_iterator.e(err)}finally{_iterator.f()}self.update()})}function getHandleFromNode(node){var _node$dataset;(0,_validate.validateInstance)(node,(0,_global.getGlobalFunction)("Node"));var handle=(_node$dataset=node.dataset)===null||_node$dataset===void 0?void 0:_node$dataset[MONSTERDOMHANDLE];if(handle===undefined){var parentNode=node===null||node===void 0?void 0:node["parentNode"];if((0,_is.isInstance)(parentNode,(0,_global.getGlobalFunction)("Node"))){return getHandleFromNode(parentNode)}}return handle}_base.Monster.assignToNamespace("Monster.DOM",getHandleFromNode,Handle)},{"../types/base.js":24,"../types/global.js":25,"../types/id.js":26,"../types/is.js":27,"../types/observer.js":28,"../types/proxyobserver.js":30,"../types/stack.js":33,"../types/validate.js":36,"./assembler.js":13}],15:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Template=void 0;var _base=require("../types/base.js");var _global=require("../types/global.js");var _validate=require("../types/validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Template=function(_Base){_inherits(Template,_Base);var _super=_createSuper(Template);function Template(template){var _this;_classCallCheck(this,Template);_this=_super.call(this);(0,_validate.validateInstance)(template,(0,_global.getGlobalFunction)("HTMLTemplateElement"));_this.template=template;return _this}_createClass(Template,[{key:"getTemplateElement",value:function getTemplateElement(){return this.template}},{key:"createDocumentFragment",value:function createDocumentFragment(){return this.template.content.cloneNode(true)}}]);return Template}(_base.Base);exports.Template=Template;_base.Monster.assignToNamespace("Monster.DOM",Template)},{"../types/base.js":24,"../types/global.js":25,"../types/validate.js":36}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getWindow=getWindow;exports.getDocument=getDocument;exports.getDocumentFragmentFromString=getDocumentFragmentFromString;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _global.Monster}});var _global=require("../types/global.js");var _validate=require("../types/validate.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function getDocument(){var _getGlobal;var document=(_getGlobal=(0,_global.getGlobal)())===null||_getGlobal===void 0?void 0:_getGlobal["document"];if(_typeof(document)!=="object"){throw new Error("not supported environment")}return document}function getWindow(){var _getGlobal2;var window=(_getGlobal2=(0,_global.getGlobal)())===null||_getGlobal2===void 0?void 0:_getGlobal2["window"];if(_typeof(window)!=="object"){throw new Error("not supported environment")}return window}function getDocumentFragmentFromString(html){(0,_validate.validateString)(html);var document=getDocument();var template=document.createElement("template");template.innerHTML=html;return template.content}_global.Monster.assignToNamespace("Monster.DOM",getWindow,getDocument,getDocumentFragmentFromString)},{"../types/global.js":25,"../types/validate.js":36}],17:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Handler=void 0;var _namespace=require("../namespace.js");var _base=require("../types/base.js");var _logger=require("./logger.js");var _logentry=require("./logentry.js");var _validate=require("../types/validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Handler=function(_Base){_inherits(Handler,_Base);var _super=_createSuper(Handler);function Handler(){var _this;_classCallCheck(this,Handler);_this=_super.call(this);_this.loglevel=_logger.OFF;return _this}_createClass(Handler,[{key:"log",value:function log(entry){(0,_validate.validateInstance)(entry,_logentry.LogEntry);if(this.loglevel<entry.getLogLevel()){return false}return true}},{key:"setLogLevel",value:function setLogLevel(loglevel){(0,_validate.validateInteger)(loglevel);this.loglevel=loglevel;return this}},{key:"getLogLevel",value:function getLogLevel(){return this.loglevel}},{key:"setAll",value:function setAll(){this.setLogLevel(_logger.ALL);return this}},{key:"setTrace",value:function setTrace(){this.setLogLevel(_logger.TRACE);return this}},{key:"setDebug",value:function setDebug(){this.setLogLevel(_logger.DEBUG);return this}},{key:"setInfo",value:function setInfo(){this.setLogLevel(_logger.INFO);return this}},{key:"setWarn",value:function setWarn(){this.setLogLevel(_logger.WARN);return this}},{key:"setError",value:function setError(){this.setLogLevel(_logger.ERROR);return this}},{key:"setFatal",value:function setFatal(){this.setLogLevel(_logger.FATAL);return this}},{key:"setOff",value:function setOff(){this.setLogLevel(_logger.OFF);return this}}]);return Handler}(_base.Base);exports.Handler=Handler;_namespace.Monster.assignToNamespace("Monster.Logging",Handler)},{"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36,"./logentry.js":19,"./logger.js":20}],18:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});Object.defineProperty(exports,"Handler",{enumerable:true,get:function get(){return _handler.Handler}});var _namespace=require("../../namespace.js");var _base=require("../../types/base.js");var _handler=require("../../logging/handler.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ConsoleHandler=function(_Base){_inherits(ConsoleHandler,_Base);var _super=_createSuper(ConsoleHandler);function ConsoleHandler(){_classCallCheck(this,ConsoleHandler);return _super.call(this)}return ConsoleHandler}(_base.Base);_namespace.Monster.assignToNamespace("Monster.Logging",ConsoleHandler)},{"../../logging/handler.js":17,"../../namespace.js":23,"../../types/base.js":24}],19:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.LogEntry=void 0;var _namespace=require("../namespace.js");var _validate=require("../types/validate.js");var _base=require("../types/base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var LogEntry=function(_Base){_inherits(LogEntry,_Base);var _super=_createSuper(LogEntry);function LogEntry(loglevel){var _this;_classCallCheck(this,LogEntry);_this=_super.call(this);(0,_validate.validateInteger)(loglevel);_this.loglevel=loglevel;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}_this.arguments=args;return _this}_createClass(LogEntry,[{key:"getLogLevel",value:function getLogLevel(){return this.loglevel}},{key:"getArguments",value:function getArguments(){return this.arguments}}]);return LogEntry}(_base.Base);exports.LogEntry=LogEntry;_namespace.Monster.assignToNamespace("Monster.Logging",LogEntry)},{"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36}],20:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.OFF=exports.FATAL=exports.ERROR=exports.WARN=exports.INFO=exports.DEBUG=exports.TRACE=exports.ALL=exports.Logger=void 0;var _namespace=require("../namespace.js");var _validate=require("../types/validate.js");var _handler=require("../logging/handler.js");var _logentry=require("../logging/logentry.js");var _base=require("../types/base.js");function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ALL=255;exports.ALL=ALL;var TRACE=64;exports.TRACE=TRACE;var DEBUG=32;exports.DEBUG=DEBUG;var INFO=16;exports.INFO=INFO;var WARN=8;exports.WARN=WARN;var ERROR=4;exports.ERROR=ERROR;var FATAL=2;exports.FATAL=FATAL;var OFF=0;exports.OFF=OFF;var Logger=function(_Base){_inherits(Logger,_Base);var _super=_createSuper(Logger);function Logger(){var _this;_classCallCheck(this,Logger);_this=_super.call(this);_this.handler=new Set;return _this}_createClass(Logger,[{key:"addHandler",value:function addHandler(handler){(0,_validate.validateObject)(handler);if(!(handler instanceof _handler.Handler)){throw new Error("the handler must be an instance of Handler")}this.handler.add(handler);return this}},{key:"removeHandler",value:function removeHandler(handler){(0,_validate.validateObject)(handler);if(!(handler instanceof _handler.Handler)){throw new Error("the handler must be an instance of Handler")}this.handler["delete"](handler);return this}},{key:"logTrace",value:function logTrace(){triggerLog.apply(this,[TRACE].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logDebug",value:function logDebug(){triggerLog.apply(this,[DEBUG].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logInfo",value:function logInfo(){triggerLog.apply(this,[INFO].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logWarn",value:function logWarn(){triggerLog.apply(this,[WARN].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logError",value:function logError(){triggerLog.apply(this,[ERROR].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logFatal",value:function logFatal(){triggerLog.apply(this,[FATAL].concat(Array.prototype.slice.call(arguments)));return this}},{key:"getLabel",value:function getLabel(level){(0,_validate.validateInteger)(level);if(level===ALL)return"ALL";if(level===TRACE)return"TRACE";if(level===DEBUG)return"DEBUG";if(level===INFO)return"INFO";if(level===WARN)return"WARN";if(level===ERROR)return"ERROR";if(level===FATAL)return"FATAL";if(level===OFF)return"OFF";return"unknown"}},{key:"getLevel",value:function getLevel(label){(0,_validate.validateString)(label);if(label==="ALL")return ALL;if(label==="TRACE")return TRACE;if(label==="DEBUG")return DEBUG;if(label==="INFO")return INFO;if(label==="WARN")return WARN;if(label==="ERROR")return ERROR;if(label==="FATAL")return FATAL;if(label==="OFF")return OFF;return 0}}]);return Logger}(_base.Base);exports.Logger=Logger;_namespace.Monster.assignToNamespace("Monster.Logging",Logger);function triggerLog(loglevel){var logger=this;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}var _iterator=_createForOfIteratorHelper(logger.handler),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var handler=_step.value;handler.log(new _logentry.LogEntry(loglevel,args))}}catch(err){_iterator.e(err)}finally{_iterator.f()}return logger}},{"../logging/handler.js":17,"../logging/logentry.js":19,"../namespace.js":23,"../types/base.js":24,"../types/validate.js":36}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.random=random;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _global.Monster}});var _global=require("../types/global.js");function random(min,max){if(min===undefined){min=0}if(max===undefined){max=MAX}if(max<min){throw new Error("max must be greater than min")}return Math.round(create(min,max))}var MAX=1e9;Math.log2=Math.log2||function(n){return Math.log(n)/Math.log(2)};function create(min,max){var crypt;var globalReference=(0,_global.getGlobal)();crypt=(globalReference===null||globalReference===void 0?void 0:globalReference["crypto"])||(globalReference===null||globalReference===void 0?void 0:globalReference["msCrypto"])||(globalReference===null||globalReference===void 0?void 0:globalReference["crypto"])||undefined;if(typeof crypt==="undefined"){throw new Error("missing crypt")}var rval=0;var range=max-min;if(range<2){return min}var bitsNeeded=Math.ceil(Math.log2(range));if(bitsNeeded>53){throw new Error("we cannot generate numbers larger than 53 bits.")}var bytesNeeded=Math.ceil(bitsNeeded/8);var mask=Math.pow(2,bitsNeeded)-1;var byteArray=new Uint8Array(bytesNeeded);crypt.getRandomValues(byteArray);var p=(bytesNeeded-1)*8;for(var i=0;i<bytesNeeded;i++){rval+=byteArray[i]*Math.pow(2,p);p-=8}rval=rval&mask;if(rval>=range){return create(min,max)}return min+rval}_global.Monster.assignToNamespace("Monster.Math",random)},{"../types/global.js":25}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("./namespace.js");require("./types/base.js");require("./types/global.js");require("./types/id.js");require("./types/is.js");require("./types/observer.js");require("./types/observerlist.js");require("./types/proxyobserver.js");require("./types/queue.js");require("./types/randomid.js");require("./types/stack.js");require("./types/tokenlist.js");require("./types/uniquequeue.js");require("./types/validate.js");require("./types/version.js");require("./math/random.js");require("./data/diff.js");require("./data/pathfinder.js");require("./data/pipe.js");require("./data/transformer.js");require("./logging/handler.js");require("./logging/logentry.js");require("./logging/logger.js");require("./logging/handler/console.js");require("./util/clone.js");require("./util/comparator.js");require("./util/freeze.js");require("./constraints/abstract.js");require("./constraints/abstractoperator.js");require("./constraints/andoperator.js");require("./constraints/invalid.js");require("./constraints/isarray.js");require("./constraints/isobject.js");require("./constraints/oroperator.js");require("./constraints/valid.js");require("./dom/util.js");require("./dom/template.js");require("./dom/handle.js");require("./dom/assembler.js");_namespace.Monster.Util.deepFreeze(_namespace.Monster);var rootName;try{rootName=_namespace.Monster.Types.getGlobalObject("__MonsterRootName__")}catch(e){}if(!rootName)rootName="Monster";_namespace.Monster.Types.getGlobal()[rootName]=_namespace.Monster},{"./constraints/abstract.js":1,"./constraints/abstractoperator.js":2,"./constraints/andoperator.js":3,"./constraints/invalid.js":4,"./constraints/isarray.js":5,"./constraints/isobject.js":6,"./constraints/oroperator.js":7,"./constraints/valid.js":8,"./data/diff.js":9,"./data/pathfinder.js":10,"./data/pipe.js":11,"./data/transformer.js":12,"./dom/assembler.js":13,"./dom/handle.js":14,"./dom/template.js":15,"./dom/util.js":16,"./logging/handler.js":17,"./logging/handler/console.js":18,"./logging/logentry.js":19,"./logging/logger.js":20,"./math/random.js":21,"./namespace.js":23,"./types/base.js":24,"./types/global.js":25,"./types/id.js":26,"./types/is.js":27,"./types/observer.js":28,"./types/observerlist.js":29,"./types/proxyobserver.js":30,"./types/queue.js":31,"./types/randomid.js":32,"./types/stack.js":33,"./types/tokenlist.js":34,"./types/uniquequeue.js":35,"./types/validate.js":36,"./types/version.js":37,"./util/clone.js":38,"./util/comparator.js":39,"./util/freeze.js":40}],23:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.assignToNamespace=assignToNamespace;exports.Monster=void 0;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}var Namespace=function(){function Namespace(namespace){_classCallCheck(this,Namespace);if(namespace===undefined||typeof namespace!=="string"){throw new Error("namespace is not a string")}this.namespace=namespace}_createClass(Namespace,[{key:"getNamespace",value:function getNamespace(){return this.namespace}},{key:"toString",value:function toString(){return this.getNamespace()}}]);return Namespace}();var Monster=new Namespace("Monster");exports.Monster=Monster;assignToNamespace("Monster",assignToNamespace);function assignToNamespace(ns){var current=namespaceFor(ns.split("."));for(var i=0,l=arguments.length<=1?0:arguments.length-1;i<l;i++){current[objectName(i+1<1||arguments.length<=i+1?undefined:arguments[i+1])]=i+1<1||arguments.length<=i+1?undefined:arguments[i+1]}}function objectName(fn){try{if(typeof fn!=="function"){throw new Error("the first argument is not a function or class.")}if(fn.hasOwnProperty("name")){return fn.name}if("function"===typeof fn.toString){var s=fn.toString();var f=s.match(/^\s*function\s+([^\s(]+)/);if(Array.isArray(f)&&typeof f[1]==="string"){return f[1]}var c=s.match(/^\s*class\s+([^\s(]+)/);if(Array.isArray(c)&&typeof c[1]==="string"){return c[1]}}}catch(e){throw new Error("exception "+e)}throw new Error("the name of the class or function cannot be resolved.")}function namespaceFor(parts){var space=Monster,ns="Monster";for(var i=0;i<parts.length;i++){if("Monster"===parts[i]){continue}ns+="."+parts[i];if(!space.hasOwnProperty(parts[i])){space[parts[i]]=new Namespace(ns)}space=space[parts[i]]}return space}},{}],24:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Base=void 0;var _namespace=require("../namespace.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map:undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper)}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor)}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class)};return _wrapNativeSuper(Class)}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor;if(Class)_setPrototypeOf(instance,Class.prototype);return instance}}return _construct.apply(null,arguments)}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Base=function(_Object){_inherits(Base,_Object);var _super=_createSuper(Base);function Base(){_classCallCheck(this,Base);return _super.apply(this,arguments)}_createClass(Base,[{key:"toString",value:function toString(){return JSON.stringify(this)}}]);return Base}(_wrapNativeSuper(Object));exports.Base=Base;_namespace.Monster.assignToNamespace("Monster.Types",Base)},{"../namespace.js":23}],25:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getGlobal=getGlobal;exports.getGlobalObject=getGlobalObject;exports.getGlobalFunction=getGlobalFunction;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _validate=require("./validate.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}var globalReference;(function(){if((typeof globalThis==="undefined"?"undefined":_typeof(globalThis))==="object"){globalReference=globalThis;return}Object.defineProperty(Object.prototype,"__monster__",{get:function get(){return this},configurable:true});__monster__.globalThis=__monster__;delete Object.prototype.__monster__;globalReference=globalThis})();function getGlobal(){return globalReference}function getGlobalObject(name){var _globalReference;(0,_validate.validateString)(name);var o=(_globalReference=globalReference)===null||_globalReference===void 0?void 0:_globalReference[name];if(typeof o==="undefined")throw new Error("the object "+name+" is not defined");(0,_validate.validateObject)(o);return o}function getGlobalFunction(name){var _globalReference2;(0,_validate.validateString)(name);var f=(_globalReference2=globalReference)===null||_globalReference2===void 0?void 0:_globalReference2[name];if(typeof f==="undefined")throw new Error("the function "+name+" is not defined");(0,_validate.validateFunction)(f);return f}_namespace.Monster.assignToNamespace("Monster.Types",getGlobal,getGlobalObject,getGlobalFunction)},{"../namespace.js":23,"./validate.js":36}],26:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.ID=void 0;var _base=require("./base.js");var _validate=require("./validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var internalCounter=new Map;var ID=function(_Base){_inherits(ID,_Base);var _super=_createSuper(ID);function ID(prefix){var _this;_classCallCheck(this,ID);_this=_super.call(this);if(prefix===undefined){prefix="id"}(0,_validate.validateString)(prefix);if(!internalCounter.has(prefix)){internalCounter.set(prefix,1)}var count=internalCounter.get(prefix);_this.id=prefix+count;internalCounter.set(prefix,++count);return _this}_createClass(ID,[{key:"toString",value:function toString(){return this.id}}]);return ID}(_base.Base);exports.ID=ID;_base.Monster.assignToNamespace("Monster.Types",ID)},{"./base.js":24,"./validate.js":36}],27:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.isPrimitive=isPrimitive;exports.isBoolean=isBoolean;exports.isString=isString;exports.isObject=isObject;exports.isInstance=isInstance;exports.isArray=isArray;exports.isFunction=isFunction;exports.isIterable=isIterable;exports.isInteger=isInteger;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function isIterable(value){if(value===undefined)return false;if(value===null)return false;return typeof(value===null||value===void 0?void 0:value[Symbol.iterator])==="function"}function isPrimitive(value){var type;if(value===undefined||value===null||value===NaN){return true}type=_typeof(value);if(type==="string"||type==="number"||type==="boolean"||type==="symbol"){return true}return false}function isBoolean(value){if(value===true||value===false){return true}return false}function isString(value){if(value===undefined||typeof value!=="string"){return false}return true}function isObject(value){if(isArray(value))return false;if(isPrimitive(value))return false;if(_typeof(value)==="object"){return true}return false}function isInstance(value,instance){if(!isObject(value))return false;if(!isFunction(instance))return false;if(!instance.hasOwnProperty("prototype"))return false;return value instanceof instance?true:false}function isArray(value){if(Array.isArray(value)){return true}return false}function isFunction(value){if(isArray(value))return false;if(isPrimitive(value))return false;if(typeof value==="function"){return true}return false}function isInteger(value){return Number.isInteger(value)}_namespace.Monster.assignToNamespace("Monster.Types",isPrimitive,isBoolean,isString,isObject,isArray,isFunction,isIterable,isInteger)},{"../namespace.js":23}],28:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Observer=void 0;var _namespace=require("../namespace.js");var _tokenlist=require("./tokenlist.js");var _is=require("./is.js");var _base=require("./base.js");var _uniquequeue=require("./uniquequeue.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Observer=function(_Base){_inherits(Observer,_Base);var _super=_createSuper(Observer);function Observer(callback){var _this;_classCallCheck(this,Observer);_this=_super.call(this);if(typeof callback!=="function"){throw new Error("observer callback must be a function")}_this.callback=callback;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}_this.arguments=args;_this.tags=new _tokenlist.TokenList;_this.queue=new _uniquequeue.UniqueQueue;return _this}_createClass(Observer,[{key:"addTag",value:function addTag(tag){this.tags.add(tag);return this}},{key:"removeTag",value:function removeTag(tag){this.tags.remove(tag);return this}},{key:"getTags",value:function getTags(){return this.tags.entries()}},{key:"hasTag",value:function hasTag(tag){return this.tags.contains(tag)}},{key:"update",value:function update(subject){var self=this;return new Promise(function(resolve,reject){if(!(0,_is.isObject)(subject)){reject("subject must be an object");return}self.queue.add(subject);setTimeout(function(){if(self.queue.isEmpty()){resolve();return}var s=self.queue.poll();var result=self.callback.apply(s,self.arguments);if((0,_is.isObject)(result)&&result instanceof Promise){result.then(resolve)["catch"](reject);return}resolve(result)},0)})}}]);return Observer}(_base.Base);exports.Observer=Observer;_namespace.Monster.assignToNamespace("Monster.Types",Observer)},{"../namespace.js":23,"./base.js":24,"./is.js":27,"./tokenlist.js":34,"./uniquequeue.js":35}],29:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.ObserverList=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");var _observer=require("./observer.js");var _validate=require("./validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ObserverList=function(_Base){_inherits(ObserverList,_Base);var _super=_createSuper(ObserverList);function ObserverList(){var _this;_classCallCheck(this,ObserverList);_this=_super.call(this);_this.observers=[];return _this}_createClass(ObserverList,[{key:"attach",value:function attach(observer){(0,_validate.validateInstance)(observer,_observer.Observer);this.observers.push(observer);return this}},{key:"detach",value:function detach(observer){(0,_validate.validateInstance)(observer,_observer.Observer);var i=0,l=this.observers.length;for(;i<l;i++){if(this.observers[i]===observer){this.observers.splice(i,1)}}return this}},{key:"contains",value:function contains(observer){(0,_validate.validateInstance)(observer,_observer.Observer);var i=0,l=this.observers.length;for(;i<l;i++){if(this.observers[i]===observer){return true}}return false}},{key:"notify",value:function notify(subject){var pomises=[];var i=0,l=this.observers.length;for(;i<l;i++){pomises.push(this.observers[i].update(subject))}return Promise.all(pomises)}}]);return ObserverList}(_base.Base);exports.ObserverList=ObserverList;_namespace.Monster.assignToNamespace("Monster.Types",ObserverList)},{"../namespace.js":23,"./base.js":24,"./observer.js":28,"./validate.js":36}],30:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.ProxyObserver=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");var _validate=require("./validate.js");var _observerlist=require("./observerlist.js");var _observer=require("./observer.js");var _is=require("./is.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ProxyObserver=function(_Base){_inherits(ProxyObserver,_Base);var _super=_createSuper(ProxyObserver);function ProxyObserver(object){var _this;_classCallCheck(this,ProxyObserver);_this=_super.call(this);(0,_validate.validateObject)(object);_this.realSubject=object;_this.subject=new Proxy(object,getHandler.call(_assertThisInitialized(_this)));_this.objectMap=new WeakMap;_this.objectMap.set(_this.realSubject,_this.subject);_this.observers=new _observerlist.ObserverList;return _this}_createClass(ProxyObserver,[{key:"getSubject",value:function getSubject(){return this.subject}},{key:"getRealSubject",value:function getRealSubject(){return this.realSubject}},{key:"attachObserver",value:function attachObserver(observer){this.observers.attach(observer);return this}},{key:"detachObserver",value:function detachObserver(observer){this.observers.detach(observer);return this}},{key:"notifyObservers",value:function notifyObservers(){this.observers.notify(this);return this}},{key:"containsObserver",value:function containsObserver(observer){return this.observers.contains(observer)}}]);return ProxyObserver}(_base.Base);exports.ProxyObserver=ProxyObserver;_namespace.Monster.assignToNamespace("Monster.Types",ProxyObserver);function getHandler(){var proxy=this;var handler={get:function get(target,key,receiver){var value=Reflect.get(target,key,receiver);if(_typeof(key)==="symbol"){return value}if((0,_is.isPrimitive)(value)){return value}if((0,_is.isArray)(value)||(0,_is.isObject)(value)){if(proxy.objectMap.has(value)){return proxy.objectMap.get(value)}else{var p=new Proxy(value,handler);proxy.objectMap.set(value,p);return p}}return value},set:function set(target,key,value,receiver){var result=Reflect.set(target,key,value,receiver);if((typeof property==="undefined"?"undefined":_typeof(property))!=="symbol"){proxy.observers.notify(proxy)}return result},deleteProperty:function deleteProperty(target,key){if(key in target){delete target[key];if(_typeof(key)!=="symbol"){proxy.observers.notify(proxy)}return true}return false},defineProperty:function defineProperty(target,key,descriptor){var result=Reflect.defineProperty(target,key,descriptor);if(_typeof(key)!=="symbol"){proxy.observers.notify(proxy)}return result},setPrototypeOf:function setPrototypeOf(target,key){var result=Reflect.setPrototypeOf(object1,key);if(_typeof(key)!=="symbol"){proxy.observers.notify(proxy)}return result}};return handler}},{"../namespace.js":23,"./base.js":24,"./is.js":27,"./observer.js":28,"./observerlist.js":29,"./validate.js":36}],31:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Queue=void 0;var _base=require("./base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Queue=function(_Base){_inherits(Queue,_Base);var _super=_createSuper(Queue);function Queue(){var _this;_classCallCheck(this,Queue);_this=_super.call(this);_this.data=[];return _this}_createClass(Queue,[{key:"isEmpty",value:function isEmpty(){return this.data.length===0}},{key:"peek",value:function peek(){if(this.isEmpty()){return undefined}return this.data[0]}},{key:"add",value:function add(value){this.data.push(value);return this}},{key:"clear",value:function clear(){this.data=[];return this}},{key:"poll",value:function poll(){if(this.isEmpty()){return undefined}return this.data.shift()}}]);return Queue}(_base.Base);exports.Queue=Queue;_base.Monster.assignToNamespace("Monster.Types",Queue)},{"./base.js":24}],32:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _id.Monster}});exports.RandomID=void 0;var _id=require("./id.js");var _global=require("./global.js");var _random=require("../math/random.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var internalCounter=0;var RandomID=function(_ID){_inherits(RandomID,_ID);var _super=_createSuper(RandomID);function RandomID(){var _this;_classCallCheck(this,RandomID);_this=_super.call(this);internalCounter+=1;_this.id=(0,_global.getGlobal)().btoa((0,_random.random)(1,1e4)).replace(/=/g,"").replace(/^[0-9]+/,"X")+internalCounter;return _this}return RandomID}(_id.ID);exports.RandomID=RandomID;_id.Monster.assignToNamespace("Monster.Types",RandomID)},{"../math/random.js":21,"./global.js":25,"./id.js":26}],33:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Stack=void 0;var _base=require("./base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Stack=function(_Base){_inherits(Stack,_Base);var _super=_createSuper(Stack);function Stack(){var _this;_classCallCheck(this,Stack);_this=_super.call(this);_this.data=[];return _this}_createClass(Stack,[{key:"isEmpty",value:function isEmpty(){return this.data.length===0}},{key:"peek",value:function peek(){var _this$data;if(this.isEmpty()){return undefined}return(_this$data=this.data)===null||_this$data===void 0?void 0:_this$data[this.data.length-1]}},{key:"push",value:function push(value){this.data.push(value);return this}},{key:"clear",value:function clear(){this.data=[];return this}},{key:"pop",value:function pop(){if(this.isEmpty()){return undefined}return this.data.pop()}}]);return Stack}(_base.Base);exports.Stack=Stack;_base.Monster.assignToNamespace("Monster.Types",Stack)},{"./base.js":24}],34:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.TokenList=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");var _is=require("../types/is.js");var _validate=require("../types/validate.js");function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var TokenList=function(_Base){_inherits(TokenList,_Base);var _super=_createSuper(TokenList);function TokenList(init){var _this;_classCallCheck(this,TokenList);_this=_super.call(this);_this.tokens=new Set;if(typeof init!=="undefined"){_this.add(init)}return _this}_createClass(TokenList,[{key:"getIterator",value:function getIterator(){return this[Symbol.iterator]()}},{key:Symbol.iterator,value:function value(){var index=0;var entries=this.entries();return{next:function next(){if(index<entries.length){return{value:entries===null||entries===void 0?void 0:entries[index++],done:false}}else{return{done:true}}}}}},{key:"contains",value:function contains(value){var _this2=this;if((0,_is.isString)(value)){value=value.trim();var counter=0;value.split(" ").forEach(function(token){if(_this2.tokens.has(token.trim())===false)return false;counter++});return counter>0?true:false}if((0,_is.isIterable)(value)){var _counter=0;var _iterator=_createForOfIteratorHelper(value),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var token=_step.value;(0,_validate.validateString)(token);if(this.tokens.has(token.trim())===false)return false;_counter++}}catch(err){_iterator.e(err)}finally{_iterator.f()}return _counter>0?true:false}return false}},{key:"add",value:function add(value){var _this3=this;if((0,_is.isString)(value)){value.split(" ").forEach(function(token){_this3.tokens.add(token.trim())})}else if((0,_is.isIterable)(value)){var _iterator2=_createForOfIteratorHelper(value),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var token=_step2.value;(0,_validate.validateString)(token);this.tokens.add(token.trim())}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}},{key:"clear",value:function clear(){this.tokens.clear();return this}},{key:"remove",value:function remove(value){var _this4=this;if((0,_is.isString)(value)){value.split(" ").forEach(function(token){_this4.tokens["delete"](token.trim())})}else if((0,_is.isIterable)(value)){var _iterator3=_createForOfIteratorHelper(value),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var token=_step3.value;(0,_validate.validateString)(token);this.tokens["delete"](token.trim())}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}},{key:"replace",value:function replace(token,newToken){(0,_validate.validateString)(token);(0,_validate.validateString)(newToken);if(!this.contains(token)){return this}var a=Array.from(this.tokens);var i=a.indexOf(token);if(i===-1)return this;a.splice(i,1,newToken);this.tokens=new Set;this.add(a);return this}},{key:"toggle",value:function toggle(value){var _this5=this;if((0,_is.isString)(value)){value.split(" ").forEach(function(token){toggleValue.call(_this5,token)})}else if((0,_is.isIterable)(value)){var _iterator4=_createForOfIteratorHelper(value),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var token=_step4.value;toggleValue.call(this,token)}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}},{key:"entries",value:function entries(){return Array.from(this.tokens)}},{key:"forEach",value:function forEach(callback){(0,_validate.validateFunction)(callback);this.tokens.forEach(callback);return this}},{key:"toString",value:function toString(){return this.entries().join(" ")}}]);return TokenList}(_base.Base);exports.TokenList=TokenList;function toggleValue(token){if(!(this instanceof TokenList))throw Error("must be called with TokenList.call");(0,_validate.validateString)(token);token=token.trim();if(this.contains(token)){this.remove(token);return this}this.add(token);return this}_namespace.Monster.assignToNamespace("Monster.Types",TokenList)},{"../namespace.js":23,"../types/is.js":27,"../types/validate.js":36,"./base.js":24}],35:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _queue.Monster}});exports.UniqueQueue=void 0;var _queue=require("./queue.js");var _validate=require("./validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _get(target,property,receiver){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(receiver)}return desc.value}}return _get(target,property,receiver||target)}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break}return object}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var UniqueQueue=function(_Queue){_inherits(UniqueQueue,_Queue);var _super=_createSuper(UniqueQueue);function UniqueQueue(){var _this;_classCallCheck(this,UniqueQueue);_this=_super.call(this);_this.unique=new WeakSet;return _this}_createClass(UniqueQueue,[{key:"add",value:function add(value){(0,_validate.validateObject)(value);if(!this.unique.has(value)){this.unique.add(value);_get(_getPrototypeOf(UniqueQueue.prototype),"add",this).call(this,value)}return this}},{key:"clear",value:function clear(){_get(_getPrototypeOf(UniqueQueue.prototype),"clear",this).call(this);this.unique=new WeakSet;return this}},{key:"poll",value:function poll(){if(this.isEmpty()){return undefined}var value=this.data.shift();this.unique["delete"](value);return value}}]);return UniqueQueue}(_queue.Queue);exports.UniqueQueue=UniqueQueue;_queue.Monster.assignToNamespace("Monster.Types",UniqueQueue)},{"./queue.js":31,"./validate.js":36}],36:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.validatePrimitive=validatePrimitive;exports.validateBoolean=validateBoolean;exports.validateString=validateString;exports.validateObject=validateObject;exports.validateInstance=validateInstance;exports.validateArray=validateArray;exports.validateFunction=validateFunction;exports.validateIterable=validateIterable;exports.validateInteger=validateInteger;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _is=require("./is.js");function validateIterable(value){if(!(0,_is.isIterable)(value)){throw new TypeError("value is not iterable")}}function validatePrimitive(value){if(!(0,_is.isPrimitive)(value)){throw new TypeError("value is not a primitive")}}function validateBoolean(value){if(!(0,_is.isBoolean)(value)){throw new TypeError("value is not a boolean")}}function validateString(value){if(!(0,_is.isString)(value)){throw new TypeError("value is not a string")}}function validateObject(value){if(!(0,_is.isObject)(value)){throw new TypeError("value is not a object")}}function validateInstance(value,instance){if(!(0,_is.isInstance)(value,instance)){var n="";if((0,_is.isObject)(instance)||(0,_is.isFunction)(instance)){n=instance===null||instance===void 0?void 0:instance["name"]}if(n){n=" "+n}throw new TypeError("value is not an instance of"+n)}}function validateArray(value){if(!(0,_is.isArray)(value)){throw new TypeError("value is not an array")}}function validateFunction(value){if(!(0,_is.isFunction)(value)){throw new TypeError("value is not a function")}}function validateInteger(value){if(!(0,_is.isInteger)(value)){throw new TypeError("value is not an integer")}}_namespace.Monster.assignToNamespace("Monster.Types",validatePrimitive,validateBoolean,validateString,validateObject,validateArray,validateFunction,validateIterable,validateInteger)},{"../namespace.js":23,"./is.js":27}],37:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});exports.getVersion=getVersion;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Version=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Version=function(_Base){_inherits(Version,_Base);var _super=_createSuper(Version);function Version(major,minor,patch){var _this;_classCallCheck(this,Version);_this=_super.call(this);if(typeof major==="string"&&minor===undefined&&patch===undefined){var parts=major.toString().split(".");major=parseInt(parts[0]||0);minor=parseInt(parts[1]||0);patch=parseInt(parts[2]||0)}if(major===undefined){throw new Error("major version is undefined")}if(minor===undefined){minor=0}if(patch===undefined){patch=0}_this.major=parseInt(major);_this.minor=parseInt(minor);_this.patch=parseInt(patch);if(isNaN(_this.major)){throw new Error("major is not a number")}if(isNaN(_this.minor)){throw new Error("minor is not a number")}if(isNaN(_this.patch)){throw new Error("patch is not a number")}return _this}_createClass(Version,[{key:"toString",value:function toString(){return this.major+"."+this.minor+"."+this.patch}},{key:"compareTo",value:function compareTo(version){if(version instanceof Version){version=version.toString()}if(typeof version!=="string"){throw new Error("type exception")}if(version===this.toString()){return 0}var a=[this.major,this.minor,this.patch];var b=version.split(".");var len=Math.max(a.length,b.length);for(var i=0;i<len;i+=1){if(a[i]&&!b[i]&&parseInt(a[i])>0||parseInt(a[i])>parseInt(b[i])){return 1}else if(b[i]&&!a[i]&&parseInt(b[i])>0||parseInt(a[i])<parseInt(b[i])){return-1}}return 0}}]);return Version}(_base.Base);exports.Version=Version;_namespace.Monster.assignToNamespace("Monster.Types",Version);var monsterVersion;function getVersion(){if(monsterVersion instanceof Version){return monsterVersion}monsterVersion=new Version("1.6.0");return monsterVersion}_namespace.Monster.assignToNamespace("Monster",getVersion)},{"../namespace.js":23,"./base.js":24}],38:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.clone=clone;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _is=require("../types/is.js");var _global=require("../types/global.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function clone(obj){if(null===obj){return obj}if((0,_is.isPrimitive)(obj)){return obj}if((0,_is.isFunction)(obj)){return obj}if((0,_is.isArray)(obj)){var copy=[];for(var i=0,len=obj.length;i<len;i++){copy[i]=clone(obj[i])}return copy}if((0,_is.isObject)(obj)){if(obj instanceof Date){var _copy=new Date;_copy.setTime(obj.getTime());return _copy}if(typeof Element!=="undefined"&&obj instanceof Element)return obj;if(typeof HTMLDocument!=="undefined"&&obj instanceof HTMLDocument)return obj;if(typeof DocumentFragment!=="undefined"&&obj instanceof DocumentFragment)return obj;if(obj===(0,_global.getGlobal)())return obj;if(typeof globalContext!=="undefined"&&obj===globalContext)return obj;if(typeof window!=="undefined"&&obj===window)return obj;if(typeof document!=="undefined"&&obj===document)return obj;if(typeof navigator!=="undefined"&&obj===navigator)return obj;if(typeof JSON!=="undefined"&&obj===JSON)return obj;try{if(obj instanceof Proxy){return obj}}catch(e){}return cloneObject(obj)}throw new Error("unable to clone obj! its type isn't supported.")}function cloneObject(obj){var copy;if(_typeof(obj.hasOwnProperty("getClone"))&&obj.getClone==="function"){return obj.getClone()}copy={};if(typeof obj.constructor==="function"&&typeof obj.constructor.call==="function"){copy=new obj.constructor}for(var key in obj){if(!obj.hasOwnProperty(key)){continue}if(_namespace.Monster.Types.isPrimitive(obj[key])){copy[key]=obj[key];continue}copy[key]=clone(obj[key])}return copy}_namespace.Monster.assignToNamespace("Monster.Util",clone)},{"../namespace.js":23,"../types/global.js":25,"../types/is.js":27}],39:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Comparator=void 0;var _base=require("../types/base.js");var _is=require("../types/is.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Comparator=function(_Base){_inherits(Comparator,_Base);var _super=_createSuper(Comparator);function Comparator(callback){var _this;_classCallCheck(this,Comparator);_this=_super.call(this);if((0,_is.isFunction)(callback)){_this.compare=callback}else if(callback!==undefined){throw new TypeError("unsupported type")}else{_this.compare=function(a,b){if(_typeof(a)!==_typeof(b)){throw new TypeError("impractical comparison")}if(a===b){return 0}return a<b?-1:1}}return _this}_createClass(Comparator,[{key:"reverse",value:function reverse(){var original=this.compare;this.compare=function(a,b){return original(b,a)};return this}},{key:"equal",value:function equal(a,b){return this.compare(a,b)===0}},{key:"greaterThan",value:function greaterThan(a,b){return this.compare(a,b)>0}},{key:"greaterThanOrEqual",value:function greaterThanOrEqual(a,b){return this.greaterThan(a,b)||this.equal(a,b)}},{key:"lessThanOrEqual",value:function lessThanOrEqual(a,b){return this.lessThan(a,b)||this.equal(a,b)}},{key:"lessThan",value:function lessThan(a,b){return this.compare(a,b)<0}}]);return Comparator}(_base.Base);exports.Comparator=Comparator;_base.Monster.assignToNamespace("Monster.Util",Comparator)},{"../types/base.js":24,"../types/is.js":27}],40:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.deepFreeze=deepFreeze;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _validate=require("../types/validate.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function deepFreeze(object){(0,_validate.validateObject)(object);var propNames=Object.getOwnPropertyNames(object);var _iterator=_createForOfIteratorHelper(propNames),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var name=_step.value;var value=object[name];object[name]=value&&_typeof(value)==="object"?deepFreeze(value):value}}catch(err){_iterator.e(err)}finally{_iterator.f()}return Object.freeze(object)}_namespace.Monster.assignToNamespace("Monster.Util",deepFreeze)},{"../namespace.js":23,"../types/validate.js":36}]},{},[22]); +/** Monster 1.7.0, © 2021 schukai GmbH, Released under the AGPL 3.0 License. */ +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.AbstractConstraint=void 0;var _namespace=require("../namespace.js");var _base=require("../types/base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var AbstractConstraint=function(_Base){_inherits(AbstractConstraint,_Base);var _super=_createSuper(AbstractConstraint);function AbstractConstraint(){_classCallCheck(this,AbstractConstraint);return _super.call(this)}_createClass(AbstractConstraint,[{key:"isValid",value:function isValid(value){return Promise.reject(value)}}]);return AbstractConstraint}(_base.Base);exports.AbstractConstraint=AbstractConstraint;_namespace.Monster.assignToNamespace("Monster.Constraints",AbstractConstraint)},{"../namespace.js":24,"../types/base.js":25}],2:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.AbstractOperator=void 0;var _abstract=require("./abstract.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var AbstractOperator=function(_AbstractConstraint){_inherits(AbstractOperator,_AbstractConstraint);var _super=_createSuper(AbstractOperator);function AbstractOperator(operantA,operantB){var _this;_classCallCheck(this,AbstractOperator);_this=_super.call(this);if(!(operantA instanceof _abstract.AbstractConstraint)||!(operantB instanceof _abstract.AbstractConstraint)){throw new TypeError("parameters must be from type AbstractConstraint")}_this.operantA=operantA;_this.operantB=operantB;return _this}return AbstractOperator}(_abstract.AbstractConstraint);exports.AbstractOperator=AbstractOperator;_abstract.Monster.assignToNamespace("Monster.Constraints",AbstractOperator)},{"./abstract.js":1}],3:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.AndOperator=void 0;var _abstract=require("./abstract.js");var _abstractoperator=require("./abstractoperator.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var AndOperator=function(_AbstractOperator){_inherits(AndOperator,_AbstractOperator);var _super=_createSuper(AndOperator);function AndOperator(){_classCallCheck(this,AndOperator);return _super.apply(this,arguments)}_createClass(AndOperator,[{key:"isValid",value:function isValid(value){return Promise.all([this.operantA.isValid(value),this.operantB.isValid(value)])}}]);return AndOperator}(_abstractoperator.AbstractOperator);exports.AndOperator=AndOperator;_abstract.Monster.assignToNamespace("Monster.Constraints",AndOperator)},{"./abstract.js":1,"./abstractoperator.js":2}],4:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.Invalid=void 0;var _abstract=require("./abstract.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Invalid=function(_AbstractConstraint){_inherits(Invalid,_AbstractConstraint);var _super=_createSuper(Invalid);function Invalid(){_classCallCheck(this,Invalid);return _super.apply(this,arguments)}_createClass(Invalid,[{key:"isValid",value:function isValid(value){return Promise.reject(value)}}]);return Invalid}(_abstract.AbstractConstraint);exports.Invalid=Invalid;_abstract.Monster.assignToNamespace("Monster.Constraints",Invalid)},{"./abstract.js":1}],5:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.IsArray=void 0;var _abstract=require("./abstract.js");var _is=require("../types/is.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var IsArray=function(_AbstractConstraint){_inherits(IsArray,_AbstractConstraint);var _super=_createSuper(IsArray);function IsArray(){_classCallCheck(this,IsArray);return _super.apply(this,arguments)}_createClass(IsArray,[{key:"isValid",value:function isValid(value){if((0,_is.isArray)(value)){return Promise.resolve(value)}return Promise.reject(value)}}]);return IsArray}(_abstract.AbstractConstraint);exports.IsArray=IsArray;_abstract.Monster.assignToNamespace("Monster.Constraints",IsArray)},{"../types/is.js":28,"./abstract.js":1}],6:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.IsObject=void 0;var _abstract=require("./abstract.js");var _is=require("../types/is.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var IsObject=function(_AbstractConstraint){_inherits(IsObject,_AbstractConstraint);var _super=_createSuper(IsObject);function IsObject(){_classCallCheck(this,IsObject);return _super.apply(this,arguments)}_createClass(IsObject,[{key:"isValid",value:function isValid(value){if((0,_is.isObject)(value)){return Promise.resolve(value)}return Promise.reject(value)}}]);return IsObject}(_abstract.AbstractConstraint);exports.IsObject=IsObject;_abstract.Monster.assignToNamespace("Monster.Constraints",IsObject)},{"../types/is.js":28,"./abstract.js":1}],7:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstractoperator.Monster}});exports.OrOperator=void 0;var _abstractoperator=require("./abstractoperator.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var OrOperator=function(_AbstractOperator){_inherits(OrOperator,_AbstractOperator);var _super=_createSuper(OrOperator);function OrOperator(){_classCallCheck(this,OrOperator);return _super.apply(this,arguments)}_createClass(OrOperator,[{key:"isValid",value:function isValid(value){var self=this;return new Promise(function(resolve,reject){var a,b;self.operantA.isValid(value).then(function(){resolve()})["catch"](function(){a=false;if(b===false){reject()}});self.operantB.isValid(value).then(function(){resolve()})["catch"](function(){b=false;if(a===false){reject()}})})}}]);return OrOperator}(_abstractoperator.AbstractOperator);exports.OrOperator=OrOperator;_abstractoperator.Monster.assignToNamespace("Monster.Constraints",OrOperator)},{"./abstractoperator.js":2}],8:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _abstract.Monster}});exports.Valid=void 0;var _abstract=require("./abstract.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Valid=function(_AbstractConstraint){_inherits(Valid,_AbstractConstraint);var _super=_createSuper(Valid);function Valid(){_classCallCheck(this,Valid);return _super.apply(this,arguments)}_createClass(Valid,[{key:"isValid",value:function isValid(value){return Promise.resolve(value)}}]);return Valid}(_abstract.AbstractConstraint);exports.Valid=Valid;_abstract.Monster.assignToNamespace("Monster.Constraints",Valid)},{"./abstract.js":1}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Diff=Diff;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _is.Monster}});var _is=require("../types/is.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function Diff(first,second){return doDiff(first,second)}function getKeys(a,b,type){if((0,_is.isArray)(type)){var keys=a.length>b.length?new Array(a.length):new Array(b.length);keys.fill(0);return new Set(keys.map(function(_,i){return i}))}return new Set(Object.keys(a).concat(Object.keys(b)))}function doDiff(a,b,path,diff){var typeA=_typeof(a);var typeB=_typeof(b);var currPath=path||[];var currDiff=diff||[];if(typeA===typeB&&typeA==="object"){getKeys(a,b,typeA).forEach(function(v){if(!Object.prototype.hasOwnProperty.call(a,v)){currDiff.push(buildResult(a[v],b[v],"add",currPath.concat(v)))}else if(!Object.prototype.hasOwnProperty.call(b,v)){currDiff.push(buildResult(a[v],b[v],"delete",currPath.concat(v)))}else{doDiff(a[v],b[v],currPath.concat(v),currDiff)}})}else{var o=getOperator(a,b,typeA,typeB);if(o!==undefined){currDiff.push(buildResult(a,b,o,path))}}return currDiff}function buildResult(a,b,operator,path){var result={operator:operator,path:path};if(operator!=="add"){result.first={value:a,type:_typeof(a)};if((0,_is.isObject)(a)){var _Object$getPrototypeO,_Object$getPrototypeO2;var name=(_Object$getPrototypeO=Object.getPrototypeOf(a))===null||_Object$getPrototypeO===void 0?void 0:(_Object$getPrototypeO2=_Object$getPrototypeO.constructor)===null||_Object$getPrototypeO2===void 0?void 0:_Object$getPrototypeO2.name;if(name!==undefined){result.first.instance=name}}}if(operator==="add"||operator==="update"){result.second={value:b,type:_typeof(b)};if((0,_is.isObject)(b)){var _Object$getPrototypeO3,_Object$getPrototypeO4;var _name=(_Object$getPrototypeO3=Object.getPrototypeOf(b))===null||_Object$getPrototypeO3===void 0?void 0:(_Object$getPrototypeO4=_Object$getPrototypeO3.constructor)===null||_Object$getPrototypeO4===void 0?void 0:_Object$getPrototypeO4.name;if(_name!==undefined){result.second.instance=_name}}}return result}function isNotEqual(a,b){if(_typeof(a)!==_typeof(b)){return true}if(a instanceof Date&&b instanceof Date){return a.getTime()!==b.getTime()}return a!==b}function getOperator(a,b){var operator;var typeA=_typeof(a);var typeB=_typeof(b);if(typeA==="undefined"&&typeB!=="undefined"){operator="add"}else if(typeA!=="undefined"&&typeB==="undefined"){operator="delete"}else if(isNotEqual(a,b)){operator="update"}return operator}_is.Monster.assignToNamespace("Monster.Data",Diff)},{"../types/is.js":28}],10:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Pathfinder=void 0;var _namespace=require("../namespace.js");var _is=require("../types/is.js");var _validate=require("../types/validate.js");var _base=require("../types/base.js");var _stack=require("../types/stack.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var DELIMITER=".";var Pathfinder=function(_Base){_inherits(Pathfinder,_Base);var _super=_createSuper(Pathfinder);function Pathfinder(object){var _this;_classCallCheck(this,Pathfinder);_this=_super.call(this);_this.object=object;return _this}_createClass(Pathfinder,[{key:"getVia",value:function getVia(path){(0,_validate.validateString)(path);return getValueViaPath(this.object,path)}},{key:"setVia",value:function setVia(path,value){(0,_validate.validateString)(path);setValueViaPath(this.object,path,value);return this}},{key:"deleteVia",value:function deleteVia(path){(0,_validate.validateString)(path);deleteValueViaPath(this.object,path);return this}},{key:"exists",value:function exists(path){(0,_validate.validateString)(path);try{getValueViaPath(this.object,path,true);return true}catch(e){}return false}}]);return Pathfinder}(_base.Base);exports.Pathfinder=Pathfinder;_namespace.Monster.assignToNamespace("Monster.Data",Pathfinder);function getValueViaPath(object,path,check){if(path===""){return object}var parts=path.split(DELIMITER);var current=parts.shift();if((0,_is.isObject)(object)||(0,_is.isArray)(object)){var anchor;if(object instanceof Map||object instanceof WeakMap){anchor=object.get(current)}else if(object instanceof Set||object instanceof WeakSet){var _ref;current=parseInt(current);(0,_validate.validateInteger)(current);anchor=(_ref=_toConsumableArray(object))===null||_ref===void 0?void 0:_ref[current]}else if(object instanceof WeakRef){throw Error("unsupported action for this data type")}else if((0,_is.isArray)(object)){current=parseInt(current);(0,_validate.validateInteger)(current);anchor=object===null||object===void 0?void 0:object[current]}else{anchor=object===null||object===void 0?void 0:object[current]}if((0,_is.isObject)(anchor)||(0,_is.isArray)(anchor)){return getValueViaPath(anchor,parts.join(DELIMITER),check)}if(parts.length>0){throw Error("the journey is not at its end ("+parts.join(DELIMITER)+")")}if(check===true&&!object.hasOwnProperty(current)){throw Error("unknown value")}return anchor}throw TypeError("unsupported type")}function setValueViaPath(object,path,value){var parts=path.split(DELIMITER);var last=parts.pop();var subpath=parts.join(DELIMITER);var stack=new _stack.Stack;var current=subpath;while(true){try{getValueViaPath(object,current,true);break}catch(e){}stack.push(current);parts.pop();current=parts.join(DELIMITER);if(current==="")break}while(!stack.isEmpty()){current=stack.pop();var obj={};if(!stack.isEmpty()){var n=stack.peek().split(DELIMITER).pop();if((0,_is.isInteger)(parseInt(n))){obj=[]}}setValueViaPath(object,current,obj)}var anchor=getValueViaPath(object,subpath);if(!(0,_is.isObject)(object)&&!(0,_is.isArray)(object)){throw TypeError("unsupported type: "+_typeof(object))}if(anchor instanceof Map||anchor instanceof WeakMap){anchor.set(last,value)}else if(anchor instanceof Set||anchor instanceof WeakSet){anchor.append(value)}else if(anchor instanceof WeakRef){throw Error("unsupported action for this data type")}else if((0,_is.isArray)(anchor)){last=parseInt(last);(0,_validate.validateInteger)(last);anchor[last]=value}else{anchor[last]=value}return}function deleteValueViaPath(object,path){var parts=path.split(DELIMITER);var last=parts.pop();var subpath=parts.join(DELIMITER);var anchor=getValueViaPath.call(this,object,subpath);if(anchor instanceof Map){anchor["delete"](last)}else if(anchor instanceof Set||anchor instanceof WeakMap||anchor instanceof WeakSet||anchor instanceof WeakRef){throw Error("unsupported action for this data type")}else if((0,_is.isArray)(anchor)){last=parseInt(last);(0,_validate.validateInteger)(last);delete anchor[last]}else{delete anchor[last]}return}},{"../namespace.js":24,"../types/base.js":25,"../types/is.js":28,"../types/stack.js":34,"../types/validate.js":37}],11:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Pipe=void 0;var _namespace=require("../namespace.js");var _transformer=require("./transformer.js");var _base=require("../types/base.js");var _validate=require("../types/validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var DELIMITER="|";var Pipe=function(_Base){_inherits(Pipe,_Base);var _super=_createSuper(Pipe);function Pipe(pipe){var _this;_classCallCheck(this,Pipe);_this=_super.call(this);(0,_validate.validateString)(pipe);_this.pipe=pipe.split(DELIMITER).map(function(v){return new _transformer.Transformer(v)});return _this}_createClass(Pipe,[{key:"run",value:function run(value){return this.pipe.reduce(function(accumulator,currentValue,currentIndex,array){return currentValue.run(accumulator)},value)}}]);return Pipe}(_base.Base);exports.Pipe=Pipe;_namespace.Monster.assignToNamespace("Monster.Data",Pipe)},{"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37,"./transformer.js":12}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Transformer=void 0;var _namespace=require("../namespace.js");var _base=require("../types/base.js");var _validate=require("../types/validate.js");var _is=require("../types/is.js");var _id=require("../types/id.js");var _clone=require("../util/clone.js");var _pathfinder=require("./pathfinder.js");function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _wrapRegExp(){_wrapRegExp=function _wrapRegExp(re,groups){return new BabelRegExp(re,undefined,groups)};var _super=RegExp.prototype;var _groups=new WeakMap;function BabelRegExp(re,flags,groups){var _this=new RegExp(re,flags);_groups.set(_this,groups||_groups.get(re));return _setPrototypeOf(_this,BabelRegExp.prototype)}_inherits(BabelRegExp,RegExp);BabelRegExp.prototype.exec=function(str){var result=_super.exec.call(this,str);if(result)result.groups=buildGroups(result,this);return result};BabelRegExp.prototype[Symbol.replace]=function(str,substitution){if(typeof substitution==="string"){var groups=_groups.get(this);return _super[Symbol.replace].call(this,str,substitution.replace(/\$<([^>]+)>/g,function(_,name){return"$"+groups[name]}))}else if(typeof substitution==="function"){var _this=this;return _super[Symbol.replace].call(this,str,function(){var args=arguments;if(_typeof(args[args.length-1])!=="object"){args=[].slice.call(args);args.push(buildGroups(args,_this))}return substitution.apply(this,args)})}else{return _super[Symbol.replace].call(this,str,substitution)}};function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce(function(groups,name){groups[name]=result[g[name]];return groups},Object.create(null))}return _wrapRegExp.apply(this,arguments)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Transformer=function(_Base){_inherits(Transformer,_Base);var _super=_createSuper(Transformer);function Transformer(definition){var _this;_classCallCheck(this,Transformer);_this=_super.call(this);(0,_validate.validateString)(definition);_this.args=disassemble(definition);_this.command=_this.args.shift();_this.callbacks=new Map;return _this}_createClass(Transformer,[{key:"setCallback",value:function setCallback(name,callback){(0,_validate.validateString)(name);(0,_validate.validateFunction)(callback);this.callbacks.set(name,callback);return this}},{key:"run",value:function run(value){return transform.apply(this,[value])}}]);return Transformer}(_base.Base);exports.Transformer=Transformer;_namespace.Monster.assignToNamespace("Monster.Data",Transformer);function disassemble(command){(0,_validate.validateString)(command);var placeholder=new Map;var regex=_wrapRegExp(/((\\(.)){1})/gim,{pattern:2,char:3});var result=command.matchAll(regex);var _iterator=_createForOfIteratorHelper(result),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var m=_step.value;var g=m===null||m===void 0?void 0:m["groups"];if(!(0,_is.isObject)(g)){continue}var p=g===null||g===void 0?void 0:g["pattern"];var c=g===null||g===void 0?void 0:g["char"];if(p&&c){var r="__"+(new _id.ID).toString()+"__";placeholder.set(r,c);command=command.replace(p,r)}}}catch(err){_iterator.e(err)}finally{_iterator.f()}var parts=command.split(":");parts=parts.map(function(value){var v=value.trim();var _iterator2=_createForOfIteratorHelper(placeholder),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var k=_step2.value;v=v.replace(k[0],k[1])}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}return v});return parts}function convertToString(value){if((0,_is.isObject)(value)&&value.hasOwnProperty("toString")){value=value.toString()}(0,_validate.validateString)(value);return value}function transform(value){var args=(0,_clone.clone)(this.args);var key;switch(this.command){case"static":return this.args.join(":");case"tolower":case"strtolower":case"tolowercase":(0,_validate.validateString)(value);return value.toLowerCase();case"toupper":case"strtoupper":case"touppercase":(0,_validate.validateString)(value);return value.toUpperCase();case"tostring":return""+value;case"tointeger":var n=parseInt(value);(0,_validate.validateInteger)(n);return n;case"trim":(0,_validate.validateString)(value);return value.trim();case"rawurlencode":(0,_validate.validateString)(value);return encodeURIComponent(value).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A");case"call":var callback;var callbackName=args.shift();if((0,_is.isObject)(value)&&calue.hasOwnProperty(callbackName)){callback=value[callbackName]}else if(this.callbacks.has(callbackName)){callback=this.callbacks.get(callbackName)}else if((typeof window==="undefined"?"undefined":_typeof(window))==="object"&&window.hasOwnProperty(callbackName)){callback=window[callbackName]}(0,_validate.validateFunction)(callback);args.unshift(value);return callback.apply(void 0,_toConsumableArray(args));case"plain":case"plaintext":(0,_validate.validateString)(value);var doc=(new DOMParser).parseFromString(value,"text/html");return doc.body.textContent||"";case"if":case"?":(0,_validate.validatePrimitive)(value);var trueStatement=args.shift()||undefined;var falseStatement=args.shift()||undefined;if(trueStatement==="value"){trueStatement=value}if(trueStatement==="\\value"){trueStatement="value"}if(falseStatement==="value"){falseStatement=value}if(falseStatement==="\\value"){falseStatement="value"}var condition=value!==undefined&&value!==""&&value!=="off"&&value!=="false"&&value!==false||value==="on"||value==="true"||value===true;return condition?trueStatement:falseStatement;case"ucfirst":(0,_validate.validateString)(value);var firstchar=value.charAt(0).toUpperCase();return firstchar+value.substr(1);case"ucwords":(0,_validate.validateString)(value);return value.replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(v){return v.toUpperCase()});case"count":case"length":if(((0,_is.isString)(value)||(0,_is.isObject)(value)||(0,_is.isArray)(value))&&value.hasOwnProperty("length")){return value.length}throw new TypeError("unsupported type");case"base64":convertToString(value);return btoa(value);case"empty":return"";case"undefined":return undefined;case"prefix":(0,_validate.validateString)(value);var prefix=args===null||args===void 0?void 0:args[0];return prefix+value;case"suffix":(0,_validate.validateString)(value);var suffix=args===null||args===void 0?void 0:args[0];return value+suffix;case"uniqid":return(new _id.ID).toString();case"key":case"property":case"index":key=args.shift()||"undefined";var defaultValue=args.shift()||"";if(value instanceof Map){if(!value.has(key)){return defaultValue}return value.get(key)}if((0,_is.isObject)(value)||(0,_is.isArray)(value)){if(value!==null&&value!==void 0&&value[key]){return value===null||value===void 0?void 0:value[key]}return defaultValue}throw new Error("type not supported");case"path":key=args.shift()||"undefined";return new _pathfinder.Pathfinder(value).getVia(key);case"substring":(0,_validate.validateString)(value);var start=parseInt(args[0])||0;var end=(parseInt(args[1])||0)+start;return value.substring(start,end);case"nop":return value;default:throw new Error("unknown command")}return value}},{"../namespace.js":24,"../types/base.js":25,"../types/id.js":27,"../types/is.js":28,"../types/validate.js":37,"../util/clone.js":39,"./pathfinder.js":10}],13:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Assembler=exports.ATTRIBUTEPREFIX=void 0;var _base=require("../types/base.js");var _validate=require("../types/validate.js");var _global=require("../types/global.js");var _proxyobserver=require("../types/proxyobserver.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ATTRIBUTEPREFIX="data-monster-";exports.ATTRIBUTEPREFIX=ATTRIBUTEPREFIX;var Assembler=function(_Base){_inherits(Assembler,_Base);var _super=_createSuper(Assembler);function Assembler(fragment){var _this;_classCallCheck(this,Assembler);_this=_super.call(this);_this.attributePrefix=ATTRIBUTEPREFIX;(0,_validate.validateInstance)(fragment,(0,_global.getGlobalFunction)("DocumentFragment"));_this.fragment=fragment;return _this}_createClass(Assembler,[{key:"setAttributePrefix",value:function setAttributePrefix(prefix){(0,_validate.validateString)(prefix);this.attributePrefix=prefix;return this}},{key:"getAttributePrefix",value:function getAttributePrefix(){return this.attributePrefix}},{key:"createDocumentFragment",value:function createDocumentFragment(data){if(data===undefined){data=new _proxyobserver.ProxyObserver({})}(0,_validate.validateInstance)(data,_proxyobserver.ProxyObserver);var fragment=this.fragment.cloneNode(true);return fragment}}]);return Assembler}(_base.Base);exports.Assembler=Assembler;_base.Monster.assignToNamespace("Monster.DOM",Assembler)},{"../types/base.js":25,"../types/global.js":26,"../types/proxyobserver.js":31,"../types/validate.js":37}],14:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});exports.registerCustomElement=registerCustomElement;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _validate.Monster}});exports.CustomElement=void 0;var _global=require("../types/global.js");var _validate=require("../types/validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map:undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper)}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor)}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class)};return _wrapNativeSuper(Class)}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor;if(Class)_setPrototypeOf(instance,Class.prototype);return instance}}return _construct.apply(null,arguments)}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var CustomElement=function(_HTMLElement){_inherits(CustomElement,_HTMLElement);var _super=_createSuper(CustomElement);function CustomElement(){_classCallCheck(this,CustomElement);return _super.call(this)}_createClass(CustomElement,null,[{key:"getTag",value:function getTag(){throw new Error("the method getTag must be overwritten by the derived class.")}}]);return CustomElement}(_wrapNativeSuper(HTMLElement));exports.CustomElement=CustomElement;function registerCustomElement(element){(0,_validate.validateFunction)(element);(0,_global.getGlobalObject)("customElements").define(element.getTag(),element);return}_validate.Monster.assignToNamespace("Monster.DOM",CustomElement,registerCustomElement)},{"../types/global.js":26,"../types/validate.js":37}],15:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});exports.getHandleFromNode=getHandleFromNode;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Handle=void 0;var _base=require("../types/base.js");var _stack=require("../types/stack.js");var _validate=require("../types/validate.js");var _proxyobserver=require("../types/proxyobserver.js");var _observer=require("../types/observer.js");var _global=require("../types/global.js");var _is=require("../types/is.js");var _assembler=require("./assembler.js");var _id=require("../types/id.js");function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var MONSTERDOMHANDLE=Symbol("MonsterHandle");var Handle=function(_Base){_inherits(Handle,_Base);var _super=_createSuper(Handle);function Handle(data){var _this;_classCallCheck(this,Handle);_this=_super.call(this);var self=_assertThisInitialized(_this);self.id=new _id.ID;(0,_validate.validateInstance)(data,_proxyobserver.ProxyObserver);_this.data=data;_this.mutationObserver=createMutationObserver.call(_assertThisInitialized(_this));_this.dataObserver=createDataObserver.call(_assertThisInitialized(_this));_this.data.attachObserver(_this.dataObserver);_this.nodes=new WeakSet;_this.updates=new _stack.Stack;return _this}_createClass(Handle,[{key:"update",value:function update(){return}},{key:"remove",value:function remove(node){if((0,_is.isInstance)(node,(0,_global.getGlobalFunction)("Document"))){node=node.firstElementChild}(0,_validate.validateInstance)(node,(0,_global.getGlobalFunction)("HTMLElement"));if(!this.nodes.has(node)){return this}this.mutationObserver.disconnect(node);delete node.dataset[MONSTERDOMHANDLE];node.removeAttribute(_assembler.ATTRIBUTEPREFIX+"handler");return this}},{key:"append",value:function append(node){if((0,_is.isInstance)(node,(0,_global.getGlobalFunction)("Document"))){node=node.firstElementChild}(0,_validate.validateInstance)(node,(0,_global.getGlobalFunction)("HTMLElement"));if(this.nodes.has(node)){return this}node.dataset[MONSTERDOMHANDLE]=this;node.setAttribute(_assembler.ATTRIBUTEPREFIX+"handler",true);this.mutationObserver.observe(node,{attributes:true,childList:true,subtree:true,characterData:true,characterDataOldValue:true,attributeOldValue:true});this.nodes.add(node);return this}}]);return Handle}(_base.Base);exports.Handle=Handle;function createDataObserver(){var self=this;return new _observer.Observer(function(){self.update()})}function createMutationObserver(){var self=this;var MutationObserver=(0,_global.getGlobalFunction)("MutationObserver");return new MutationObserver(function(mutationsList,observer){var _iterator=_createForOfIteratorHelper(mutationsList),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var mutation=_step.value;self.updates.push(mutation)}}catch(err){_iterator.e(err)}finally{_iterator.f()}self.update()})}function getHandleFromNode(node){var _node$dataset;(0,_validate.validateInstance)(node,(0,_global.getGlobalFunction)("Node"));var handle=(_node$dataset=node.dataset)===null||_node$dataset===void 0?void 0:_node$dataset[MONSTERDOMHANDLE];if(handle===undefined){var parentNode=node===null||node===void 0?void 0:node["parentNode"];if((0,_is.isInstance)(parentNode,(0,_global.getGlobalFunction)("Node"))){return getHandleFromNode(parentNode)}}return handle}_base.Monster.assignToNamespace("Monster.DOM",getHandleFromNode,Handle)},{"../types/base.js":25,"../types/global.js":26,"../types/id.js":27,"../types/is.js":28,"../types/observer.js":29,"../types/proxyobserver.js":31,"../types/stack.js":34,"../types/validate.js":37,"./assembler.js":13}],16:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Template=void 0;var _base=require("../types/base.js");var _global=require("../types/global.js");var _validate=require("../types/validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Template=function(_Base){_inherits(Template,_Base);var _super=_createSuper(Template);function Template(template){var _this;_classCallCheck(this,Template);_this=_super.call(this);(0,_validate.validateInstance)(template,(0,_global.getGlobalFunction)("HTMLTemplateElement"));_this.template=template;return _this}_createClass(Template,[{key:"getTemplateElement",value:function getTemplateElement(){return this.template}},{key:"createDocumentFragment",value:function createDocumentFragment(){return this.template.content.cloneNode(true)}}]);return Template}(_base.Base);exports.Template=Template;_base.Monster.assignToNamespace("Monster.DOM",Template)},{"../types/base.js":25,"../types/global.js":26,"../types/validate.js":37}],17:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getWindow=getWindow;exports.getDocument=getDocument;exports.getDocumentFragmentFromString=getDocumentFragmentFromString;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _global.Monster}});var _global=require("../types/global.js");var _validate=require("../types/validate.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function getDocument(){var _getGlobal;var document=(_getGlobal=(0,_global.getGlobal)())===null||_getGlobal===void 0?void 0:_getGlobal["document"];if(_typeof(document)!=="object"){throw new Error("not supported environment")}return document}function getWindow(){var _getGlobal2;var window=(_getGlobal2=(0,_global.getGlobal)())===null||_getGlobal2===void 0?void 0:_getGlobal2["window"];if(_typeof(window)!=="object"){throw new Error("not supported environment")}return window}function getDocumentFragmentFromString(html){(0,_validate.validateString)(html);var document=getDocument();var template=document.createElement("template");template.innerHTML=html;return template.content}_global.Monster.assignToNamespace("Monster.DOM",getWindow,getDocument,getDocumentFragmentFromString)},{"../types/global.js":26,"../types/validate.js":37}],18:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Handler=void 0;var _namespace=require("../namespace.js");var _base=require("../types/base.js");var _logger=require("./logger.js");var _logentry=require("./logentry.js");var _validate=require("../types/validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Handler=function(_Base){_inherits(Handler,_Base);var _super=_createSuper(Handler);function Handler(){var _this;_classCallCheck(this,Handler);_this=_super.call(this);_this.loglevel=_logger.OFF;return _this}_createClass(Handler,[{key:"log",value:function log(entry){(0,_validate.validateInstance)(entry,_logentry.LogEntry);if(this.loglevel<entry.getLogLevel()){return false}return true}},{key:"setLogLevel",value:function setLogLevel(loglevel){(0,_validate.validateInteger)(loglevel);this.loglevel=loglevel;return this}},{key:"getLogLevel",value:function getLogLevel(){return this.loglevel}},{key:"setAll",value:function setAll(){this.setLogLevel(_logger.ALL);return this}},{key:"setTrace",value:function setTrace(){this.setLogLevel(_logger.TRACE);return this}},{key:"setDebug",value:function setDebug(){this.setLogLevel(_logger.DEBUG);return this}},{key:"setInfo",value:function setInfo(){this.setLogLevel(_logger.INFO);return this}},{key:"setWarn",value:function setWarn(){this.setLogLevel(_logger.WARN);return this}},{key:"setError",value:function setError(){this.setLogLevel(_logger.ERROR);return this}},{key:"setFatal",value:function setFatal(){this.setLogLevel(_logger.FATAL);return this}},{key:"setOff",value:function setOff(){this.setLogLevel(_logger.OFF);return this}}]);return Handler}(_base.Base);exports.Handler=Handler;_namespace.Monster.assignToNamespace("Monster.Logging",Handler)},{"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37,"./logentry.js":20,"./logger.js":21}],19:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});Object.defineProperty(exports,"Handler",{enumerable:true,get:function get(){return _handler.Handler}});var _namespace=require("../../namespace.js");var _base=require("../../types/base.js");var _handler=require("../../logging/handler.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ConsoleHandler=function(_Base){_inherits(ConsoleHandler,_Base);var _super=_createSuper(ConsoleHandler);function ConsoleHandler(){_classCallCheck(this,ConsoleHandler);return _super.call(this)}return ConsoleHandler}(_base.Base);_namespace.Monster.assignToNamespace("Monster.Logging",ConsoleHandler)},{"../../logging/handler.js":18,"../../namespace.js":24,"../../types/base.js":25}],20:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.LogEntry=void 0;var _namespace=require("../namespace.js");var _validate=require("../types/validate.js");var _base=require("../types/base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var LogEntry=function(_Base){_inherits(LogEntry,_Base);var _super=_createSuper(LogEntry);function LogEntry(loglevel){var _this;_classCallCheck(this,LogEntry);_this=_super.call(this);(0,_validate.validateInteger)(loglevel);_this.loglevel=loglevel;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}_this.arguments=args;return _this}_createClass(LogEntry,[{key:"getLogLevel",value:function getLogLevel(){return this.loglevel}},{key:"getArguments",value:function getArguments(){return this.arguments}}]);return LogEntry}(_base.Base);exports.LogEntry=LogEntry;_namespace.Monster.assignToNamespace("Monster.Logging",LogEntry)},{"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37}],21:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.OFF=exports.FATAL=exports.ERROR=exports.WARN=exports.INFO=exports.DEBUG=exports.TRACE=exports.ALL=exports.Logger=void 0;var _namespace=require("../namespace.js");var _validate=require("../types/validate.js");var _handler=require("../logging/handler.js");var _logentry=require("../logging/logentry.js");var _base=require("../types/base.js");function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ALL=255;exports.ALL=ALL;var TRACE=64;exports.TRACE=TRACE;var DEBUG=32;exports.DEBUG=DEBUG;var INFO=16;exports.INFO=INFO;var WARN=8;exports.WARN=WARN;var ERROR=4;exports.ERROR=ERROR;var FATAL=2;exports.FATAL=FATAL;var OFF=0;exports.OFF=OFF;var Logger=function(_Base){_inherits(Logger,_Base);var _super=_createSuper(Logger);function Logger(){var _this;_classCallCheck(this,Logger);_this=_super.call(this);_this.handler=new Set;return _this}_createClass(Logger,[{key:"addHandler",value:function addHandler(handler){(0,_validate.validateObject)(handler);if(!(handler instanceof _handler.Handler)){throw new Error("the handler must be an instance of Handler")}this.handler.add(handler);return this}},{key:"removeHandler",value:function removeHandler(handler){(0,_validate.validateObject)(handler);if(!(handler instanceof _handler.Handler)){throw new Error("the handler must be an instance of Handler")}this.handler["delete"](handler);return this}},{key:"logTrace",value:function logTrace(){triggerLog.apply(this,[TRACE].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logDebug",value:function logDebug(){triggerLog.apply(this,[DEBUG].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logInfo",value:function logInfo(){triggerLog.apply(this,[INFO].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logWarn",value:function logWarn(){triggerLog.apply(this,[WARN].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logError",value:function logError(){triggerLog.apply(this,[ERROR].concat(Array.prototype.slice.call(arguments)));return this}},{key:"logFatal",value:function logFatal(){triggerLog.apply(this,[FATAL].concat(Array.prototype.slice.call(arguments)));return this}},{key:"getLabel",value:function getLabel(level){(0,_validate.validateInteger)(level);if(level===ALL)return"ALL";if(level===TRACE)return"TRACE";if(level===DEBUG)return"DEBUG";if(level===INFO)return"INFO";if(level===WARN)return"WARN";if(level===ERROR)return"ERROR";if(level===FATAL)return"FATAL";if(level===OFF)return"OFF";return"unknown"}},{key:"getLevel",value:function getLevel(label){(0,_validate.validateString)(label);if(label==="ALL")return ALL;if(label==="TRACE")return TRACE;if(label==="DEBUG")return DEBUG;if(label==="INFO")return INFO;if(label==="WARN")return WARN;if(label==="ERROR")return ERROR;if(label==="FATAL")return FATAL;if(label==="OFF")return OFF;return 0}}]);return Logger}(_base.Base);exports.Logger=Logger;_namespace.Monster.assignToNamespace("Monster.Logging",Logger);function triggerLog(loglevel){var logger=this;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}var _iterator=_createForOfIteratorHelper(logger.handler),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var handler=_step.value;handler.log(new _logentry.LogEntry(loglevel,args))}}catch(err){_iterator.e(err)}finally{_iterator.f()}return logger}},{"../logging/handler.js":18,"../logging/logentry.js":20,"../namespace.js":24,"../types/base.js":25,"../types/validate.js":37}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.random=random;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _global.Monster}});var _global=require("../types/global.js");function random(min,max){if(min===undefined){min=0}if(max===undefined){max=MAX}if(max<min){throw new Error("max must be greater than min")}return Math.round(create(min,max))}var MAX=1e9;Math.log2=Math.log2||function(n){return Math.log(n)/Math.log(2)};function create(min,max){var crypt;var globalReference=(0,_global.getGlobal)();crypt=(globalReference===null||globalReference===void 0?void 0:globalReference["crypto"])||(globalReference===null||globalReference===void 0?void 0:globalReference["msCrypto"])||(globalReference===null||globalReference===void 0?void 0:globalReference["crypto"])||undefined;if(typeof crypt==="undefined"){throw new Error("missing crypt")}var rval=0;var range=max-min;if(range<2){return min}var bitsNeeded=Math.ceil(Math.log2(range));if(bitsNeeded>53){throw new Error("we cannot generate numbers larger than 53 bits.")}var bytesNeeded=Math.ceil(bitsNeeded/8);var mask=Math.pow(2,bitsNeeded)-1;var byteArray=new Uint8Array(bytesNeeded);crypt.getRandomValues(byteArray);var p=(bytesNeeded-1)*8;for(var i=0;i<bytesNeeded;i++){rval+=byteArray[i]*Math.pow(2,p);p-=8}rval=rval&mask;if(rval>=range){return create(min,max)}return min+rval}_global.Monster.assignToNamespace("Monster.Math",random)},{"../types/global.js":26}],23:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("./namespace.js");require("./types/base.js");require("./types/global.js");require("./types/id.js");require("./types/is.js");require("./types/observer.js");require("./types/observerlist.js");require("./types/proxyobserver.js");require("./types/queue.js");require("./types/randomid.js");require("./types/stack.js");require("./types/tokenlist.js");require("./types/uniquequeue.js");require("./types/validate.js");require("./types/version.js");require("./math/random.js");require("./data/diff.js");require("./data/pathfinder.js");require("./data/pipe.js");require("./data/transformer.js");require("./logging/handler.js");require("./logging/logentry.js");require("./logging/logger.js");require("./logging/handler/console.js");require("./util/clone.js");require("./util/comparator.js");require("./util/freeze.js");require("./constraints/abstract.js");require("./constraints/abstractoperator.js");require("./constraints/andoperator.js");require("./constraints/invalid.js");require("./constraints/isarray.js");require("./constraints/isobject.js");require("./constraints/oroperator.js");require("./constraints/valid.js");require("./dom/util.js");require("./dom/template.js");require("./dom/handle.js");require("./dom/assembler.js");require("./dom/customelement.js");_namespace.Monster.Util.deepFreeze(_namespace.Monster);var rootName;try{rootName=_namespace.Monster.Types.getGlobalObject("__MonsterRootName__")}catch(e){}if(!rootName)rootName="Monster";_namespace.Monster.Types.getGlobal()[rootName]=_namespace.Monster},{"./constraints/abstract.js":1,"./constraints/abstractoperator.js":2,"./constraints/andoperator.js":3,"./constraints/invalid.js":4,"./constraints/isarray.js":5,"./constraints/isobject.js":6,"./constraints/oroperator.js":7,"./constraints/valid.js":8,"./data/diff.js":9,"./data/pathfinder.js":10,"./data/pipe.js":11,"./data/transformer.js":12,"./dom/assembler.js":13,"./dom/customelement.js":14,"./dom/handle.js":15,"./dom/template.js":16,"./dom/util.js":17,"./logging/handler.js":18,"./logging/handler/console.js":19,"./logging/logentry.js":20,"./logging/logger.js":21,"./math/random.js":22,"./namespace.js":24,"./types/base.js":25,"./types/global.js":26,"./types/id.js":27,"./types/is.js":28,"./types/observer.js":29,"./types/observerlist.js":30,"./types/proxyobserver.js":31,"./types/queue.js":32,"./types/randomid.js":33,"./types/stack.js":34,"./types/tokenlist.js":35,"./types/uniquequeue.js":36,"./types/validate.js":37,"./types/version.js":38,"./util/clone.js":39,"./util/comparator.js":40,"./util/freeze.js":41}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.assignToNamespace=assignToNamespace;exports.Monster=void 0;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}var Namespace=function(){function Namespace(namespace){_classCallCheck(this,Namespace);if(namespace===undefined||typeof namespace!=="string"){throw new Error("namespace is not a string")}this.namespace=namespace}_createClass(Namespace,[{key:"getNamespace",value:function getNamespace(){return this.namespace}},{key:"toString",value:function toString(){return this.getNamespace()}}]);return Namespace}();var Monster=new Namespace("Monster");exports.Monster=Monster;assignToNamespace("Monster",assignToNamespace);function assignToNamespace(ns){var current=namespaceFor(ns.split("."));for(var i=0,l=arguments.length<=1?0:arguments.length-1;i<l;i++){current[objectName(i+1<1||arguments.length<=i+1?undefined:arguments[i+1])]=i+1<1||arguments.length<=i+1?undefined:arguments[i+1]}}function objectName(fn){try{if(typeof fn!=="function"){throw new Error("the first argument is not a function or class.")}if(fn.hasOwnProperty("name")){return fn.name}if("function"===typeof fn.toString){var s=fn.toString();var f=s.match(/^\s*function\s+([^\s(]+)/);if(Array.isArray(f)&&typeof f[1]==="string"){return f[1]}var c=s.match(/^\s*class\s+([^\s(]+)/);if(Array.isArray(c)&&typeof c[1]==="string"){return c[1]}}}catch(e){throw new Error("exception "+e)}throw new Error("the name of the class or function cannot be resolved.")}function namespaceFor(parts){var space=Monster,ns="Monster";for(var i=0;i<parts.length;i++){if("Monster"===parts[i]){continue}ns+="."+parts[i];if(!space.hasOwnProperty(parts[i])){space[parts[i]]=new Namespace(ns)}space=space[parts[i]]}return space}},{}],25:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Base=void 0;var _namespace=require("../namespace.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map:undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper)}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor)}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class)};return _wrapNativeSuper(Class)}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor;if(Class)_setPrototypeOf(instance,Class.prototype);return instance}}return _construct.apply(null,arguments)}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Base=function(_Object){_inherits(Base,_Object);var _super=_createSuper(Base);function Base(){_classCallCheck(this,Base);return _super.apply(this,arguments)}_createClass(Base,[{key:"toString",value:function toString(){return JSON.stringify(this)}}]);return Base}(_wrapNativeSuper(Object));exports.Base=Base;_namespace.Monster.assignToNamespace("Monster.Types",Base)},{"../namespace.js":24}],26:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getGlobal=getGlobal;exports.getGlobalObject=getGlobalObject;exports.getGlobalFunction=getGlobalFunction;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _validate=require("./validate.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}var globalReference;(function(){if((typeof globalThis==="undefined"?"undefined":_typeof(globalThis))==="object"){globalReference=globalThis;return}Object.defineProperty(Object.prototype,"__monster__",{get:function get(){return this},configurable:true});__monster__.globalThis=__monster__;delete Object.prototype.__monster__;globalReference=globalThis})();function getGlobal(){return globalReference}function getGlobalObject(name){var _globalReference;(0,_validate.validateString)(name);var o=(_globalReference=globalReference)===null||_globalReference===void 0?void 0:_globalReference[name];if(typeof o==="undefined")throw new Error("the object "+name+" is not defined");(0,_validate.validateObject)(o);return o}function getGlobalFunction(name){var _globalReference2;(0,_validate.validateString)(name);var f=(_globalReference2=globalReference)===null||_globalReference2===void 0?void 0:_globalReference2[name];if(typeof f==="undefined")throw new Error("the function "+name+" is not defined");(0,_validate.validateFunction)(f);return f}_namespace.Monster.assignToNamespace("Monster.Types",getGlobal,getGlobalObject,getGlobalFunction)},{"../namespace.js":24,"./validate.js":37}],27:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.ID=void 0;var _base=require("./base.js");var _validate=require("./validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var internalCounter=new Map;var ID=function(_Base){_inherits(ID,_Base);var _super=_createSuper(ID);function ID(prefix){var _this;_classCallCheck(this,ID);_this=_super.call(this);if(prefix===undefined){prefix="id"}(0,_validate.validateString)(prefix);if(!internalCounter.has(prefix)){internalCounter.set(prefix,1)}var count=internalCounter.get(prefix);_this.id=prefix+count;internalCounter.set(prefix,++count);return _this}_createClass(ID,[{key:"toString",value:function toString(){return this.id}}]);return ID}(_base.Base);exports.ID=ID;_base.Monster.assignToNamespace("Monster.Types",ID)},{"./base.js":25,"./validate.js":37}],28:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.isPrimitive=isPrimitive;exports.isBoolean=isBoolean;exports.isString=isString;exports.isObject=isObject;exports.isInstance=isInstance;exports.isArray=isArray;exports.isFunction=isFunction;exports.isIterable=isIterable;exports.isInteger=isInteger;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function isIterable(value){if(value===undefined)return false;if(value===null)return false;return typeof(value===null||value===void 0?void 0:value[Symbol.iterator])==="function"}function isPrimitive(value){var type;if(value===undefined||value===null||value===NaN){return true}type=_typeof(value);if(type==="string"||type==="number"||type==="boolean"||type==="symbol"){return true}return false}function isBoolean(value){if(value===true||value===false){return true}return false}function isString(value){if(value===undefined||typeof value!=="string"){return false}return true}function isObject(value){if(isArray(value))return false;if(isPrimitive(value))return false;if(_typeof(value)==="object"){return true}return false}function isInstance(value,instance){if(!isObject(value))return false;if(!isFunction(instance))return false;if(!instance.hasOwnProperty("prototype"))return false;return value instanceof instance?true:false}function isArray(value){if(Array.isArray(value)){return true}return false}function isFunction(value){if(isArray(value))return false;if(isPrimitive(value))return false;if(typeof value==="function"){return true}return false}function isInteger(value){return Number.isInteger(value)}_namespace.Monster.assignToNamespace("Monster.Types",isPrimitive,isBoolean,isString,isObject,isArray,isFunction,isIterable,isInteger)},{"../namespace.js":24}],29:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Observer=void 0;var _namespace=require("../namespace.js");var _tokenlist=require("./tokenlist.js");var _is=require("./is.js");var _base=require("./base.js");var _uniquequeue=require("./uniquequeue.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Observer=function(_Base){_inherits(Observer,_Base);var _super=_createSuper(Observer);function Observer(callback){var _this;_classCallCheck(this,Observer);_this=_super.call(this);if(typeof callback!=="function"){throw new Error("observer callback must be a function")}_this.callback=callback;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}_this.arguments=args;_this.tags=new _tokenlist.TokenList;_this.queue=new _uniquequeue.UniqueQueue;return _this}_createClass(Observer,[{key:"addTag",value:function addTag(tag){this.tags.add(tag);return this}},{key:"removeTag",value:function removeTag(tag){this.tags.remove(tag);return this}},{key:"getTags",value:function getTags(){return this.tags.entries()}},{key:"hasTag",value:function hasTag(tag){return this.tags.contains(tag)}},{key:"update",value:function update(subject){var self=this;return new Promise(function(resolve,reject){if(!(0,_is.isObject)(subject)){reject("subject must be an object");return}self.queue.add(subject);setTimeout(function(){if(self.queue.isEmpty()){resolve();return}var s=self.queue.poll();var result=self.callback.apply(s,self.arguments);if((0,_is.isObject)(result)&&result instanceof Promise){result.then(resolve)["catch"](reject);return}resolve(result)},0)})}}]);return Observer}(_base.Base);exports.Observer=Observer;_namespace.Monster.assignToNamespace("Monster.Types",Observer)},{"../namespace.js":24,"./base.js":25,"./is.js":28,"./tokenlist.js":35,"./uniquequeue.js":36}],30:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.ObserverList=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");var _observer=require("./observer.js");var _validate=require("./validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ObserverList=function(_Base){_inherits(ObserverList,_Base);var _super=_createSuper(ObserverList);function ObserverList(){var _this;_classCallCheck(this,ObserverList);_this=_super.call(this);_this.observers=[];return _this}_createClass(ObserverList,[{key:"attach",value:function attach(observer){(0,_validate.validateInstance)(observer,_observer.Observer);this.observers.push(observer);return this}},{key:"detach",value:function detach(observer){(0,_validate.validateInstance)(observer,_observer.Observer);var i=0,l=this.observers.length;for(;i<l;i++){if(this.observers[i]===observer){this.observers.splice(i,1)}}return this}},{key:"contains",value:function contains(observer){(0,_validate.validateInstance)(observer,_observer.Observer);var i=0,l=this.observers.length;for(;i<l;i++){if(this.observers[i]===observer){return true}}return false}},{key:"notify",value:function notify(subject){var pomises=[];var i=0,l=this.observers.length;for(;i<l;i++){pomises.push(this.observers[i].update(subject))}return Promise.all(pomises)}}]);return ObserverList}(_base.Base);exports.ObserverList=ObserverList;_namespace.Monster.assignToNamespace("Monster.Types",ObserverList)},{"../namespace.js":24,"./base.js":25,"./observer.js":29,"./validate.js":37}],31:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.ProxyObserver=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");var _validate=require("./validate.js");var _observerlist=require("./observerlist.js");var _observer=require("./observer.js");var _is=require("./is.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var ProxyObserver=function(_Base){_inherits(ProxyObserver,_Base);var _super=_createSuper(ProxyObserver);function ProxyObserver(object){var _this;_classCallCheck(this,ProxyObserver);_this=_super.call(this);(0,_validate.validateObject)(object);_this.realSubject=object;_this.subject=new Proxy(object,getHandler.call(_assertThisInitialized(_this)));_this.objectMap=new WeakMap;_this.objectMap.set(_this.realSubject,_this.subject);_this.observers=new _observerlist.ObserverList;return _this}_createClass(ProxyObserver,[{key:"getSubject",value:function getSubject(){return this.subject}},{key:"getRealSubject",value:function getRealSubject(){return this.realSubject}},{key:"attachObserver",value:function attachObserver(observer){this.observers.attach(observer);return this}},{key:"detachObserver",value:function detachObserver(observer){this.observers.detach(observer);return this}},{key:"notifyObservers",value:function notifyObservers(){this.observers.notify(this);return this}},{key:"containsObserver",value:function containsObserver(observer){return this.observers.contains(observer)}}]);return ProxyObserver}(_base.Base);exports.ProxyObserver=ProxyObserver;_namespace.Monster.assignToNamespace("Monster.Types",ProxyObserver);function getHandler(){var proxy=this;var handler={get:function get(target,key,receiver){var value=Reflect.get(target,key,receiver);if(_typeof(key)==="symbol"){return value}if((0,_is.isPrimitive)(value)){return value}if((0,_is.isArray)(value)||(0,_is.isObject)(value)){if(proxy.objectMap.has(value)){return proxy.objectMap.get(value)}else{var p=new Proxy(value,handler);proxy.objectMap.set(value,p);return p}}return value},set:function set(target,key,value,receiver){var result=Reflect.set(target,key,value,receiver);if((typeof property==="undefined"?"undefined":_typeof(property))!=="symbol"){proxy.observers.notify(proxy)}return result},deleteProperty:function deleteProperty(target,key){if(key in target){delete target[key];if(_typeof(key)!=="symbol"){proxy.observers.notify(proxy)}return true}return false},defineProperty:function defineProperty(target,key,descriptor){var result=Reflect.defineProperty(target,key,descriptor);if(_typeof(key)!=="symbol"){proxy.observers.notify(proxy)}return result},setPrototypeOf:function setPrototypeOf(target,key){var result=Reflect.setPrototypeOf(object1,key);if(_typeof(key)!=="symbol"){proxy.observers.notify(proxy)}return result}};return handler}},{"../namespace.js":24,"./base.js":25,"./is.js":28,"./observer.js":29,"./observerlist.js":30,"./validate.js":37}],32:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Queue=void 0;var _base=require("./base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Queue=function(_Base){_inherits(Queue,_Base);var _super=_createSuper(Queue);function Queue(){var _this;_classCallCheck(this,Queue);_this=_super.call(this);_this.data=[];return _this}_createClass(Queue,[{key:"isEmpty",value:function isEmpty(){return this.data.length===0}},{key:"peek",value:function peek(){if(this.isEmpty()){return undefined}return this.data[0]}},{key:"add",value:function add(value){this.data.push(value);return this}},{key:"clear",value:function clear(){this.data=[];return this}},{key:"poll",value:function poll(){if(this.isEmpty()){return undefined}return this.data.shift()}}]);return Queue}(_base.Base);exports.Queue=Queue;_base.Monster.assignToNamespace("Monster.Types",Queue)},{"./base.js":25}],33:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _id.Monster}});exports.RandomID=void 0;var _id=require("./id.js");var _global=require("./global.js");var _random=require("../math/random.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var internalCounter=0;var RandomID=function(_ID){_inherits(RandomID,_ID);var _super=_createSuper(RandomID);function RandomID(){var _this;_classCallCheck(this,RandomID);_this=_super.call(this);internalCounter+=1;_this.id=(0,_global.getGlobal)().btoa((0,_random.random)(1,1e4)).replace(/=/g,"").replace(/^[0-9]+/,"X")+internalCounter;return _this}return RandomID}(_id.ID);exports.RandomID=RandomID;_id.Monster.assignToNamespace("Monster.Types",RandomID)},{"../math/random.js":22,"./global.js":26,"./id.js":27}],34:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Stack=void 0;var _base=require("./base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Stack=function(_Base){_inherits(Stack,_Base);var _super=_createSuper(Stack);function Stack(){var _this;_classCallCheck(this,Stack);_this=_super.call(this);_this.data=[];return _this}_createClass(Stack,[{key:"isEmpty",value:function isEmpty(){return this.data.length===0}},{key:"peek",value:function peek(){var _this$data;if(this.isEmpty()){return undefined}return(_this$data=this.data)===null||_this$data===void 0?void 0:_this$data[this.data.length-1]}},{key:"push",value:function push(value){this.data.push(value);return this}},{key:"clear",value:function clear(){this.data=[];return this}},{key:"pop",value:function pop(){if(this.isEmpty()){return undefined}return this.data.pop()}}]);return Stack}(_base.Base);exports.Stack=Stack;_base.Monster.assignToNamespace("Monster.Types",Stack)},{"./base.js":25}],35:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.TokenList=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");var _is=require("../types/is.js");var _validate=require("../types/validate.js");function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var TokenList=function(_Base){_inherits(TokenList,_Base);var _super=_createSuper(TokenList);function TokenList(init){var _this;_classCallCheck(this,TokenList);_this=_super.call(this);_this.tokens=new Set;if(typeof init!=="undefined"){_this.add(init)}return _this}_createClass(TokenList,[{key:"getIterator",value:function getIterator(){return this[Symbol.iterator]()}},{key:Symbol.iterator,value:function value(){var index=0;var entries=this.entries();return{next:function next(){if(index<entries.length){return{value:entries===null||entries===void 0?void 0:entries[index++],done:false}}else{return{done:true}}}}}},{key:"contains",value:function contains(value){var _this2=this;if((0,_is.isString)(value)){value=value.trim();var counter=0;value.split(" ").forEach(function(token){if(_this2.tokens.has(token.trim())===false)return false;counter++});return counter>0?true:false}if((0,_is.isIterable)(value)){var _counter=0;var _iterator=_createForOfIteratorHelper(value),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var token=_step.value;(0,_validate.validateString)(token);if(this.tokens.has(token.trim())===false)return false;_counter++}}catch(err){_iterator.e(err)}finally{_iterator.f()}return _counter>0?true:false}return false}},{key:"add",value:function add(value){var _this3=this;if((0,_is.isString)(value)){value.split(" ").forEach(function(token){_this3.tokens.add(token.trim())})}else if((0,_is.isIterable)(value)){var _iterator2=_createForOfIteratorHelper(value),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var token=_step2.value;(0,_validate.validateString)(token);this.tokens.add(token.trim())}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}},{key:"clear",value:function clear(){this.tokens.clear();return this}},{key:"remove",value:function remove(value){var _this4=this;if((0,_is.isString)(value)){value.split(" ").forEach(function(token){_this4.tokens["delete"](token.trim())})}else if((0,_is.isIterable)(value)){var _iterator3=_createForOfIteratorHelper(value),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var token=_step3.value;(0,_validate.validateString)(token);this.tokens["delete"](token.trim())}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}},{key:"replace",value:function replace(token,newToken){(0,_validate.validateString)(token);(0,_validate.validateString)(newToken);if(!this.contains(token)){return this}var a=Array.from(this.tokens);var i=a.indexOf(token);if(i===-1)return this;a.splice(i,1,newToken);this.tokens=new Set;this.add(a);return this}},{key:"toggle",value:function toggle(value){var _this5=this;if((0,_is.isString)(value)){value.split(" ").forEach(function(token){toggleValue.call(_this5,token)})}else if((0,_is.isIterable)(value)){var _iterator4=_createForOfIteratorHelper(value),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var token=_step4.value;toggleValue.call(this,token)}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}}else if(typeof value!=="undefined"){throw new TypeError("unsupported value")}return this}},{key:"entries",value:function entries(){return Array.from(this.tokens)}},{key:"forEach",value:function forEach(callback){(0,_validate.validateFunction)(callback);this.tokens.forEach(callback);return this}},{key:"toString",value:function toString(){return this.entries().join(" ")}}]);return TokenList}(_base.Base);exports.TokenList=TokenList;function toggleValue(token){if(!(this instanceof TokenList))throw Error("must be called with TokenList.call");(0,_validate.validateString)(token);token=token.trim();if(this.contains(token)){this.remove(token);return this}this.add(token);return this}_namespace.Monster.assignToNamespace("Monster.Types",TokenList)},{"../namespace.js":24,"../types/is.js":28,"../types/validate.js":37,"./base.js":25}],36:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _queue.Monster}});exports.UniqueQueue=void 0;var _queue=require("./queue.js");var _validate=require("./validate.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _get(target,property,receiver){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(receiver)}return desc.value}}return _get(target,property,receiver||target)}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break}return object}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var UniqueQueue=function(_Queue){_inherits(UniqueQueue,_Queue);var _super=_createSuper(UniqueQueue);function UniqueQueue(){var _this;_classCallCheck(this,UniqueQueue);_this=_super.call(this);_this.unique=new WeakSet;return _this}_createClass(UniqueQueue,[{key:"add",value:function add(value){(0,_validate.validateObject)(value);if(!this.unique.has(value)){this.unique.add(value);_get(_getPrototypeOf(UniqueQueue.prototype),"add",this).call(this,value)}return this}},{key:"clear",value:function clear(){_get(_getPrototypeOf(UniqueQueue.prototype),"clear",this).call(this);this.unique=new WeakSet;return this}},{key:"poll",value:function poll(){if(this.isEmpty()){return undefined}var value=this.data.shift();this.unique["delete"](value);return value}}]);return UniqueQueue}(_queue.Queue);exports.UniqueQueue=UniqueQueue;_queue.Monster.assignToNamespace("Monster.Types",UniqueQueue)},{"./queue.js":32,"./validate.js":37}],37:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.validatePrimitive=validatePrimitive;exports.validateBoolean=validateBoolean;exports.validateString=validateString;exports.validateObject=validateObject;exports.validateInstance=validateInstance;exports.validateArray=validateArray;exports.validateFunction=validateFunction;exports.validateIterable=validateIterable;exports.validateInteger=validateInteger;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _is=require("./is.js");function validateIterable(value){if(!(0,_is.isIterable)(value)){throw new TypeError("value is not iterable")}}function validatePrimitive(value){if(!(0,_is.isPrimitive)(value)){throw new TypeError("value is not a primitive")}}function validateBoolean(value){if(!(0,_is.isBoolean)(value)){throw new TypeError("value is not a boolean")}}function validateString(value){if(!(0,_is.isString)(value)){throw new TypeError("value is not a string")}}function validateObject(value){if(!(0,_is.isObject)(value)){throw new TypeError("value is not a object")}}function validateInstance(value,instance){if(!(0,_is.isInstance)(value,instance)){var n="";if((0,_is.isObject)(instance)||(0,_is.isFunction)(instance)){n=instance===null||instance===void 0?void 0:instance["name"]}if(n){n=" "+n}throw new TypeError("value is not an instance of"+n)}}function validateArray(value){if(!(0,_is.isArray)(value)){throw new TypeError("value is not an array")}}function validateFunction(value){if(!(0,_is.isFunction)(value)){throw new TypeError("value is not a function")}}function validateInteger(value){if(!(0,_is.isInteger)(value)){throw new TypeError("value is not an integer")}}_namespace.Monster.assignToNamespace("Monster.Types",validatePrimitive,validateBoolean,validateString,validateObject,validateArray,validateFunction,validateIterable,validateInteger)},{"../namespace.js":24,"./is.js":28}],38:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});exports.getVersion=getVersion;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});exports.Version=void 0;var _namespace=require("../namespace.js");var _base=require("./base.js");function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Version=function(_Base){_inherits(Version,_Base);var _super=_createSuper(Version);function Version(major,minor,patch){var _this;_classCallCheck(this,Version);_this=_super.call(this);if(typeof major==="string"&&minor===undefined&&patch===undefined){var parts=major.toString().split(".");major=parseInt(parts[0]||0);minor=parseInt(parts[1]||0);patch=parseInt(parts[2]||0)}if(major===undefined){throw new Error("major version is undefined")}if(minor===undefined){minor=0}if(patch===undefined){patch=0}_this.major=parseInt(major);_this.minor=parseInt(minor);_this.patch=parseInt(patch);if(isNaN(_this.major)){throw new Error("major is not a number")}if(isNaN(_this.minor)){throw new Error("minor is not a number")}if(isNaN(_this.patch)){throw new Error("patch is not a number")}return _this}_createClass(Version,[{key:"toString",value:function toString(){return this.major+"."+this.minor+"."+this.patch}},{key:"compareTo",value:function compareTo(version){if(version instanceof Version){version=version.toString()}if(typeof version!=="string"){throw new Error("type exception")}if(version===this.toString()){return 0}var a=[this.major,this.minor,this.patch];var b=version.split(".");var len=Math.max(a.length,b.length);for(var i=0;i<len;i+=1){if(a[i]&&!b[i]&&parseInt(a[i])>0||parseInt(a[i])>parseInt(b[i])){return 1}else if(b[i]&&!a[i]&&parseInt(b[i])>0||parseInt(a[i])<parseInt(b[i])){return-1}}return 0}}]);return Version}(_base.Base);exports.Version=Version;_namespace.Monster.assignToNamespace("Monster.Types",Version);var monsterVersion;function getVersion(){if(monsterVersion instanceof Version){return monsterVersion}monsterVersion=new Version("1.7.0");return monsterVersion}_namespace.Monster.assignToNamespace("Monster",getVersion)},{"../namespace.js":24,"./base.js":25}],39:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.clone=clone;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _is=require("../types/is.js");var _global=require("../types/global.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function clone(obj){if(null===obj){return obj}if((0,_is.isPrimitive)(obj)){return obj}if((0,_is.isFunction)(obj)){return obj}if((0,_is.isArray)(obj)){var copy=[];for(var i=0,len=obj.length;i<len;i++){copy[i]=clone(obj[i])}return copy}if((0,_is.isObject)(obj)){if(obj instanceof Date){var _copy=new Date;_copy.setTime(obj.getTime());return _copy}if(typeof Element!=="undefined"&&obj instanceof Element)return obj;if(typeof HTMLDocument!=="undefined"&&obj instanceof HTMLDocument)return obj;if(typeof DocumentFragment!=="undefined"&&obj instanceof DocumentFragment)return obj;if(obj===(0,_global.getGlobal)())return obj;if(typeof globalContext!=="undefined"&&obj===globalContext)return obj;if(typeof window!=="undefined"&&obj===window)return obj;if(typeof document!=="undefined"&&obj===document)return obj;if(typeof navigator!=="undefined"&&obj===navigator)return obj;if(typeof JSON!=="undefined"&&obj===JSON)return obj;try{if(obj instanceof Proxy){return obj}}catch(e){}return cloneObject(obj)}throw new Error("unable to clone obj! its type isn't supported.")}function cloneObject(obj){var copy;if(_typeof(obj.hasOwnProperty("getClone"))&&obj.getClone==="function"){return obj.getClone()}copy={};if(typeof obj.constructor==="function"&&typeof obj.constructor.call==="function"){copy=new obj.constructor}for(var key in obj){if(!obj.hasOwnProperty(key)){continue}if(_namespace.Monster.Types.isPrimitive(obj[key])){copy[key]=obj[key];continue}copy[key]=clone(obj[key])}return copy}_namespace.Monster.assignToNamespace("Monster.Util",clone)},{"../namespace.js":24,"../types/global.js":26,"../types/is.js":28}],40:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _base.Monster}});exports.Comparator=void 0;var _base=require("../types/base.js");var _is=require("../types/is.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else{result=Super.apply(this,arguments)}return _possibleConstructorReturn(this,result)}}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}var Comparator=function(_Base){_inherits(Comparator,_Base);var _super=_createSuper(Comparator);function Comparator(callback){var _this;_classCallCheck(this,Comparator);_this=_super.call(this);if((0,_is.isFunction)(callback)){_this.compare=callback}else if(callback!==undefined){throw new TypeError("unsupported type")}else{_this.compare=function(a,b){if(_typeof(a)!==_typeof(b)){throw new TypeError("impractical comparison")}if(a===b){return 0}return a<b?-1:1}}return _this}_createClass(Comparator,[{key:"reverse",value:function reverse(){var original=this.compare;this.compare=function(a,b){return original(b,a)};return this}},{key:"equal",value:function equal(a,b){return this.compare(a,b)===0}},{key:"greaterThan",value:function greaterThan(a,b){return this.compare(a,b)>0}},{key:"greaterThanOrEqual",value:function greaterThanOrEqual(a,b){return this.greaterThan(a,b)||this.equal(a,b)}},{key:"lessThanOrEqual",value:function lessThanOrEqual(a,b){return this.lessThan(a,b)||this.equal(a,b)}},{key:"lessThan",value:function lessThan(a,b){return this.compare(a,b)<0}}]);return Comparator}(_base.Base);exports.Comparator=Comparator;_base.Monster.assignToNamespace("Monster.Util",Comparator)},{"../types/base.js":25,"../types/is.js":28}],41:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.deepFreeze=deepFreeze;Object.defineProperty(exports,"Monster",{enumerable:true,get:function get(){return _namespace.Monster}});var _namespace=require("../namespace.js");var _validate=require("../types/validate.js");function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function deepFreeze(object){(0,_validate.validateObject)(object);var propNames=Object.getOwnPropertyNames(object);var _iterator=_createForOfIteratorHelper(propNames),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var name=_step.value;var value=object[name];object[name]=value&&_typeof(value)==="object"?deepFreeze(value):value}}catch(err){_iterator.e(err)}finally{_iterator.f()}return Object.freeze(object)}_namespace.Monster.assignToNamespace("Monster.Util",deepFreeze)},{"../namespace.js":24,"../types/validate.js":37}]},{},[23]); diff --git a/packages/monster/package.json b/packages/monster/package.json index f399d870ea146ddd0b19c8c4316e5bf144d9b377..5e67385787666e42d07a5898c8acfcf64deeefcf 100644 --- a/packages/monster/package.json +++ b/packages/monster/package.json @@ -1,6 +1,6 @@ { "name": "@schukai/monster", - "version": "1.6.0", + "version": "1.7.0", "description": "Monster is a simple library for creating fast, robust and lightweight websites.", "keywords": [ "framework", diff --git a/packages/monster/source/constraints/andoperator.js b/packages/monster/source/constraints/andoperator.js index 15015d3eb3e18f19ecc63eb94efa8246b16e2ed3..777512097f15488758e68de9f4536ec0e1231997 100644 --- a/packages/monster/source/constraints/andoperator.js +++ b/packages/monster/source/constraints/andoperator.js @@ -12,7 +12,7 @@ import {AbstractOperator} from "./abstractoperator.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js'; * new Monster.Constraint.AndOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -21,8 +21,8 @@ import {AbstractOperator} from "./abstractoperator.js"; * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js'; - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js'; * new AndOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` diff --git a/packages/monster/source/constraints/invalid.js b/packages/monster/source/constraints/invalid.js index f4ce116b0a809123adce6fbc287acc6508fa2bc3..e2320b2d12a34e0aa282fc0ad75af846457e5a03 100644 --- a/packages/monster/source/constraints/invalid.js +++ b/packages/monster/source/constraints/invalid.js @@ -13,7 +13,7 @@ import {Monster, AbstractConstraint} from "./abstract.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js'; * new Monster.Constraint.Invalid().catch(()=>console.log(true)); * </script> * ``` @@ -22,7 +22,7 @@ import {Monster, AbstractConstraint} from "./abstract.js"; * * ``` * <script type="module"> - * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js'; + * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js'; * new Invalid().catch(()=>console.log(true)); * </script> * ``` diff --git a/packages/monster/source/constraints/isarray.js b/packages/monster/source/constraints/isarray.js index e0c7382014db629899786a82548bea7102874146..e5ca7a474f4a1df31ec21838cacdc0d9c23031df 100644 --- a/packages/monster/source/constraints/isarray.js +++ b/packages/monster/source/constraints/isarray.js @@ -12,7 +12,7 @@ import {isArray} from "../types/is.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js'; * console.log(new Monster.Constraint.IsArray()) * </script> * ``` @@ -21,7 +21,7 @@ import {isArray} from "../types/is.js"; * * ``` * <script type="module"> - * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js'; + * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js'; * console.log(new IsArray()) * </script> * ``` diff --git a/packages/monster/source/constraints/isobject.js b/packages/monster/source/constraints/isobject.js index f83aace7126b8198536fa55475c0119d03570a8c..2fe0a4f5c45e3079a67f099b6165d0dbf77b3d84 100644 --- a/packages/monster/source/constraints/isobject.js +++ b/packages/monster/source/constraints/isobject.js @@ -12,7 +12,7 @@ import {isObject} from "../types/is.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js'; * console.log(new Monster.Constraint.IsObject()) * </script> * ``` @@ -21,7 +21,7 @@ import {isObject} from "../types/is.js"; * * ``` * <script type="module"> - * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js'; + * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js'; * console.log(new IsObject()) * </script> * ``` diff --git a/packages/monster/source/constraints/oroperator.js b/packages/monster/source/constraints/oroperator.js index 0b85c7392c570e0404c096ced59025ea509a7dc9..4fb025331c33859a302c2a0e7bba65b8331af92e 100644 --- a/packages/monster/source/constraints/oroperator.js +++ b/packages/monster/source/constraints/oroperator.js @@ -11,7 +11,7 @@ import {Monster, AbstractOperator} from "./abstractoperator.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js'; * new Monster.Constraint.OrOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -20,8 +20,8 @@ import {Monster, AbstractOperator} from "./abstractoperator.js"; * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js'; - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js'; * new OrOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` diff --git a/packages/monster/source/constraints/valid.js b/packages/monster/source/constraints/valid.js index bb7d9c3155775ac4f47ae7f62bb57b040137dfca..c70fd0a8311e3dc5fad0c6bf7b590a945e7ae2a2 100644 --- a/packages/monster/source/constraints/valid.js +++ b/packages/monster/source/constraints/valid.js @@ -13,7 +13,7 @@ import {Monster, AbstractConstraint} from "./abstract.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js'; * new Monster.Constraint.Valid().then(()=>console.log(true)); * </script> * ``` @@ -22,7 +22,7 @@ import {Monster, AbstractConstraint} from "./abstract.js"; * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js'; * new Valid().then(()=>console.log(true)); * </script> * ``` diff --git a/packages/monster/source/data/diff.js b/packages/monster/source/data/diff.js index d278fc07266fa74aee4819d32d7280d45cd88251..658ce15099563dbefd4fe679959d30e4beb43b3c 100644 --- a/packages/monster/source/data/diff.js +++ b/packages/monster/source/data/diff.js @@ -16,7 +16,7 @@ import {Monster, isArray, isObject} from "../types/is.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js'; * console.log(Monster.Data.Diff(a, b)) * </script> * ``` @@ -25,7 +25,7 @@ import {Monster, isArray, isObject} from "../types/is.js"; * * ``` * <script type="module"> - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js'; * console.log(Diff(a, b)) * </script> * ``` diff --git a/packages/monster/source/data/pathfinder.js b/packages/monster/source/data/pathfinder.js index 0b97e82bc8d75cef56f2b1c3b252733fa42ced4f..18b05f0469a4effd8cc2d8e6d412c280d858df20 100644 --- a/packages/monster/source/data/pathfinder.js +++ b/packages/monster/source/data/pathfinder.js @@ -23,7 +23,7 @@ const DELIMITER = '.'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js'; * console.log(new Monster.Data.Pathfinder()) * </script> * ``` @@ -32,7 +32,7 @@ const DELIMITER = '.'; * * ``` * <script type="module"> - * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js'; + * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js'; * console.log(new Pathfinder()) * </script> * ``` diff --git a/packages/monster/source/data/pipe.js b/packages/monster/source/data/pipe.js index 69f04f8bc2888420abc10a5f0e4e37b93c63f203..4f52f1c1508fe8c974da1a58be808b78d1817daa 100644 --- a/packages/monster/source/data/pipe.js +++ b/packages/monster/source/data/pipe.js @@ -19,7 +19,7 @@ const DELIMITER = '|'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js'; * console.log(new Monster.Data.Pipe()) * </script> * ``` @@ -28,7 +28,7 @@ const DELIMITER = '|'; * * ``` * <script type="module"> - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js'; * console.log(new Pipe()) * </script> * ``` diff --git a/packages/monster/source/data/transformer.js b/packages/monster/source/data/transformer.js index c2d1117d3330b6d1b4276abb1712c9a00a97c939..5eea5cfebb75f921d4e84e1dee58ada613b1b0ec 100644 --- a/packages/monster/source/data/transformer.js +++ b/packages/monster/source/data/transformer.js @@ -19,7 +19,7 @@ import {Pathfinder} from "./pathfinder.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js'; * console.log(new Monster.Data.Transformer()) * </script> * ``` @@ -28,7 +28,7 @@ import {Pathfinder} from "./pathfinder.js"; * * ``` * <script type="module"> - * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js'; + * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js'; * console.log(new Transformer()) * </script> * ``` diff --git a/packages/monster/source/dom/assembler.js b/packages/monster/source/dom/assembler.js index 3cfbbae4fec2711598d48357c71d3c181263143b..a6c2c070a4fb105d32b5bea1d73ba31445921095 100644 --- a/packages/monster/source/dom/assembler.js +++ b/packages/monster/source/dom/assembler.js @@ -23,7 +23,7 @@ const ATTRIBUTEPREFIX = "data-monster-"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js'; * console.log(new Monster.DOM.Assembler()) * </script> * ``` @@ -32,7 +32,7 @@ const ATTRIBUTEPREFIX = "data-monster-"; * * ``` * <script type="module"> - * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js'; + * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js'; * console.log(new Assembler()) * </script> * ``` diff --git a/packages/monster/source/dom/customelement.js b/packages/monster/source/dom/customelement.js new file mode 100644 index 0000000000000000000000000000000000000000..64bf6828976facdb84cd61188ac61d55c6189dff --- /dev/null +++ b/packages/monster/source/dom/customelement.js @@ -0,0 +1,63 @@ +'use strict'; + +/** + * @author schukai GmbH + */ + +import {getGlobalObject} from "../types/global.js"; +import {Monster, validateFunction} from "../types/validate.js"; + + +/** + * you can call the method via the monster namespace `new Monster.DOM.Element()`. + * + * ``` + * <script type="module"> + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js'; + * console.log(new Monster.DOM.CustomElement()) + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js'; + * console.log(new CustomElement()) + * </script> + * ``` + * + * @since 1.7.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + */ +class CustomElement extends HTMLElement { + constructor() { + super(); + } + + /** + * + * @return {string} + * @throws {Error} the method getTag must be overwritten by the derived class. + */ + static getTag() { + throw new Error("the method getTag must be overwritten by the derived class."); + } +} + +/** + * @param {CustomElement} element + * @return {void} + * @since 1.7.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + */ +function registerCustomElement(element) { + validateFunction(element); + getGlobalObject('customElements').define(element.getTag(), element); + return; +} + +Monster.assignToNamespace('Monster.DOM', CustomElement, registerCustomElement); +export {Monster, registerCustomElement, CustomElement} \ No newline at end of file diff --git a/packages/monster/source/dom/handle.js b/packages/monster/source/dom/handle.js index ad0b8073b0401b7d66f28820c997dea5e2260ae2..6412229f06457e04cf3007aa70dc09c7e9fddae6 100644 --- a/packages/monster/source/dom/handle.js +++ b/packages/monster/source/dom/handle.js @@ -25,7 +25,7 @@ const MONSTERDOMHANDLE = Symbol('MonsterHandle'); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(new Monster.DOM.Handle()) * </script> * ``` @@ -34,7 +34,7 @@ const MONSTERDOMHANDLE = Symbol('MonsterHandle'); * * ``` * <script type="module"> - * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(new Handle()) * </script> * ``` @@ -188,7 +188,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(Monster.DOM.getHandleFromNode()) * </script> * ``` @@ -197,7 +197,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(getHandleFromNode()) * </script> * ``` diff --git a/packages/monster/source/dom/template.js b/packages/monster/source/dom/template.js index 606f79b1a7f556017a67a72bc9e2bb9b837d66c1..90498aa7916975ebd271a9968be5375adbd0a603 100644 --- a/packages/monster/source/dom/template.js +++ b/packages/monster/source/dom/template.js @@ -13,7 +13,7 @@ import {validateInstance} from "../types/validate.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js'; * console.log(new Monster.DOM.Template()) * </script> * ``` @@ -22,7 +22,7 @@ import {validateInstance} from "../types/validate.js"; * * ``` * <script type="module"> - * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js'; + * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js'; * console.log(new Template()) * </script> * ``` @@ -64,6 +64,8 @@ class Template extends Base { } + + Monster.assignToNamespace('Monster.DOM', Template); export {Monster, Template} diff --git a/packages/monster/source/dom/util.js b/packages/monster/source/dom/util.js index 8812ba62668153e24a53784b8f54fe86fee31449..ef59d3cee5e4d8ec67eebce52481b4297b3a22b3 100644 --- a/packages/monster/source/dom/util.js +++ b/packages/monster/source/dom/util.js @@ -13,7 +13,7 @@ import {validateString} from "../types/validate.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocument()) * </script> * ``` @@ -22,7 +22,7 @@ import {validateString} from "../types/validate.js"; * * ``` * <script type="module"> - * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getDocument()) * </script> * ``` @@ -74,7 +74,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getWindow()) * </script> * ``` @@ -83,7 +83,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getWindow(null)) * </script> * ``` @@ -140,7 +140,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocumentFragmentFromString()) * </script> * ``` @@ -149,7 +149,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getDocumentFragmentFromString('<div></div>')) * </script> * ``` diff --git a/packages/monster/source/logging/handler.js b/packages/monster/source/logging/handler.js index bccbbbdff60fb15c566d33f5c8b48a0a8cecaeb3..db7430bc1820e8285ae00b8a45d08f80da81504a 100644 --- a/packages/monster/source/logging/handler.js +++ b/packages/monster/source/logging/handler.js @@ -15,7 +15,7 @@ import {validateInstance, validateInteger} from "../types/validate.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js'; * console.log(new Monster.Logging.Handler()) * </script> * ``` @@ -24,7 +24,7 @@ import {validateInstance, validateInteger} from "../types/validate.js"; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js'; * console.log(new Handler()) * </script> * ``` diff --git a/packages/monster/source/logging/handler/console.js b/packages/monster/source/logging/handler/console.js index 9ce72f9040085bc0acff2b91c8efee4685424e56..d7e61ed7bf6487b418322cd47c70a5c0868cdbd8 100644 --- a/packages/monster/source/logging/handler/console.js +++ b/packages/monster/source/logging/handler/console.js @@ -13,7 +13,7 @@ import {Handler} from '../../logging/handler.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler/console.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler/console.js'; * console.log(new Monster.Logging.Handler.ConsoleHandler()) * </script> * ``` @@ -22,7 +22,7 @@ import {Handler} from '../../logging/handler.js'; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/handler/console.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler/console.js'; * console.log(new ConsoleHandler()) * </script> * ``` diff --git a/packages/monster/source/logging/logentry.js b/packages/monster/source/logging/logentry.js index f8854b7940b65efdfe433b3403dfb1e4e29db791..4f72784774cd244834932aecb5a2ec00dbafa152 100644 --- a/packages/monster/source/logging/logentry.js +++ b/packages/monster/source/logging/logentry.js @@ -14,7 +14,7 @@ import {Base} from '../types/base.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logentry.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js'; * console.log(new Monster.Logging.LogEntry()) * </script> * ``` @@ -23,7 +23,7 @@ import {Base} from '../types/base.js'; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logentry.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js'; * console.log(new LogEntry()) * </script> * ``` diff --git a/packages/monster/source/logging/logger.js b/packages/monster/source/logging/logger.js index ed98c448f9d187e2212559db6dd01254ff95c6cf..cb2d1800feb1d7667dde7dbbfa3e1fb0e201100b 100644 --- a/packages/monster/source/logging/logger.js +++ b/packages/monster/source/logging/logger.js @@ -65,7 +65,7 @@ const OFF = 0; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js'; * console.log(new Monster.Logging.Logger()) * </script> * ``` @@ -74,7 +74,7 @@ const OFF = 0; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js'; * console.log(new Logger()) * </script> * ``` diff --git a/packages/monster/source/math/random.js b/packages/monster/source/math/random.js index c4ce95f4942bc7fac6a878535d955e6b26c96b09..5f5d950b9e6521bd9fb0c650b0a5dbecad206666 100644 --- a/packages/monster/source/math/random.js +++ b/packages/monster/source/math/random.js @@ -15,7 +15,7 @@ import {Monster, getGlobal} from '../types/global.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js'; * console.log(Monster.Math.random(1,10)) // ↦ 5 * </script> * ``` @@ -24,7 +24,7 @@ import {Monster, getGlobal} from '../types/global.js'; * * ``` * <script type="module"> - * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js'; + * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js'; * console.log(random(1,10)) // ↦ 5 * </script> * ``` diff --git a/packages/monster/source/monster.js b/packages/monster/source/monster.js index fdd2ba6262ebc2d830ddc25a552c62c1743cc56b..55b39cb5818126ed8e5f6693e17abc3039e2fd1d 100644 --- a/packages/monster/source/monster.js +++ b/packages/monster/source/monster.js @@ -46,6 +46,7 @@ import './dom/util.js'; import './dom/template.js'; import './dom/handle.js'; import './dom/assembler.js'; +import './dom/customelement.js'; Monster.Util.deepFreeze(Monster); diff --git a/packages/monster/source/namespace.js b/packages/monster/source/namespace.js index ebb89fb84c348c3a3aa147e55580e2022751b160..36823ce5d7dc9281be2362ebd3b80f6701292002 100644 --- a/packages/monster/source/namespace.js +++ b/packages/monster/source/namespace.js @@ -69,7 +69,7 @@ assignToNamespace('Monster', assignToNamespace); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/namespace.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/namespace.js'; * function hello() { * console.log('Hello World!'); * } diff --git a/packages/monster/source/types/base.js b/packages/monster/source/types/base.js index 73c61693ce7793dd61dcf1c9cec2b407d164052b..19271ac7202a04eba3fc0520dc664e7ab55a48e3 100644 --- a/packages/monster/source/types/base.js +++ b/packages/monster/source/types/base.js @@ -14,7 +14,7 @@ import {Monster} from '../namespace.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js'; * console.log(new Monster.Types.Base()) * console.log(new Monster.Types.Base()) * </script> @@ -24,7 +24,7 @@ import {Monster} from '../namespace.js'; * * ``` * <script type="module"> - * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js'; + * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js'; * console.log(new Base()) * console.log(new Base()) * </script> diff --git a/packages/monster/source/types/global.js b/packages/monster/source/types/global.js index 2921758b340682809d8e8ba577c1c5d21d5d1360..9131310f67c61a205917fb06d5efaa74213dcac7 100644 --- a/packages/monster/source/types/global.js +++ b/packages/monster/source/types/global.js @@ -56,7 +56,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -65,7 +65,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -93,7 +93,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -102,7 +102,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -125,4 +125,4 @@ function getGlobalFunction(name) { Monster.assignToNamespace('Monster.Types', getGlobal, getGlobalObject, getGlobalFunction); -export {Monster, getGlobal, getGlobalObject, getGlobalFunction} \ No newline at end of file +export {Monster, getGlobal, getGlobalObject, getGlobalFunction} diff --git a/packages/monster/source/types/id.js b/packages/monster/source/types/id.js index 485b16eeb6bd941f3a9527766c42ea6bec3d1888..ab45a4c17dda6b3baa8e4951375b8c4af07bc8cb 100644 --- a/packages/monster/source/types/id.js +++ b/packages/monster/source/types/id.js @@ -24,7 +24,7 @@ let internalCounter = new Map; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Monster.Types.ID()) * </script> * ``` @@ -33,7 +33,7 @@ let internalCounter = new Map; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new ID()) * </script> * ``` diff --git a/packages/monster/source/types/is.js b/packages/monster/source/types/is.js index b024a2d66989aa3c1f3123a07bd746ae68a31a91..3e5ec8ba0a52230643cb291764066c7c629b6774 100644 --- a/packages/monster/source/types/is.js +++ b/packages/monster/source/types/is.js @@ -13,7 +13,7 @@ import {Monster} from '../namespace.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isIterable(null)) // ↦ false * console.log(Monster.Types.isIterable('hello')) // ↦ true * console.log(Monster.Types.isIterable([])) // ↦ true @@ -24,7 +24,7 @@ import {Monster} from '../namespace.js'; * * ``` * <script type="module"> - * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isIterable(null)) // ↦ false * console.log(isIterable('hello')) // ↦ true * console.log(isIterable([])) // ↦ true @@ -51,7 +51,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isPrimitive('2')) // ↦ false * console.log(Monster.Types.isPrimitive([])) // ↦ true * </script> @@ -61,7 +61,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isPrimitive('2')) // ↦ true * console.log(isPrimitive([])) // ↦ false * </script> @@ -96,7 +96,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isBoolean('2')) // ↦ false * console.log(Monster.Types.isBoolean([])) // ↦ false * console.log(Monster.Types.isBoolean(true)) // ↦ true @@ -107,7 +107,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isBoolean('2')) // ↦ false * console.log(isBoolean([])) // ↦ false * console.log(isBoolean(2>4)) // ↦ true @@ -136,7 +136,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isString('2')) // ↦ true * console.log(Monster.Types.isString([])) // ↦ false * </script> @@ -146,7 +146,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isString('2')) // ↦ true * console.log(isString([])) // ↦ false * </script> @@ -172,7 +172,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isObject('2')) // ↦ false * console.log(Monster.Types.isObject([])) // ↦ false * console.log(Monster.Types.isObject({})) // ↦ true @@ -183,7 +183,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isObject('2')) // ↦ false * console.log(isObject([])) // ↦ false * </script> @@ -214,7 +214,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInstance('2')) // ↦ false * console.log(Monster.Types.isInstance([])) // ↦ false * console.log(Monster.Types.isInstance({})) // ↦ true @@ -225,7 +225,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isInstance('2')) // ↦ false * console.log(isInstance([])) // ↦ false * </script> @@ -254,7 +254,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isArray('2')) // ↦ false * console.log(Monster.Types.isArray([])) // ↦ true * </script> @@ -264,7 +264,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isArray('2')) // ↦ false * console.log(isArray([])) // ↦ true * </script> @@ -290,7 +290,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isFunction(()=>{})) // ↦ true * console.log(Monster.Types.isFunction('2')) // ↦ false * console.log(Monster.Types.isFunction([])) // ↦ false @@ -301,7 +301,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isFunction(()=>{})) // ↦ true * console.log(isFunction('2')) // ↦ false * console.log(isFunction([])) // ↦ false @@ -333,7 +333,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInteger(()=>{})) // ↦ true * console.log(Monster.Types.isInteger('2')) // ↦ false * console.log(Monster.Types.isInteger(2)) // ↦ true @@ -344,7 +344,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isInteger(()=>{})) // ↦ true * console.log(isInteger('2')) // ↦ false * console.log(isInteger(2)) // ↦ true diff --git a/packages/monster/source/types/observer.js b/packages/monster/source/types/observer.js index b7d56025a7a3b3d9da88c9621e80aa838e3aa085..6b8814f0c1c84c346fc8f40833f69df3568fdbf7 100644 --- a/packages/monster/source/types/observer.js +++ b/packages/monster/source/types/observer.js @@ -17,7 +17,7 @@ import {UniqueQueue} from './uniquequeue.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js'; * console.log(new Monster.Types.Observer()) * </script> * ``` @@ -26,7 +26,7 @@ import {UniqueQueue} from './uniquequeue.js'; * * ``` * <script type="module"> - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js'; * console.log(Observer()) * </script> * ``` diff --git a/packages/monster/source/types/observerlist.js b/packages/monster/source/types/observerlist.js index b3b183c5c9f6d32231c0cffc778e7ca736aa0820..1d9535102cf2aafc207782ade1ba26332e82f9b8 100644 --- a/packages/monster/source/types/observerlist.js +++ b/packages/monster/source/types/observerlist.js @@ -16,7 +16,7 @@ import {validateInstance} from "./validate.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js'; * console.log(new Monster.Types.ObserverList()) * console.log(new Monster.Types.ObserverList()) * </script> @@ -26,7 +26,7 @@ import {validateInstance} from "./validate.js"; * * ``` * <script type="module"> - * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js'; + * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js'; * console.log(ObserverList()) * console.log(ObserverList()) * </script> diff --git a/packages/monster/source/types/proxyobserver.js b/packages/monster/source/types/proxyobserver.js index 19976834d6d89c682aacc4c40fdc4d443c00371d..85525f9d5317dba459d42b02460f40d9daa12125 100644 --- a/packages/monster/source/types/proxyobserver.js +++ b/packages/monster/source/types/proxyobserver.js @@ -18,7 +18,7 @@ import {isObject, isArray, isPrimitive} from "./is.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js'; * console.log(new Monster.Types.ProxyObserver()) * </script> * ``` @@ -27,7 +27,7 @@ import {isObject, isArray, isPrimitive} from "./is.js"; * * ``` * <script type="module"> - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js'; * console.log(new ProxyObserver()) * </script> * ``` diff --git a/packages/monster/source/types/queue.js b/packages/monster/source/types/queue.js index 5b0b1529b461b3f5df6ef8b8c925073e8d7180f4..ffefc0bcae78d9e9c997fe354323e68b20f4d55b 100644 --- a/packages/monster/source/types/queue.js +++ b/packages/monster/source/types/queue.js @@ -5,7 +5,7 @@ import {Monster, Base} from './base.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js'; * console.log(new Monster.Types.Queue()) * </script> * ``` @@ -14,7 +14,7 @@ import {Monster, Base} from './base.js'; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js'; * console.log(new Queue()) * </script> * ``` diff --git a/packages/monster/source/types/randomid.js b/packages/monster/source/types/randomid.js index 83d7b681a780bcdc9cfe8eae28cab9968901c422..157476a096696e8600ebab36b58fc0f760a31c62 100644 --- a/packages/monster/source/types/randomid.js +++ b/packages/monster/source/types/randomid.js @@ -19,7 +19,7 @@ let internalCounter = 0; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js'; * console.log(new Monster.Types.RandomID()) * </script> * ``` @@ -28,7 +28,7 @@ let internalCounter = 0; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js'; * console.log(new RandomID()) * </script> * ``` diff --git a/packages/monster/source/types/stack.js b/packages/monster/source/types/stack.js index aa99ce607403cb7223380bc4045a6c26a0217cb1..b85078c7e6cb59b22a41d65c8cfc6b87df12a99a 100644 --- a/packages/monster/source/types/stack.js +++ b/packages/monster/source/types/stack.js @@ -5,7 +5,7 @@ import {Monster, Base} from './base.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js'; * console.log(new Monster.Types.Stack()) * </script> * ``` @@ -14,7 +14,7 @@ import {Monster, Base} from './base.js'; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js'; * console.log(new Stack()) * </script> * ``` diff --git a/packages/monster/source/types/tokenlist.js b/packages/monster/source/types/tokenlist.js index 0edca64450a3e6c042017343c04de9ee1090674f..6abfebbf29d91b58f20dcae731e5a4d6d7b00c70 100644 --- a/packages/monster/source/types/tokenlist.js +++ b/packages/monster/source/types/tokenlist.js @@ -18,7 +18,7 @@ import {validateString, validateFunction} from '../types/validate.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js'; * console.log(new Monster.Types.TokenList("myclass row")) * console.log(new Monster.Types.TokenList("myclass row")) * </script> @@ -28,7 +28,7 @@ import {validateString, validateFunction} from '../types/validate.js'; * * ``` * <script type="module"> - * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js'; + * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js'; * console.log(new TokenList("myclass row")) * console.log(new TokenList("myclass row")) * </script> diff --git a/packages/monster/source/types/uniquequeue.js b/packages/monster/source/types/uniquequeue.js index df6f7bb8de51e1770029335d0602636e58ef6abe..3dc10a3354001102ef462c64d07802000a95e4be 100644 --- a/packages/monster/source/types/uniquequeue.js +++ b/packages/monster/source/types/uniquequeue.js @@ -6,7 +6,7 @@ import {validateObject} from "./validate.js"; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js'; * console.log(new Monster.Types.UniqueQueue()) * </script> * ``` @@ -15,7 +15,7 @@ import {validateObject} from "./validate.js"; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js'; * console.log(new UniqueQueue()) * </script> * ``` diff --git a/packages/monster/source/types/validate.js b/packages/monster/source/types/validate.js index ad5331feb80173ff545f1aa9abfaf5c47ffc77c4..2e4cfde6e2d13db6d9e465a7314845af8eec9201 100644 --- a/packages/monster/source/types/validate.js +++ b/packages/monster/source/types/validate.js @@ -24,7 +24,7 @@ import { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError * console.log(Monster.Types.validateIterable([])) // ↦ undefined * </script> @@ -34,7 +34,7 @@ import { * * ``` * <script type="module"> - * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateIterable('2')) // ↦ TypeError * console.log(validateIterable([])) // ↦ undefined * </script> @@ -63,7 +63,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validatePrimitive('2')) // ↦ undefined * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError * </script> @@ -73,7 +73,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validatePrimitive('2')) // ↦ undefined * console.log(validatePrimitive([])) // ↦ TypeError * </script> @@ -102,7 +102,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateBoolean(true)) // ↦ undefined * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError @@ -113,7 +113,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateBoolean(false)) // ↦ undefined * console.log(validateBoolean('2')) // ↦ TypeError * console.log(validateBoolean([])) // ↦ TypeError @@ -141,7 +141,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateString('2')) // ↦ undefined * console.log(Monster.Types.validateString([])) // ↦ TypeError * </script> @@ -151,7 +151,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateString('2')) // ↦ undefined * console.log(validateString([])) // ↦ TypeError * </script> @@ -178,7 +178,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateObject({})) // ↦ undefined * console.log(Monster.Types.validateObject('2')) // ↦ TypeError * console.log(Monster.Types.validateObject([])) // ↦ TypeError @@ -189,7 +189,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateObject({})) // ↦ undefined * console.log(validateObject('2')) // ↦ TypeError * console.log(validateObject([])) // ↦ TypeError @@ -216,7 +216,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInstance({}, Object)) // ↦ undefined * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError @@ -227,7 +227,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateInstance({}, Object)) // ↦ undefined * console.log(validateInstance('2', Object)) // ↦ TypeError * console.log(validateInstance([], Object)) // ↦ TypeError @@ -263,7 +263,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateArray('2')) // ↦ TypeError * console.log(Monster.Types.validateArray([])) // ↦ undefined * </script> @@ -273,7 +273,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateArray('2')) // ↦ TypeError * console.log(validateArray([])) // ↦ undefined * </script> @@ -299,7 +299,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateFunction(()=>{})) // ↦ undefined * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError * console.log(Monster.Types.validateFunction([])) // ↦ TypeError @@ -310,7 +310,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateFunction(()=>{})) // ↦ undefined * console.log(validateFunction('2')) // ↦ TypeError * console.log(validateFunction([])) // ↦ TypeError @@ -337,7 +337,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError * console.log(Monster.Types.validateInteger(2)) // ↦ undefined @@ -348,7 +348,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateInteger(true)) // ↦ TypeError * console.log(validateInteger('2')) // ↦ TypeError * console.log(validateInteger(2)) // ↦ undefined diff --git a/packages/monster/source/types/version.js b/packages/monster/source/types/version.js index 4dc0af24849835119751855ad29fec81fb8cf092..b0bc437f2d45d3c19202deb06fbf36a608d77e5d 100644 --- a/packages/monster/source/types/version.js +++ b/packages/monster/source/types/version.js @@ -10,7 +10,7 @@ import {Base} from './base.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3 * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0 * </script> @@ -20,7 +20,7 @@ import {Base} from './base.js'; * * ``` * <script type="module"> - * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(new Version('1.2.3')) // ↦ 1.2.3 * console.log(new Version('1')) // ↦ 1.0.0 * </script> @@ -150,7 +150,7 @@ let monsterVersion; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(Monster.getVersion()) * console.log(Monster.getVersion()) * </script> @@ -160,7 +160,7 @@ let monsterVersion; * * ``` * <script type="module"> - * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(getVersion()) * console.log(getVersion()) * </script> @@ -177,7 +177,7 @@ function getVersion() { return monsterVersion; } /**#@+ dont touch, replaced by make with package.json version */ - monsterVersion = new Version('1.6.0') + monsterVersion = new Version('1.7.0') /**#@-*/ return monsterVersion; diff --git a/packages/monster/source/util/clone.js b/packages/monster/source/util/clone.js index b9a1523a5c8f7e3fb03b5a8ad9f6cb8c67b5e6c4..e20940a2699d1af16e550b5f1be400472515fa06 100644 --- a/packages/monster/source/util/clone.js +++ b/packages/monster/source/util/clone.js @@ -22,7 +22,7 @@ import {getGlobal} from '../types/global.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js'; * console.log(Monster.Util.clone({})) * </script> * ``` @@ -31,7 +31,7 @@ import {getGlobal} from '../types/global.js'; * * ``` * <script type="module"> - * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js'; + * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js'; * console.log(clone({})) * </script> * ``` diff --git a/packages/monster/source/util/comparator.js b/packages/monster/source/util/comparator.js index cac6b17f7654f3968535d3dc8ddde177bafad79c..cf0cb55a6d1847f4677dad1aae0c8719ec478a31 100644 --- a/packages/monster/source/util/comparator.js +++ b/packages/monster/source/util/comparator.js @@ -12,7 +12,7 @@ import {isFunction} from '../types/is.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Monster.Util.Comparator()) * console.log(new Monster.Util.Comparator()) * </script> @@ -22,7 +22,7 @@ import {isFunction} from '../types/is.js'; * * ``` * <script type="module"> - * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Util()) * console.log(new Util()) * </script> diff --git a/packages/monster/source/util/freeze.js b/packages/monster/source/util/freeze.js index c952ce87c7074ddd5c8e5b1077b28ecd636d8383..c703e92d8025d2c0e07589d03681ea3386ccf7c8 100644 --- a/packages/monster/source/util/freeze.js +++ b/packages/monster/source/util/freeze.js @@ -14,7 +14,7 @@ import {validateObject} from '../types/validate.js'; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/freeze.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/freeze.js'; * console.log(Monster.Util.deepFreeze({})) * </script> * ``` @@ -23,7 +23,7 @@ import {validateObject} from '../types/validate.js'; * * ``` * <script type="module"> - * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/freeze.js'; + * import {deepFreeze} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/freeze.js'; * console.log(deepFreeze({})) * </script> * ``` diff --git a/packages/monster/test/cases/dom/customelement.js b/packages/monster/test/cases/dom/customelement.js new file mode 100644 index 0000000000000000000000000000000000000000..b703bf4ad48d8b82c1aaec15710f276acabda170 --- /dev/null +++ b/packages/monster/test/cases/dom/customelement.js @@ -0,0 +1,40 @@ +'use strict'; + +// +import {initJSDOM} from "../../util/jsdom.js"; +import {expect} from "chai" + +//import 'jsdom-global/register.js' +//import {CustomElement, registerCustomElement} from "../../../source/dom/customelement.js"; + + +var CustomElement, registerCustomElement, TestComponent + +describe('DOM', function () { + before(function (done) { + initJSDOM().then(() => { + + import("../../../source/dom/customelement.js").then((m) => { + CustomElement = m['CustomElement']; + registerCustomElement = m['registerCustomElement']; + TestComponent = class extends CustomElement { + static getTag() { + return "monster-testclass" + } + } + done() + }); + + }); + }) + + describe('CustomElement()', function () { + it('should return custom-element object', function () { + registerCustomElement(TestComponent) + let d = new TestComponent(); + expect(typeof d).is.equal('object'); + }); + }); +}); + + diff --git a/packages/monster/test/cases/monster.js b/packages/monster/test/cases/monster.js index e88c86e7721ae4382d7c46c3a76b06d01356014d..41d96b623304d11075fd6ad5eff2f7f826c53de2 100644 --- a/packages/monster/test/cases/monster.js +++ b/packages/monster/test/cases/monster.js @@ -7,7 +7,7 @@ describe('Monster', function () { let monsterVersion /**#@+ dont touch, replaced by make with package.json version */ - monsterVersion = new Version('1.6.0') + monsterVersion = new Version('1.7.0') /**#@-*/ let m = Monster.getVersion(); diff --git a/packages/monster/test/util/jsdom.js b/packages/monster/test/util/jsdom.js index b9eecfffa683a4c0e985955852118f1adfeab631..ae7d7e3efcd880a74d5cd037518d98a3c46a903d 100644 --- a/packages/monster/test/util/jsdom.js +++ b/packages/monster/test/util/jsdom.js @@ -8,7 +8,7 @@ import {getGlobal} from "../../source/types/global.js"; * @return {Promise<unknown>|Promise<void>} */ function initJSDOM() { - if (typeof window === "object") return Promise.resolve(); + if (typeof window === "object" && window['DOMParser']) return Promise.resolve(); const g = getGlobal(); @@ -34,6 +34,7 @@ function initJSDOM() { 'Node', 'Element', 'HTMLElement', + 'customElements', 'DocumentFragment', 'DOMParser', 'MutationObserver', diff --git a/packages/monster/test/web/import.js b/packages/monster/test/web/import.js index 89083902f845228915e81500e41dec4b19ea610e..bd390b99fd7f431f5dbc5e6610353bd7cf51bbf8 100644 --- a/packages/monster/test/web/import.js +++ b/packages/monster/test/web/import.js @@ -7,6 +7,7 @@ import "../cases/dom/handle.js"; import "../cases/dom/template.js"; import "../cases/dom/util.js"; import "../cases/dom/assembler.js"; +import "../cases/dom/customelement.js"; import "../cases/types/queue.js"; import "../cases/types/observer.js"; import "../cases/types/global.js"; diff --git a/packages/monster/test/web/tests.js b/packages/monster/test/web/tests.js index 43c7023313069d8f7e079568171fc645d6cbbc11..e4a021d4fc611e6519489ce775525e995e73f872 100644 --- a/packages/monster/test/web/tests.js +++ b/packages/monster/test/web/tests.js @@ -4740,7 +4740,7 @@ Object.defineProperty(exports, 'CryptoKey', { exports.Crypto = Crypto; }).call(this)}).call(this,require("buffer").Buffer) -},{"@peculiar/asn1-schema":32,"@peculiar/json-schema":41,"buffer":124,"crypto":169,"process":1196,"pvtsutils":985,"tslib":1055,"webcrypto-core":1074}],43:[function(require,module,exports){ +},{"@peculiar/asn1-schema":32,"@peculiar/json-schema":41,"buffer":124,"crypto":169,"process":1198,"pvtsutils":985,"tslib":1055,"webcrypto-core":1074}],43:[function(require,module,exports){ "use strict"; function noop() { } function once(emitter, name) { @@ -198382,6 +198382,45 @@ module.exports = function xor (a, b) { } } + class Utf8Converter { + static fromString(text) { + const s = unescape(encodeURIComponent(text)); + const uintArray = new Uint8Array(s.length); + for (let i = 0; i < s.length; i++) { + uintArray[i] = s.charCodeAt(i); + } + return uintArray.buffer; + } + static toString(buffer) { + const buf = BufferSourceConverter.toUint8Array(buffer); + let encodedString = ""; + for (let i = 0; i < buf.length; i++) { + encodedString += String.fromCharCode(buf[i]); + } + const decodedString = decodeURIComponent(escape(encodedString)); + return decodedString; + } + } + class Utf16Converter { + static toString(buffer, littleEndian = false) { + const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer); + const dataView = new DataView(arrayBuffer); + let res = ""; + for (let i = 0; i < arrayBuffer.byteLength; i += 2) { + const code = dataView.getUint16(i, littleEndian); + res += String.fromCharCode(code); + } + return res; + } + static fromString(text, littleEndian = false) { + const res = new ArrayBuffer(text.length * 2); + const dataView = new DataView(res); + for (let i = 0; i < text.length; i++) { + dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian); + } + return res; + } + } class Convert { static isHex(data) { return typeof data === "string" @@ -198408,6 +198447,11 @@ module.exports = function xor (a, b) { return this.ToBase64(buf); case "base64url": return this.ToBase64Url(buf); + case "utf16le": + return Utf16Converter.toString(buf, true); + case "utf16": + case "utf16be": + return Utf16Converter.toString(buf); default: throw new Error(`Unknown type of encoding '${enc}'`); } @@ -198427,6 +198471,11 @@ module.exports = function xor (a, b) { return this.FromBase64(str); case "base64url": return this.FromBase64Url(str); + case "utf16le": + return Utf16Converter.fromString(str, true); + case "utf16": + case "utf16be": + return Utf16Converter.fromString(str); default: throw new Error(`Unknown type of encoding '${enc}'`); } @@ -198469,22 +198518,37 @@ module.exports = function xor (a, b) { static ToBase64Url(data) { return this.ToBase64(data).replace(/\+/g, "-").replace(/\//g, "_").replace(/\=/g, ""); } - static FromUtf8String(text) { - const s = unescape(encodeURIComponent(text)); - const uintArray = new Uint8Array(s.length); - for (let i = 0; i < s.length; i++) { - uintArray[i] = s.charCodeAt(i); + static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) { + switch (encoding) { + case "ascii": + return this.FromBinary(text); + case "utf8": + return Utf8Converter.fromString(text); + case "utf16": + case "utf16be": + return Utf16Converter.fromString(text); + case "utf16le": + case "usc2": + return Utf16Converter.fromString(text, true); + default: + throw new Error(`Unknown type of encoding '${encoding}'`); } - return uintArray.buffer; } - static ToUtf8String(buffer) { - const buf = BufferSourceConverter.toUint8Array(buffer); - let encodedString = ""; - for (let i = 0; i < buf.length; i++) { - encodedString += String.fromCharCode(buf[i]); + static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) { + switch (encoding) { + case "ascii": + return this.ToBinary(buffer); + case "utf8": + return Utf8Converter.toString(buffer); + case "utf16": + case "utf16be": + return Utf16Converter.toString(buffer); + case "utf16le": + case "usc2": + return Utf16Converter.toString(buffer, true); + default: + throw new Error(`Unknown type of encoding '${encoding}'`); } - const decodedString = decodeURIComponent(escape(encodedString)); - return decodedString; } static FromBinary(text) { const stringLength = text.length; @@ -198531,6 +198595,12 @@ module.exports = function xor (a, b) { } return res.buffer; } + static ToUtf16String(buffer, littleEndian = false) { + return Utf16Converter.toString(buffer, littleEndian); + } + static FromUtf16String(text, littleEndian = false) { + return Utf16Converter.fromString(text, littleEndian); + } static Base64Padding(base64) { const padCount = 4 - (base64.length % 4); if (padCount < 4) { @@ -198543,7 +198613,8 @@ module.exports = function xor (a, b) { static formatString(data) { return (data === null || data === void 0 ? void 0 : data.replace(/[\n\r\t ]/g, "")) || ""; } - } + } + Convert.DEFAULT_UTF8_ENCODING = "utf8"; function assign(target, ...sources) { const res = arguments[0]; @@ -220857,7 +220928,7 @@ exports.AbstractConstraint = AbstractConstraint; _namespace.Monster.assignToNamespace('Monster.Constraints', AbstractConstraint); -},{"../namespace.js":1142,"../types/base.js":1143,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1123:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/base.js":1144,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1123:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -220972,7 +221043,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js'; * new Monster.Constraint.AndOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -220981,8 +221052,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js'; - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/andoperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/andoperator.js'; * new AndOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -221063,7 +221134,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js'; * new Monster.Constraint.Invalid().catch(()=>console.log(true)); * </script> * ``` @@ -221072,7 +221143,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/invalid.js'; + * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/invalid.js'; * new Invalid().catch(()=>console.log(true)); * </script> * ``` @@ -221149,13 +221220,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * - * * you can call the method via the monster namespace `new Monster.Constraint.IsObject()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js'; * console.log(new Monster.Constraint.IsArray()) * </script> * ``` @@ -221164,7 +221233,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isarray.js'; + * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isarray.js'; * console.log(new IsArray()) * </script> * ``` @@ -221207,7 +221276,7 @@ exports.IsArray = IsArray; _abstract.Monster.assignToNamespace('Monster.Constraints', IsArray); -},{"../types/is.js":1146,"./abstract.js":1122,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1127:[function(require,module,exports){ +},{"../types/is.js":1147,"./abstract.js":1122,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1127:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -221245,13 +221314,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * - * * you can call the method via the monster namespace `new Monster.Constraint.IsObject()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js'; * console.log(new Monster.Constraint.IsObject()) * </script> * ``` @@ -221260,7 +221327,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/isobject.js'; + * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/isobject.js'; * console.log(new IsObject()) * </script> * ``` @@ -221303,7 +221370,7 @@ exports.IsObject = IsObject; _abstract.Monster.assignToNamespace('Monster.Constraints', IsObject); -},{"../types/is.js":1146,"./abstract.js":1122,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1128:[function(require,module,exports){ +},{"../types/is.js":1147,"./abstract.js":1122,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1128:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -221343,7 +221410,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js'; * new Monster.Constraint.OrOperator(new Monster.Constraint.Valid(), new Monster.Constraint.Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -221352,8 +221419,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/valid.js'; - * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraint/oroperator.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/valid.js'; + * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraint/oroperator.js'; * new OrOperator(new Valid(), new Valid()).then(()=>console.log(true)).catch(()=>console.log(false)); * </script> * ``` @@ -221457,7 +221524,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js'; * new Monster.Constraint.Valid().then(()=>console.log(true)); * </script> * ``` @@ -221466,7 +221533,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/constraints/valid.js'; + * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/constraints/valid.js'; * new Valid().then(()=>console.log(true)); * </script> * ``` @@ -221529,17 +221596,15 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _is = require("../types/is.js"); /** - * Diff Function - * * With the diff function you can perform the change of one object to another. The result shows the changes of the second object to the first object. * * The operator `add` means that something has been added to the second object. `delete` means that something has been deleted from the second object compared to the first object. - * + * * you can call the method via the monster namespace `Monster.Data.Diff()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js'; * console.log(Monster.Data.Diff(a, b)) * </script> * ``` @@ -221548,33 +221613,33 @@ var _is = require("../types/is.js"); * * ``` * <script type="module"> - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/diff.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/diff.js'; * console.log(Diff(a, b)) * </script> * ``` - * + * * given are two objects x and y. - * + * * ``` * let x = { * a: 1, * b: "Hello!" * } - * + * * let y = { * a: 2, * c: true * } * ``` - * + * * These two objects can be compared with each other. - * + * * ``` * console.log(Diff(x, y)); * ``` - * + * * the result is then the following - * + * * ``` * [ * { @@ -221595,16 +221660,25 @@ var _is = require("../types/is.js"); * } * ] * ``` - * - * * + * @param {*} first + * @param {*} second + * @return {array} * @since 1.6.0 * @copyright schukai GmbH * @memberOf Monster/Data */ -function Diff(object1, object2) { - return doDiff(object1, object2); +function Diff(first, second) { + return doDiff(first, second); } +/** + * @private + * @param a + * @param b + * @param type + * @return {Set<string>|Set<number>} + */ + function getKeys(a, b, type) { if ((0, _is.isArray)(type)) { @@ -221617,6 +221691,15 @@ function getKeys(a, b, type) { return new Set(Object.keys(a).concat(Object.keys(b))); } +/** + * @private + * @param a + * @param b + * @param path + * @param diff + * @return {array} + */ + function doDiff(a, b, path, diff) { var typeA = (0, _typeof2["default"])(a); @@ -221699,7 +221782,7 @@ function buildResult(a, b, operator, path) { return result; } /** - * + * @private * @param {*} a * @param {*} b * @return {boolean} @@ -221718,7 +221801,7 @@ function isNotEqual(a, b) { return a !== b; } /** - * + * @private * @param {*} a * @param {*} b * @return {string|undefined} @@ -221754,7 +221837,7 @@ function getOperator(a, b) { _is.Monster.assignToNamespace('Monster.Data', Diff); -},{"../types/is.js":1146,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1131:[function(require,module,exports){ +},{"../types/is.js":1147,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1131:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -221809,13 +221892,11 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re */ var DELIMITER = '.'; /** - * Pathfinder class - * * you can call the method via the monster namespace `new Monster.Data.Pathfinder()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js'; * console.log(new Monster.Data.Pathfinder()) * </script> * ``` @@ -221824,7 +221905,7 @@ var DELIMITER = '.'; * * ``` * <script type="module"> - * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pathfinder.js'; + * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pathfinder.js'; * console.log(new Pathfinder()) * </script> * ``` @@ -222135,7 +222216,7 @@ function deleteValueViaPath(object, path) { return; } -},{"../namespace.js":1142,"../types/base.js":1143,"../types/is.js":1146,"../types/stack.js":1152,"../types/validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/toConsumableArray":19,"@babel/runtime/helpers/typeof":20}],1132:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/base.js":1144,"../types/is.js":1147,"../types/stack.js":1153,"../types/validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/toConsumableArray":19,"@babel/runtime/helpers/typeof":20}],1132:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -222178,15 +222259,13 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re var DELIMITER = '|'; /** - * Pipe class - * * the pipe class makes it possible to combine several processing steps. * * you can call the method via the monster namespace `new Monster.Data.Pipe()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js'; * console.log(new Monster.Data.Pipe()) * </script> * ``` @@ -222195,7 +222274,7 @@ var DELIMITER = '|'; * * ``` * <script type="module"> - * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/pipe.js'; + * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/pipe.js'; * console.log(new Pipe()) * </script> * ``` @@ -222268,7 +222347,7 @@ exports.Pipe = Pipe; _namespace.Monster.assignToNamespace('Monster.Data', Pipe); -},{"../namespace.js":1142,"../types/base.js":1143,"../types/validate.js":1155,"./transformer.js":1133,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1133:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/base.js":1144,"../types/validate.js":1156,"./transformer.js":1133,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1133:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -222332,15 +222411,13 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Transformer class - * * the transformer class is a swiss army knife for manipulating values. especially in combination with the pipe, processing chains can be built up. * * you can call the method via the monster namespace `new Monster.Data.Transformer()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js'; * console.log(new Monster.Data.Transformer()) * </script> * ``` @@ -222349,7 +222426,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/data/transformer.js'; + * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/data/transformer.js'; * console.log(new Transformer()) * </script> * ``` @@ -222562,6 +222639,7 @@ function disassemble(command) { * * @param {*} value * @returns {string} + * @private */ @@ -222759,7 +222837,7 @@ function transform(value) { return value; } -},{"../namespace.js":1142,"../types/base.js":1143,"../types/id.js":1145,"../types/is.js":1146,"../types/validate.js":1155,"../util/clone.js":1157,"./pathfinder.js":1131,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/setPrototypeOf":17,"@babel/runtime/helpers/toConsumableArray":19,"@babel/runtime/helpers/typeof":20}],1134:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/base.js":1144,"../types/id.js":1146,"../types/is.js":1147,"../types/validate.js":1156,"../util/clone.js":1158,"./pathfinder.js":1131,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/setPrototypeOf":17,"@babel/runtime/helpers/toConsumableArray":19,"@babel/runtime/helpers/typeof":20}],1134:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -222801,17 +222879,18 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * @type {string} attribute prefix + * attribute prefix + * + * @type {string} + * @memberOf Monster/DOM */ var ATTRIBUTEPREFIX = "data-monster-"; /** - * assembler class - * * you can call the method via the monster namespace `new Monster.DOM.Assembler()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js'; * console.log(new Monster.DOM.Assembler()) * </script> * ``` @@ -222820,7 +222899,7 @@ var ATTRIBUTEPREFIX = "data-monster-"; * * ``` * <script type="module"> - * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/assembler.js'; + * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/assembler.js'; * console.log(new Assembler()) * </script> * ``` @@ -222904,7 +222983,113 @@ exports.Assembler = Assembler; _base.Monster.assignToNamespace('Monster.DOM', Assembler); -},{"../types/base.js":1143,"../types/global.js":1144,"../types/proxyobserver.js":1149,"../types/validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1135:[function(require,module,exports){ +},{"../types/base.js":1144,"../types/global.js":1145,"../types/proxyobserver.js":1150,"../types/validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1135:[function(require,module,exports){ +'use strict'; +/** + * @author schukai GmbH + */ + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.registerCustomElement = registerCustomElement; +Object.defineProperty(exports, "Monster", { + enumerable: true, + get: function get() { + return _validate.Monster; + } +}); +exports.CustomElement = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); + +var _global = require("../types/global.js"); + +var _validate = require("../types/validate.js"); + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +/** + * you can call the method via the monster namespace `new Monster.DOM.Element()`. + * + * ``` + * <script type="module"> + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js'; + * console.log(new Monster.DOM.CustomElement()) + * </script> + * ``` + * + * Alternatively, you can also integrate this function individually. + * + * ``` + * <script type="module"> + * import {CustomElement} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/customelement.js'; + * console.log(new CustomElement()) + * </script> + * ``` + * + * @since 1.7.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + */ +var CustomElement = /*#__PURE__*/function (_HTMLElement) { + (0, _inherits2["default"])(CustomElement, _HTMLElement); + + var _super = _createSuper(CustomElement); + + function CustomElement() { + (0, _classCallCheck2["default"])(this, CustomElement); + return _super.call(this); + } + /** + * + * @return {string} + * @throws {Error} the method getTag must be overwritten by the derived class. + */ + + + (0, _createClass2["default"])(CustomElement, null, [{ + key: "getTag", + value: function getTag() { + throw new Error("the method getTag must be overwritten by the derived class."); + } + }]); + return CustomElement; +}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement)); +/** + * @param {CustomElement} element + * @return {void} + * @since 1.7.0 + * @copyright schukai GmbH + * @memberOf Monster/DOM + */ + + +exports.CustomElement = CustomElement; + +function registerCustomElement(element) { + (0, _validate.validateFunction)(element); + (0, _global.getGlobalObject)('customElements').define(element.getTag(), element); + return; +} + +_validate.Monster.assignToNamespace('Monster.DOM', CustomElement, registerCustomElement); + +},{"../types/global.js":1145,"../types/validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/wrapNativeSuper":22}],1136:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -222970,13 +223155,11 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re */ var MONSTERDOMHANDLE = Symbol('MonsterHandle'); /** - * Handle class - * * you can call the method via the monster namespace `new Monster.DOM.Handle()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(new Monster.DOM.Handle()) * </script> * ``` @@ -222985,14 +223168,14 @@ var MONSTERDOMHANDLE = Symbol('MonsterHandle'); * * ``` * <script type="module"> - * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Handle} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(new Handle()) * </script> * ``` * * @since 1.6.0 * @copyright schukai GmbH - * @memberOf Monster/DOM + * @memberOf Monster.DOM */ var Handle = /*#__PURE__*/function (_Base) { @@ -223030,7 +223213,6 @@ var Handle = /*#__PURE__*/function (_Base) { (0, _createClass2["default"])(Handle, [{ key: "update", value: function update() { - console.log('!!!!!!'); return; } /** @@ -223151,7 +223333,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(Monster.DOM.getHandleFromNode()) * </script> * ``` @@ -223160,7 +223342,7 @@ function createMutationObserver() { * * ``` * <script type="module"> - * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/handle.js'; + * import {getHandleFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/handle.js'; * console.log(getHandleFromNode()) * </script> * ``` @@ -223193,7 +223375,7 @@ function getHandleFromNode(node) { _base.Monster.assignToNamespace('Monster.DOM', getHandleFromNode, Handle); -},{"../types/base.js":1143,"../types/global.js":1144,"../types/id.js":1145,"../types/is.js":1146,"../types/observer.js":1147,"../types/proxyobserver.js":1149,"../types/stack.js":1152,"../types/validate.js":1155,"./assembler.js":1134,"@babel/runtime/helpers/assertThisInitialized":3,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1136:[function(require,module,exports){ +},{"../types/base.js":1144,"../types/global.js":1145,"../types/id.js":1146,"../types/is.js":1147,"../types/observer.js":1148,"../types/proxyobserver.js":1150,"../types/stack.js":1153,"../types/validate.js":1156,"./assembler.js":1134,"@babel/runtime/helpers/assertThisInitialized":3,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1137:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -223233,13 +223415,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * template class - * * you can call the method via the monster namespace `new Monster.DOM.Template()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js'; * console.log(new Monster.DOM.Template()) * </script> * ``` @@ -223248,7 +223428,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/template.js'; + * import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/template.js'; * console.log(new Template()) * </script> * ``` @@ -223308,7 +223488,7 @@ exports.Template = Template; _base.Monster.assignToNamespace('Monster.DOM', Template); -},{"../types/base.js":1143,"../types/global.js":1144,"../types/validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1137:[function(require,module,exports){ +},{"../types/base.js":1144,"../types/global.js":1145,"../types/validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1138:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -223340,7 +223520,7 @@ var _validate = require("../types/validate.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocument()) * </script> * ``` @@ -223349,7 +223529,7 @@ var _validate = require("../types/validate.js"); * * ``` * <script type="module"> - * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getDocument()) * </script> * ``` @@ -223403,7 +223583,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getWindow()) * </script> * ``` @@ -223412,7 +223592,7 @@ function getDocument() { * * ``` * <script type="module"> - * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getWindow} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getWindow(null)) * </script> * ``` @@ -223472,7 +223652,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(Monster.DOM.getDocumentFragmentFromString()) * </script> * ``` @@ -223481,7 +223661,7 @@ function getWindow() { * * ``` * <script type="module"> - * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/dom/util.js'; + * import {getDocumentFragmentFromString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/dom/util.js'; * console.log(getDocumentFragmentFromString('<div></div>')) * </script> * ``` @@ -223532,7 +223712,7 @@ function getDocumentFragmentFromString(html) { _global.Monster.assignToNamespace('Monster.DOM', getWindow, getDocument, getDocumentFragmentFromString); -},{"../types/global.js":1144,"../types/validate.js":1155,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1138:[function(require,module,exports){ +},{"../types/global.js":1145,"../types/validate.js":1156,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1139:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -223576,14 +223756,12 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Handler class - * - * you can call the method via the monster namespace `new Monster.Logging.Logger()`. + * you can call the method via the monster namespace `new Monster.Logging.Handler()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; - * console.log(new Monster.Logging.Logger()) + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js'; + * console.log(new Monster.Logging.Handler()) * </script> * ``` * @@ -223591,8 +223769,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; - * console.log(new Logger()) + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/handler.js'; + * console.log(new Handler()) * </script> * ``` * @@ -223611,7 +223789,9 @@ var Handler = /*#__PURE__*/function (_Base) { (0, _classCallCheck2["default"])(this, Handler); _this = _super.call(this); /** - * @type {integer} Loglevel + * Loglevel + * + * @type {integer} */ _this.loglevel = _logger.OFF; @@ -223778,7 +223958,7 @@ exports.Handler = Handler; _namespace.Monster.assignToNamespace('Monster.Logging', Handler); -},{"../namespace.js":1142,"../types/base.js":1143,"../types/validate.js":1155,"./logentry.js":1139,"./logger.js":1140,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1139:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/base.js":1144,"../types/validate.js":1156,"./logentry.js":1140,"./logger.js":1141,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1140:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -223818,14 +223998,12 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Log class - * - * you can call the method via the monster namespace `new Monster.Logging.Log()`. + * you can call the method via the monster namespace `new Monster.Logging.LogEntry()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/log.js'; - * console.log(new Monster.Logging.Log()) + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js'; + * console.log(new Monster.Logging.LogEntry()) * </script> * ``` * @@ -223833,8 +224011,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/log.js'; - * console.log(new Log()) + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logentry.js'; + * console.log(new LogEntry()) * </script> * ``` * @@ -223896,7 +224074,7 @@ exports.LogEntry = LogEntry; _namespace.Monster.assignToNamespace('Monster.Logging', LogEntry); -},{"../namespace.js":1142,"../types/base.js":1143,"../types/validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1140:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/base.js":1144,"../types/validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1141:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -223945,30 +224123,74 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } -/** ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF */ +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ var ALL = 255; +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ + exports.ALL = ALL; var TRACE = 64; +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ + exports.TRACE = TRACE; var DEBUG = 32; +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ + exports.DEBUG = DEBUG; var INFO = 16; +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ + exports.INFO = INFO; var WARN = 8; +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ + exports.WARN = WARN; var ERROR = 4; +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ + exports.ERROR = ERROR; var FATAL = 2; +/** + * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF + * @type {number} + * @memberOf Monster/Logging + */ + exports.FATAL = FATAL; var OFF = 0; /** - * Logger class - * * you can call the method via the monster namespace `new Monster.Logging.Logger()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js'; * console.log(new Monster.Logging.Logger()) * </script> * ``` @@ -223977,7 +224199,7 @@ var OFF = 0; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/logging/logger.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/logging/logger.js'; * console.log(new Logger()) * </script> * ``` @@ -224223,7 +224445,7 @@ function triggerLog(loglevel) { return logger; } -},{"../logging/handler.js":1138,"../logging/logentry.js":1139,"../namespace.js":1142,"../types/base.js":1143,"../types/validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1141:[function(require,module,exports){ +},{"../logging/handler.js":1139,"../logging/logentry.js":1140,"../namespace.js":1143,"../types/base.js":1144,"../types/validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1142:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224249,7 +224471,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js'; * console.log(Monster.Math.random(1,10)) // ↦ 5 * </script> * ``` @@ -224258,7 +224480,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/math/random.js'; + * import {random} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/math/random.js'; * console.log(random(1,10)) // ↦ 5 * </script> * ``` @@ -224286,6 +224508,11 @@ function random(min, max) { return Math.round(create(min, max)); } +/** + * @private + * @type {number} + */ + var MAX = 1000000000; @@ -224345,7 +224572,7 @@ function create(min, max) { _global.Monster.assignToNamespace('Monster.Math', random); -},{"../types/global.js":1144}],1142:[function(require,module,exports){ +},{"../types/global.js":1145}],1143:[function(require,module,exports){ 'use strict'; /** * @namespace Monster @@ -224360,7 +224587,6 @@ _global.Monster.assignToNamespace('Monster.Math', random); * via `obj instanceof Monster.Namespace` it is also easy to check whether it is an object or a namespace. * * @memberOf Monster - * @copyright schukai GmbH * @since 1.0.0 */ @@ -224417,7 +224643,6 @@ var Namespace = /*#__PURE__*/function () { return Namespace; }(); /** - * * @type {Namespace} * @global */ @@ -224439,7 +224664,7 @@ assignToNamespace('Monster', assignToNamespace); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/namespace.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/namespace.js'; * function hello() { * console.log('Hello World!'); * } @@ -224529,7 +224754,7 @@ function namespaceFor(parts) { return space; } -},{"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/interopRequireDefault":11}],1143:[function(require,module,exports){ +},{"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/interopRequireDefault":11}],1144:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224573,7 +224798,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js'; * console.log(new Monster.Types.Base()) * console.log(new Monster.Types.Base()) * </script> @@ -224583,7 +224808,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/base.js'; + * import {Object} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/base.js'; * console.log(new Base()) * console.log(new Base()) * </script> @@ -224623,7 +224848,7 @@ exports.Base = Base; _namespace.Monster.assignToNamespace('Monster.Types', Base); -},{"../namespace.js":1142,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/wrapNativeSuper":22}],1144:[function(require,module,exports){ +},{"../namespace.js":1143,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/wrapNativeSuper":22}],1145:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224696,7 +224921,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -224705,7 +224930,7 @@ function getGlobal() { * * ``` * <script type="module"> - * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {getGlobalObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(getGlobalObject('document')) // ↦ { } * </script> * ``` @@ -224736,7 +224961,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(Monster.Types.getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -224745,7 +224970,7 @@ function getGlobalObject(name) { * * ``` * <script type="module"> - * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/global.js'; + * import {getGlobalFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/global.js'; * console.log(getGlobalFunction('parseInt')) // ↦ f parseInt() { } * </script> * ``` @@ -224772,7 +224997,7 @@ function getGlobalFunction(name) { _namespace.Monster.assignToNamespace('Monster.Types', getGlobal, getGlobalObject, getGlobalFunction); -},{"../namespace.js":1142,"./validate.js":1155,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1145:[function(require,module,exports){ +},{"../namespace.js":1143,"./validate.js":1156,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1146:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224810,12 +225035,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** + * @private * @type {Map<string, integer>} */ var internalCounter = new Map(); /** - * id class - * * with the id class, sequences of ids can be created. for this purpose, an internal counter is incremented for each prefix. * thus, the first id with the prefix `myid` will be `myid1` and the second id `myid2`. * The ids are the same for every call, for example on a web page. @@ -224826,7 +225050,7 @@ var internalCounter = new Map(); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Monster.Types.ID()) * </script> * ``` @@ -224835,7 +225059,7 @@ var internalCounter = new Map(); * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new ID()) * </script> * ``` @@ -224894,7 +225118,7 @@ exports.ID = ID; _base.Monster.assignToNamespace('Monster.Types', ID); -},{"./base.js":1143,"./validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1146:[function(require,module,exports){ +},{"./base.js":1144,"./validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1147:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -224932,7 +225156,7 @@ var _namespace = require("../namespace.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isIterable(null)) // ↦ false * console.log(Monster.Types.isIterable('hello')) // ↦ true * console.log(Monster.Types.isIterable([])) // ↦ true @@ -224943,7 +225167,7 @@ var _namespace = require("../namespace.js"); * * ``` * <script type="module"> - * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isIterable(null)) // ↦ false * console.log(isIterable('hello')) // ↦ true * console.log(isIterable([])) // ↦ true @@ -224968,7 +225192,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isPrimitive('2')) // ↦ false * console.log(Monster.Types.isPrimitive([])) // ↦ true * </script> @@ -224978,7 +225202,7 @@ function isIterable(value) { * * ``` * <script type="module"> - * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isPrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isPrimitive('2')) // ↦ true * console.log(isPrimitive([])) // ↦ false * </script> @@ -225014,7 +225238,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isBoolean('2')) // ↦ false * console.log(Monster.Types.isBoolean([])) // ↦ false * console.log(Monster.Types.isBoolean(true)) // ↦ true @@ -225025,7 +225249,7 @@ function isPrimitive(value) { * * ``` * <script type="module"> - * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isBoolean('2')) // ↦ false * console.log(isBoolean([])) // ↦ false * console.log(isBoolean(2>4)) // ↦ true @@ -225054,7 +225278,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isString('2')) // ↦ true * console.log(Monster.Types.isString([])) // ↦ false * </script> @@ -225064,7 +225288,7 @@ function isBoolean(value) { * * ``` * <script type="module"> - * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isString('2')) // ↦ true * console.log(isString([])) // ↦ false * </script> @@ -225092,7 +225316,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isObject('2')) // ↦ false * console.log(Monster.Types.isObject([])) // ↦ false * console.log(Monster.Types.isObject({})) // ↦ true @@ -225103,7 +225327,7 @@ function isString(value) { * * ``` * <script type="module"> - * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isObject('2')) // ↦ false * console.log(isObject([])) // ↦ false * </script> @@ -225134,7 +225358,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInstance('2')) // ↦ false * console.log(Monster.Types.isInstance([])) // ↦ false * console.log(Monster.Types.isInstance({})) // ↦ true @@ -225145,7 +225369,7 @@ function isObject(value) { * * ``` * <script type="module"> - * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isInstance('2')) // ↦ false * console.log(isInstance([])) // ↦ false * </script> @@ -225173,7 +225397,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isArray('2')) // ↦ false * console.log(Monster.Types.isArray([])) // ↦ true * </script> @@ -225183,7 +225407,7 @@ function isInstance(value, instance) { * * ``` * <script type="module"> - * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isArray('2')) // ↦ false * console.log(isArray([])) // ↦ true * </script> @@ -225211,7 +225435,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isFunction(()=>{})) // ↦ true * console.log(Monster.Types.isFunction('2')) // ↦ false * console.log(Monster.Types.isFunction([])) // ↦ false @@ -225222,7 +225446,7 @@ function isArray(value) { * * ``` * <script type="module"> - * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isFunction(()=>{})) // ↦ true * console.log(isFunction('2')) // ↦ false * console.log(isFunction([])) // ↦ false @@ -225254,7 +225478,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(Monster.Types.isInteger(()=>{})) // ↦ true * console.log(Monster.Types.isInteger('2')) // ↦ false * console.log(Monster.Types.isInteger(2)) // ↦ true @@ -225265,7 +225489,7 @@ function isFunction(value) { * * ``` * <script type="module"> - * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/is.js'; + * import {isInteger} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/is.js'; * console.log(isInteger(()=>{})) // ↦ true * console.log(isInteger('2')) // ↦ false * console.log(isInteger(2)) // ↦ true @@ -225286,7 +225510,7 @@ function isInteger(value) { _namespace.Monster.assignToNamespace('Monster.Types', isPrimitive, isBoolean, isString, isObject, isArray, isFunction, isIterable, isInteger); -},{"../namespace.js":1142,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1147:[function(require,module,exports){ +},{"../namespace.js":1143,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1148:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -225336,7 +225560,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js'; * console.log(new Monster.Types.Observer()) * </script> * ``` @@ -225345,7 +225569,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observer.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observer.js'; * console.log(Observer()) * </script> * ``` @@ -225504,7 +225728,7 @@ exports.Observer = Observer; _namespace.Monster.assignToNamespace('Monster.Types', Observer); -},{"../namespace.js":1142,"./base.js":1143,"./is.js":1146,"./tokenlist.js":1153,"./uniquequeue.js":1154,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1148:[function(require,module,exports){ +},{"../namespace.js":1143,"./base.js":1144,"./is.js":1147,"./tokenlist.js":1154,"./uniquequeue.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1149:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -225552,7 +225776,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js'; * console.log(new Monster.Types.ObserverList()) * console.log(new Monster.Types.ObserverList()) * </script> @@ -225562,7 +225786,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/observerlist.js'; + * import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/observerlist.js'; * console.log(ObserverList()) * console.log(ObserverList()) * </script> @@ -225674,7 +225898,7 @@ exports.ObserverList = ObserverList; _namespace.Monster.assignToNamespace('Monster.Types', ObserverList); -},{"../namespace.js":1142,"./base.js":1143,"./observer.js":1147,"./validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1149:[function(require,module,exports){ +},{"../namespace.js":1143,"./base.js":1144,"./observer.js":1148,"./validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1150:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -225730,7 +225954,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js'; * console.log(new Monster.Types.ProxyObserver()) * </script> * ``` @@ -225739,7 +225963,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/proxyobserver.js'; + * import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/proxyobserver.js'; * console.log(new ProxyObserver()) * </script> * ``` @@ -225964,7 +226188,7 @@ function getHandler() { return handler; } -},{"../namespace.js":1142,"./base.js":1143,"./is.js":1146,"./observer.js":1147,"./observerlist.js":1148,"./validate.js":1155,"@babel/runtime/helpers/assertThisInitialized":3,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/typeof":20}],1150:[function(require,module,exports){ +},{"../namespace.js":1143,"./base.js":1144,"./is.js":1147,"./observer.js":1148,"./observerlist.js":1149,"./validate.js":1156,"@babel/runtime/helpers/assertThisInitialized":3,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/typeof":20}],1151:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -225997,13 +226221,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * queue class - * * you can call the method via the monster namespace `new Monster.Types.Queue()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js'; * console.log(new Monster.Types.Queue()) * </script> * ``` @@ -226012,7 +226234,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/queue.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/queue.js'; * console.log(new Queue()) * </script> * ``` @@ -226111,7 +226333,7 @@ exports.Queue = Queue; _base.Monster.assignToNamespace('Monster.Types', Queue); -},{"./base.js":1143,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1151:[function(require,module,exports){ +},{"./base.js":1144,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1152:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226148,15 +226370,17 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } +/** + * @private + * @type {number} + */ var internalCounter = 0; /** - * serialID class - * - * you can call the method via the monster namespace `new Monster.Types.ID()`. + * you can call the method via the monster namespace `new Monster.Types.RandomID()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js'; * console.log(new Monster.Types.RandomID()) * </script> * ``` @@ -226165,7 +226389,7 @@ var internalCounter = 0; * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/randomid.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/randomid.js'; * console.log(new RandomID()) * </script> * ``` @@ -226202,7 +226426,7 @@ exports.RandomID = RandomID; _id.Monster.assignToNamespace('Monster.Types', RandomID); -},{"../math/random.js":1141,"./global.js":1144,"./id.js":1145,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1152:[function(require,module,exports){ +},{"../math/random.js":1142,"./global.js":1145,"./id.js":1146,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1153:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -226235,13 +226459,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Stack class - * * you can call the method via the monster namespace `new Monster.Types.Queue()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js'; * console.log(new Monster.Types.Stack()) * </script> * ``` @@ -226250,7 +226472,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/stack.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/stack.js'; * console.log(new Stack()) * </script> * ``` @@ -226352,7 +226574,7 @@ exports.Stack = Stack; _base.Monster.assignToNamespace('Monster.Types', Stack); -},{"./base.js":1143,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1153:[function(require,module,exports){ +},{"./base.js":1144,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1154:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226408,7 +226630,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js'; * console.log(new Monster.Types.TokenList("myclass row")) * console.log(new Monster.Types.TokenList("myclass row")) * </script> @@ -226418,7 +226640,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/tokenlist.js'; + * import {TokenList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/tokenlist.js'; * console.log(new TokenList("myclass row")) * console.log(new TokenList("myclass row")) * </script> @@ -226789,7 +227011,7 @@ function toggleValue(token) { _namespace.Monster.assignToNamespace('Monster.Types', TokenList); -},{"../namespace.js":1142,"../types/is.js":1146,"../types/validate.js":1155,"./base.js":1143,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1154:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/is.js":1147,"../types/validate.js":1156,"./base.js":1144,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1155:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -226826,13 +227048,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * UniqueQueue class - * * you can call the method via the monster namespace `new Monster.Types.Queue()`. * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js'; * console.log(new Monster.Types.UniqueQueue()) * </script> * ``` @@ -226841,7 +227061,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/uniquequeue.js'; + * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/uniquequeue.js'; * console.log(new UniqueQueue()) * </script> * ``` @@ -226926,7 +227146,7 @@ exports.UniqueQueue = UniqueQueue; _queue.Monster.assignToNamespace('Monster.Types', UniqueQueue); -},{"./queue.js":1150,"./validate.js":1155,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/get":8,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1155:[function(require,module,exports){ +},{"./queue.js":1151,"./validate.js":1156,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/get":8,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1156:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -226962,7 +227182,7 @@ var _is = require("./is.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateIterable('2')) // ↦ TypeError * console.log(Monster.Types.validateIterable([])) // ↦ undefined * </script> @@ -226972,7 +227192,7 @@ var _is = require("./is.js"); * * ``` * <script type="module"> - * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateIterable} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateIterable('2')) // ↦ TypeError * console.log(validateIterable([])) // ↦ undefined * </script> @@ -227000,7 +227220,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validatePrimitive('2')) // ↦ undefined * console.log(Monster.Types.validatePrimitive([])) // ↦ TypeError * </script> @@ -227010,7 +227230,7 @@ function validateIterable(value) { * * ``` * <script type="module"> - * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validatePrimitive} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validatePrimitive('2')) // ↦ undefined * console.log(validatePrimitive([])) // ↦ TypeError * </script> @@ -227040,7 +227260,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateBoolean(true)) // ↦ undefined * console.log(Monster.Types.validateBoolean('2')) // ↦ TypeError * console.log(Monster.Types.validateBoolean([])) // ↦ TypeError @@ -227051,7 +227271,7 @@ function validatePrimitive(value) { * * ``` * <script type="module"> - * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateBoolean} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateBoolean(false)) // ↦ undefined * console.log(validateBoolean('2')) // ↦ TypeError * console.log(validateBoolean([])) // ↦ TypeError @@ -227080,7 +227300,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateString('2')) // ↦ undefined * console.log(Monster.Types.validateString([])) // ↦ TypeError * </script> @@ -227090,7 +227310,7 @@ function validateBoolean(value) { * * ``` * <script type="module"> - * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateString} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateString('2')) // ↦ undefined * console.log(validateString([])) // ↦ TypeError * </script> @@ -227117,7 +227337,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateObject({})) // ↦ undefined * console.log(Monster.Types.validateObject('2')) // ↦ TypeError * console.log(Monster.Types.validateObject([])) // ↦ TypeError @@ -227128,7 +227348,7 @@ function validateString(value) { * * ``` * <script type="module"> - * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateObject({})) // ↦ undefined * console.log(validateObject('2')) // ↦ TypeError * console.log(validateObject([])) // ↦ TypeError @@ -227156,7 +227376,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInstance({}, Object)) // ↦ undefined * console.log(Monster.Types.validateInstance('2', Object)) // ↦ TypeError * console.log(Monster.Types.validateInstance([], Object)) // ↦ TypeError @@ -227167,7 +227387,7 @@ function validateObject(value) { * * ``` * <script type="module"> - * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateInstance} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateInstance({}, Object)) // ↦ undefined * console.log(validateInstance('2', Object)) // ↦ TypeError * console.log(validateInstance([], Object)) // ↦ TypeError @@ -227205,7 +227425,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateArray('2')) // ↦ TypeError * console.log(Monster.Types.validateArray([])) // ↦ undefined * </script> @@ -227215,7 +227435,7 @@ function validateInstance(value, instance) { * * ``` * <script type="module"> - * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateArray('2')) // ↦ TypeError * console.log(validateArray([])) // ↦ undefined * </script> @@ -227242,7 +227462,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateFunction(()=>{})) // ↦ undefined * console.log(Monster.Types.validateFunction('2')) // ↦ TypeError * console.log(Monster.Types.validateFunction([])) // ↦ TypeError @@ -227253,7 +227473,7 @@ function validateArray(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateFunction(()=>{})) // ↦ undefined * console.log(validateFunction('2')) // ↦ TypeError * console.log(validateFunction([])) // ↦ TypeError @@ -227281,7 +227501,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(Monster.Types.validateInteger(true)) // ↦ TypeError * console.log(Monster.Types.validateInteger('2')) // ↦ TypeError * console.log(Monster.Types.validateInteger(2)) // ↦ undefined @@ -227292,7 +227512,7 @@ function validateFunction(value) { * * ``` * <script type="module"> - * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/validate.js'; + * import {validateFunction} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/validate.js'; * console.log(validateInteger(true)) // ↦ TypeError * console.log(validateInteger('2')) // ↦ TypeError * console.log(validateInteger(2)) // ↦ undefined @@ -227316,7 +227536,7 @@ function validateInteger(value) { _namespace.Monster.assignToNamespace('Monster.Types', validatePrimitive, validateBoolean, validateString, validateObject, validateArray, validateFunction, validateIterable, validateInteger); -},{"../namespace.js":1142,"./is.js":1146}],1156:[function(require,module,exports){ +},{"../namespace.js":1143,"./is.js":1147}],1157:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -227358,7 +227578,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(new Monster.Types.Version('1.2.3')) // ↦ 1.2.3 * console.log(new Monster.Types.Version('1')) // ↦ 1.0.0 * </script> @@ -227368,7 +227588,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Version} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(new Version('1.2.3')) // ↦ 1.2.3 * console.log(new Version('1')) // ↦ 1.0.0 * </script> @@ -227509,7 +227729,7 @@ var monsterVersion; * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(Monster.getVersion()) * console.log(Monster.getVersion()) * </script> @@ -227519,7 +227739,7 @@ var monsterVersion; * * ``` * <script type="module"> - * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/version.js'; + * import {getVersion} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/version.js'; * console.log(getVersion()) * console.log(getVersion()) * </script> @@ -227539,7 +227759,7 @@ function getVersion() { /**#@+ dont touch, replaced by make with package.json version */ - monsterVersion = new Version('1.6.0'); + monsterVersion = new Version('1.7.0'); /**#@-*/ return monsterVersion; @@ -227547,7 +227767,7 @@ function getVersion() { _namespace.Monster.assignToNamespace('Monster', getVersion); -},{"../namespace.js":1142,"./base.js":1143,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1157:[function(require,module,exports){ +},{"../namespace.js":1143,"./base.js":1144,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16}],1158:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -227587,7 +227807,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js'; * console.log(Monster.Util.clone({})) * </script> * ``` @@ -227596,7 +227816,7 @@ var _global = require("../types/global.js"); * * ``` * <script type="module"> - * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/util/clone.js'; + * import {clone} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/util/clone.js'; * console.log(clone({})) * </script> * ``` @@ -227713,7 +227933,7 @@ function cloneObject(obj) { _namespace.Monster.assignToNamespace('Monster.Util', clone); -},{"../namespace.js":1142,"../types/global.js":1144,"../types/is.js":1146,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1158:[function(require,module,exports){ +},{"../namespace.js":1143,"../types/global.js":1145,"../types/is.js":1147,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20}],1159:[function(require,module,exports){ 'use strict'; /** * @author schukai GmbH @@ -227757,7 +227977,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Monster.Util.Comparator()) * console.log(new Monster.Util.Comparator()) * </script> @@ -227767,7 +227987,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re * * ``` * <script type="module"> - * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.6.0/dist/modules/types/id.js'; + * import {Comparator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.7.0/dist/modules/types/id.js'; * console.log(new Util()) * console.log(new Util()) * </script> @@ -227929,7 +228149,7 @@ exports.Comparator = Comparator; _base.Monster.assignToNamespace('Monster.Util', Comparator); -},{"../types/base.js":1143,"../types/is.js":1146,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/typeof":20}],1159:[function(require,module,exports){ +},{"../types/base.js":1144,"../types/is.js":1147,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/typeof":20}],1160:[function(require,module,exports){ "use strict"; var _valid = require("../../../source/constraints/valid.js"); @@ -227956,7 +228176,7 @@ describe('AndOperator', function () { }); }); -},{"../../../source/constraints/andoperator.js":1124,"../../../source/constraints/invalid.js":1125,"../../../source/constraints/valid.js":1129}],1160:[function(require,module,exports){ +},{"../../../source/constraints/andoperator.js":1124,"../../../source/constraints/invalid.js":1125,"../../../source/constraints/valid.js":1129}],1161:[function(require,module,exports){ "use strict"; var _invalid = require("../../../source/constraints/invalid.js"); @@ -227975,7 +228195,7 @@ describe('Invalid', function () { }); }); -},{"../../../source/constraints/invalid.js":1125,"chai":128}],1161:[function(require,module,exports){ +},{"../../../source/constraints/invalid.js":1125,"chai":128}],1162:[function(require,module,exports){ "use strict"; var _isarray = require("../../../source/constraints/isarray.js"); @@ -227996,7 +228216,7 @@ describe('IsArray', function () { }); }); -},{"../../../source/constraints/isarray.js":1126,"chai":128}],1162:[function(require,module,exports){ +},{"../../../source/constraints/isarray.js":1126,"chai":128}],1163:[function(require,module,exports){ "use strict"; var _isobject = require("../../../source/constraints/isobject.js"); @@ -228017,7 +228237,7 @@ describe('IsObject', function () { }); }); -},{"../../../source/constraints/isobject.js":1127,"chai":128}],1163:[function(require,module,exports){ +},{"../../../source/constraints/isobject.js":1127,"chai":128}],1164:[function(require,module,exports){ "use strict"; var _valid = require("../../../source/constraints/valid.js"); @@ -228044,7 +228264,7 @@ describe('OrOperator', function () { }); }); -},{"../../../source/constraints/invalid.js":1125,"../../../source/constraints/oroperator.js":1128,"../../../source/constraints/valid.js":1129}],1164:[function(require,module,exports){ +},{"../../../source/constraints/invalid.js":1125,"../../../source/constraints/oroperator.js":1128,"../../../source/constraints/valid.js":1129}],1165:[function(require,module,exports){ "use strict"; var _valid = require("../../../source/constraints/valid.js"); @@ -228064,7 +228284,7 @@ describe('Valid', function () { }); }); -},{"../../../source/constraints/valid.js":1129,"chai":128}],1165:[function(require,module,exports){ +},{"../../../source/constraints/valid.js":1129,"chai":128}],1166:[function(require,module,exports){ "use strict"; var _diff = require("../../../source/data/diff.js"); @@ -228145,7 +228365,7 @@ describe('Diff', function () { }); }); -},{"../../../source/data/diff.js":1130,"../../../source/types/queue.js":1150,"chai":128}],1166:[function(require,module,exports){ +},{"../../../source/data/diff.js":1130,"../../../source/types/queue.js":1151,"chai":128}],1167:[function(require,module,exports){ "use strict"; var _pathfinder = require("../../../source/data/pathfinder.js"); @@ -228256,7 +228476,7 @@ describe('Pathfinder', function () { }); }); -},{"../../../source/data/pathfinder.js":1131,"chai":128}],1167:[function(require,module,exports){ +},{"../../../source/data/pathfinder.js":1131,"chai":128}],1168:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -228317,7 +228537,7 @@ describe('Pipe', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/data/pipe.js":1132,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1168:[function(require,module,exports){ +},{"../../../source/data/pipe.js":1132,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1169:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -228425,7 +228645,7 @@ describe('Transformer', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/data/transformer.js":1133,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128,"jsdom":333}],1169:[function(require,module,exports){ +},{"../../../source/data/transformer.js":1133,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128,"jsdom":333}],1170:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -228491,7 +228711,80 @@ describe('Assembler', function () { }); }); -},{"../../../source/dom/assembler.js":1134,"../../util/jsdom.js":1194,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/regenerator":24,"chai":128}],1170:[function(require,module,exports){ +},{"../../../source/dom/assembler.js":1134,"../../util/jsdom.js":1196,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/regenerator":24,"chai":128}],1171:[function(require,module,exports){ +'use strict'; // + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _jsdom = require("../../util/jsdom.js"); + +var _chai = require("chai"); + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2["default"])(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +//import 'jsdom-global/register.js' +//import {CustomElement, registerCustomElement} from "../../../source/dom/customelement.js"; +var CustomElement, registerCustomElement, TestComponent; +describe('DOM', function () { + before(function (done) { + (0, _jsdom.initJSDOM)().then(function () { + Promise.resolve().then(function () { + return _interopRequireWildcard(require("../../../source/dom/customelement.js")); + }).then(function (m) { + CustomElement = m['CustomElement']; + registerCustomElement = m['registerCustomElement']; + + TestComponent = /*#__PURE__*/function (_CustomElement) { + (0, _inherits2["default"])(TestComponent, _CustomElement); + + var _super = _createSuper(TestComponent); + + function TestComponent() { + (0, _classCallCheck2["default"])(this, TestComponent); + return _super.apply(this, arguments); + } + + (0, _createClass2["default"])(TestComponent, null, [{ + key: "getTag", + value: function getTag() { + return "monster-testclass"; + } + }]); + return TestComponent; + }(CustomElement); + + done(); + }); + }); + }); + describe('CustomElement()', function () { + it('should return custom-element object', function () { + registerCustomElement(TestComponent); + var d = new TestComponent(); + (0, _chai.expect)((0, _typeof2["default"])(d)).is.equal('object'); + }); + }); +}); + +},{"../../../source/dom/customelement.js":1135,"../../util/jsdom.js":1196,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"@babel/runtime/helpers/typeof":20,"chai":128}],1172:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -228574,7 +228867,7 @@ describe('Handle', function () { }); }); -},{"../../../source/dom/handle.js":1135,"../../../source/dom/util.js":1137,"../../../source/types/global.js":1144,"../../../source/types/proxyobserver.js":1149,"../../util/jsdom.js":1194,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/regenerator":24,"chai":128}],1171:[function(require,module,exports){ +},{"../../../source/dom/handle.js":1136,"../../../source/dom/util.js":1138,"../../../source/types/global.js":1145,"../../../source/types/proxyobserver.js":1150,"../../util/jsdom.js":1196,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/regenerator":24,"chai":128}],1173:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -228631,7 +228924,7 @@ describe('Template', function () { }); }); -},{"../../../source/dom/template.js":1136,"../../util/jsdom.js":1194,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/regenerator":24,"chai":128}],1172:[function(require,module,exports){ +},{"../../../source/dom/template.js":1137,"../../util/jsdom.js":1196,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/regenerator":24,"chai":128}],1174:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -228692,7 +228985,7 @@ describe('DOM', function () { }); }); -},{"../../../source/dom/util.js":1137,"../../util/jsdom.js":1194,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"@babel/runtime/regenerator":24,"chai":128}],1173:[function(require,module,exports){ +},{"../../../source/dom/util.js":1138,"../../util/jsdom.js":1196,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"@babel/runtime/regenerator":24,"chai":128}],1175:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -228863,7 +229156,7 @@ describe('Logging', function () { }); }); -},{"../../../source/logging/handler.js":1138,"../../../source/logging/logentry.js":1139,"../../../source/logging/logger.js":1140,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/get":8,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"chai":128}],1174:[function(require,module,exports){ +},{"../../../source/logging/handler.js":1139,"../../../source/logging/logentry.js":1140,"../../../source/logging/logger.js":1141,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/get":8,"@babel/runtime/helpers/getPrototypeOf":9,"@babel/runtime/helpers/inherits":10,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/possibleConstructorReturn":16,"chai":128}],1176:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -228894,7 +229187,7 @@ describe('Log', function () { }); }); -},{"../../../source/logging/logentry.js":1139,"chai":128}],1175:[function(require,module,exports){ +},{"../../../source/logging/logentry.js":1140,"chai":128}],1177:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -228957,7 +229250,7 @@ describe('Logging', function () { }); }); -},{"../../../source/logging/logger.js":1140,"chai":128}],1176:[function(require,module,exports){ +},{"../../../source/logging/logger.js":1141,"chai":128}],1178:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -229009,7 +229302,7 @@ describe('Math', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/math/random.js":1141,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1177:[function(require,module,exports){ +},{"../../../source/math/random.js":1142,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1179:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -229021,7 +229314,7 @@ describe('Monster', function () { var monsterVersion; /**#@+ dont touch, replaced by make with package.json version */ - monsterVersion = new _version.Version('1.6.0'); + monsterVersion = new _version.Version('1.7.0'); /**#@-*/ var m = _version.Monster.getVersion(); @@ -229032,7 +229325,7 @@ describe('Monster', function () { }); }); -},{"../../source/types/version.js":1156,"chai":128}],1178:[function(require,module,exports){ +},{"../../source/types/version.js":1157,"chai":128}],1180:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -229050,7 +229343,7 @@ describe('Base', function () { }); }); -},{"../../../source/types/base.js":1143,"chai":128}],1179:[function(require,module,exports){ +},{"../../../source/types/base.js":1144,"chai":128}],1181:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -229082,7 +229375,7 @@ describe('Global', function () { }); }); -},{"../../../source/types/global.js":1144,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"chai":128}],1180:[function(require,module,exports){ +},{"../../../source/types/global.js":1145,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"chai":128}],1182:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -229118,7 +229411,7 @@ describe('ID', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/types/id.js":1145,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1181:[function(require,module,exports){ +},{"../../../source/types/id.js":1146,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1183:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -229230,7 +229523,7 @@ describe('Is', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/types/id.js":1145,"../../../source/types/is.js":1146,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1182:[function(require,module,exports){ +},{"../../../source/types/id.js":1146,"../../../source/types/is.js":1147,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1184:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -229322,7 +229615,7 @@ describe('Observer', function () { }); }); -},{"../../../source/types/observer.js":1147,"chai":128}],1183:[function(require,module,exports){ +},{"../../../source/types/observer.js":1148,"chai":128}],1185:[function(require,module,exports){ "use strict"; var _observerlist = require("../../../source/types/observerlist.js"); @@ -229399,7 +229692,7 @@ describe('ObserverList', function () { }); }); -},{"../../../source/types/observer.js":1147,"../../../source/types/observerlist.js":1148,"chai":128}],1184:[function(require,module,exports){ +},{"../../../source/types/observer.js":1148,"../../../source/types/observerlist.js":1149,"chai":128}],1186:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -229485,7 +229778,7 @@ describe('ProxyObserver', function () { }); }); -},{"../../../source/types/is.js":1146,"../../../source/types/observer.js":1147,"../../../source/types/proxyobserver.js":1149,"chai":128}],1185:[function(require,module,exports){ +},{"../../../source/types/is.js":1147,"../../../source/types/observer.js":1148,"../../../source/types/proxyobserver.js":1150,"chai":128}],1187:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -229526,7 +229819,7 @@ describe('Queue', function () { }); }); -},{"../../../source/types/queue.js":1150,"chai":128}],1186:[function(require,module,exports){ +},{"../../../source/types/queue.js":1151,"chai":128}],1188:[function(require,module,exports){ (function (global){(function (){ "use strict"; @@ -229557,7 +229850,7 @@ describe('RandomID', function () { }); }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../../../source/types/randomid.js":1151,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1187:[function(require,module,exports){ +},{"../../../source/types/randomid.js":1152,"@babel/runtime/helpers/typeof":20,"@peculiar/webcrypto":42,"chai":128}],1189:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -229598,7 +229891,7 @@ describe('Stack', function () { }); }); -},{"../../../source/types/stack.js":1152,"chai":128}],1188:[function(require,module,exports){ +},{"../../../source/types/stack.js":1153,"chai":128}],1190:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -229795,7 +230088,7 @@ describe('TokenList', function () { }); }); -},{"../../../source/types/tokenlist.js":1153,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/toConsumableArray":19,"@babel/runtime/helpers/typeof":20,"chai":128}],1189:[function(require,module,exports){ +},{"../../../source/types/tokenlist.js":1154,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/toConsumableArray":19,"@babel/runtime/helpers/typeof":20,"chai":128}],1191:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -229881,7 +230174,7 @@ describe('UniqueQueue', function () { }); }); -},{"../../../source/types/uniquequeue.js":1154,"chai":128}],1190:[function(require,module,exports){ +},{"../../../source/types/uniquequeue.js":1155,"chai":128}],1192:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230069,7 +230362,7 @@ describe('validate', function () { }); }); -},{"../../../source/types/base.js":1143,"../../../source/types/id.js":1145,"../../../source/types/validate.js":1155,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"chai":128}],1191:[function(require,module,exports){ +},{"../../../source/types/base.js":1144,"../../../source/types/id.js":1146,"../../../source/types/validate.js":1156,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"chai":128}],1193:[function(require,module,exports){ "use strict"; var _version = require("../../../source/types/version.js"); @@ -230100,7 +230393,7 @@ describe('Version', function () { }); }); -},{"../../../source/types/version.js":1156,"chai":128}],1192:[function(require,module,exports){ +},{"../../../source/types/version.js":1157,"chai":128}],1194:[function(require,module,exports){ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230212,7 +230505,7 @@ describe('Clone', function () { }); }); -},{"../../../source/util/clone.js":1157,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"chai":128}],1193:[function(require,module,exports){ +},{"../../../source/util/clone.js":1158,"@babel/runtime/helpers/classCallCheck":5,"@babel/runtime/helpers/createClass":7,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"chai":128}],1195:[function(require,module,exports){ "use strict"; var _chai = require("chai"); @@ -230329,7 +230622,7 @@ describe('Comparator', function () { }); }); -},{"../../../source/util/comparator.js":1158,"chai":128}],1194:[function(require,module,exports){ +},{"../../../source/util/comparator.js":1159,"chai":128}],1196:[function(require,module,exports){ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); @@ -230355,7 +230648,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && * @return {Promise<unknown>|Promise<void>} */ function initJSDOM() { - if ((typeof window === "undefined" ? "undefined" : (0, _typeof2["default"])(window)) === "object") return Promise.resolve(); + if ((typeof window === "undefined" ? "undefined" : (0, _typeof2["default"])(window)) === "object" && window['DOMParser']) return Promise.resolve(); var g = (0, _global.getGlobal)(); return Promise.resolve().then(function () { return _interopRequireWildcard(require("jsdom")); @@ -230375,7 +230668,7 @@ function initJSDOM() { g['window'] = window; return new Promise(function (resolve) { return window.addEventListener("load", function () { - ['self', 'document', 'Document', 'Node', 'Element', 'HTMLElement', 'DocumentFragment', 'DOMParser', 'MutationObserver', 'HTMLTemplateElement', 'XMLSerializer', 'NodeFilter', 'InputEvent', 'CustomEvent'].forEach(function (key) { + ['self', 'document', 'Document', 'Node', 'Element', 'HTMLElement', 'customElements', 'DocumentFragment', 'DOMParser', 'MutationObserver', 'HTMLTemplateElement', 'XMLSerializer', 'NodeFilter', 'InputEvent', 'CustomEvent'].forEach(function (key) { return g[key] = window[key]; }); resolve(); @@ -230384,7 +230677,7 @@ function initJSDOM() { }); } -},{"../../source/types/global.js":1144,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"jsdom":333}],1195:[function(require,module,exports){ +},{"../../source/types/global.js":1145,"@babel/runtime/helpers/interopRequireDefault":11,"@babel/runtime/helpers/typeof":20,"jsdom":333}],1197:[function(require,module,exports){ "use strict"; require("../cases/logging/logger.js"); @@ -230401,6 +230694,8 @@ require("../cases/dom/util.js"); require("../cases/dom/assembler.js"); +require("../cases/dom/customelement.js"); + require("../cases/types/queue.js"); require("../cases/types/observer.js"); @@ -230460,6 +230755,6 @@ require("../cases/monster.js"); /** this file was created automatically by the make target test-browser-monster */ SharedArrayBuffer = ArrayBuffer; -},{"../cases/constraint/andoperator.js":1159,"../cases/constraint/invalid.js":1160,"../cases/constraint/isarray.js":1161,"../cases/constraint/isobject.js":1162,"../cases/constraint/oroperator.js":1163,"../cases/constraint/valid.js":1164,"../cases/data/diff.js":1165,"../cases/data/pathfinder.js":1166,"../cases/data/pipe.js":1167,"../cases/data/transformer.js":1168,"../cases/dom/assembler.js":1169,"../cases/dom/handle.js":1170,"../cases/dom/template.js":1171,"../cases/dom/util.js":1172,"../cases/logging/handler.js":1173,"../cases/logging/logentry.js":1174,"../cases/logging/logger.js":1175,"../cases/math/random.js":1176,"../cases/monster.js":1177,"../cases/types/base.js":1178,"../cases/types/global.js":1179,"../cases/types/id.js":1180,"../cases/types/is.js":1181,"../cases/types/observer.js":1182,"../cases/types/observerlist.js":1183,"../cases/types/proxyobserver.js":1184,"../cases/types/queue.js":1185,"../cases/types/randomid.js":1186,"../cases/types/stack.js":1187,"../cases/types/tokenlist.js":1188,"../cases/types/uniquequeue.js":1189,"../cases/types/validate.js":1190,"../cases/types/version.js":1191,"../cases/util/clone.js":1192,"../cases/util/comparator.js":1193}],1196:[function(require,module,exports){ +},{"../cases/constraint/andoperator.js":1160,"../cases/constraint/invalid.js":1161,"../cases/constraint/isarray.js":1162,"../cases/constraint/isobject.js":1163,"../cases/constraint/oroperator.js":1164,"../cases/constraint/valid.js":1165,"../cases/data/diff.js":1166,"../cases/data/pathfinder.js":1167,"../cases/data/pipe.js":1168,"../cases/data/transformer.js":1169,"../cases/dom/assembler.js":1170,"../cases/dom/customelement.js":1171,"../cases/dom/handle.js":1172,"../cases/dom/template.js":1173,"../cases/dom/util.js":1174,"../cases/logging/handler.js":1175,"../cases/logging/logentry.js":1176,"../cases/logging/logger.js":1177,"../cases/math/random.js":1178,"../cases/monster.js":1179,"../cases/types/base.js":1180,"../cases/types/global.js":1181,"../cases/types/id.js":1182,"../cases/types/is.js":1183,"../cases/types/observer.js":1184,"../cases/types/observerlist.js":1185,"../cases/types/proxyobserver.js":1186,"../cases/types/queue.js":1187,"../cases/types/randomid.js":1188,"../cases/types/stack.js":1189,"../cases/types/tokenlist.js":1190,"../cases/types/uniquequeue.js":1191,"../cases/types/validate.js":1192,"../cases/types/version.js":1193,"../cases/util/clone.js":1194,"../cases/util/comparator.js":1195}],1198:[function(require,module,exports){ arguments[4][77][0].apply(exports,arguments) -},{"dup":77}]},{},[1195]); +},{"dup":77}]},{},[1197]);