From 8ba11827d067968db4cab8b5d816e6ad7acea310 Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 18:54:20 -0700 Subject: [PATCH 1/8] fix performance related issues --- index.js | 1 + index.sh | 1 + package.json | 1 + rollup.test.js | 31 + src/app/wc-dev.html | 76 ++ src/app/wc.ts | 59 ++ src/modules/core/element/src/compile.ts | 35 +- yarn.lock | 963 +++++++++++++++++++++++- 8 files changed, 1115 insertions(+), 52 deletions(-) create mode 100644 rollup.test.js create mode 100644 src/app/wc-dev.html create mode 100644 src/app/wc.ts diff --git a/index.js b/index.js index e45c5d3..9b61b17 100644 --- a/index.js +++ b/index.js @@ -25,6 +25,7 @@ watcher if (path.includes('.html')) { spawn('cp', ['src/app/index.html', 'dist/index.html'], {stdio:'inherit'}); spawn('cp', ['src/app/test.html', 'dist/test.html'], {stdio:'inherit'}); + spawn('cp', ['src/app/wc-dev.html', 'dist/wc.html'], {stdio:'inherit'}); } if (path.includes('404.html')) { spawn('cp', ['src/app/404.html', 'dist/404.html'], {stdio:'inherit'}); diff --git a/index.sh b/index.sh index 8dff55a..859eb98 100755 --- a/index.sh +++ b/index.sh @@ -9,6 +9,7 @@ cp node_modules/web-animations-js/web-animations.min.js dist/lib/web-animations. cp node_modules/web-animations-js/web-animations.min.js.map dist/lib/web-animations.min.js.map cp src/app/index.html dist/index.html cp src/app/test.html dist/test.html +cp src/app/wc-dev.html dist/wc.html cp src/app/404.html dist/404.html cp src/app/favicon.ico dist/favicon.ico cp -R src/app/style/fonts/. dist/fonts diff --git a/package.json b/package.json index 07ee4f0..5bffe3b 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "rollup-plugin-typescript2": "^0.19.2", "rollup-plugin-uglify": "^6.0.0", "rollup-typescript": "^1.2.0", + "tachometer": "^0.5.5", "terser": "^3.11.0", "tslib": "^1.9.3", "tslint": "^5.12.0", diff --git a/rollup.test.js b/rollup.test.js new file mode 100644 index 0000000..ca5dcb7 --- /dev/null +++ b/rollup.test.js @@ -0,0 +1,31 @@ +import typescript from 'rollup-plugin-typescript2'; +import resolve from 'rollup-plugin-node-resolve'; +import cleanup from 'rollup-plugin-cleanup'; +import { terser } from 'rollup-plugin-terser'; + +const clean = { + comments: ['none'], + extensions: ['ts', 'js'] +}; + +export default [ +{ + input: 'src/app/wc.ts', + plugins: [ + resolve(), + typescript({ + typescript: require('typescript') + }), + cleanup(clean), + terser() + ], + onwarn: ( warning, next ) => { + if ( warning.code === 'THIS_IS_UNDEFINED' ) return; + next( warning ); + }, + output: { + file: 'dist/app/wc.js', + format: 'esm', + sourcemap: false + } +}]; \ No newline at end of file diff --git a/src/app/wc-dev.html b/src/app/wc-dev.html new file mode 100644 index 0000000..c47dc7d --- /dev/null +++ b/src/app/wc-dev.html @@ -0,0 +1,76 @@ + + + + + + + + + + + + Web Components + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + diff --git a/src/app/wc.ts b/src/app/wc.ts new file mode 100644 index 0000000..e1eefae --- /dev/null +++ b/src/app/wc.ts @@ -0,0 +1,59 @@ +import { Component, State, CustomElement } from "../modules/core/index.js"; + +@Component({ + selector: "my-counter", + template: ` + + {{c}} + + `, + style: ` + span, + button { + font-size: 200%; + } + + span { + width: 4rem; + display: inline-block; + text-align: center; + } + + button { + width: 4rem; + height: 4rem; + border: none; + border-radius: 10px; + background-color: seagreen; + color: white; + } + `, +}) +export class MyCounter extends CustomElement { + private c: string = "0"; + connectedCallback() { + this.shadowRoot + .querySelector("#inc") + .addEventListener("click", this.inc.bind(this)); + this.shadowRoot + .querySelector("#dec") + .addEventListener("click", this.dec.bind(this)); + } + + get count() { + return Number.parseInt(this.c); + } + + inc() { + this.setState("c", this.count + 1); + } + + dec() { + this.setState("c", this.count - 1); + } + + @State() + public getState() { + return { c: this.c || "0" }; + } +} diff --git a/src/modules/core/element/src/compile.ts b/src/modules/core/element/src/compile.ts index 1da6db7..d5617ef 100644 --- a/src/modules/core/element/src/compile.ts +++ b/src/modules/core/element/src/compile.ts @@ -2,10 +2,13 @@ import { OnStateChange } from './../../component/component.js'; import { ElementMeta } from './../../decorator/decorator.js'; export const TEMPLATE_BIND_REGEX = /\{\{(\s*)(.*?)(\s*)\}\}/g; +export const BRACKET_START_REGEX = new RegExp(`\\[`, 'gi'); +export const BRACKET_END_REGEX = new RegExp('\\]', 'gi'); export const BIND_SUFFIX = ' __state'; interface Node { cloneNode(deep?: boolean): this; + $init?: boolean; } const isObject = function(val) { @@ -67,7 +70,6 @@ class NodeTree { this.$parent = parentNode; this.$flatMap = {}; this.$parentId = templateId(); - this.create(); } public setNode(node: Node, key?: string, value?: any) { const id = this.$parentId + '-' + uuidv4().slice(0, 6); @@ -91,12 +93,11 @@ class NodeTree { this.updateNode(node, key, value); } } + node.$init = true; } public changeNode(node: Node, key: string, value: any) { - const bracketStartRegex = new RegExp(`\\[`, 'gi'); - const bracketEndRegex = new RegExp('\\]', 'gi'); - key = key.replace(bracketStartRegex, `\\[`); - key = key.replace(bracketEndRegex, `\\]`); + key = key.replace(BRACKET_START_REGEX, `\\[`); + key = key.replace(BRACKET_END_REGEX, `\\]`); const regex = new RegExp(`\{\{(\s*)(${key})(\s*)\}\}`, 'gi'); const attrId = this.getElementByAttribute((node as Element))[0].nodeName || this.getElementByAttribute((node as Element))[0].name; const protoNode = this.$flatMap[attrId].node; @@ -155,24 +156,18 @@ class NodeTree { this.changeNode(node, key, value); } } - public create() { - const walk = document.createTreeWalker( - this.$parent, - NodeFilter.SHOW_ELEMENT, - { acceptNode(node) { return NodeFilter.FILTER_ACCEPT; } }, - false, - ); - while (walk.nextNode()) { - this.setNode(walk.currentNode); - } - } public getElementByAttribute(node: Element) { if (!node.attributes) { return []; } - return Array.from(node.attributes).filter((attr) => { - return /[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(attr.nodeName || attr.name); - }); + for (let i=0; i < node.attributes.length; i++) { + if (/[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(node.attributes[i].nodeName || node.attributes[i].name)) { + return [node.attributes[i]]; + } + } + // return Array.from(node.attributes).filter((attr) => { + // return /[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(attr.nodeName || attr.name); + // }); } public update(key: string, value: any) { const walk = document.createTreeWalker( @@ -182,7 +177,7 @@ class NodeTree { false, ); while (walk.nextNode()) { - if (this.getElementByAttribute((walk.currentNode as Element)).length > 0) { + if ((walk.currentNode as Node).$init === true) { this.updateNode(walk.currentNode, key, value); } else { this.setNode(walk.currentNode, key, value); diff --git a/yarn.lock b/yarn.lock index 14f7a3e..6a38d5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -193,6 +193,35 @@ dependencies: any-observable "^0.3.0" +"@sindresorhus/is@^3.1.1": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-3.1.2.tgz#548650de521b344e3781fbdb0ece4aa6f729afb8" + integrity sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@types/babel__generator@^7.6.1": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + "@types/clean-css@*": version "4.2.1" resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.1.tgz#cb0134241ec5e6ede1b5344bc829668fd9871a8d" @@ -200,6 +229,11 @@ dependencies: "@types/node" "*" +"@types/command-line-usage@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/command-line-usage/-/command-line-usage-5.0.1.tgz#99424950da567ba67b6b65caee57ff03c4e751ec" + integrity sha512-/xUgezxxYePeXhg5S04hUjxG9JZi+rJTs1+4NwpYPfSaS7BeDa6tVJkH6lN9Cb6rl8d24Fi2uX0s0Ngg2JT6gg== + "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" @@ -210,6 +244,13 @@ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== +"@types/execa@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@types/execa/-/execa-0.9.0.tgz#9b025d2755f17e80beaf9368c3f4f319d8b0fb93" + integrity sha512-mgfd93RhzjYBUHHV532turHC2j4l/qxsF/PbfDmprHDEUHmNZGlDn1CEsulGK3AfsPdhkWzZQT/S/k0UGhLGsA== + dependencies: + "@types/node" "*" + "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -228,6 +269,18 @@ "@types/relateurl" "*" "@types/uglify-js" "*" +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -243,6 +296,16 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.10.tgz#e491484c6060af8d461e12ec81c0da8a3282b8de" integrity sha512-V8wj+w2YMNvGuhgl/MA5fmTxgjmVHVoasfIaxMMZJV6Y8Kk+Ydpi1z2whoShDCJ2BuNVoqH/h1hrygnBxkrw/Q== +"@types/node@^11.9.4": + version "11.15.29" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.15.29.tgz#f8d8831ef4c6961de748aeb37588b419b043bf27" + integrity sha512-qX3rjMp9f9SiectkYjMz66Yvoyte3W8gRPQ6wmNjtt/Y7tHP/okNE2mFCvaMY/fCgWJsNRSmHfe6Oo0CsjZgdA== + +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" @@ -260,6 +323,18 @@ dependencies: "@types/node" "*" +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/selenium-webdriver@^4.0.5": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-4.0.9.tgz#12621e55b2ef8f6c98bd17fe23fa720c6cba16bd" + integrity sha512-HopIwBE7GUXsscmt/J0DhnFXLSmO04AfxT6b8HAprknwka7pqEWquWDMXxCjd+NUHK9MkCe1SDKKsMiNmCItbQ== + "@types/sinonjs__fake-timers@6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e" @@ -270,6 +345,11 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== +"@types/table@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@types/table/-/table-6.0.0.tgz#c3e8f1e0d80525036a7655fd650409e0230f1ead" + integrity sha512-RSmRiYetRzpcZcgNo4x6C1VSsPGBHCGGDO7Rbnz5esVLbGONxBP1CUcn8JhAkVzUVLO+AY8yOSkb27jvfauLyg== + "@types/uglify-js@*": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" @@ -327,7 +407,7 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: +accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -358,6 +438,16 @@ acorn@^6.0.1, acorn@^6.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== +ajv@^6.12.4: + version "6.12.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" + integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ajv@^6.5.5: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" @@ -387,6 +477,13 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= +ansi-escape-sequences@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz#b24471db2073009ebe28a7044ac7436bbd3d28e7" + integrity sha512-JcpoVp1W1bl1Qn4cVuiXEhD6+dyXKSOgCn2zlzE8inYgCJCBy1aPnUhlz6I4DFum8D4ovb9Qi/iAjUcGvG2lqw== + dependencies: + array-back "^4.0.0" + ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -402,6 +499,11 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -414,11 +516,23 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== +any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + anymatch@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" @@ -494,6 +608,16 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-back@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^4.0.0, array-back@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" + integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== + array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -548,6 +672,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + async-each@^1.0.0, async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -580,6 +709,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -725,6 +859,11 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -765,6 +904,32 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +cacheable-lookup@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" + integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== + +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + cachedir@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -1029,6 +1194,28 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +co-body@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3" + integrity sha512-9ZIcixguuuKIptnY8yemEOuhb71L/lLf+Rl5JfJEUiDNJk0e02MBt7BPxR2GEh5mw8dPthQYR4jPI/BnS1MQgw== + dependencies: + inflation "^2.0.0" + qs "^6.5.2" + raw-body "^2.3.3" + type-is "^1.6.16" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -1058,12 +1245,19 @@ color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -1106,6 +1300,26 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +command-line-args@^5.0.2: + version "5.1.1" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a" + integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== + dependencies: + array-back "^3.0.1" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz#f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6" + integrity sha512-Ew1clU4pkUeo6AFVDFxCbnN7GIZfXl48HIOQeFQnkO3oOqvpI7wdqtLRwv9iOCZ/7A+z4csVZeiDdEcj8g6Wiw== + dependencies: + array-back "^4.0.0" + chalk "^2.4.2" + table-layout "^1.0.0" + typical "^5.2.0" + commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -1222,14 +1436,14 @@ constant-case@^1.1.0: snake-case "^1.1.0" upper-case "^1.1.1" -content-disposition@0.5.3: +content-disposition@0.5.3, content-disposition@~0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: safe-buffer "5.1.2" -content-type@~1.0.4: +content-type@^1.0.4, content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== @@ -1251,11 +1465,24 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookies@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +copy-to@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" + integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1461,6 +1688,11 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" +csv-stringify@^5.3.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.5.1.tgz#f42cdd379b0f7f142933a11f674b1a91ebd0fcd0" + integrity sha512-HM0/86Ks8OwFbaYLd495tqTs1NhscZL52dC4ieKYumy8+nawQYC0xZ63w1NqLf0M148T2YLYqowoImc1giPn0g== + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -1551,6 +1783,20 @@ debug@^3.1.0, debug@^3.2.6: dependencies: ms "^2.1.1" +debug@^4.0.1, debug@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== + dependencies: + ms "2.1.2" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + decamelize@^1.0.0, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1561,7 +1807,19 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-extend@^0.6.0: +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== @@ -1571,6 +1829,11 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1615,17 +1878,22 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: +depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + dependency-graph@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.8.0.tgz#2da2d35ed852ecc24a5d6c17788ba57c3708755b" integrity sha512-DCvzSq2UiMsuLnj/9AL484ummEgLtZIcRS7YvtO38QnpX3vqh9nJ8P+zhu8Ja+SmLrBHO2iDbva20jq38qvBkQ== -destroy@~1.0.4: +destroy@^1.0.4, destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= @@ -1717,6 +1985,13 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1737,7 +2012,12 @@ email-addresses@^3.0.1: resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.0.3.tgz#fc3c6952f68da24239914e982c8a7783bc2ed96d" integrity sha512-kUlSC06PVvvjlMRpNIl3kR1NRXLEe86VQ7N0bQeaCZb2g+InShCeHQp/JvyYNTugMnRN2NvJhHlc3q12MWbbpg== -encodeurl@~1.0.2: +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@^1.0.2, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -1782,7 +2062,7 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -escape-html@~1.0.3: +escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= @@ -2011,6 +2291,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-glob@^2.0.2, fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -2128,6 +2413,13 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -2181,7 +2473,7 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fresh@0.5.2: +fresh@0.5.2, fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= @@ -2209,6 +2501,16 @@ fs-extra@8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + fs-minipass@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" @@ -2270,6 +2572,18 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -2400,6 +2714,23 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" +got@^11.5.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/got/-/got-11.7.0.tgz#a386360305571a74548872e674932b4ef70d3b24" + integrity sha512-7en2XwH2MEqOsrK0xaKhbWibBoZqy+f1RSUoIeF1BLcnf+pyQdDsljWMfmOh+QKJwuvDIiKx38GtPh5wFdGGjg== + dependencies: + "@sindresorhus/is" "^3.1.1" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.2.0" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" @@ -2593,6 +2924,14 @@ htmlparser2@^3.8.3, htmlparser2@^3.9.2: inherits "^2.0.1" readable-stream "^3.1.1" +http-assert@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.7.2" + http-auth@3.1.x: version "3.1.3" resolved "https://registry.yarnpkg.com/http-auth/-/http-auth-3.1.3.tgz#945cfadd66521eaf8f7c84913d377d7b15f24e31" @@ -2603,6 +2942,11 @@ http-auth@3.1.x: bcryptjs "^2.3.0" uuid "^3.0.0" +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -2614,17 +2958,7 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: +http-errors@1.7.3, http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== @@ -2635,6 +2969,27 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@^1.6.3, http-errors@^1.7.3: + version "1.8.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + "http-parser-js@>=0.4.0 <0.4.11": version "0.4.10" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" @@ -2649,6 +3004,14 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.0-beta.5.2" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + humanize-url@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/humanize-url/-/humanize-url-1.0.1.tgz#f4ab99e0d288174ca4e1e50407c55fbae464efff" @@ -2681,6 +3044,11 @@ ignore@^4.0.3: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -2713,6 +3081,11 @@ indexes-of@^1.0.1: resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= +inflation@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" + integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2899,6 +3272,16 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -3172,6 +3555,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3206,6 +3594,36 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonschema@^1.2.4: + version "1.2.10" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.10.tgz#38dc18b63839e8f07580df015e37d959f20d1eda" + integrity sha512-CoRSun5gmvgSYMHx5msttse19SnQpaHoPzIqULwE7B9KtR4Od1g70sBqeUriq5r8b9R3ptDc0o7WKpUDjUgLgg== + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -3216,6 +3634,52 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jstat@^1.9.2: + version "1.9.4" + resolved "https://registry.yarnpkg.com/jstat/-/jstat-1.9.4.tgz#5b787bcbc6353f54904307f2a4e6d4a4a1897f39" + integrity sha512-IiTPlI7pcrsq41EpDzrghlA1fhiC9GXxNqO4k5ogsjsM1XAWQ8zESH/bZsExLVgQsYpXE+7c11kEbbuxTLUpJQ== + +jszip@^3.2.2: + version "3.5.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6" + integrity sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -3240,6 +3704,102 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +koa-bodyparser@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a" + integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== + dependencies: + co-body "^6.0.0" + copy-to "^2.0.1" + +koa-compose@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= + dependencies: + any-promise "^1.1.0" + +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-convert@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= + dependencies: + co "^4.6.0" + koa-compose "^3.0.0" + +koa-mount@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c" + integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ== + dependencies: + debug "^4.0.1" + koa-compose "^4.1.0" + +koa-node-resolve@^1.0.0-pre.8: + version "1.0.0-pre.9" + resolved "https://registry.yarnpkg.com/koa-node-resolve/-/koa-node-resolve-1.0.0-pre.9.tgz#25e928ccc70ee9960c9615cab84fbfa25a1f608f" + integrity sha512-WKgqe5TGVD6zuR3NrKnmbb/NNHIbWOCezQVqqnyQLdtLLXWgiothlUQT23S5qQGE0Z623jp6jxpMjvAqyrcZFQ== + dependencies: + "@babel/generator" "^7.4.4" + "@babel/parser" "^7.4.5" + "@babel/traverse" "^7.4.5" + "@types/babel__generator" "^7.6.1" + "@types/parse5" "^5.0.0" + get-stream "^5.1.0" + parse5 "^5.1.0" + resolve "^1.11.0" + +koa-send@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" + integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + resolve-path "^1.4.0" + +koa-static@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" + integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== + dependencies: + debug "^3.1.0" + koa-send "^5.0.0" + +koa@^2.11.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501" + integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "~3.1.0" + delegates "^1.0.0" + depd "^1.1.2" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^1.2.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + lazy-ass@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" @@ -3270,6 +3830,13 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -3350,12 +3917,47 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.once@^4.1.1: +lodash.once@^4.0.0, lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= @@ -3380,6 +3982,11 @@ lodash@^4.13.1, lodash@^4.17.11: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +lodash@^4.17.20: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + log-symbols@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" @@ -3427,6 +4034,11 @@ lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.2: version "0.25.2" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.2.tgz#139c3a729515ec55e96e69e82a11fe890a293ad9" @@ -3552,6 +4164,11 @@ mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" @@ -3559,6 +4176,13 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: dependencies: mime-db "1.40.0" +mime-types@^2.1.18: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + mime@1.6.0, mime@^1.3.4: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -3579,6 +4203,16 @@ mimic-fn@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minify-html-literals@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/minify-html-literals/-/minify-html-literals-1.2.2.tgz#9595f2f3e8a810fa527ac7125c963b7410ee4b63" @@ -3675,7 +4309,7 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.1.1: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -3798,6 +4432,11 @@ normalize-url@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" @@ -3909,7 +4548,7 @@ object.values@^1.1.0: function-bind "^1.1.1" has "^1.0.3" -on-finished@~2.3.0: +on-finished@^2.3.0, on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= @@ -3940,6 +4579,11 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +only@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + opn@latest: version "6.0.0" resolved "https://registry.yarnpkg.com/opn/-/opn-6.0.0.tgz#3c5b0db676d5f97da1233d1ed42d182bc5a27d2d" @@ -3983,7 +4627,7 @@ os-locale@^3.0.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@^1.0.0: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -4001,6 +4645,11 @@ ospath@1.2.2: resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -4040,6 +4689,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pako@~1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + param-case@2.1.x: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" @@ -4084,7 +4738,12 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== -parseurl@~1.3.2, parseurl@~1.3.3: +parse5@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -4119,7 +4778,7 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-is-absolute@^1.0.0: +path-is-absolute@1.0.1, path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -4200,6 +4859,22 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pkg-install@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-install/-/pkg-install-1.0.0.tgz#a0c2e64e14d1733d670571489c303605527063fe" + integrity sha512-UGI8bfhrDb1KN01RZ7Bq08GRQc8rmVjxQ2up0g4mUHPCYDTK1FzQ0PMmLOBCHg3yaIijZ2U3Fn9ofLa4N392Ug== + dependencies: + "@types/execa" "^0.9.0" + "@types/node" "^11.9.4" + execa "^1.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -4714,6 +5389,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + proxy-addr@~2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" @@ -4765,6 +5445,11 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.5.2: + version "6.9.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -4783,6 +5468,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + ramda@0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" @@ -4812,6 +5502,16 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@^2.3.3: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -4842,7 +5542,7 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^2.2.2: +readable-stream@^2.2.2, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -4885,6 +5585,11 @@ readdirp@^2.0.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + reflect-metadata@^0.1.12: version "0.1.13" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" @@ -4984,11 +5689,24 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +resolve-alpn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -5008,6 +5726,20 @@ resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.3.2: dependencies: path-parse "^1.0.6" +resolve@^1.11.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -5053,7 +5785,7 @@ rimraf@^2.6.1, rimraf@^2.6.2: dependencies: glob "^7.1.3" -rimraf@^2.6.3: +rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -5211,11 +5943,30 @@ select@^1.1.2: resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= +selenium-webdriver@^4.0.0-alpha.1: + version "4.0.0-alpha.7" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.7.tgz#e3879d8457fd7ad8e4424094b7dc0540d99e6797" + integrity sha512-D4qnTsyTr91jT8f7MfN+OwY0IlU5+5FmlO5xlgRUV6hDEV8JyYx2NerdTEqDDkNq7RZDYc4VoPALk8l578RBHw== + dependencies: + jszip "^3.2.2" + rimraf "^2.7.1" + tmp "0.0.30" + semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.1.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + send@0.17.1, send@latest: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -5275,6 +6026,11 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +set-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -5295,6 +6051,11 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -5344,6 +6105,15 @@ slice-ansi@0.0.4: resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + snake-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-1.1.2.tgz#0c2f25e305158d9a18d3d977066187fef8a5a66a" @@ -5399,6 +6169,14 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.5.16: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-support@~0.5.10: version "0.5.12" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" @@ -5481,7 +6259,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -5520,6 +6298,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" @@ -5553,6 +6340,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -5662,11 +6456,71 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +systeminformation@^4.14.17: + version "4.27.7" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-4.27.7.tgz#1fbbb3283b0ffe76fa1b6ccca9641bad11107e48" + integrity sha512-3ozUwGSf5jmrhGgOXlX/O6hk1KQ28XPb7d3NiPZX267QmimuDq3TuIgnkw+vICUrGJGKWPLKmXVASnuJ3w07nw== + systemjs@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-4.0.0.tgz#8b2310ccf774242b492e35b8037b6e6ce580c24a" integrity sha512-asE0z8PeNmCGEo6vxYYFvXTjUMnD3/CMoM8daFDNSI40y4CVm/Tc5pqF1c4uYqn0pREC6QQKxqRR1xHe+ckqsA== +table-layout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9" + integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + +table@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.3.tgz#e5b8a834e37e27ad06de2e0fda42b55cfd8a0123" + integrity sha512-8321ZMcf1B9HvVX/btKv8mMZahCjn2aYrDlpqHaBFCfnox64edeH9kEid0vTLTRR8gWR2A20aDgeuTTea4sVtw== + dependencies: + ajv "^6.12.4" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" + +tachometer@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/tachometer/-/tachometer-0.5.5.tgz#91009d4fa0968d06a9cfe13e3bfbd2fc05c27878" + integrity sha512-a1sjEzfY01kL4oBQXue3cVN+5wX6tncNU6jVzYNGlSskJ+AwSV3DyGfxh9pjviJ4hLiaBpmF9EFRURGenSoD2w== + dependencies: + "@types/command-line-usage" "^5.0.1" + "@types/selenium-webdriver" "^4.0.5" + "@types/table" "^6.0.0" + ansi-escape-sequences "^5.0.0" + command-line-args "^5.0.2" + command-line-usage "^6.1.0" + csv-stringify "^5.3.0" + fs-extra "^9.0.1" + get-stream "^6.0.0" + got "^11.5.0" + jsonschema "^1.2.4" + jsonwebtoken "^8.5.1" + jstat "^1.9.2" + koa "^2.11.0" + koa-bodyparser "^4.2.1" + koa-mount "^4.0.0" + koa-node-resolve "^1.0.0-pre.8" + koa-send "^5.0.0" + koa-static "^5.0.0" + pkg-install "^1.0.0" + pkg-up "^3.1.0" + progress "^2.0.3" + selenium-webdriver "^4.0.0-alpha.1" + semver "^7.1.1" + source-map-support "^0.5.16" + strip-ansi "^6.0.0" + systeminformation "^4.14.17" + table "^6.0.3" + ua-parser-js "^0.7.19" + tar@^4: version "4.4.10" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" @@ -5726,6 +6580,13 @@ title-case@^1.1.0: sentence-case "^1.1.1" upper-case "^1.0.3" +tmp@0.0.30: + version "0.0.30" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" + integrity sha1-ckGdSovn1s51FI/YsyTlk6cRwu0= + dependencies: + os-tmpdir "~1.0.1" + tmp@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" @@ -5832,6 +6693,11 @@ tslint@^5.12.0: tslib "^1.8.0" tsutils "^2.29.0" +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + tsutils@^2.29.0: version "2.29.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" @@ -5858,7 +6724,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.17, type-is@~1.6.18: +type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -5881,6 +6747,21 @@ typescript@^3.2.1: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.2.tgz#a09e1dc69bc9551cadf17dba10ee42cf55e5d56c" integrity sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA== +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^5.0.0, typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + +ua-parser-js@^0.7.19: + version "0.7.22" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" + integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== + uglify-js@2.6.x: version "2.6.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" @@ -5957,6 +6838,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + unix-crypt-td-js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz#1c0824150481bc7a01d49e98f1ec668d82412f3b" @@ -6050,7 +6936,7 @@ uuid@^3.0.0, uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -vary@^1, vary@~1.1.2: +vary@^1, vary@^1.1.2, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -6164,6 +7050,14 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +wordwrapjs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" + integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.0.0" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -6270,3 +7164,8 @@ yauzl@2.10.0, yauzl@^2.10.0: dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== From 899a6a850500b380f98d4d57aefded0039a36069 Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 19:01:05 -0700 Subject: [PATCH 2/8] remove comment --- src/modules/core/element/src/compile.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/modules/core/element/src/compile.ts b/src/modules/core/element/src/compile.ts index d5617ef..65bef92 100644 --- a/src/modules/core/element/src/compile.ts +++ b/src/modules/core/element/src/compile.ts @@ -165,9 +165,6 @@ class NodeTree { return [node.attributes[i]]; } } - // return Array.from(node.attributes).filter((attr) => { - // return /[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(attr.nodeName || attr.name); - // }); } public update(key: string, value: any) { const walk = document.createTreeWalker( From a86ea2c1458c4835b18928ee98655e8dc15576e1 Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 19:21:08 -0700 Subject: [PATCH 3/8] normalize regex --- src/modules/core/element/src/compile.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/core/element/src/compile.ts b/src/modules/core/element/src/compile.ts index 65bef92..bfe775a 100644 --- a/src/modules/core/element/src/compile.ts +++ b/src/modules/core/element/src/compile.ts @@ -1,9 +1,9 @@ import { OnStateChange } from './../../component/component.js'; import { ElementMeta } from './../../decorator/decorator.js'; -export const TEMPLATE_BIND_REGEX = /\{\{(\s*)(.*?)(\s*)\}\}/g; +export const TEMPLATE_BIND_REGEX = new RegExp(`\{\{(\s*)(.*?)(\s*)\}\}`, 'g'); export const BRACKET_START_REGEX = new RegExp(`\\[`, 'gi'); -export const BRACKET_END_REGEX = new RegExp('\\]', 'gi'); +export const BRACKET_END_REGEX = new RegExp(`\\]`, 'gi'); export const BIND_SUFFIX = ' __state'; interface Node { From 86322e9d132b47fadf322e10b00d3e98a8273db2 Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 19:35:40 -0700 Subject: [PATCH 4/8] revert change --- src/modules/core/element/src/compile.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/core/element/src/compile.ts b/src/modules/core/element/src/compile.ts index bfe775a..bdb38bb 100644 --- a/src/modules/core/element/src/compile.ts +++ b/src/modules/core/element/src/compile.ts @@ -1,7 +1,7 @@ import { OnStateChange } from './../../component/component.js'; import { ElementMeta } from './../../decorator/decorator.js'; -export const TEMPLATE_BIND_REGEX = new RegExp(`\{\{(\s*)(.*?)(\s*)\}\}`, 'g'); +export const TEMPLATE_BIND_REGEX = /\{\{(\s*)(.*?)(\s*)\}\}/g; export const BRACKET_START_REGEX = new RegExp(`\\[`, 'gi'); export const BRACKET_END_REGEX = new RegExp(`\\]`, 'gi'); export const BIND_SUFFIX = ' __state'; From 1a25b160c9ef12d8409182c8301db9703b4ae6ad Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 19:53:07 -0700 Subject: [PATCH 5/8] hoist more regex standardize attr optimization --- src/modules/core/element/src/compile.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/core/element/src/compile.ts b/src/modules/core/element/src/compile.ts index bdb38bb..557fd62 100644 --- a/src/modules/core/element/src/compile.ts +++ b/src/modules/core/element/src/compile.ts @@ -1,6 +1,8 @@ import { OnStateChange } from './../../component/component.js'; import { ElementMeta } from './../../decorator/decorator.js'; +export const STRING_VALUE_REGEX = /\[(\w+)\]/g; +export const STRING_DOT_REGEX = /^\./; export const TEMPLATE_BIND_REGEX = /\{\{(\s*)(.*?)(\s*)\}\}/g; export const BRACKET_START_REGEX = new RegExp(`\\[`, 'gi'); export const BRACKET_END_REGEX = new RegExp(`\\]`, 'gi'); @@ -17,8 +19,8 @@ const isObject = function(val) { }; const findValueByString = function(o: any, s: string) { - s = s.replace(/\[(\w+)\]/g, '.$1'); - s = s.replace(/^\./, ''); + s = s.replace(STRING_VALUE_REGEX, '.$1'); + s = s.replace(STRING_DOT_REGEX, ''); const a = s.split('.'); for (let i = 0, n = a.length; i < n; ++i) { const k = a[i]; @@ -66,7 +68,7 @@ class NodeTree { public $parent: any; public $parentId: string; public $flatMap: any = {}; - constructor(parentNode?: any) { + constructor(parentNode?: Node) { this.$parent = parentNode; this.$flatMap = {}; this.$parentId = templateId(); @@ -104,7 +106,7 @@ class NodeTree { if (protoNode.textContent.match(regex)) { (node as Element).textContent = protoNode.textContent.replace(regex, value); } - if (protoNode.hasAttribute('no-attr')) { + if (protoNode.attributes.length === 1) { return; } let attr; From c3d6560376c4ca26ae276224a248dc28c1d1c81c Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 20:15:06 -0700 Subject: [PATCH 6/8] consolidate reusable strings --- src/modules/core/component/component.ts | 6 +++--- src/modules/core/decorator/decorator.ts | 24 +++++++++++++----------- src/modules/core/element/src/compile.ts | 4 +++- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/modules/core/component/component.ts b/src/modules/core/component/component.ts index 5f04ddd..82c33c9 100644 --- a/src/modules/core/component/component.ts +++ b/src/modules/core/component/component.ts @@ -1,4 +1,4 @@ -import { ElementMeta } from './../decorator/decorator.js'; +import { ElementMeta, EMIT_KEY, LISTEN_KEY } from './../decorator/decorator.js'; import { attachDOM, attachShadow, attachStyle } from './../element/element.js'; import { EventDispatcher } from './../event/event.js'; @@ -19,7 +19,7 @@ export type OnDestroy = () => void; function bindListeners(target: any) { for (const prop in target) { - if (prop.includes('$listen')) { + if (prop.includes(LISTEN_KEY)) { this[prop].onListener.call(this); } } @@ -27,7 +27,7 @@ function bindListeners(target: any) { function bindEmitters(target: any) { for (const prop in target) { - if (prop.includes('$emit')) { + if (prop.includes(EMIT_KEY)) { target[prop].call(target); } } diff --git a/src/modules/core/decorator/decorator.ts b/src/modules/core/decorator/decorator.ts index b4043bf..31ce46a 100644 --- a/src/modules/core/decorator/decorator.ts +++ b/src/modules/core/decorator/decorator.ts @@ -1,8 +1,10 @@ -import { BIND_SUFFIX, BoundHandler, BoundNode } from '../element/src/compile.js'; +import { BIND_SUFFIX, NODE_KEY, HANDLER_KEY, BoundHandler, BoundNode } from '../element/src/compile.js'; import { compileTemplate } from './../element/element.js'; import { EventDispatcher } from './../event/event.js'; export type EventHandler = () => void; +export const EMIT_KEY = '$emit'; +export const LISTEN_KEY = '$listen'; interface EventMeta { key: string; @@ -62,11 +64,11 @@ function State(property?: string) { function bindState() { this.$$state = this[key](); - this.$$state['handler' + BIND_SUFFIX] = new BoundHandler(this); - this.$$state['node' + BIND_SUFFIX] = new BoundNode(this.shadowRoot ? this.shadowRoot : this); - this.$state = new Proxy(this, this.$$state['handler' + BIND_SUFFIX]); + this.$$state[HANDLER_KEY] = new BoundHandler(this); + this.$$state[NODE_KEY] = new BoundNode(this.shadowRoot ? this.shadowRoot : this); + this.$state = new Proxy(this, this.$$state[HANDLER_KEY]); for (const prop in this.$$state) { - if (this.$$state[prop] && !prop.includes('__state')) { + if (this.$$state[prop] && !prop.includes(BIND_SUFFIX)) { this.$state[prop] = this.$$state[prop]; } } @@ -85,9 +87,9 @@ function Emitter(eventName?: string, options?: any, channelName?: string) { let prop: string = ''; if (eventName) { - prop = '$emit' + channel + eventName; + prop = EMIT_KEY + channel + eventName; } else { - prop = '$emit' + channel; + prop = EMIT_KEY + channel; } function addEvent(name?: string, chan?: string) { @@ -104,7 +106,7 @@ function Emitter(eventName?: string, options?: any, channelName?: string) { function bindEmitters() { for (const property in this) { - if (property.includes('$emit')) { + if (property.includes(EMIT_KEY)) { this[property].call(this); } } @@ -131,9 +133,9 @@ function Listen(eventName: string, channelName?: string) { let prop: string = ''; if (channelName) { - prop = '$listen' + eventName + channelName; + prop = LISTEN_KEY + eventName + channelName; } else { - prop = '$listen' + eventName; + prop = LISTEN_KEY + eventName; } function addListener(name: string, chan: string) { @@ -161,7 +163,7 @@ function Listen(eventName: string, channelName?: string) { function addListeners() { for (const property in this) { - if (property.includes('$listen')) { + if (property.includes(LISTEN_KEY)) { this[property].onListener.call(this); } } diff --git a/src/modules/core/element/src/compile.ts b/src/modules/core/element/src/compile.ts index 557fd62..0b19eab 100644 --- a/src/modules/core/element/src/compile.ts +++ b/src/modules/core/element/src/compile.ts @@ -7,6 +7,8 @@ export const TEMPLATE_BIND_REGEX = /\{\{(\s*)(.*?)(\s*)\}\}/g; export const BRACKET_START_REGEX = new RegExp(`\\[`, 'gi'); export const BRACKET_END_REGEX = new RegExp(`\\]`, 'gi'); export const BIND_SUFFIX = ' __state'; +export const NODE_KEY = 'node' + BIND_SUFFIX; +export const HANDLER_KEY = 'handler' + BIND_SUFFIX; interface Node { cloneNode(deep?: boolean): this; @@ -226,7 +228,7 @@ class BoundHandler { target[key] = value; } - this.$parent.$$state['node' + BIND_SUFFIX].update(key, target[key]); + this.$parent.$$state[NODE_KEY].update(key, target[key]); if (target.onStateChange) { target.onStateChange(change); From dc8801f0a80a0d2971ebe988fb699ae0f1c49acb Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 20:41:35 -0700 Subject: [PATCH 7/8] simplify setting initial state --- src/modules/core/decorator/decorator.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/modules/core/decorator/decorator.ts b/src/modules/core/decorator/decorator.ts index 31ce46a..b9241f2 100644 --- a/src/modules/core/decorator/decorator.ts +++ b/src/modules/core/decorator/decorator.ts @@ -66,12 +66,7 @@ function State(property?: string) { this.$$state = this[key](); this.$$state[HANDLER_KEY] = new BoundHandler(this); this.$$state[NODE_KEY] = new BoundNode(this.shadowRoot ? this.shadowRoot : this); - this.$state = new Proxy(this, this.$$state[HANDLER_KEY]); - for (const prop in this.$$state) { - if (this.$$state[prop] && !prop.includes(BIND_SUFFIX)) { - this.$state[prop] = this.$$state[prop]; - } - } + this.$state = Object.assign(new Proxy(this, this.$$state[HANDLER_KEY]), this[key]()); } target.bindState = function onBind() { From 6e791e4d40b1db9b0ec7e2e3078b0596bf5f3993 Mon Sep 17 00:00:00 2001 From: Steve Belovarich Date: Thu, 8 Oct 2020 21:18:01 -0700 Subject: [PATCH 8/8] build 1.2.0 --- packages/@readymade/core/CHANGELOG.md | 6 ++ packages/@readymade/core/LICENSE.txt | 2 +- packages/@readymade/core/README.md | 2 +- packages/@readymade/core/bundles/core.js | 65 +++++++++---------- packages/@readymade/core/bundles/core.min.js | 2 +- packages/@readymade/core/fesm2015/core.js | 65 +++++++++---------- packages/@readymade/core/fesm2015/core.min.js | 2 +- .../modules/core/decorator/decorator.d.ts | 2 + .../modules/core/element/src/compile.d.ts | 18 ++++- packages/@readymade/core/package.json | 2 +- 10 files changed, 91 insertions(+), 75 deletions(-) diff --git a/packages/@readymade/core/CHANGELOG.md b/packages/@readymade/core/CHANGELOG.md index a543c4c..e863972 100644 --- a/packages/@readymade/core/CHANGELOG.md +++ b/packages/@readymade/core/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## 1.2.0 + +- FIX performance improvements +- REMOVE check for `no-attr` attribute, make check automatic for non applicable attributes during change detection + + ## 1.1.2 - FIX automatic call to `customElements.define` should be opt out diff --git a/packages/@readymade/core/LICENSE.txt b/packages/@readymade/core/LICENSE.txt index 7fa961b..5aea9f8 100644 --- a/packages/@readymade/core/LICENSE.txt +++ b/packages/@readymade/core/LICENSE.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 Steve Belovarich +Copyright (c) 2020 Steve Belovarich Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/packages/@readymade/core/README.md b/packages/@readymade/core/README.md index e34f2e6..4f581ce 100644 --- a/packages/@readymade/core/README.md +++ b/packages/@readymade/core/README.md @@ -56,7 +56,7 @@ In a template somewhere... ``` -Wa la! A Custom Element that retains all the behaviors of a button, yet extends button to do other things. In this nieve implementation all that is changed is the style of the button. Creating a customized built in element like this will retain all the behaviors of the element that is extended. +Voilà! A Custom Element that retains all the behaviors of a button, yet extends button to do other things. In this nieve implementation all that is changed is the style of the button. Creating a customized built in element like this will retain all the behaviors of the element that is extended. ### Single Interface ☕️ diff --git a/packages/@readymade/core/bundles/core.js b/packages/@readymade/core/bundles/core.js index ca466cb..b84671c 100644 --- a/packages/@readymade/core/bundles/core.js +++ b/packages/@readymade/core/bundles/core.js @@ -82,8 +82,14 @@ function attachStyle(instance, options) { } } +const STRING_VALUE_REGEX = /\[(\w+)\]/g; +const STRING_DOT_REGEX = /^\./; const TEMPLATE_BIND_REGEX = /\{\{(\s*)(.*?)(\s*)\}\}/g; +const BRACKET_START_REGEX = new RegExp(`\\[`, 'gi'); +const BRACKET_END_REGEX = new RegExp(`\\]`, 'gi'); const BIND_SUFFIX = ' __state'; +const NODE_KEY = 'node' + BIND_SUFFIX; +const HANDLER_KEY = 'handler' + BIND_SUFFIX; const isObject = function (val) { if (val === null) { return false; @@ -91,8 +97,8 @@ const isObject = function (val) { return ((typeof val === 'function') || (typeof val === 'object')); }; const findValueByString = function (o, s) { - s = s.replace(/\[(\w+)\]/g, '.$1'); - s = s.replace(/^\./, ''); + s = s.replace(STRING_VALUE_REGEX, '.$1'); + s = s.replace(STRING_DOT_REGEX, ''); const a = s.split('.'); for (let i = 0, n = a.length; i < n; ++i) { const k = a[i]; @@ -137,7 +143,6 @@ class NodeTree { this.$parent = parentNode; this.$flatMap = {}; this.$parentId = templateId(); - this.create(); } setNode(node, key, value) { const id = this.$parentId + '-' + uuidv4().slice(0, 6); @@ -159,19 +164,18 @@ class NodeTree { this.updateNode(node, key, value); } } + node.$init = true; } changeNode(node, key, value) { - const bracketStartRegex = new RegExp(`\\[`, 'gi'); - const bracketEndRegex = new RegExp('\\]', 'gi'); - key = key.replace(bracketStartRegex, `\\[`); - key = key.replace(bracketEndRegex, `\\]`); + key = key.replace(BRACKET_START_REGEX, `\\[`); + key = key.replace(BRACKET_END_REGEX, `\\]`); const regex = new RegExp(`\{\{(\s*)(${key})(\s*)\}\}`, 'gi'); const attrId = this.getElementByAttribute(node)[0].nodeName || this.getElementByAttribute(node)[0].name; const protoNode = this.$flatMap[attrId].node; if (protoNode.textContent.match(regex)) { node.textContent = protoNode.textContent.replace(regex, value); } - if (protoNode.hasAttribute('no-attr')) { + if (protoNode.attributes.length === 1) { return; } let attr; @@ -224,24 +228,20 @@ class NodeTree { this.changeNode(node, key, value); } } - create() { - const walk = document.createTreeWalker(this.$parent, NodeFilter.SHOW_ELEMENT, { acceptNode(node) { return NodeFilter.FILTER_ACCEPT; } }, false); - while (walk.nextNode()) { - this.setNode(walk.currentNode); - } - } getElementByAttribute(node) { if (!node.attributes) { return []; } - return Array.from(node.attributes).filter((attr) => { - return /[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(attr.nodeName || attr.name); - }); + for (let i = 0; i < node.attributes.length; i++) { + if (/[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(node.attributes[i].nodeName || node.attributes[i].name)) { + return [node.attributes[i]]; + } + } } update(key, value) { const walk = document.createTreeWalker(this.$parent, NodeFilter.SHOW_ELEMENT, { acceptNode(node) { return NodeFilter.FILTER_ACCEPT; } }, false); while (walk.nextNode()) { - if (this.getElementByAttribute(walk.currentNode).length > 0) { + if (walk.currentNode.$init === true) { this.updateNode(walk.currentNode, key, value); } else { @@ -285,7 +285,7 @@ class BoundHandler { else { target[key] = value; } - this.$parent.$$state['node' + BIND_SUFFIX].update(key, target[key]); + this.$parent.$$state[NODE_KEY].update(key, target[key]); if (target.onStateChange) { target.onStateChange(change); } @@ -351,6 +351,8 @@ function getElementIndex(el) { return getSiblings(el).indexOf(el); } +const EMIT_KEY = '$emit'; +const LISTEN_KEY = '$listen'; const html = (...args) => { return args; }; @@ -386,14 +388,9 @@ function State(property) { return function decorator(target, key, descriptor) { function bindState() { this.$$state = this[key](); - this.$$state['handler' + BIND_SUFFIX] = new BoundHandler(this); - this.$$state['node' + BIND_SUFFIX] = new BoundNode(this.shadowRoot ? this.shadowRoot : this); - this.$state = new Proxy(this, this.$$state['handler' + BIND_SUFFIX]); - for (const prop in this.$$state) { - if (this.$$state[prop] && !prop.includes('__state')) { - this.$state[prop] = this.$$state[prop]; - } - } + this.$$state[HANDLER_KEY] = new BoundHandler(this); + this.$$state[NODE_KEY] = new BoundNode(this.shadowRoot ? this.shadowRoot : this); + this.$state = Object.assign(new Proxy(this, this.$$state[HANDLER_KEY]), this[key]()); } target.bindState = function onBind() { bindState.call(this); @@ -405,10 +402,10 @@ function Emitter(eventName, options, channelName) { const channel = channelName ? channelName : 'default'; let prop = ''; if (eventName) { - prop = '$emit' + channel + eventName; + prop = EMIT_KEY + channel + eventName; } else { - prop = '$emit' + channel; + prop = EMIT_KEY + channel; } function addEvent(name, chan) { if (!this.emitter) { @@ -423,7 +420,7 @@ function Emitter(eventName, options, channelName) { } function bindEmitters() { for (const property in this) { - if (property.includes('$emit')) { + if (property.includes(EMIT_KEY)) { this[property].call(this); } } @@ -443,10 +440,10 @@ function Listen(eventName, channelName) { const symbolHandler = Symbol(key); let prop = ''; if (channelName) { - prop = '$listen' + eventName + channelName; + prop = LISTEN_KEY + eventName + channelName; } else { - prop = '$listen' + eventName; + prop = LISTEN_KEY + eventName; } function addListener(name, chan) { const handler = this[symbolHandler] = (...args) => { @@ -466,7 +463,7 @@ function Listen(eventName, channelName) { } function addListeners() { for (const property in this) { - if (property.includes('$listen')) { + if (property.includes(LISTEN_KEY)) { this[property].onListener.call(this); } } @@ -1494,6 +1491,7 @@ exports.DListComponent = DListComponent; exports.DataComponent = DataComponent; exports.DetailsComponent = DetailsComponent; exports.DivComponent = DivComponent; +exports.EMIT_KEY = EMIT_KEY; exports.EmbedComponent = EmbedComponent; exports.Emitter = Emitter; exports.EventDispatcher = EventDispatcher; @@ -1508,6 +1506,7 @@ exports.IFrameComponent = IFrameComponent; exports.ImageComponent = ImageComponent; exports.InputComponent = InputComponent; exports.LIComponent = LIComponent; +exports.LISTEN_KEY = LISTEN_KEY; exports.LabelComponent = LabelComponent; exports.LegendComponent = LegendComponent; exports.LinkComponent = LinkComponent; diff --git a/packages/@readymade/core/bundles/core.min.js b/packages/@readymade/core/bundles/core.min.js index 629f59d..45b4e84 100644 --- a/packages/@readymade/core/bundles/core.min.js +++ b/packages/@readymade/core/bundles/core.min.js @@ -1,2 +1,2 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class EventDispatcher{constructor(t,e){this.target=t,this.channels={default:new BroadcastChannel("default")},e&&this.setChannel(e),this.events={}}get(t){return this.events[t]}set(t,e){return this.events[t]=e,this.get(t)}emit(t){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t)}broadcast(t,e){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t);const n={bubbles:t.bubbles,cancelBubble:t.cancelBubble,cancelable:t.cancelable,defaultPrevented:t.defaultPrevented,detail:t.detail,timeStamp:t.timeStamp,type:t.type};e?this.channels[e].postMessage(n):this.channels.default.postMessage(n)}setChannel(t){this.channels[t]=new BroadcastChannel(t),this.channels[t].onmessage=e=>{for(const n in this.target.elementMeta.eventMap)n.includes(t)&&n.includes(e.data.type)&&this.target[this.target.elementMeta.eventMap[n].handler](e.data)}}removeChannel(t){this.channels[t].close(),delete this.channels[t]}}function attachShadow(t,e){const n=t.attachShadow(e||{}),s=document.createElement("template");s.innerHTML=t.template,n.appendChild(s.content.cloneNode(!0)),t.bindTemplate()}function attachDOM(t,e){const n=document.createElement("template");n.innerHTML=t.elementMeta.template,t.appendChild(n.content.cloneNode(!0)),t.bindTemplate()}function attachStyle(t,e){const n=`${t.elementMeta.selector}`;if(!document.getElementById(`${n}-x`)){const e=document.createElement("style");e.setAttribute("id",`${n}-x`),e.innerText=t.elementMeta.style,e.innerText=e.innerText.replace(/:host/gi,`[is=${n}]`),document.head.appendChild(e)}}const TEMPLATE_BIND_REGEX=/\{\{(\s*)(.*?)(\s*)\}\}/g,BIND_SUFFIX=" __state",isObject=function(t){return null!==t&&("function"==typeof t||"object"==typeof t)},findValueByString=function(t,e){const n=(e=(e=e.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");for(let e=0,s=n.length;eNodeFilter.FILTER_ACCEPT},!1);for(;t.nextNode();)this.setNode(t.currentNode)}getElementByAttribute(t){return t.attributes?Array.from(t.attributes).filter(t=>/[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(t.nodeName||t.name)):[]}update(t,e){const n=document.createTreeWalker(this.$parent,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>NodeFilter.FILTER_ACCEPT},!1);for(;n.nextNode();)this.getElementByAttribute(n.currentNode).length>0?this.updateNode(n.currentNode,t,e):this.setNode(n.currentNode,t,e);return this.$parent}}class BoundNode{constructor(t){this.$parent=t,this.$tree=new NodeTree(this.$parent)}update(t,e){this.$tree.update(t,e),this.$parent.onUpdate&&this.$parent.onUpdate()}}class BoundHandler{constructor(t){this.$parent=t}set(t,e,n){const s=new RegExp(TEMPLATE_BIND_REGEX).exec(n),i=!(!s||!s[2])&&s[2],o={[e]:{previousValue:t[e],newValue:n}};return i&&t.parentNode&&t.parentNode.host&&"open"===t.parentNode.mode?t[e]=findValueByString(t.parentNode.host,i):i&&t.parentNode?t[e]=findValueByString(t.parentNode,i):t[e]=n,this.$parent.$$state["node"+BIND_SUFFIX].update(e,t[e]),t.onStateChange&&t.onStateChange(o),!0}}function bindTemplate(){this.bindState&&this.bindState()}function setState(t,e){setValueByString(this.$state,t,e)}function compileTemplate(t,e){t.style||(t.style=""),t.template||(t.template=""),e.prototype.elementMeta=Object.assign(e.elementMeta?e.elementMeta:{},t),e.prototype.elementMeta.eventMap={},e.prototype.template=`${t.template}`,e.prototype.bindTemplate=bindTemplate,e.prototype.setState=setState}function getParent(t){return t.parentNode}function getChildNodes(t){const e=t||this;if(!e)return[];const n=function t(e,n=[],s=[]){e.children.length||s.push(n.concat(e));for(const i of e.children)t(i,n.concat(i),s);return s}(e,[]).reduce((t,e)=>t.concat(e),[]);return n.filter((t,e)=>n.indexOf(t)>=e)}function getSiblings(t){return Array.from(getParent(t).children).filter(t=>"TEXT"!==t.tagName&&"STYLE"!==t.tagName)}function querySelector(t){return document.querySelector(t)}function querySelectorAll(t){return Array.from(document.querySelectorAll(t))}function getElementIndex(t){return getSiblings(t).indexOf(t)}const html=(...t)=>t,css=(...t)=>t,noop=()=>{};function Component(t){if(t)return e=>(compileTemplate(t,e),void 0===t.autoDefine&&(t.autoDefine=!0),!0===t.autoDefine&&(t.selector&&!t.custom?customElements.define(t.selector,e):t.selector&&t.custom?customElements.define(t.selector,e,t.custom):customElements.define(t.selector,e)),e);console.error("Component must include ElementMeta to compile")}function State(t){return function(t,e,n){t.bindState=function(){(function(){this.$$state=this[e](),this.$$state["handler"+BIND_SUFFIX]=new BoundHandler(this),this.$$state["node"+BIND_SUFFIX]=new BoundNode(this.shadowRoot?this.shadowRoot:this),this.$state=new Proxy(this,this.$$state["handler"+BIND_SUFFIX]);for(const t in this.$$state)this.$$state[t]&&!t.includes("__state")&&(this.$state[t]=this.$$state[t])}).call(this)}}}function Emitter(t,e,n){return function(s,i,o){const r=n||"default";let h="";s[h=t?"$emit"+r+t:"$emit"+r]||(s[h]=function(){(function(t,n){this.emitter||(this.emitter=new EventDispatcher(this,n)),t&&this.emitter.set(t,new CustomEvent(t,e||{})),n&&!this.emitter.channels[n]&&this.emitter.setChannel(n)}).call(this,t,n)}),s.bindEmitters=function(){(function(){for(const t in this)t.includes("$emit")&&this[t].call(this)}).call(this)}}}function Listen(t,e){return function(n,s,i){const o=Symbol(s);let r="";n[r=e?"$listen"+t+e:"$listen"+t]||(n[r]={},n[r].onListener=function(){(function(t,e){const n=this[o]=(...t)=>{i.value.apply(this,t)};this.emitter||(this.emitter=new EventDispatcher(this,e||null)),this.elementMeta.eventMap[r]={key:t,handler:s},this.addEventListener(t,n)}).call(this,t,e)},n[r].onDestroyListener=function(){(function(){this.removeEventListener(t,this[o])}).call(this,t,e)}),n.bindListeners=function(){(function(){for(const t in this)t.includes("$listen")&&this[t].onListener.call(this)}).call(this)}}}class StructuralElement extends HTMLElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class PseudoElement extends HTMLElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class CustomElement extends HTMLElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AllCollectionComponent extends HTMLAllCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AnchorComponent extends HTMLAnchorElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AreaComponent extends HTMLAreaElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AudioComponent extends HTMLAudioElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class BRComponent extends HTMLBRElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class BodyComponent extends HTMLBodyElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ButtonComponent extends HTMLButtonElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class CanvasComponent extends HTMLCanvasElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class CollectionComponent extends HTMLCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DListComponent extends HTMLDListElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DataComponent extends HTMLDataElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DetailsComponent extends HTMLDetailsElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DivComponent extends HTMLDivElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class EmbedComponent extends HTMLEmbedElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class FieldSetComponent extends HTMLFieldSetElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class FormControlsComponent extends HTMLFormControlsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class FormComponent extends HTMLFormElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class HRComponent extends HTMLHRElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class HeadComponent extends HTMLHeadElement{constructor(){super(),this.onInit&&this.onInit()}}class HeadingComponent extends HTMLHeadingElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class HtmlComponent extends HTMLHtmlElement{constructor(){super(),this.onInit&&this.onInit()}}class IFrameComponent extends HTMLIFrameElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ImageComponent extends HTMLImageElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class InputComponent extends HTMLInputElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LIComponent extends HTMLLIElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LabelComponent extends HTMLLabelElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LegendComponent extends HTMLLegendElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LinkComponent extends HTMLLinkElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MapComponent extends HTMLMapElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MediaComponent extends HTMLMediaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MenuComponent extends HTMLMenuElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MetaComponent extends HTMLMetaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MeterComponent extends HTMLMeterElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ModComponent extends HTMLModElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OListComponent extends HTMLOListElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ObjectComponent extends HTMLObjectElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OptGroupComponent extends HTMLOptGroupElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OptionComponent extends HTMLOptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OptionsCollectionComponent extends HTMLOptionsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OutputComponent extends HTMLOutputElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ParagraphComponent extends HTMLParagraphElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ParamComponent extends HTMLParamElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class PictureComponent extends HTMLPictureElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class PreComponent extends HTMLPreElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ProgressComponent extends HTMLProgressElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class QuoteComponent extends HTMLQuoteElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ScriptComponent extends HTMLScriptElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SelectComponent extends HTMLSelectElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SlotComponent extends HTMLSlotElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SourceComponent extends HTMLSourceElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SpanComponent extends HTMLSpanElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class StyleComponent extends HTMLStyleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableCaptionComponent extends HTMLTableCaptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableCellComponent extends HTMLTableCellElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableColComponent extends HTMLTableColElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableComponent extends HTMLTableElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableRowComponent extends HTMLTableRowElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableSectionComponent extends HTMLTableSectionElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TemplateComponent extends HTMLTemplateElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TimeComponent extends HTMLTimeElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TitleComponent extends HTMLTitleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TrackComponent extends HTMLTrackElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class UListComponent extends HTMLUListElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class UnknownComponent extends HTMLUnknownElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class VideoComponent extends HTMLVideoElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}exports.AllCollectionComponent=AllCollectionComponent,exports.AnchorComponent=AnchorComponent,exports.AreaComponent=AreaComponent,exports.AudioComponent=AudioComponent,exports.BRComponent=BRComponent,exports.BodyComponent=BodyComponent,exports.ButtonComponent=ButtonComponent,exports.CanvasComponent=CanvasComponent,exports.CollectionComponent=CollectionComponent,exports.Component=Component,exports.CustomElement=CustomElement,exports.DListComponent=DListComponent,exports.DataComponent=DataComponent,exports.DetailsComponent=DetailsComponent,exports.DivComponent=DivComponent,exports.EmbedComponent=EmbedComponent,exports.Emitter=Emitter,exports.EventDispatcher=EventDispatcher,exports.FieldSetComponent=FieldSetComponent,exports.FormComponent=FormComponent,exports.FormControlsComponent=FormControlsComponent,exports.HRComponent=HRComponent,exports.HeadComponent=HeadComponent,exports.HeadingComponent=HeadingComponent,exports.HtmlComponent=HtmlComponent,exports.IFrameComponent=IFrameComponent,exports.ImageComponent=ImageComponent,exports.InputComponent=InputComponent,exports.LIComponent=LIComponent,exports.LabelComponent=LabelComponent,exports.LegendComponent=LegendComponent,exports.LinkComponent=LinkComponent,exports.Listen=Listen,exports.MapComponent=MapComponent,exports.MediaComponent=MediaComponent,exports.MenuComponent=MenuComponent,exports.MetaComponent=MetaComponent,exports.MeterComponent=MeterComponent,exports.ModComponent=ModComponent,exports.OListComponent=OListComponent,exports.ObjectComponent=ObjectComponent,exports.OptGroupComponent=OptGroupComponent,exports.OptionComponent=OptionComponent,exports.OptionsCollectionComponent=OptionsCollectionComponent,exports.OutputComponent=OutputComponent,exports.ParagraphComponent=ParagraphComponent,exports.ParamComponent=ParamComponent,exports.PictureComponent=PictureComponent,exports.PreComponent=PreComponent,exports.ProgressComponent=ProgressComponent,exports.PseudoElement=PseudoElement,exports.QuoteComponent=QuoteComponent,exports.ScriptComponent=ScriptComponent,exports.SelectComponent=SelectComponent,exports.SlotComponent=SlotComponent,exports.SourceComponent=SourceComponent,exports.SpanComponent=SpanComponent,exports.State=State,exports.StructuralElement=StructuralElement,exports.StyleComponent=StyleComponent,exports.TableCaptionComponent=TableCaptionComponent,exports.TableCellComponent=TableCellComponent,exports.TableColComponent=TableColComponent,exports.TableComponent=TableComponent,exports.TableRowComponent=TableRowComponent,exports.TableSectionComponent=TableSectionComponent,exports.TemplateComponent=TemplateComponent,exports.TimeComponent=TimeComponent,exports.TitleComponent=TitleComponent,exports.TrackComponent=TrackComponent,exports.UListComponent=UListComponent,exports.UnknownComponent=UnknownComponent,exports.VideoComponent=VideoComponent,exports.attachDOM=attachDOM,exports.attachShadow=attachShadow,exports.attachStyle=attachStyle,exports.bindTemplate=bindTemplate,exports.compileTemplate=compileTemplate,exports.css=css,exports.getChildNodes=getChildNodes,exports.getElementIndex=getElementIndex,exports.getParent=getParent,exports.getSiblings=getSiblings,exports.html=html,exports.noop=noop,exports.querySelector=querySelector,exports.querySelectorAll=querySelectorAll; +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class EventDispatcher{constructor(t,e){this.target=t,this.channels={default:new BroadcastChannel("default")},e&&this.setChannel(e),this.events={}}get(t){return this.events[t]}set(t,e){return this.events[t]=e,this.get(t)}emit(t){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t)}broadcast(t,e){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t);const n={bubbles:t.bubbles,cancelBubble:t.cancelBubble,cancelable:t.cancelable,defaultPrevented:t.defaultPrevented,detail:t.detail,timeStamp:t.timeStamp,type:t.type};e?this.channels[e].postMessage(n):this.channels.default.postMessage(n)}setChannel(t){this.channels[t]=new BroadcastChannel(t),this.channels[t].onmessage=e=>{for(const n in this.target.elementMeta.eventMap)n.includes(t)&&n.includes(e.data.type)&&this.target[this.target.elementMeta.eventMap[n].handler](e.data)}}removeChannel(t){this.channels[t].close(),delete this.channels[t]}}function attachShadow(t,e){const n=t.attachShadow(e||{}),s=document.createElement("template");s.innerHTML=t.template,n.appendChild(s.content.cloneNode(!0)),t.bindTemplate()}function attachDOM(t,e){const n=document.createElement("template");n.innerHTML=t.elementMeta.template,t.appendChild(n.content.cloneNode(!0)),t.bindTemplate()}function attachStyle(t,e){const n=`${t.elementMeta.selector}`;if(!document.getElementById(`${n}-x`)){const e=document.createElement("style");e.setAttribute("id",`${n}-x`),e.innerText=t.elementMeta.style,e.innerText=e.innerText.replace(/:host/gi,`[is=${n}]`),document.head.appendChild(e)}}const STRING_VALUE_REGEX=/\[(\w+)\]/g,STRING_DOT_REGEX=/^\./,TEMPLATE_BIND_REGEX=/\{\{(\s*)(.*?)(\s*)\}\}/g,BRACKET_START_REGEX=new RegExp("\\[","gi"),BRACKET_END_REGEX=new RegExp("\\]","gi"),BIND_SUFFIX=" __state",NODE_KEY="node __state",HANDLER_KEY="handler __state",isObject=function(t){return null!==t&&("function"==typeof t||"object"==typeof t)},findValueByString=function(t,e){const n=(e=(e=e.replace(STRING_VALUE_REGEX,".$1")).replace(STRING_DOT_REGEX,"")).split(".");for(let e=0,s=n.length;eNodeFilter.FILTER_ACCEPT},!1);for(;n.nextNode();)!0===n.currentNode.$init?this.updateNode(n.currentNode,t,e):this.setNode(n.currentNode,t,e);return this.$parent}}class BoundNode{constructor(t){this.$parent=t,this.$tree=new NodeTree(this.$parent)}update(t,e){this.$tree.update(t,e),this.$parent.onUpdate&&this.$parent.onUpdate()}}class BoundHandler{constructor(t){this.$parent=t}set(t,e,n){const s=new RegExp(TEMPLATE_BIND_REGEX).exec(n),i=!(!s||!s[2])&&s[2],o={[e]:{previousValue:t[e],newValue:n}};return i&&t.parentNode&&t.parentNode.host&&"open"===t.parentNode.mode?t[e]=findValueByString(t.parentNode.host,i):i&&t.parentNode?t[e]=findValueByString(t.parentNode,i):t[e]=n,this.$parent.$$state[NODE_KEY].update(e,t[e]),t.onStateChange&&t.onStateChange(o),!0}}function bindTemplate(){this.bindState&&this.bindState()}function setState(t,e){setValueByString(this.$state,t,e)}function compileTemplate(t,e){t.style||(t.style=""),t.template||(t.template=""),e.prototype.elementMeta=Object.assign(e.elementMeta?e.elementMeta:{},t),e.prototype.elementMeta.eventMap={},e.prototype.template=`${t.template}`,e.prototype.bindTemplate=bindTemplate,e.prototype.setState=setState}function getParent(t){return t.parentNode}function getChildNodes(t){const e=t||this;if(!e)return[];const n=function t(e,n=[],s=[]){e.children.length||s.push(n.concat(e));for(const i of e.children)t(i,n.concat(i),s);return s}(e,[]).reduce((t,e)=>t.concat(e),[]);return n.filter((t,e)=>n.indexOf(t)>=e)}function getSiblings(t){return Array.from(getParent(t).children).filter(t=>"TEXT"!==t.tagName&&"STYLE"!==t.tagName)}function querySelector(t){return document.querySelector(t)}function querySelectorAll(t){return Array.from(document.querySelectorAll(t))}function getElementIndex(t){return getSiblings(t).indexOf(t)}const EMIT_KEY="$emit",LISTEN_KEY="$listen",html=(...t)=>t,css=(...t)=>t,noop=()=>{};function Component(t){if(t)return e=>(compileTemplate(t,e),void 0===t.autoDefine&&(t.autoDefine=!0),!0===t.autoDefine&&(t.selector&&!t.custom?customElements.define(t.selector,e):t.selector&&t.custom?customElements.define(t.selector,e,t.custom):customElements.define(t.selector,e)),e);console.error("Component must include ElementMeta to compile")}function State(t){return function(t,e,n){t.bindState=function(){(function(){this.$$state=this[e](),this.$$state[HANDLER_KEY]=new BoundHandler(this),this.$$state[NODE_KEY]=new BoundNode(this.shadowRoot?this.shadowRoot:this),this.$state=Object.assign(new Proxy(this,this.$$state[HANDLER_KEY]),this[e]())}).call(this)}}}function Emitter(t,e,n){return function(s,i,o){const r=n||"default";let h="";s[h=t?EMIT_KEY+r+t:EMIT_KEY+r]||(s[h]=function(){(function(t,n){this.emitter||(this.emitter=new EventDispatcher(this,n)),t&&this.emitter.set(t,new CustomEvent(t,e||{})),n&&!this.emitter.channels[n]&&this.emitter.setChannel(n)}).call(this,t,n)}),s.bindEmitters=function(){(function(){for(const t in this)t.includes(EMIT_KEY)&&this[t].call(this)}).call(this)}}}function Listen(t,e){return function(n,s,i){const o=Symbol(s);let r="";n[r=e?LISTEN_KEY+t+e:LISTEN_KEY+t]||(n[r]={},n[r].onListener=function(){(function(t,e){const n=this[o]=(...t)=>{i.value.apply(this,t)};this.emitter||(this.emitter=new EventDispatcher(this,e||null)),this.elementMeta.eventMap[r]={key:t,handler:s},this.addEventListener(t,n)}).call(this,t,e)},n[r].onDestroyListener=function(){(function(){this.removeEventListener(t,this[o])}).call(this,t,e)}),n.bindListeners=function(){(function(){for(const t in this)t.includes(LISTEN_KEY)&&this[t].onListener.call(this)}).call(this)}}}class StructuralElement extends HTMLElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class PseudoElement extends HTMLElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class CustomElement extends HTMLElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AllCollectionComponent extends HTMLAllCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AnchorComponent extends HTMLAnchorElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AreaComponent extends HTMLAreaElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class AudioComponent extends HTMLAudioElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class BRComponent extends HTMLBRElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class BodyComponent extends HTMLBodyElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ButtonComponent extends HTMLButtonElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class CanvasComponent extends HTMLCanvasElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class CollectionComponent extends HTMLCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DListComponent extends HTMLDListElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DataComponent extends HTMLDataElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DetailsComponent extends HTMLDetailsElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class DivComponent extends HTMLDivElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class EmbedComponent extends HTMLEmbedElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class FieldSetComponent extends HTMLFieldSetElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class FormControlsComponent extends HTMLFormControlsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class FormComponent extends HTMLFormElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class HRComponent extends HTMLHRElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class HeadComponent extends HTMLHeadElement{constructor(){super(),this.onInit&&this.onInit()}}class HeadingComponent extends HTMLHeadingElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class HtmlComponent extends HTMLHtmlElement{constructor(){super(),this.onInit&&this.onInit()}}class IFrameComponent extends HTMLIFrameElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ImageComponent extends HTMLImageElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class InputComponent extends HTMLInputElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LIComponent extends HTMLLIElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LabelComponent extends HTMLLabelElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LegendComponent extends HTMLLegendElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class LinkComponent extends HTMLLinkElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MapComponent extends HTMLMapElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MediaComponent extends HTMLMediaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MenuComponent extends HTMLMenuElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MetaComponent extends HTMLMetaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class MeterComponent extends HTMLMeterElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ModComponent extends HTMLModElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OListComponent extends HTMLOListElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ObjectComponent extends HTMLObjectElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OptGroupComponent extends HTMLOptGroupElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OptionComponent extends HTMLOptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OptionsCollectionComponent extends HTMLOptionsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class OutputComponent extends HTMLOutputElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ParagraphComponent extends HTMLParagraphElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ParamComponent extends HTMLParamElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class PictureComponent extends HTMLPictureElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class PreComponent extends HTMLPreElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ProgressComponent extends HTMLProgressElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class QuoteComponent extends HTMLQuoteElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ScriptComponent extends HTMLScriptElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SelectComponent extends HTMLSelectElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SlotComponent extends HTMLSlotElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SourceComponent extends HTMLSourceElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class SpanComponent extends HTMLSpanElement{constructor(){super(),attachShadow(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class StyleComponent extends HTMLStyleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableCaptionComponent extends HTMLTableCaptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableCellComponent extends HTMLTableCellElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableColComponent extends HTMLTableColElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableComponent extends HTMLTableElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableRowComponent extends HTMLTableRowElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TableSectionComponent extends HTMLTableSectionElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TemplateComponent extends HTMLTemplateElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TimeComponent extends HTMLTimeElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TitleComponent extends HTMLTitleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class TrackComponent extends HTMLTrackElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class UListComponent extends HTMLUListElement{constructor(){super(),attachDOM(this),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class UnknownComponent extends HTMLUnknownElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class VideoComponent extends HTMLVideoElement{constructor(){super(),attachStyle(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}exports.AllCollectionComponent=AllCollectionComponent,exports.AnchorComponent=AnchorComponent,exports.AreaComponent=AreaComponent,exports.AudioComponent=AudioComponent,exports.BRComponent=BRComponent,exports.BodyComponent=BodyComponent,exports.ButtonComponent=ButtonComponent,exports.CanvasComponent=CanvasComponent,exports.CollectionComponent=CollectionComponent,exports.Component=Component,exports.CustomElement=CustomElement,exports.DListComponent=DListComponent,exports.DataComponent=DataComponent,exports.DetailsComponent=DetailsComponent,exports.DivComponent=DivComponent,exports.EMIT_KEY=EMIT_KEY,exports.EmbedComponent=EmbedComponent,exports.Emitter=Emitter,exports.EventDispatcher=EventDispatcher,exports.FieldSetComponent=FieldSetComponent,exports.FormComponent=FormComponent,exports.FormControlsComponent=FormControlsComponent,exports.HRComponent=HRComponent,exports.HeadComponent=HeadComponent,exports.HeadingComponent=HeadingComponent,exports.HtmlComponent=HtmlComponent,exports.IFrameComponent=IFrameComponent,exports.ImageComponent=ImageComponent,exports.InputComponent=InputComponent,exports.LIComponent=LIComponent,exports.LISTEN_KEY=LISTEN_KEY,exports.LabelComponent=LabelComponent,exports.LegendComponent=LegendComponent,exports.LinkComponent=LinkComponent,exports.Listen=Listen,exports.MapComponent=MapComponent,exports.MediaComponent=MediaComponent,exports.MenuComponent=MenuComponent,exports.MetaComponent=MetaComponent,exports.MeterComponent=MeterComponent,exports.ModComponent=ModComponent,exports.OListComponent=OListComponent,exports.ObjectComponent=ObjectComponent,exports.OptGroupComponent=OptGroupComponent,exports.OptionComponent=OptionComponent,exports.OptionsCollectionComponent=OptionsCollectionComponent,exports.OutputComponent=OutputComponent,exports.ParagraphComponent=ParagraphComponent,exports.ParamComponent=ParamComponent,exports.PictureComponent=PictureComponent,exports.PreComponent=PreComponent,exports.ProgressComponent=ProgressComponent,exports.PseudoElement=PseudoElement,exports.QuoteComponent=QuoteComponent,exports.ScriptComponent=ScriptComponent,exports.SelectComponent=SelectComponent,exports.SlotComponent=SlotComponent,exports.SourceComponent=SourceComponent,exports.SpanComponent=SpanComponent,exports.State=State,exports.StructuralElement=StructuralElement,exports.StyleComponent=StyleComponent,exports.TableCaptionComponent=TableCaptionComponent,exports.TableCellComponent=TableCellComponent,exports.TableColComponent=TableColComponent,exports.TableComponent=TableComponent,exports.TableRowComponent=TableRowComponent,exports.TableSectionComponent=TableSectionComponent,exports.TemplateComponent=TemplateComponent,exports.TimeComponent=TimeComponent,exports.TitleComponent=TitleComponent,exports.TrackComponent=TrackComponent,exports.UListComponent=UListComponent,exports.UnknownComponent=UnknownComponent,exports.VideoComponent=VideoComponent,exports.attachDOM=attachDOM,exports.attachShadow=attachShadow,exports.attachStyle=attachStyle,exports.bindTemplate=bindTemplate,exports.compileTemplate=compileTemplate,exports.css=css,exports.getChildNodes=getChildNodes,exports.getElementIndex=getElementIndex,exports.getParent=getParent,exports.getSiblings=getSiblings,exports.html=html,exports.noop=noop,exports.querySelector=querySelector,exports.querySelectorAll=querySelectorAll; //# sourceMappingURL=core.min.js.map diff --git a/packages/@readymade/core/fesm2015/core.js b/packages/@readymade/core/fesm2015/core.js index 6b89c59..34778fe 100644 --- a/packages/@readymade/core/fesm2015/core.js +++ b/packages/@readymade/core/fesm2015/core.js @@ -78,8 +78,14 @@ function attachStyle(instance, options) { } } +const STRING_VALUE_REGEX = /\[(\w+)\]/g; +const STRING_DOT_REGEX = /^\./; const TEMPLATE_BIND_REGEX = /\{\{(\s*)(.*?)(\s*)\}\}/g; +const BRACKET_START_REGEX = new RegExp(`\\[`, 'gi'); +const BRACKET_END_REGEX = new RegExp(`\\]`, 'gi'); const BIND_SUFFIX = ' __state'; +const NODE_KEY = 'node' + BIND_SUFFIX; +const HANDLER_KEY = 'handler' + BIND_SUFFIX; const isObject = function (val) { if (val === null) { return false; @@ -87,8 +93,8 @@ const isObject = function (val) { return ((typeof val === 'function') || (typeof val === 'object')); }; const findValueByString = function (o, s) { - s = s.replace(/\[(\w+)\]/g, '.$1'); - s = s.replace(/^\./, ''); + s = s.replace(STRING_VALUE_REGEX, '.$1'); + s = s.replace(STRING_DOT_REGEX, ''); const a = s.split('.'); for (let i = 0, n = a.length; i < n; ++i) { const k = a[i]; @@ -133,7 +139,6 @@ class NodeTree { this.$parent = parentNode; this.$flatMap = {}; this.$parentId = templateId(); - this.create(); } setNode(node, key, value) { const id = this.$parentId + '-' + uuidv4().slice(0, 6); @@ -155,19 +160,18 @@ class NodeTree { this.updateNode(node, key, value); } } + node.$init = true; } changeNode(node, key, value) { - const bracketStartRegex = new RegExp(`\\[`, 'gi'); - const bracketEndRegex = new RegExp('\\]', 'gi'); - key = key.replace(bracketStartRegex, `\\[`); - key = key.replace(bracketEndRegex, `\\]`); + key = key.replace(BRACKET_START_REGEX, `\\[`); + key = key.replace(BRACKET_END_REGEX, `\\]`); const regex = new RegExp(`\{\{(\s*)(${key})(\s*)\}\}`, 'gi'); const attrId = this.getElementByAttribute(node)[0].nodeName || this.getElementByAttribute(node)[0].name; const protoNode = this.$flatMap[attrId].node; if (protoNode.textContent.match(regex)) { node.textContent = protoNode.textContent.replace(regex, value); } - if (protoNode.hasAttribute('no-attr')) { + if (protoNode.attributes.length === 1) { return; } let attr; @@ -220,24 +224,20 @@ class NodeTree { this.changeNode(node, key, value); } } - create() { - const walk = document.createTreeWalker(this.$parent, NodeFilter.SHOW_ELEMENT, { acceptNode(node) { return NodeFilter.FILTER_ACCEPT; } }, false); - while (walk.nextNode()) { - this.setNode(walk.currentNode); - } - } getElementByAttribute(node) { if (!node.attributes) { return []; } - return Array.from(node.attributes).filter((attr) => { - return /[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(attr.nodeName || attr.name); - }); + for (let i = 0; i < node.attributes.length; i++) { + if (/[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(node.attributes[i].nodeName || node.attributes[i].name)) { + return [node.attributes[i]]; + } + } } update(key, value) { const walk = document.createTreeWalker(this.$parent, NodeFilter.SHOW_ELEMENT, { acceptNode(node) { return NodeFilter.FILTER_ACCEPT; } }, false); while (walk.nextNode()) { - if (this.getElementByAttribute(walk.currentNode).length > 0) { + if (walk.currentNode.$init === true) { this.updateNode(walk.currentNode, key, value); } else { @@ -281,7 +281,7 @@ class BoundHandler { else { target[key] = value; } - this.$parent.$$state['node' + BIND_SUFFIX].update(key, target[key]); + this.$parent.$$state[NODE_KEY].update(key, target[key]); if (target.onStateChange) { target.onStateChange(change); } @@ -347,6 +347,8 @@ function getElementIndex(el) { return getSiblings(el).indexOf(el); } +const EMIT_KEY = '$emit'; +const LISTEN_KEY = '$listen'; const html = (...args) => { return args; }; @@ -382,14 +384,9 @@ function State(property) { return function decorator(target, key, descriptor) { function bindState() { this.$$state = this[key](); - this.$$state['handler' + BIND_SUFFIX] = new BoundHandler(this); - this.$$state['node' + BIND_SUFFIX] = new BoundNode(this.shadowRoot ? this.shadowRoot : this); - this.$state = new Proxy(this, this.$$state['handler' + BIND_SUFFIX]); - for (const prop in this.$$state) { - if (this.$$state[prop] && !prop.includes('__state')) { - this.$state[prop] = this.$$state[prop]; - } - } + this.$$state[HANDLER_KEY] = new BoundHandler(this); + this.$$state[NODE_KEY] = new BoundNode(this.shadowRoot ? this.shadowRoot : this); + this.$state = Object.assign(new Proxy(this, this.$$state[HANDLER_KEY]), this[key]()); } target.bindState = function onBind() { bindState.call(this); @@ -401,10 +398,10 @@ function Emitter(eventName, options, channelName) { const channel = channelName ? channelName : 'default'; let prop = ''; if (eventName) { - prop = '$emit' + channel + eventName; + prop = EMIT_KEY + channel + eventName; } else { - prop = '$emit' + channel; + prop = EMIT_KEY + channel; } function addEvent(name, chan) { if (!this.emitter) { @@ -419,7 +416,7 @@ function Emitter(eventName, options, channelName) { } function bindEmitters() { for (const property in this) { - if (property.includes('$emit')) { + if (property.includes(EMIT_KEY)) { this[property].call(this); } } @@ -439,10 +436,10 @@ function Listen(eventName, channelName) { const symbolHandler = Symbol(key); let prop = ''; if (channelName) { - prop = '$listen' + eventName + channelName; + prop = LISTEN_KEY + eventName + channelName; } else { - prop = '$listen' + eventName; + prop = LISTEN_KEY + eventName; } function addListener(name, chan) { const handler = this[symbolHandler] = (...args) => { @@ -462,7 +459,7 @@ function Listen(eventName, channelName) { } function addListeners() { for (const property in this) { - if (property.includes('$listen')) { + if (property.includes(LISTEN_KEY)) { this[property].onListener.call(this); } } @@ -1475,4 +1472,4 @@ class VideoComponent extends HTMLVideoElement { } } -export { AllCollectionComponent, AnchorComponent, AreaComponent, AudioComponent, BRComponent, BodyComponent, ButtonComponent, CanvasComponent, CollectionComponent, Component, CustomElement, DListComponent, DataComponent, DetailsComponent, DivComponent, EmbedComponent, Emitter, EventDispatcher, FieldSetComponent, FormComponent, FormControlsComponent, HRComponent, HeadComponent, HeadingComponent, HtmlComponent, IFrameComponent, ImageComponent, InputComponent, LIComponent, LabelComponent, LegendComponent, LinkComponent, Listen, MapComponent, MediaComponent, MenuComponent, MetaComponent, MeterComponent, ModComponent, OListComponent, ObjectComponent, OptGroupComponent, OptionComponent, OptionsCollectionComponent, OutputComponent, ParagraphComponent, ParamComponent, PictureComponent, PreComponent, ProgressComponent, PseudoElement, QuoteComponent, ScriptComponent, SelectComponent, SlotComponent, SourceComponent, SpanComponent, State, StructuralElement, StyleComponent, TableCaptionComponent, TableCellComponent, TableColComponent, TableComponent, TableRowComponent, TableSectionComponent, TemplateComponent, TimeComponent, TitleComponent, TrackComponent, UListComponent, UnknownComponent, VideoComponent, attachDOM, attachShadow, attachStyle, bindTemplate, compileTemplate, css, getChildNodes, getElementIndex, getParent, getSiblings, html, noop, querySelector, querySelectorAll }; +export { AllCollectionComponent, AnchorComponent, AreaComponent, AudioComponent, BRComponent, BodyComponent, ButtonComponent, CanvasComponent, CollectionComponent, Component, CustomElement, DListComponent, DataComponent, DetailsComponent, DivComponent, EMIT_KEY, EmbedComponent, Emitter, EventDispatcher, FieldSetComponent, FormComponent, FormControlsComponent, HRComponent, HeadComponent, HeadingComponent, HtmlComponent, IFrameComponent, ImageComponent, InputComponent, LIComponent, LISTEN_KEY, LabelComponent, LegendComponent, LinkComponent, Listen, MapComponent, MediaComponent, MenuComponent, MetaComponent, MeterComponent, ModComponent, OListComponent, ObjectComponent, OptGroupComponent, OptionComponent, OptionsCollectionComponent, OutputComponent, ParagraphComponent, ParamComponent, PictureComponent, PreComponent, ProgressComponent, PseudoElement, QuoteComponent, ScriptComponent, SelectComponent, SlotComponent, SourceComponent, SpanComponent, State, StructuralElement, StyleComponent, TableCaptionComponent, TableCellComponent, TableColComponent, TableComponent, TableRowComponent, TableSectionComponent, TemplateComponent, TimeComponent, TitleComponent, TrackComponent, UListComponent, UnknownComponent, VideoComponent, attachDOM, attachShadow, attachStyle, bindTemplate, compileTemplate, css, getChildNodes, getElementIndex, getParent, getSiblings, html, noop, querySelector, querySelectorAll }; diff --git a/packages/@readymade/core/fesm2015/core.min.js b/packages/@readymade/core/fesm2015/core.min.js index 8ba6f48..99d5552 100644 --- a/packages/@readymade/core/fesm2015/core.min.js +++ b/packages/@readymade/core/fesm2015/core.min.js @@ -1,2 +1,2 @@ -class t{constructor(t,s){this.target=t,this.channels={default:new BroadcastChannel("default")},s&&this.setChannel(s),this.events={}}get(t){return this.events[t]}set(t,s){return this.events[t]=s,this.get(t)}emit(t){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t)}broadcast(t,s){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t);const e={bubbles:t.bubbles,cancelBubble:t.cancelBubble,cancelable:t.cancelable,defaultPrevented:t.defaultPrevented,detail:t.detail,timeStamp:t.timeStamp,type:t.type};s?this.channels[s].postMessage(e):this.channels.default.postMessage(e)}setChannel(t){this.channels[t]=new BroadcastChannel(t),this.channels[t].onmessage=s=>{for(const e in this.target.elementMeta.eventMap)e.includes(t)&&e.includes(s.data.type)&&this.target[this.target.elementMeta.eventMap[e].handler](s.data)}}removeChannel(t){this.channels[t].close(),delete this.channels[t]}}function s(t,s){const e=t.attachShadow(s||{}),i=document.createElement("template");i.innerHTML=t.template,e.appendChild(i.content.cloneNode(!0)),t.bindTemplate()}function e(t,s){const e=document.createElement("template");e.innerHTML=t.elementMeta.template,t.appendChild(e.content.cloneNode(!0)),t.bindTemplate()}function i(t,s){const e=`${t.elementMeta.selector}`;if(!document.getElementById(`${e}-x`)){const s=document.createElement("style");s.setAttribute("id",`${e}-x`),s.innerText=t.elementMeta.style,s.innerText=s.innerText.replace(/:host/gi,`[is=${e}]`),document.head.appendChild(s)}}const n=/\{\{(\s*)(.*?)(\s*)\}\}/g,r=" __state",h=function(t){return null!==t&&("function"==typeof t||"object"==typeof t)},o=function(t,s){const e=(s=(s=s.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");for(let s=0,i=e.length;sNodeFilter.FILTER_ACCEPT},!1);for(;t.nextNode();)this.setNode(t.currentNode)}getElementByAttribute(t){return t.attributes?Array.from(t.attributes).filter(t=>/[A-Za-z0-9]{3}-[A-Za-z0-9]{6}/gm.test(t.nodeName||t.name)):[]}update(t,s){const e=document.createTreeWalker(this.$parent,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>NodeFilter.FILTER_ACCEPT},!1);for(;e.nextNode();)this.getElementByAttribute(e.currentNode).length>0?this.updateNode(e.currentNode,t,s):this.setNode(e.currentNode,t,s);return this.$parent}}class c{constructor(t){this.$parent=t,this.$tree=new d(this.$parent)}update(t,s){this.$tree.update(t,s),this.$parent.onUpdate&&this.$parent.onUpdate()}}class l{constructor(t){this.$parent=t}set(t,s,e){const i=new RegExp(n).exec(e),h=!(!i||!i[2])&&i[2],d={[s]:{previousValue:t[s],newValue:e}};return h&&t.parentNode&&t.parentNode.host&&"open"===t.parentNode.mode?t[s]=o(t.parentNode.host,h):h&&t.parentNode?t[s]=o(t.parentNode,h):t[s]=e,this.$parent.$$state["node"+r].update(s,t[s]),t.onStateChange&&t.onStateChange(d),!0}}function a(){this.bindState&&this.bindState()}function b(t,s){!function(t,s,e){const i=s.split("."),n=i.length;for(let s=0;s${t.style}${t.template}`,s.prototype.bindTemplate=a,s.prototype.setState=b}function u(t){return t.parentNode}function E(t){const s=t||this;if(!s)return[];const e=function t(s,e=[],i=[]){s.children.length||i.push(e.concat(s));for(const n of s.children)t(n,e.concat(n),i);return i}(s,[]).reduce((t,s)=>t.concat(s),[]);return e.filter((t,s)=>e.indexOf(t)>=s)}function L(t){return Array.from(u(t).children).filter(t=>"TEXT"!==t.tagName&&"STYLE"!==t.tagName)}function p(t){return document.querySelector(t)}function I(t){return Array.from(document.querySelectorAll(t))}function x(t){return L(t).indexOf(t)}const M=(...t)=>t,f=(...t)=>t,T=()=>{};function H(t){if(t)return s=>(m(t,s),void 0===t.autoDefine&&(t.autoDefine=!0),!0===t.autoDefine&&(t.selector&&!t.custom?customElements.define(t.selector,s):t.selector&&t.custom?customElements.define(t.selector,s,t.custom):customElements.define(t.selector,s)),s);console.error("Component must include ElementMeta to compile")}function g(t){return function(t,s,e){t.bindState=function(){(function(){this.$$state=this[s](),this.$$state["handler"+r]=new l(this),this.$$state["node"+r]=new c(this.shadowRoot?this.shadowRoot:this),this.$state=new Proxy(this,this.$$state["handler"+r]);for(const t in this.$$state)this.$$state[t]&&!t.includes("__state")&&(this.$state[t]=this.$$state[t])}).call(this)}}}function $(s,e,i){return function(n,r,h){const o=i||"default";let d="";n[d=s?"$emit"+o+s:"$emit"+o]||(n[d]=function(){(function(s,i){this.emitter||(this.emitter=new t(this,i)),s&&this.emitter.set(s,new CustomEvent(s,e||{})),i&&!this.emitter.channels[i]&&this.emitter.setChannel(i)}).call(this,s,i)}),n.bindEmitters=function(){(function(){for(const t in this)t.includes("$emit")&&this[t].call(this)}).call(this)}}}function y(s,e){return function(i,n,r){const h=Symbol(n);let o="";i[o=e?"$listen"+s+e:"$listen"+s]||(i[o]={},i[o].onListener=function(){(function(s,e){const i=this[h]=(...t)=>{r.value.apply(this,t)};this.emitter||(this.emitter=new t(this,e||null)),this.elementMeta.eventMap[o]={key:s,handler:n},this.addEventListener(s,i)}).call(this,s,e)},i[o].onDestroyListener=function(){(function(){this.removeEventListener(s,this[h])}).call(this,s,e)}),i.bindListeners=function(){(function(){for(const t in this)t.includes("$listen")&&this[t].onListener.call(this)}).call(this)}}}class N extends HTMLElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class A extends HTMLElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class C extends HTMLElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class v extends HTMLAllCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class S extends HTMLAnchorElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class w extends HTMLAreaElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class B extends HTMLAudioElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class O extends HTMLBRElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class P extends HTMLBodyElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class R extends HTMLButtonElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class F extends HTMLCanvasElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class D extends HTMLCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class _ extends HTMLDListElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class k extends HTMLDataElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class V extends HTMLDetailsElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class j extends HTMLDivElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class U extends HTMLEmbedElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class W extends HTMLFieldSetElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class q extends HTMLFormControlsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class z extends HTMLFormElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Z extends HTMLHRElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class G extends HTMLHeadElement{constructor(){super(),this.onInit&&this.onInit()}}class Q extends HTMLHeadingElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class X extends HTMLHtmlElement{constructor(){super(),this.onInit&&this.onInit()}}class Y extends HTMLIFrameElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class J extends HTMLImageElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class K extends HTMLInputElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class tt extends HTMLLIElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class st extends HTMLLabelElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class et extends HTMLLegendElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class it extends HTMLLinkElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class nt extends HTMLMapElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class rt extends HTMLMediaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ht extends HTMLMenuElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ot extends HTMLMetaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class dt extends HTMLMeterElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ct extends HTMLModElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class lt extends HTMLOListElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class at extends HTMLObjectElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class bt extends HTMLOptGroupElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class mt extends HTMLOptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ut extends HTMLOptionsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Et extends HTMLOutputElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Lt extends HTMLParagraphElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class pt extends HTMLParamElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class It extends HTMLPictureElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class xt extends HTMLPreElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Mt extends HTMLProgressElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ft extends HTMLQuoteElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Tt extends HTMLScriptElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ht extends HTMLSelectElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class gt extends HTMLSlotElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class $t extends HTMLSourceElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class yt extends HTMLSpanElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Nt extends HTMLStyleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class At extends HTMLTableCaptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ct extends HTMLTableCellElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class vt extends HTMLTableColElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class St extends HTMLTableElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class wt extends HTMLTableRowElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Bt extends HTMLTableSectionElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ot extends HTMLTemplateElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Pt extends HTMLTimeElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Rt extends HTMLTitleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ft extends HTMLTrackElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Dt extends HTMLUListElement{constructor(){super(),e(this),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class _t extends HTMLUnknownElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class kt extends HTMLVideoElement{constructor(){super(),i(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}export{v as AllCollectionComponent,S as AnchorComponent,w as AreaComponent,B as AudioComponent,O as BRComponent,P as BodyComponent,R as ButtonComponent,F as CanvasComponent,D as CollectionComponent,H as Component,C as CustomElement,_ as DListComponent,k as DataComponent,V as DetailsComponent,j as DivComponent,U as EmbedComponent,$ as Emitter,t as EventDispatcher,W as FieldSetComponent,z as FormComponent,q as FormControlsComponent,Z as HRComponent,G as HeadComponent,Q as HeadingComponent,X as HtmlComponent,Y as IFrameComponent,J as ImageComponent,K as InputComponent,tt as LIComponent,st as LabelComponent,et as LegendComponent,it as LinkComponent,y as Listen,nt as MapComponent,rt as MediaComponent,ht as MenuComponent,ot as MetaComponent,dt as MeterComponent,ct as ModComponent,lt as OListComponent,at as ObjectComponent,bt as OptGroupComponent,mt as OptionComponent,ut as OptionsCollectionComponent,Et as OutputComponent,Lt as ParagraphComponent,pt as ParamComponent,It as PictureComponent,xt as PreComponent,Mt as ProgressComponent,A as PseudoElement,ft as QuoteComponent,Tt as ScriptComponent,Ht as SelectComponent,gt as SlotComponent,$t as SourceComponent,yt as SpanComponent,g as State,N as StructuralElement,Nt as StyleComponent,At as TableCaptionComponent,Ct as TableCellComponent,vt as TableColComponent,St as TableComponent,wt as TableRowComponent,Bt as TableSectionComponent,Ot as TemplateComponent,Pt as TimeComponent,Rt as TitleComponent,Ft as TrackComponent,Dt as UListComponent,_t as UnknownComponent,kt as VideoComponent,e as attachDOM,s as attachShadow,i as attachStyle,a as bindTemplate,m as compileTemplate,f as css,E as getChildNodes,x as getElementIndex,u as getParent,L as getSiblings,M as html,T as noop,p as querySelector,I as querySelectorAll}; +class t{constructor(t,s){this.target=t,this.channels={default:new BroadcastChannel("default")},s&&this.setChannel(s),this.events={}}get(t){return this.events[t]}set(t,s){return this.events[t]=s,this.get(t)}emit(t){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t)}broadcast(t,s){"string"==typeof t&&(t=this.events[t]),this.target.dispatchEvent(t);const i={bubbles:t.bubbles,cancelBubble:t.cancelBubble,cancelable:t.cancelable,defaultPrevented:t.defaultPrevented,detail:t.detail,timeStamp:t.timeStamp,type:t.type};s?this.channels[s].postMessage(i):this.channels.default.postMessage(i)}setChannel(t){this.channels[t]=new BroadcastChannel(t),this.channels[t].onmessage=s=>{for(const i in this.target.elementMeta.eventMap)i.includes(t)&&i.includes(s.data.type)&&this.target[this.target.elementMeta.eventMap[i].handler](s.data)}}removeChannel(t){this.channels[t].close(),delete this.channels[t]}}function s(t,s){const i=t.attachShadow(s||{}),e=document.createElement("template");e.innerHTML=t.template,i.appendChild(e.content.cloneNode(!0)),t.bindTemplate()}function i(t,s){const i=document.createElement("template");i.innerHTML=t.elementMeta.template,t.appendChild(i.content.cloneNode(!0)),t.bindTemplate()}function e(t,s){const i=`${t.elementMeta.selector}`;if(!document.getElementById(`${i}-x`)){const s=document.createElement("style");s.setAttribute("id",`${i}-x`),s.innerText=t.elementMeta.style,s.innerText=s.innerText.replace(/:host/gi,`[is=${i}]`),document.head.appendChild(s)}}const n=/\[(\w+)\]/g,r=/^\./,h=/\{\{(\s*)(.*?)(\s*)\}\}/g,o=new RegExp("\\[","gi"),d=new RegExp("\\]","gi"),c="node __state",l="handler __state",a=function(t){return null!==t&&("function"==typeof t||"object"==typeof t)},b=function(t,s){const i=(s=(s=s.replace(n,".$1")).replace(r,"")).split(".");for(let s=0,e=i.length;sNodeFilter.FILTER_ACCEPT},!1);for(;i.nextNode();)!0===i.currentNode.$init?this.updateNode(i.currentNode,t,s):this.setNode(i.currentNode,t,s);return this.$parent}}class u{constructor(t){this.$parent=t,this.$tree=new m(this.$parent)}update(t,s){this.$tree.update(t,s),this.$parent.onUpdate&&this.$parent.onUpdate()}}class E{constructor(t){this.$parent=t}set(t,s,i){const e=new RegExp(h).exec(i),n=!(!e||!e[2])&&e[2],r={[s]:{previousValue:t[s],newValue:i}};return n&&t.parentNode&&t.parentNode.host&&"open"===t.parentNode.mode?t[s]=b(t.parentNode.host,n):n&&t.parentNode?t[s]=b(t.parentNode,n):t[s]=i,this.$parent.$$state[c].update(s,t[s]),t.onStateChange&&t.onStateChange(r),!0}}function L(){this.bindState&&this.bindState()}function p(t,s){!function(t,s,i){const e=s.split("."),n=e.length;for(let s=0;s${t.style}${t.template}`,s.prototype.bindTemplate=L,s.prototype.setState=p}function x(t){return t.parentNode}function M(t){const s=t||this;if(!s)return[];const i=function t(s,i=[],e=[]){s.children.length||e.push(i.concat(s));for(const n of s.children)t(n,i.concat(n),e);return e}(s,[]).reduce((t,s)=>t.concat(s),[]);return i.filter((t,s)=>i.indexOf(t)>=s)}function f(t){return Array.from(x(t).children).filter(t=>"TEXT"!==t.tagName&&"STYLE"!==t.tagName)}function T(t){return document.querySelector(t)}function H(t){return Array.from(document.querySelectorAll(t))}function g(t){return f(t).indexOf(t)}const $="$emit",y="$listen",N=(...t)=>t,A=(...t)=>t,v=()=>{};function C(t){if(t)return s=>(I(t,s),void 0===t.autoDefine&&(t.autoDefine=!0),!0===t.autoDefine&&(t.selector&&!t.custom?customElements.define(t.selector,s):t.selector&&t.custom?customElements.define(t.selector,s,t.custom):customElements.define(t.selector,s)),s);console.error("Component must include ElementMeta to compile")}function S(t){return function(t,s,i){t.bindState=function(){(function(){this.$$state=this[s](),this.$$state[l]=new E(this),this.$$state[c]=new u(this.shadowRoot?this.shadowRoot:this),this.$state=Object.assign(new Proxy(this,this.$$state[l]),this[s]())}).call(this)}}}function w(s,i,e){return function(n,r,h){const o=e||"default";let d="";n[d=s?$+o+s:$+o]||(n[d]=function(){(function(s,e){this.emitter||(this.emitter=new t(this,e)),s&&this.emitter.set(s,new CustomEvent(s,i||{})),e&&!this.emitter.channels[e]&&this.emitter.setChannel(e)}).call(this,s,e)}),n.bindEmitters=function(){(function(){for(const t in this)t.includes($)&&this[t].call(this)}).call(this)}}}function B(s,i){return function(e,n,r){const h=Symbol(n);let o="";e[o=i?y+s+i:y+s]||(e[o]={},e[o].onListener=function(){(function(s,i){const e=this[h]=(...t)=>{r.value.apply(this,t)};this.emitter||(this.emitter=new t(this,i||null)),this.elementMeta.eventMap[o]={key:s,handler:n},this.addEventListener(s,e)}).call(this,s,i)},e[o].onDestroyListener=function(){(function(){this.removeEventListener(s,this[h])}).call(this,s,i)}),e.bindListeners=function(){(function(){for(const t in this)t.includes(y)&&this[t].onListener.call(this)}).call(this)}}}class O extends HTMLElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class P extends HTMLElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class R extends HTMLElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class D extends HTMLAllCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class F extends HTMLAnchorElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class k extends HTMLAreaElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class _ extends HTMLAudioElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class j extends HTMLBRElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class V extends HTMLBodyElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class U extends HTMLButtonElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class q extends HTMLCanvasElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class z extends HTMLCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class W extends HTMLDListElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Z extends HTMLDataElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class G extends HTMLDetailsElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Q extends HTMLDivElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class X extends HTMLEmbedElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Y extends HTMLFieldSetElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class J extends HTMLFormControlsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class K extends HTMLFormElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class tt extends HTMLHRElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class st extends HTMLHeadElement{constructor(){super(),this.onInit&&this.onInit()}}class it extends HTMLHeadingElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class et extends HTMLHtmlElement{constructor(){super(),this.onInit&&this.onInit()}}class nt extends HTMLIFrameElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class rt extends HTMLImageElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ht extends HTMLInputElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ot extends HTMLLIElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class dt extends HTMLLabelElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ct extends HTMLLegendElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class lt extends HTMLLinkElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class at extends HTMLMapElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class bt extends HTMLMediaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class mt extends HTMLMenuElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ut extends HTMLMetaElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Et extends HTMLMeterElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Lt extends HTMLModElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class pt extends HTMLOListElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class It extends HTMLObjectElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class xt extends HTMLOptGroupElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Mt extends HTMLOptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class ft extends HTMLOptionsCollection{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Tt extends HTMLOutputElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ht extends HTMLParagraphElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class gt extends HTMLParamElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class $t extends HTMLPictureElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class yt extends HTMLPreElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Nt extends HTMLProgressElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class At extends HTMLQuoteElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class vt extends HTMLScriptElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ct extends HTMLSelectElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class St extends HTMLSlotElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class wt extends HTMLSourceElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Bt extends HTMLSpanElement{constructor(){super(),s(this,{mode:"open"}),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ot extends HTMLStyleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Pt extends HTMLTableCaptionElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Rt extends HTMLTableCellElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Dt extends HTMLTableColElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ft extends HTMLTableElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class kt extends HTMLTableRowElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class _t extends HTMLTableSectionElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class jt extends HTMLTemplateElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Vt extends HTMLTimeElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Ut extends HTMLTitleElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class qt extends HTMLTrackElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class zt extends HTMLUListElement{constructor(){super(),i(this),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Wt extends HTMLUnknownElement{constructor(){super(),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}class Zt extends HTMLVideoElement{constructor(){super(),e(this),this.bindEmitters&&this.bindEmitters(),this.bindListeners&&this.bindListeners(),this.onInit&&this.onInit()}}export{D as AllCollectionComponent,F as AnchorComponent,k as AreaComponent,_ as AudioComponent,j as BRComponent,V as BodyComponent,U as ButtonComponent,q as CanvasComponent,z as CollectionComponent,C as Component,R as CustomElement,W as DListComponent,Z as DataComponent,G as DetailsComponent,Q as DivComponent,$ as EMIT_KEY,X as EmbedComponent,w as Emitter,t as EventDispatcher,Y as FieldSetComponent,K as FormComponent,J as FormControlsComponent,tt as HRComponent,st as HeadComponent,it as HeadingComponent,et as HtmlComponent,nt as IFrameComponent,rt as ImageComponent,ht as InputComponent,ot as LIComponent,y as LISTEN_KEY,dt as LabelComponent,ct as LegendComponent,lt as LinkComponent,B as Listen,at as MapComponent,bt as MediaComponent,mt as MenuComponent,ut as MetaComponent,Et as MeterComponent,Lt as ModComponent,pt as OListComponent,It as ObjectComponent,xt as OptGroupComponent,Mt as OptionComponent,ft as OptionsCollectionComponent,Tt as OutputComponent,Ht as ParagraphComponent,gt as ParamComponent,$t as PictureComponent,yt as PreComponent,Nt as ProgressComponent,P as PseudoElement,At as QuoteComponent,vt as ScriptComponent,Ct as SelectComponent,St as SlotComponent,wt as SourceComponent,Bt as SpanComponent,S as State,O as StructuralElement,Ot as StyleComponent,Pt as TableCaptionComponent,Rt as TableCellComponent,Dt as TableColComponent,Ft as TableComponent,kt as TableRowComponent,_t as TableSectionComponent,jt as TemplateComponent,Vt as TimeComponent,Ut as TitleComponent,qt as TrackComponent,zt as UListComponent,Wt as UnknownComponent,Zt as VideoComponent,i as attachDOM,s as attachShadow,e as attachStyle,L as bindTemplate,I as compileTemplate,A as css,M as getChildNodes,g as getElementIndex,x as getParent,f as getSiblings,N as html,v as noop,T as querySelector,H as querySelectorAll}; //# sourceMappingURL=core.min.js.map diff --git a/packages/@readymade/core/modules/core/decorator/decorator.d.ts b/packages/@readymade/core/modules/core/decorator/decorator.d.ts index ecb48d3..aac58ba 100644 --- a/packages/@readymade/core/modules/core/decorator/decorator.d.ts +++ b/packages/@readymade/core/modules/core/decorator/decorator.d.ts @@ -1,4 +1,6 @@ export declare type EventHandler = () => void; +export declare const EMIT_KEY = "$emit"; +export declare const LISTEN_KEY = "$listen"; interface EventMeta { key: string; handler: EventHandler; diff --git a/packages/@readymade/core/modules/core/element/src/compile.d.ts b/packages/@readymade/core/modules/core/element/src/compile.d.ts index c5b3afd..17d9e56 100644 --- a/packages/@readymade/core/modules/core/element/src/compile.d.ts +++ b/packages/@readymade/core/modules/core/element/src/compile.d.ts @@ -1,19 +1,30 @@ import { OnStateChange } from './../../component/component.js'; import { ElementMeta } from './../../decorator/decorator.js'; +export declare const STRING_VALUE_REGEX: RegExp; +export declare const STRING_DOT_REGEX: RegExp; export declare const TEMPLATE_BIND_REGEX: RegExp; +export declare const BRACKET_START_REGEX: RegExp; +export declare const BRACKET_END_REGEX: RegExp; export declare const BIND_SUFFIX = " __state"; +export declare const NODE_KEY: string; +export declare const HANDLER_KEY: string; interface Node { cloneNode(deep?: boolean): this; + $init?: boolean; } +declare const isObject: (val: any) => boolean; +declare const findValueByString: (o: any, s: string) => any; +declare function setValueByString(obj: any, path: string, value: any): void; +declare function templateId(): string; +declare function uuidv4(): string; declare class NodeTree { $parent: any; $parentId: string; $flatMap: any; - constructor(parentNode?: any); + constructor(parentNode?: Node); setNode(node: Node, key?: string, value?: any): void; changeNode(node: Node, key: string, value: any): void; updateNode(node: Node, key: string, value: any): void; - create(): void; getElementByAttribute(node: Element): Attr[]; update(key: string, value: any): any; } @@ -32,5 +43,6 @@ declare class BoundHandler { set(target: any, key: string, value: any): boolean; } declare function bindTemplate(): void; +declare function setState(prop: string, model: any): void; declare function compileTemplate(elementMeta: ElementMeta, target: any): void; -export { bindTemplate, compileTemplate, BoundHandler, BoundNode, }; +export { isObject, findValueByString, setValueByString, templateId, uuidv4, bindTemplate, compileTemplate, setState, BoundHandler, BoundNode, }; diff --git a/packages/@readymade/core/package.json b/packages/@readymade/core/package.json index 56e02ee..28a6053 100644 --- a/packages/@readymade/core/package.json +++ b/packages/@readymade/core/package.json @@ -1,6 +1,6 @@ { "name": "@readymade/core", - "version": "1.1.2", + "version": "1.2.0", "description": "JavaScript microlibrary for developing Web Components with TypeScript and Decorators", "umd": "./bundles/core.js", "main": "./fesm2015/core.js",