diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index edc7451..a5b6833 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node: [12.x, 14.x, 16.x] + node: [14.x, 16.x] steps: - name: Checkout code uses: actions/checkout@v2 @@ -28,4 +28,4 @@ jobs: - name: Run tests run: npm run ci:test - name: Report code coverage - run: npm run ci:report + uses: codecov/codecov-action@v2 diff --git a/.lintstagedrc.json b/.lintstagedrc.json index d2bbc47..1eb5950 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,5 +1,5 @@ { - "*.ts": ["eslint -f codeframe --fix", "prettier --write"], + "*.ts": ["eslint -f visualstudio --fix", "prettier --write"], "*{.js,.json,.md,.yml,rc}": ["prettier --write"], "./package.json": ["fixpack"] } diff --git a/package-lock.json b/package-lock.json index a65090b..1988ed4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,77 +11,76 @@ "dependencies": { "anymatch": "^3.1.2", "domelementtype": "^2.2.0", - "domhandler": "^4.2.2", - "htmlparser2": "^7.1.1" + "domhandler": "^4.3.0", + "htmlparser2": "^7.2.0" }, "devDependencies": { - "@commitlint/cli": "^13.1.0", - "@commitlint/config-conventional": "^13.1.0", - "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@marko/compiler": "^5.15.10", + "@commitlint/cli": "^15.0.0", + "@commitlint/config-conventional": "^15.0.0", + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@marko/compiler": "^5.17.4", "@types/mocha": "^9.0.0", - "@types/node": "^16.9.4", - "@typescript-eslint/eslint-plugin": "^4.31.1", - "@typescript-eslint/parser": "^4.31.1", - "codecov": "^3.8.3", - "esbuild": "^0.12.28", - "esbuild-register": "^3.0.0", - "eslint": "^7.32.0", + "@types/node": "^16.11.11", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "esbuild": "^0.14.2", + "esbuild-register": "^3.2.0", + "eslint": "^8.4.0", "eslint-config-prettier": "^8.3.0", "fast-glob": "^3.2.7", "fixpack": "^4.0.0", - "husky": "^7.0.2", - "lint-staged": "^11.1.2", - "marko": "^5.15.10", - "mocha": "^9.1.1", - "mocha-snap": "^4.0.2", + "husky": "^7.0.4", + "lint-staged": "^12.1.2", + "marko": "^5.17.5", + "mocha": "^9.1.3", + "mocha-snap": "^4.2.1", "nyc": "^15.1.0", - "prettier": "^2.4.1", - "semantic-release": "^18.0.0", - "typescript": "^4.4.3", - "vite": "^2.5.3" + "prettier": "^2.5.1", + "semantic-release": "^18.0.1", + "typescript": "^4.5.2", + "vite": "^2.6.14" }, "peerDependencies": { - "@marko/compiler": "^5.15.10", + "@marko/compiler": "^5.17.4", "vite": "^2.5.10" } }, "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -107,12 +106,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -133,14 +132,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.15.0", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -160,93 +159,93 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz", - "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -262,39 +261,39 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -319,26 +318,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", "dev": true, "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -418,9 +417,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", - "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -430,14 +429,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", + "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-simple-access": "^7.16.0", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -448,9 +447,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" @@ -460,32 +459,32 @@ } }, "node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -494,12 +493,12 @@ } }, "node_modules/@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -507,16 +506,16 @@ } }, "node_modules/@commitlint/cli": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-13.1.0.tgz", - "integrity": "sha512-xN/uNYWtGTva5OMSd+xA6e6/c2jk8av7MUbdd6w2cw89u6z3fAWoyiH87X0ewdSMNYmW/6B3L/2dIVGHRDID5w==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-15.0.0.tgz", + "integrity": "sha512-Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg==", "dev": true, "dependencies": { - "@commitlint/format": "^13.1.0", - "@commitlint/lint": "^13.1.0", - "@commitlint/load": "^13.1.0", - "@commitlint/read": "^13.1.0", - "@commitlint/types": "^13.1.0", + "@commitlint/format": "^15.0.0", + "@commitlint/lint": "^15.0.0", + "@commitlint/load": "^15.0.0", + "@commitlint/read": "^15.0.0", + "@commitlint/types": "^15.0.0", "lodash": "^4.17.19", "resolve-from": "5.0.0", "resolve-global": "1.0.0", @@ -530,9 +529,9 @@ } }, "node_modules/@commitlint/config-conventional": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-13.1.0.tgz", - "integrity": "sha512-zukJXqdr6jtMiVRy3tTHmwgKcUMGfqKDEskRigc5W3k2aYF4gBAtCEjMAJGZgSQE4DMcHeok0pEV2ANmTpb0cw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-15.0.0.tgz", + "integrity": "sha512-eZBRL8Lk3hMNHp1wUMYj0qrZQEsST1ai7KHR8J1IDD9aHgT7L2giciibuQ+Og7vxVhR5WtYDvh9xirXFVPaSkQ==", "dev": true, "dependencies": { "conventional-changelog-conventionalcommits": "^4.3.1" @@ -542,12 +541,12 @@ } }, "node_modules/@commitlint/ensure": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-13.1.0.tgz", - "integrity": "sha512-NRGyjOdZQnlYwm9it//BZJ2Vm+4x7G9rEnHpLCvNKYY0c6RA8Qf7hamLAB8dWO12RLuFt06JaOpHZoTt/gHutA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-15.0.0.tgz", + "integrity": "sha512-7DV4iNIald3vycwaWBNGk5FbonaNzOlU8nBe5m5AgU2dIeNKuXwLm+zzJzG27j0Ho56rgz//3F6RIvmsoxY9ZA==", "dev": true, "dependencies": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "lodash": "^4.17.19" }, "engines": { @@ -555,21 +554,21 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.0.0.tgz", - "integrity": "sha512-lBz2bJhNAgkkU/rFMAw3XBNujbxhxlaFHY3lfKB/MxpAa+pIfmWB3ig9i1VKe0wCvujk02O0WiMleNaRn2KJqw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz", + "integrity": "sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==", "dev": true, "engines": { "node": ">=v12" } }, "node_modules/@commitlint/format": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-13.1.0.tgz", - "integrity": "sha512-n46rYvzf+6Sm99TJjTLjJBkjm6JVcklt31lDO5Q+pCIV0NnJ4qIUcwa6wIL9a9Vqb1XzlMgtp27E0zyYArkvSg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-15.0.0.tgz", + "integrity": "sha512-bPhAfqwRhPk92WiuY0ktEJNpRRHSCd+Eg1MdhGyL9Bl3U25E5zvuInA+dNctnzZiOBSH/37ZaD0eOKCpQE6acg==", "dev": true, "dependencies": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "chalk": "^4.0.0" }, "engines": { @@ -577,12 +576,12 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-13.1.0.tgz", - "integrity": "sha512-P6zenLE5Tn3FTNjRzmL9+/KooTXEI0khA2TmUbuei9KiycemeO4q7Xk7w7aXwFPNAbN0O9oI7z3z7cFpzKJWmQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-15.0.0.tgz", + "integrity": "sha512-edtnkf2QZ/7e/YCJDgn1WDw9wfF1WfOitW5YEoSOb4SxjJEb/oE87kxNPZ2j8mnDMuunspcMfGHeg6fRlwaEWg==", "dev": true, "dependencies": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "semver": "7.3.5" }, "engines": { @@ -590,69 +589,71 @@ } }, "node_modules/@commitlint/lint": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-13.1.0.tgz", - "integrity": "sha512-qH9AYSQDDTaSWSdtOvB3G1RdPpcYSgddAdFYqpFewlKQ1GJj/L+sM7vwqCG7/ip6AiM04Sry1sgmFzaEoFREUA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-15.0.0.tgz", + "integrity": "sha512-hUi2+Im/2dJ5FBvWnodypTkg+5haCgsDzB0fyMApWLUA1IucYUAqRCQCW5em1Mhk9Crw1pd5YzFNikhIclkqCw==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^13.1.0", - "@commitlint/parse": "^13.1.0", - "@commitlint/rules": "^13.1.0", - "@commitlint/types": "^13.1.0" + "@commitlint/is-ignored": "^15.0.0", + "@commitlint/parse": "^15.0.0", + "@commitlint/rules": "^15.0.0", + "@commitlint/types": "^15.0.0" }, "engines": { "node": ">=v12" } }, "node_modules/@commitlint/load": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.1.0.tgz", - "integrity": "sha512-zlZbjJCWnWmBOSwTXis8H7I6pYk6JbDwOCuARA6B9Y/qt2PD+NCo0E/7EuaaFoxjHl+o56QR5QttuMBrf+BJzg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-15.0.0.tgz", + "integrity": "sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==", "dev": true, "dependencies": { - "@commitlint/execute-rule": "^13.0.0", - "@commitlint/resolve-extends": "^13.0.0", - "@commitlint/types": "^13.1.0", + "@commitlint/execute-rule": "^15.0.0", + "@commitlint/resolve-extends": "^15.0.0", + "@commitlint/types": "^15.0.0", + "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", "lodash": "^4.17.19", - "resolve-from": "^5.0.0" + "resolve-from": "^5.0.0", + "typescript": "^4.4.3" }, "engines": { "node": ">=v12" } }, "node_modules/@commitlint/message": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-13.0.0.tgz", - "integrity": "sha512-W/pxhesVEk8747BEWJ+VGQ9ILHmCV27/pEwJ0hGny1wqVquUR8SxvScRCbUjHCB1YtWX4dEnOPXOS9CLH/CX7A==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-15.0.0.tgz", + "integrity": "sha512-L8euabzboKavPuDJsdIYAY2wx97LbiGEYsckMo6NmV8pOun50c8hQx6ouXFSAx4pp+mX9yUGmMiVqfrk2LKDJQ==", "dev": true, "engines": { "node": ">=v12" } }, "node_modules/@commitlint/parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-13.1.0.tgz", - "integrity": "sha512-xFybZcqBiKVjt6vTStvQkySWEUYPI0AcO4QQELyy29o8EzYZqWkhUfrb7K61fWiHsplWL1iL6F3qCLoxSgTcrg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-15.0.0.tgz", + "integrity": "sha512-7fweM67tZfBNS7zw1KTuuT5K2u9nGytUJqFqT/1Ln3Na9cBCsoAqR47mfsNOTlRCgGwakm4xiQ7BpS2gN0OGuw==", "dev": true, "dependencies": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "conventional-changelog-angular": "^5.0.11", - "conventional-commits-parser": "^3.0.0" + "conventional-commits-parser": "^3.2.2" }, "engines": { "node": ">=v12" } }, "node_modules/@commitlint/read": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-13.1.0.tgz", - "integrity": "sha512-NrVe23GMKyL6i1yDJD8IpqCBzhzoS3wtLfDj8QBzc01Ov1cYBmDojzvBklypGb+MLJM1NbzmRM4PR5pNX0U/NQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-15.0.0.tgz", + "integrity": "sha512-5yI1o2HKZFVe7RTjL7IhuhHMKar/MDNY34vEHqqz9gMI7BK/rdP8uVb4Di1efl2V0UPnwID0nPKWESjQ8Ti0gw==", "dev": true, "dependencies": { - "@commitlint/top-level": "^13.0.0", - "@commitlint/types": "^13.1.0", + "@commitlint/top-level": "^15.0.0", + "@commitlint/types": "^15.0.0", "fs-extra": "^10.0.0", "git-raw-commits": "^2.0.0" }, @@ -661,9 +662,9 @@ } }, "node_modules/@commitlint/resolve-extends": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.0.0.tgz", - "integrity": "sha512-1SyaE+UOsYTkQlTPUOoj4NwxQhGFtYildVS/d0TJuK8a9uAJLw7bhCLH2PEeH5cC2D1do4Eqhx/3bLDrSLH3hg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz", + "integrity": "sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==", "dev": true, "dependencies": { "import-fresh": "^3.0.0", @@ -676,15 +677,15 @@ } }, "node_modules/@commitlint/rules": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-13.1.0.tgz", - "integrity": "sha512-b6F+vBqEXsHVghrhomG0Y6YJimHZqkzZ0n5QEpk03dpBXH2OnsezpTw5e+GvbyYCc7PutGbYVQkytuv+7xCxYA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-15.0.0.tgz", + "integrity": "sha512-SqXfp6QUlwBS+0IZm4FEA/NmmAwcFQIkG3B05BtemOVWXQdZ8j1vV6hDwvA9oMPCmUSrrGpHOtZK7HaHhng2yA==", "dev": true, "dependencies": { - "@commitlint/ensure": "^13.1.0", - "@commitlint/message": "^13.0.0", - "@commitlint/to-lines": "^13.0.0", - "@commitlint/types": "^13.1.0", + "@commitlint/ensure": "^15.0.0", + "@commitlint/message": "^15.0.0", + "@commitlint/to-lines": "^15.0.0", + "@commitlint/types": "^15.0.0", "execa": "^5.0.0" }, "engines": { @@ -692,18 +693,18 @@ } }, "node_modules/@commitlint/to-lines": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-13.0.0.tgz", - "integrity": "sha512-mzxWwCio1M4/kG9/69TTYqrraQ66LmtJCYTzAZdZ2eJX3I5w52pSjyP/DJzAUVmmJCYf2Kw3s+RtNVShtnZ+Rw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-15.0.0.tgz", + "integrity": "sha512-mY3MNA9ujPqVpiJjTYG9MDsYCobue5PJFO0MfcIzS1mCVvngH8ZFTPAh1fT5t+t1h876boS88+9WgqjRvbYItw==", "dev": true, "engines": { "node": ">=v12" } }, "node_modules/@commitlint/top-level": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-13.0.0.tgz", - "integrity": "sha512-baBy3MZBF28sR93yFezd4a5TdHsbXaakeladfHK9dOcGdXo9oQe3GS5hP3BmlN680D6AiQSN7QPgEJgrNUWUCg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-15.0.0.tgz", + "integrity": "sha512-7Gz3t7xcuuUw1d1Nou6YLaztzp2Em+qZ6YdCzrqYc+aquca3Vt0O696nuiBDU/oE+tls4Hx2CNpAbWhTgEwB5A==", "dev": true, "dependencies": { "find-up": "^5.0.0" @@ -713,9 +714,9 @@ } }, "node_modules/@commitlint/types": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.1.0.tgz", - "integrity": "sha512-zcVjuT+OfKt8h91vhBxt05RMcTGEx6DM7Q9QZeuMbXFk6xgbsSEDMMapbJPA1bCZ81fa/1OQBijSYPrKvtt06g==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-15.0.0.tgz", + "integrity": "sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==", "dev": true, "dependencies": { "chalk": "^4.0.0" @@ -724,53 +725,48 @@ "node": ">=v12" } }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz", - "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", + "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", "dev": true, - "peer": true, "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" }, "engines": { - "node": ">=12" + "node": ">=10.0.0" + }, + "peerDependencies": { + "cosmiconfig": ">=6" } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -782,6 +778,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -795,12 +800,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" }, @@ -809,9 +814,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -830,6 +835,28 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -843,6 +870,19 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -883,9 +923,9 @@ } }, "node_modules/@istanbuljs/nyc-config-typescript": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.1.tgz", - "integrity": "sha512-/gz6LgVpky205LuoOfwEZmnUtaSmdk0QIMcNFj9OvxhiMhPpKftMgZmGN7jNj7jR+lr8IB1Yks3QSSSNSxfoaQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.2.tgz", + "integrity": "sha512-iKGIyMoyJuFnJRSVTZ78POIRvNnwZaWIf8vG4ZS3rQq58MMDrqEX2nnzx0R28V2X8JvmKYiqY9FP2hlJsm8A0w==", "dev": true, "dependencies": { "@istanbuljs/schema": "^0.1.2" @@ -894,9 +934,7 @@ "node": ">=8" }, "peerDependencies": { - "nyc": ">=15", - "source-map-support": "*", - "ts-node": "*" + "nyc": ">=15" } }, "node_modules/@istanbuljs/schema": { @@ -909,34 +947,34 @@ } }, "node_modules/@marko/babel-utils": { - "version": "5.15.9", - "resolved": "https://registry.npmjs.org/@marko/babel-utils/-/babel-utils-5.15.9.tgz", - "integrity": "sha512-PYmkI2MIWkyOvtVooHZtq2t+JfUzHAJsUClMnJpmvRD6QiyjhrXJd5TivFvu7v4ZN7A2nueqpjo0FX+D6olXEw==", + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/@marko/babel-utils/-/babel-utils-5.17.4.tgz", + "integrity": "sha512-sPPbFipMLn09XYlV+tHV9EX4gWCQTHmHVEvbGrlPCK+XcIzWRcjgqH8dFinMJ0IV+SpZQFuP/vbHYi5ZbYqRIw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", + "@babel/runtime": "^7.16.0", "jsesc": "^3.0.2" } }, "node_modules/@marko/compiler": { - "version": "5.15.10", - "resolved": "https://registry.npmjs.org/@marko/compiler/-/compiler-5.15.10.tgz", - "integrity": "sha512-HbkvNAeEhlnxTv66YJYfoP9sts/kIrqTQQsT2xJfbxJR5Uqi6HWIPozz11sPXCMyD6CC2f6oj4udRto6nKZbXQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/core": "^7.13.10", - "@babel/generator": "^7.13.9", - "@babel/parser": "^7.13.11", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/runtime": "^7.13.10", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "@marko/babel-utils": "^5.15.9", + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/@marko/compiler/-/compiler-5.17.4.tgz", + "integrity": "sha512-2eYIf8DBgJI5wY0HWPPJM6kYWLeo5I1jn+19rnTlrntKP1zBStZazujtXSghcNwXBGaPRAg26TtSl7FaHaLhOA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/core": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "@marko/babel-utils": "^5.17.4", "complain": "^1.6.0", "enhanced-resolve": "5.7.0", "he": "^1.2.0", - "htmljs-parser": "^2.10.0", + "htmljs-parser": "^2.11.1", "jsesc": "^3.0.2", "lasso-package-root": "^1.0.1", "property-handlers": "^1.1.1", @@ -949,20 +987,20 @@ } }, "node_modules/@marko/translator-default": { - "version": "5.15.10", - "resolved": "https://registry.npmjs.org/@marko/translator-default/-/translator-default-5.15.10.tgz", - "integrity": "sha512-wDYNbuluGPAiEat03iiTJBxHIO5puGJt0d1Sb7ElP8jk7AFYPZI8H8GAs5lm4RNBp4QZ4G6lLlT6Oh5zEc7ZEg==", + "version": "5.17.5", + "resolved": "https://registry.npmjs.org/@marko/translator-default/-/translator-default-5.17.5.tgz", + "integrity": "sha512-VMRQKbkdC+6q5rwPSkXPXZSh2b8m0rlPyom9gfLfDKPYSxh9g4JxXWaekYG3TU82+aAqPihkDZuN12HjJaKOow==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@marko/babel-utils": "^5.15.9", + "@babel/runtime": "^7.16.0", + "@marko/babel-utils": "^5.17.4", "escape-string-regexp": "^4.0.0", "magic-string": "^0.25.7", "self-closing-tags": "^1.0.1" }, "peerDependencies": { - "@marko/compiler": "^5.4.2", - "marko": "^5.3.0" + "@marko/compiler": "^5.16.1", + "marko": "^5.17.2" } }, "node_modules/@nodelib/fs.scandir": { @@ -1047,18 +1085,18 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.2.2.tgz", - "integrity": "sha512-EVcXQ+ZrC04cg17AMg1ofocWMxHDn17cB66ZHgYc0eUwjFtxS0oBzkyw2VqIrHBwVgtfoYrq1WMQfQmMjUwthw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", + "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.3.tgz", - "integrity": "sha512-kdc65UEsqze/9fCISq6BxLzeB9qf0vKvKojIfzgwf4tEF+Wy6c9dXnPFE6vgpoDFB1Z5Jek5WFVU6vL1w22+Iw==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", + "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", "dev": true, "dependencies": { - "@octokit/types": "^6.28.1" + "@octokit/types": "^6.34.0" }, "peerDependencies": { "@octokit/core": ">=2" @@ -1074,12 +1112,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.10.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.10.4.tgz", - "integrity": "sha512-Dh+EAMCYR9RUHwQChH94Skl0lM8Fh99auT8ggck/xTzjJrwVzvsd0YH68oRPqp/HxICzmUjLfaQ9sy1o1sfIiA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", + "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", "dev": true, "dependencies": { - "@octokit/types": "^6.28.1", + "@octokit/types": "^6.34.0", "deprecation": "^2.3.1" }, "peerDependencies": { @@ -1087,9 +1125,9 @@ } }, "node_modules/@octokit/request": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz", - "integrity": "sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", + "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", "dev": true, "dependencies": { "@octokit/endpoint": "^6.0.1", @@ -1112,35 +1150,35 @@ } }, "node_modules/@octokit/rest": { - "version": "18.10.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.10.0.tgz", - "integrity": "sha512-esHR5OKy38bccL/sajHqZudZCvmv4yjovMJzyXlphaUo7xykmtOdILGJ3aAm0mFHmMLmPFmDMJXf39cAjNJsrw==", + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", "dev": true, "dependencies": { "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.0", + "@octokit/plugin-paginate-rest": "^2.16.8", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.9.0" + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" } }, "node_modules/@octokit/types": { - "version": "6.28.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.28.1.tgz", - "integrity": "sha512-XlxDoQLFO5JnFZgKVQTYTvXRsQFfr/GwDUU108NJ9R5yFPkA2qXhTJjYuul3vE4eLXP40FA2nysOu2zd6boE+w==", + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", + "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^10.2.2" + "@octokit/openapi-types": "^11.2.0" } }, "node_modules/@semantic-release/commit-analyzer": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.1.tgz", - "integrity": "sha512-ncNsnrLmiykhgNZUXNvhhAjNN0me7VGIb0X5hu3ogyi5DDPapjGAHdEffO5vi+HX1BFWLRD/Ximx5PjGAKjAqQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", + "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", "dev": true, "dependencies": { "conventional-changelog-angular": "^5.0.0", "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.7", + "conventional-commits-parser": "^3.2.3", "debug": "^4.0.0", "import-from": "^4.0.0", "lodash": "^4.17.4", @@ -1163,9 +1201,9 @@ } }, "node_modules/@semantic-release/github": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.0.tgz", - "integrity": "sha512-TSDlqWeUo7fWlbp6SAMu0T/980s3/SC155ua4rhFj89hC2MYVXDI8o7Mgc5Qw21phQb6+PxHIe5DbFjg9CbeNQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.2.tgz", + "integrity": "sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg==", "dev": true, "dependencies": { "@octokit/rest": "^18.0.0", @@ -1176,11 +1214,11 @@ "dir-glob": "^3.0.0", "fs-extra": "^10.0.0", "globby": "^11.0.0", - "http-proxy-agent": "^4.0.0", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "issue-parser": "^6.0.0", "lodash": "^4.17.4", - "mime": "^2.4.3", + "mime": "^3.0.0", "p-filter": "^2.0.0", "p-retry": "^4.0.0", "url-join": "^4.0.0" @@ -1199,12 +1237,12 @@ "dev": true }, "node_modules/@semantic-release/npm": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-8.0.0.tgz", - "integrity": "sha512-MAlynjIaN5XwBEzsq3xbZ8I+riD9zhLvpPqGCPaZ0j/ySbR0Sg3YG1MYv03fC1aygPFFC5RwefMxKids9llvDg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-8.0.3.tgz", + "integrity": "sha512-Qbg7x/O1t3sJqsv2+U0AL4Utgi/ymlCiUdt67Ftz9HL9N8aDML4t2tE0T9MBaYdqwD976hz57DqHHXKVppUBoA==", "dev": true, "dependencies": { - "@semantic-release/error": "^2.2.0", + "@semantic-release/error": "^3.0.0", "aggregate-error": "^3.0.0", "execa": "^5.0.0", "fs-extra": "^10.0.0", @@ -1222,25 +1260,19 @@ "node": ">=14.17" }, "peerDependencies": { - "semantic-release": ">=18.0.0-beta.1" + "semantic-release": ">=18.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/@semantic-release/error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", - "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", - "dev": true - }, "node_modules/@semantic-release/release-notes-generator": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.2.tgz", - "integrity": "sha512-I4eavIcDan8fNQHskZ2cbWkFMimvgxNkqR2UfuYNwYBgswEl3SJsN8XMf9gZWObt6nXDc2QfDwhjy8DjTZqS3w==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", + "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", "dev": true, "dependencies": { "conventional-changelog-angular": "^5.0.0", "conventional-changelog-writer": "^5.0.0", "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", + "conventional-commits-parser": "^3.2.3", "debug": "^4.0.0", "get-stream": "^6.0.0", "import-from": "^4.0.0", @@ -1256,42 +1288,14 @@ } }, "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, "engines": { - "node": ">= 6" + "node": ">= 10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true, - "peer": true - }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -1311,9 +1315,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.4.tgz", - "integrity": "sha512-KDazLNYAGIuJugdbULwFZULF9qQ13yNWEBFnfVpqlpgAAo6H/qnM9RjBgh0A0kmHf3XxAKLdN5mTIng9iUvVLA==", + "version": "16.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", + "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -1335,29 +1339,30 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.5.0.tgz", + "integrity": "sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "4.31.1", - "@typescript-eslint/scope-manager": "4.31.1", - "debug": "^4.3.1", + "@typescript-eslint/experimental-utils": "5.5.0", + "@typescript-eslint/scope-manager": "5.5.0", + "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1366,20 +1371,20 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz", + "integrity": "sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.5.0", + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/typescript-estree": "5.5.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1390,25 +1395,25 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.5.0.tgz", + "integrity": "sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", - "debug": "^4.3.1" + "@typescript-eslint/scope-manager": "5.5.0", + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/typescript-estree": "5.5.0", + "debug": "^4.3.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1417,16 +1422,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz", + "integrity": "sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/visitor-keys": "5.5.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1434,12 +1439,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.5.0.tgz", + "integrity": "sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg==", "dev": true, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1447,21 +1452,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz", + "integrity": "sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/visitor-keys": "5.5.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1474,16 +1479,16 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz", + "integrity": "sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.31.1", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "5.5.0", + "eslint-visitor-keys": "^3.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1497,9 +1502,9 @@ "dev": true }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1517,16 +1522,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -1684,8 +1679,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/argly": { "version": "1.2.0", @@ -1694,22 +1688,10 @@ "dev": true }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", - "dev": true, - "engines": { - "node": ">=0.6.10" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/argv-formatter": { "version": "1.0.0", @@ -1830,16 +1812,16 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" @@ -1856,8 +1838,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/caching-transform": { "version": "4.0.0", @@ -1923,9 +1904,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001258", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001258.tgz", - "integrity": "sha512-RBByOG6xWXUp0CR2/WU2amXz3stjKpSl5J1xU49F1n2OxD//uBZO4wCKUiG+QMGf7CHGfDDcqoKriomoGVxTeA==", + "version": "1.0.30001285", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", + "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", "dev": true, "funding": { "type": "opencollective", @@ -2005,6 +1986,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -2042,17 +2035,46 @@ "colors": "^1.1.2" } }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2069,23 +2091,33 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" - }, - "bin": { - "codecov": "bin/codecov" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4.0" + "node": ">=8" } }, "node_modules/color-convert": { @@ -2107,9 +2139,9 @@ "dev": true }, "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "node_modules/colors": { @@ -2123,12 +2155,12 @@ } }, "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/commondir": { @@ -2235,9 +2267,9 @@ } }, "node_modules/conventional-commits-parser": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz", - "integrity": "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", + "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", "dev": true, "dependencies": { "is-text-path": "^1.0.1", @@ -2289,8 +2321,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -2334,9 +2365,9 @@ } }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -2553,9 +2584,9 @@ ] }, "node_modules/domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dependencies": { "domelementtype": "^2.2.0" }, @@ -2601,26 +2632,17 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.843", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.843.tgz", - "integrity": "sha512-OWEwAbzaVd1Lk9MohVw8LxMXFlnYd9oYTYxfX8KS++kLLjDfbovLOcEEXwRhG612dqGQ6+44SZvim0GXuBRiKg==", + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz", + "integrity": "sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA==", "dev": true }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/enhanced-resolve": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", @@ -2658,63 +2680,17 @@ } }, "node_modules/env-ci": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.2.tgz", - "integrity": "sha512-Xc41mKvjouTXD3Oy9AqySz1IeyvJvHZ20Twf5ZLYbNpPPIuCnL/qHCmNlD01LoNy0JTunw9HPYVptD19Ac7Mbw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", + "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", "dev": true, "dependencies": { - "execa": "^4.0.0", + "execa": "^5.0.0", + "fromentries": "^1.3.2", "java-properties": "^1.0.0" }, "engines": { - "node": ">=10.13" - } - }, - "node_modules/env-ci/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/env-ci/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" + "node": ">=10.17" } }, "node_modules/error-ex": { @@ -2742,27 +2718,267 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.12.28", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.28.tgz", - "integrity": "sha512-pZ0FrWZXlvQOATlp14lRSk1N9GkeJ3vLIwOcUoo3ICQn9WNR4rWoNi81pbn6sC1iYUy7QPqNzI3+AEzokwyVcA==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", + "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" - } - }, - "node_modules/esbuild-register": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.0.0.tgz", - "integrity": "sha512-No7U3ZUd6gPrrC6gqdb3XFcf2lNqzn8nvQXcgcyOl8szMVuN6YUvOplnmakxWyogI9d8SiJMl0uzBzJck+Aoxw==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.0.0" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.2", + "esbuild-darwin-64": "0.14.2", + "esbuild-darwin-arm64": "0.14.2", + "esbuild-freebsd-64": "0.14.2", + "esbuild-freebsd-arm64": "0.14.2", + "esbuild-linux-32": "0.14.2", + "esbuild-linux-64": "0.14.2", + "esbuild-linux-arm": "0.14.2", + "esbuild-linux-arm64": "0.14.2", + "esbuild-linux-mips64le": "0.14.2", + "esbuild-linux-ppc64le": "0.14.2", + "esbuild-netbsd-64": "0.14.2", + "esbuild-openbsd-64": "0.14.2", + "esbuild-sunos-64": "0.14.2", + "esbuild-windows-32": "0.14.2", + "esbuild-windows-64": "0.14.2", + "esbuild-windows-arm64": "0.14.2" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", + "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", + "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", + "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", + "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", + "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", + "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", + "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", + "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", + "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", + "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", + "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", + "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ] + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", + "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/esbuild-register": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.2.0.tgz", + "integrity": "sha512-i1sYwESrRHJz15Cl1u2OgLjBBp/bWtGoDdFXVLL1clsp+pFdqIpRfHIQGkgvQAlAecP5IC/bObYrKCyx/lE50Q==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", + "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ] + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", + "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", + "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", + "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2785,37 +3001,36 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.0.tgz", + "integrity": "sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA==", "dev": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -2823,11 +3038,10 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -2835,7 +3049,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2884,7 +3098,7 @@ "eslint": ">=5" } }, - "node_modules/eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", @@ -2893,43 +3107,41 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=4.0" } }, "node_modules/eslint/node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2941,6 +3153,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -2954,26 +3175,17 @@ } }, "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", + "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", "dev": true, "dependencies": { - "acorn": "^7.4.0", + "acorn": "^8.6.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/esprima": { @@ -3002,9 +3214,9 @@ } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -3023,9 +3235,9 @@ } }, "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -3109,6 +3321,18 @@ "node": ">=8" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3121,21 +3345,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dev": true, - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/fast-url-parser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -3294,9 +3503,9 @@ } }, "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "node_modules/foreground-child": { @@ -3420,12 +3629,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -3520,15 +3723,15 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/global-dirs": { @@ -3572,15 +3775,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -3730,9 +3924,9 @@ "dev": true }, "node_modules/htmljs-parser": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/htmljs-parser/-/htmljs-parser-2.10.0.tgz", - "integrity": "sha512-HxGvSIIHpnC8WsVqZ/OAxPsgh8xIL7d0eb24TG/WwjxCbzjuxiJm6g8NHAlfFDYq4H9Q/kztAlUxQ/plS/IZfw==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/htmljs-parser/-/htmljs-parser-2.11.1.tgz", + "integrity": "sha512-9TM67eoRSSYFYi+R0yP8ysFOzhQiXClQ41r8V+HCWXuQHKG5qEtY/H8wAhOIsBEVroIeMHU/DatFKOkMXmDnwg==", "dev": true, "dependencies": { "char-props": "^0.1.5", @@ -3740,9 +3934,9 @@ } }, "node_modules/htmlparser2": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.1.2.tgz", - "integrity": "sha512-d6cqsbJba2nRdg8WW2okyD4ceonFHn9jLFxhwlNcLhQWcFPdxXeJulgOLjLKtAK9T6ahd+GQNZwG9fjmGW7lyg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -3758,12 +3952,12 @@ } }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "dependencies": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, @@ -3794,9 +3988,9 @@ } }, "node_modules/husky": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.2.tgz", - "integrity": "sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true, "bin": { "husky": "lib/bin.js" @@ -3809,23 +4003,14 @@ } }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true, "engines": { "node": ">= 4" } }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -3938,9 +4123,9 @@ } }, "node_modules/is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3959,18 +4144,21 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -4033,15 +4221,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -4122,9 +4301,9 @@ } }, "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { "node": ">=8" @@ -4211,9 +4390,9 @@ } }, "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { "debug": "^4.1.1", @@ -4221,7 +4400,7 @@ "source-map": "^0.6.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { @@ -4234,9 +4413,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4262,31 +4441,17 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -4427,40 +4592,64 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "node_modules/lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz", + "integrity": "sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==", "dev": true, "dependencies": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", + "cli-truncate": "^3.1.0", + "colorette": "^2.0.16", + "commander": "^8.3.0", + "debug": "^4.3.2", "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", + "execa": "^5.1.1", + "lilconfig": "2.0.4", + "listr2": "^3.13.3", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "object-inspect": "^1.11.0", + "string-argv": "^0.3.1", + "supports-color": "^9.0.2", + "yaml": "^1.10.2" }, "bin": { "lint-staged": "bin/lint-staged.js" }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, "funding": { "url": "https://opencollective.com/lint-staged" } }, + "node_modules/lint-staged/node_modules/supports-color": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", + "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/listener-tracker": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/listener-tracker/-/listener-tracker-2.0.0.tgz", @@ -4468,16 +4657,17 @@ "dev": true }, "node_modules/listr2": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.1.tgz", - "integrity": "sha512-oB1DlXlCzGPbvWhqYBZUQEPJKqsmebQWofXG6Mpbe3uIvoNl8mctBEojyF13ZyqwQ91clCWXpwsWp+t98K4FOQ==", + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", + "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", "dev": true, "dependencies": { "cli-truncate": "^2.1.0", - "colorette": "^1.4.0", + "colorette": "^2.0.16", "log-update": "^4.0.0", "p-map": "^4.0.0", - "rxjs": "^6.6.7", + "rfdc": "^1.3.0", + "rxjs": "^7.4.0", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, @@ -4486,6 +4676,70 @@ }, "peerDependencies": { "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/load-json-file": { @@ -4552,12 +4806,6 @@ "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", @@ -4570,6 +4818,12 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -4594,12 +4848,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "node_modules/lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", @@ -4640,6 +4888,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -4657,6 +4920,20 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -4720,8 +4997,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/map-obj": { "version": "4.3.0", @@ -4765,13 +5041,13 @@ } }, "node_modules/marko": { - "version": "5.15.10", - "resolved": "https://registry.npmjs.org/marko/-/marko-5.15.10.tgz", - "integrity": "sha512-M35ak/1qRs9GSut6YAJuW3/d2OwNQ8yuY2sPu4k0rm7eMhtFdygpV8szVF7kkRb4l09uRIBrfg8RAjhRprsAEQ==", + "version": "5.17.5", + "resolved": "https://registry.npmjs.org/marko/-/marko-5.17.5.tgz", + "integrity": "sha512-LCCkqKOc0Rm4APBmEeda/7REtqDUI6CaxcEb6wn8hnLatEn9szq7CZsY/brLX8Qk4f344VqrTk/AXmDNkEX4KQ==", "dev": true, "dependencies": { - "@marko/compiler": "^5.15.10", - "@marko/translator-default": "^5.15.10", + "@marko/compiler": "^5.17.4", + "@marko/translator-default": "^5.17.5", "app-module-path": "^2.2.0", "argly": "^1.2.0", "browser-refresh-client": "1.1.4", @@ -4854,15 +5130,15 @@ } }, "node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true, "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=10.0.0" } }, "node_modules/mimic-fn": { @@ -4916,16 +5192,16 @@ } }, "node_modules/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", + "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", "dev": true, "dependencies": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.2", - "debug": "4.3.1", + "debug": "4.3.2", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", @@ -4936,12 +5212,11 @@ "log-symbols": "4.1.0", "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.1.23", + "nanoid": "3.1.25", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "wide-align": "1.1.3", "workerpool": "6.1.5", "yargs": "16.2.0", "yargs-parser": "20.2.4", @@ -4960,24 +5235,18 @@ } }, "node_modules/mocha-snap": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/mocha-snap/-/mocha-snap-4.0.2.tgz", - "integrity": "sha512-N7X2W5nvC3hCL2yn/BP0RFTgQikHE50AaVaQ9S8nNO6Q2Xa67fY7nFn+rDfYKPwqeH011TdJ1PU5wS96i9Pj6w==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mocha-snap/-/mocha-snap-4.2.1.tgz", + "integrity": "sha512-xGGroJy0PgIbKThCcue3na/5xirEDZhvKdGVbGwp0vgZKe5EDKpGioMWmvu5W6N1/2yZygDrMzypMBqDhIDYAA==", "dev": true, "dependencies": { "fast-glob": "^3.2.7" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/mocha/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -4997,16 +5266,19 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/mocha/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/mocha/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=8" } }, "node_modules/mocha/node_modules/ms": { @@ -5015,6 +5287,20 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/mocha/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -5073,9 +5359,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -5112,10 +5398,13 @@ } }, "node_modules/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" } @@ -5133,9 +5422,9 @@ } }, "node_modules/node-releases": { - "version": "1.1.76", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", - "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node_modules/normalize-package-data": { @@ -5174,10 +5463,11 @@ } }, "node_modules/npm": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-7.24.0.tgz", - "integrity": "sha512-4zd4txmN7dYEx32kH/K+gecnZhnGDdCrRFK6/n5TGUtqtyjevw0uPul0knJ9PzwDXeNf9MsWzGhjxGeI1M43FA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz", + "integrity": "sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==", "bundleDependencies": [ + "@isaacs/string-locale-compare", "@npmcli/arborist", "@npmcli/ci-detect", "@npmcli/config", @@ -5250,6 +5540,7 @@ ], "dev": true, "dependencies": { + "@isaacs/string-locale-compare": "*", "@npmcli/arborist": "*", "@npmcli/ci-detect": "*", "@npmcli/config": "*", @@ -5346,12 +5637,19 @@ "inBundle": true, "license": "MIT" }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "2.8.3", + "version": "2.9.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@isaacs/string-locale-compare": "^1.0.1", "@npmcli/installed-package-contents": "^1.0.7", "@npmcli/map-workspaces": "^1.0.2", "@npmcli/metavuln-calculator": "^1.1.0", @@ -6281,7 +6579,7 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "7.1.7", + "version": "7.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -6541,7 +6839,7 @@ } }, "node_modules/npm/node_modules/is-core-module": { - "version": "2.6.0", + "version": "2.7.0", "dev": true, "inBundle": true, "license": "MIT", @@ -7729,7 +8027,7 @@ } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "6.0.0", + "version": "6.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -8131,6 +8429,12 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/nyc/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "node_modules/nyc/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -8144,6 +8448,15 @@ "node": ">=8" } }, + "node_modules/nyc/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/nyc/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -8195,6 +8508,20 @@ "node": ">=8" } }, + "node_modules/nyc/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -8259,6 +8586,15 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -8532,6 +8868,12 @@ "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -8696,24 +9038,15 @@ "node": ">=8" } }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, "node_modules/postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", "dev": true, "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map-js": "^0.6.2" + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -8723,6 +9056,18 @@ "url": "https://opencollective.com/postcss/" } }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -8733,9 +9078,9 @@ } }, "node_modules/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -8777,16 +9122,6 @@ "integrity": "sha1-yyDTIqq32U//rCj0bJGGvVlHtLQ=", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -9128,15 +9463,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -9209,6 +9535,12 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -9225,9 +9557,9 @@ } }, "node_modules/rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", + "version": "2.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.2.tgz", + "integrity": "sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -9263,17 +9595,20 @@ } }, "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", "dev": true, "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" + "tslib": "~2.1.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -9290,12 +9625,12 @@ } }, "node_modules/semantic-release": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-18.0.0.tgz", - "integrity": "sha512-/Szyhq5DTZCYry/aZqpBbK/kqv10ydn6oiiaYOXtPgDbAIkqidZcQOm+mfYFJ0sBTUaOYCKMlcPMgJycP7jDYQ==", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-18.0.1.tgz", + "integrity": "sha512-xTdKCaEnCzHr+Fqyhg/5I8P9pvY9z7WHa8TFCYIwcdPbuzAtQShOTzw3VNPsqBT+Yq1kFyBQFBKBYkGOlqWmfA==", "dev": true, "dependencies": { - "@semantic-release/commit-analyzer": "^9.0.0", + "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/error": "^3.0.0", "@semantic-release/github": "^8.0.0", "@semantic-release/npm": "^8.0.0", @@ -9331,6 +9666,35 @@ "node": ">=14.17" } }, + "node_modules/semantic-release/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/semantic-release/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/semantic-release/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -9364,12 +9728,6 @@ "node": ">=10" } }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, "node_modules/semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", @@ -9440,9 +9798,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.4.tgz", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, "node_modules/signale": { @@ -9552,17 +9910,31 @@ } }, "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/source-map": { @@ -9575,20 +9947,19 @@ } }, "node_modules/source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -9599,7 +9970,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -9660,9 +10030,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "node_modules/split": { @@ -9722,15 +10092,6 @@ "readable-stream": "^2.0.2" } }, - "node_modules/stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "dependencies": { - "stubs": "^3.0.0" - } - }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9750,49 +10111,56 @@ } }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", + "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "^9.2.2", + "is-fullwidth-code-point": "^4.0.0", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/stringify-object/node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -9840,12 +10208,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", - "dev": true - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9871,62 +10233,6 @@ "node": ">=8" } }, - "node_modules/table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -9936,31 +10242,6 @@ "node": ">=6" } }, - "node_modules/teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", - "dev": true, - "dependencies": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/teeny-request/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -10080,6 +10361,12 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, "node_modules/traverse": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", @@ -10096,61 +10383,29 @@ } }, "node_modules/ts-node": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz", - "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", - "dev": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "0.6.1", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "dependencies": { "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", + "source-map-support": "^0.5.17", "yn": "3.1.1" }, "bin": { "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=10.0.0" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" } }, "node_modules/ts-node/node_modules/diff": { @@ -10158,15 +10413,14 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "peer": true, "engines": { "node": ">=0.3.1" } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "dev": true }, "node_modules/tsutils": { @@ -10184,6 +10438,12 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10227,9 +10487,9 @@ } }, "node_modules/typescript": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -10240,9 +10500,9 @@ } }, "node_modules/uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", + "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", "dev": true, "optional": true, "bin": { @@ -10294,15 +10554,6 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, - "node_modules/urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", - "dev": true, - "dependencies": { - "fast-url-parser": "^1.1.3" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -10336,15 +10587,15 @@ } }, "node_modules/vite": { - "version": "2.5.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.5.10.tgz", - "integrity": "sha512-0ObiHTi5AHyXdJcvZ67HMsDgVpjT5RehvVKv6+Q0jFZ7zDI28PF5zK9mYz2avxdA+4iJMdwCz6wnGNnn4WX5Gg==", + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.14.tgz", + "integrity": "sha512-2HA9xGyi+EhY2MXo0+A2dRsqsAG3eFNEVIo12olkWhOmc8LfiM+eMdrXf+Ruje9gdXgvSqjLI9freec1RUM5EA==", "dev": true, "dependencies": { - "esbuild": "^0.12.17", - "postcss": "^8.3.6", + "esbuild": "^0.13.2", + "postcss": "^8.3.8", "resolve": "^1.20.0", - "rollup": "^2.38.5" + "rollup": "^2.57.0" }, "bin": { "vite": "bin/vite.js" @@ -10354,14 +10605,296 @@ }, "optionalDependencies": { "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + } } }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", + "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.13.15", + "esbuild-darwin-64": "0.13.15", + "esbuild-darwin-arm64": "0.13.15", + "esbuild-freebsd-64": "0.13.15", + "esbuild-freebsd-arm64": "0.13.15", + "esbuild-linux-32": "0.13.15", + "esbuild-linux-64": "0.13.15", + "esbuild-linux-arm": "0.13.15", + "esbuild-linux-arm64": "0.13.15", + "esbuild-linux-mips64le": "0.13.15", + "esbuild-linux-ppc64le": "0.13.15", + "esbuild-netbsd-64": "0.13.15", + "esbuild-openbsd-64": "0.13.15", + "esbuild-sunos-64": "0.13.15", + "esbuild-windows-32": "0.13.15", + "esbuild-windows-64": "0.13.15", + "esbuild-windows-arm64": "0.13.15" + } + }, + "node_modules/vite/node_modules/esbuild-android-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", + "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/vite/node_modules/esbuild-darwin-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", + "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/vite/node_modules/esbuild-darwin-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", + "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/vite/node_modules/esbuild-freebsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", + "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/vite/node_modules/esbuild-freebsd-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", + "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/vite/node_modules/esbuild-linux-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", + "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/vite/node_modules/esbuild-linux-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", + "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/vite/node_modules/esbuild-linux-arm": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", + "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/vite/node_modules/esbuild-linux-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", + "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/vite/node_modules/esbuild-linux-mips64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", + "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/vite/node_modules/esbuild-linux-ppc64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", + "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/vite/node_modules/esbuild-netbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", + "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ] + }, + "node_modules/vite/node_modules/esbuild-openbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", + "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/vite/node_modules/esbuild-sunos-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", + "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ] + }, + "node_modules/vite/node_modules/esbuild-windows-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", + "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/vite/node_modules/esbuild-windows-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", + "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/vite/node_modules/esbuild-windows-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", + "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/warp10": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/warp10/-/warp10-2.0.2.tgz", "integrity": "sha512-CC8MD3mBxPvKgBz58QJo8G+jPGo/oaBL2vcT6EWVpWsgzvDNwhiBBLGUDmRqaaVXv1INh8bpJPpVMUP5q1myBw==", "dev": true }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -10383,58 +10916,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -10473,6 +10954,35 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -10525,18 +11035,18 @@ } }, "node_modules/yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" }, "engines": { "node": ">=12" @@ -10567,9 +11077,9 @@ } }, "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true, "engines": { "node": ">=10" @@ -10583,20 +11093,58 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, - "engines": { - "node": ">=10" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/yn": { @@ -10604,7 +11152,6 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -10624,35 +11171,35 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.0" } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -10670,12 +11217,12 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -10689,14 +11236,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "dev": true, "requires": { - "@babel/compat-data": "^7.15.0", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "dependencies": { @@ -10709,75 +11256,75 @@ } }, "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-transforms": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz", - "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-plugin-utils": { @@ -10787,33 +11334,33 @@ "dev": true }, "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-validator-identifier": { @@ -10829,23 +11376,23 @@ "dev": true }, "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", "dev": true, "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" } }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -10909,81 +11456,81 @@ } }, "@babel/parser": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", - "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", + "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-simple-access": "^7.16.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" } }, "@commitlint/cli": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-13.1.0.tgz", - "integrity": "sha512-xN/uNYWtGTva5OMSd+xA6e6/c2jk8av7MUbdd6w2cw89u6z3fAWoyiH87X0ewdSMNYmW/6B3L/2dIVGHRDID5w==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-15.0.0.tgz", + "integrity": "sha512-Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg==", "dev": true, "requires": { - "@commitlint/format": "^13.1.0", - "@commitlint/lint": "^13.1.0", - "@commitlint/load": "^13.1.0", - "@commitlint/read": "^13.1.0", - "@commitlint/types": "^13.1.0", + "@commitlint/format": "^15.0.0", + "@commitlint/lint": "^15.0.0", + "@commitlint/load": "^15.0.0", + "@commitlint/read": "^15.0.0", + "@commitlint/types": "^15.0.0", "lodash": "^4.17.19", "resolve-from": "5.0.0", "resolve-global": "1.0.0", @@ -10991,110 +11538,112 @@ } }, "@commitlint/config-conventional": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-13.1.0.tgz", - "integrity": "sha512-zukJXqdr6jtMiVRy3tTHmwgKcUMGfqKDEskRigc5W3k2aYF4gBAtCEjMAJGZgSQE4DMcHeok0pEV2ANmTpb0cw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-15.0.0.tgz", + "integrity": "sha512-eZBRL8Lk3hMNHp1wUMYj0qrZQEsST1ai7KHR8J1IDD9aHgT7L2giciibuQ+Og7vxVhR5WtYDvh9xirXFVPaSkQ==", "dev": true, "requires": { "conventional-changelog-conventionalcommits": "^4.3.1" } }, "@commitlint/ensure": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-13.1.0.tgz", - "integrity": "sha512-NRGyjOdZQnlYwm9it//BZJ2Vm+4x7G9rEnHpLCvNKYY0c6RA8Qf7hamLAB8dWO12RLuFt06JaOpHZoTt/gHutA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-15.0.0.tgz", + "integrity": "sha512-7DV4iNIald3vycwaWBNGk5FbonaNzOlU8nBe5m5AgU2dIeNKuXwLm+zzJzG27j0Ho56rgz//3F6RIvmsoxY9ZA==", "dev": true, "requires": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "lodash": "^4.17.19" } }, "@commitlint/execute-rule": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.0.0.tgz", - "integrity": "sha512-lBz2bJhNAgkkU/rFMAw3XBNujbxhxlaFHY3lfKB/MxpAa+pIfmWB3ig9i1VKe0wCvujk02O0WiMleNaRn2KJqw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz", + "integrity": "sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==", "dev": true }, "@commitlint/format": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-13.1.0.tgz", - "integrity": "sha512-n46rYvzf+6Sm99TJjTLjJBkjm6JVcklt31lDO5Q+pCIV0NnJ4qIUcwa6wIL9a9Vqb1XzlMgtp27E0zyYArkvSg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-15.0.0.tgz", + "integrity": "sha512-bPhAfqwRhPk92WiuY0ktEJNpRRHSCd+Eg1MdhGyL9Bl3U25E5zvuInA+dNctnzZiOBSH/37ZaD0eOKCpQE6acg==", "dev": true, "requires": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "chalk": "^4.0.0" } }, "@commitlint/is-ignored": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-13.1.0.tgz", - "integrity": "sha512-P6zenLE5Tn3FTNjRzmL9+/KooTXEI0khA2TmUbuei9KiycemeO4q7Xk7w7aXwFPNAbN0O9oI7z3z7cFpzKJWmQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-15.0.0.tgz", + "integrity": "sha512-edtnkf2QZ/7e/YCJDgn1WDw9wfF1WfOitW5YEoSOb4SxjJEb/oE87kxNPZ2j8mnDMuunspcMfGHeg6fRlwaEWg==", "dev": true, "requires": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "semver": "7.3.5" } }, "@commitlint/lint": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-13.1.0.tgz", - "integrity": "sha512-qH9AYSQDDTaSWSdtOvB3G1RdPpcYSgddAdFYqpFewlKQ1GJj/L+sM7vwqCG7/ip6AiM04Sry1sgmFzaEoFREUA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-15.0.0.tgz", + "integrity": "sha512-hUi2+Im/2dJ5FBvWnodypTkg+5haCgsDzB0fyMApWLUA1IucYUAqRCQCW5em1Mhk9Crw1pd5YzFNikhIclkqCw==", "dev": true, "requires": { - "@commitlint/is-ignored": "^13.1.0", - "@commitlint/parse": "^13.1.0", - "@commitlint/rules": "^13.1.0", - "@commitlint/types": "^13.1.0" + "@commitlint/is-ignored": "^15.0.0", + "@commitlint/parse": "^15.0.0", + "@commitlint/rules": "^15.0.0", + "@commitlint/types": "^15.0.0" } }, "@commitlint/load": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.1.0.tgz", - "integrity": "sha512-zlZbjJCWnWmBOSwTXis8H7I6pYk6JbDwOCuARA6B9Y/qt2PD+NCo0E/7EuaaFoxjHl+o56QR5QttuMBrf+BJzg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-15.0.0.tgz", + "integrity": "sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==", "dev": true, "requires": { - "@commitlint/execute-rule": "^13.0.0", - "@commitlint/resolve-extends": "^13.0.0", - "@commitlint/types": "^13.1.0", + "@commitlint/execute-rule": "^15.0.0", + "@commitlint/resolve-extends": "^15.0.0", + "@commitlint/types": "^15.0.0", + "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", "lodash": "^4.17.19", - "resolve-from": "^5.0.0" + "resolve-from": "^5.0.0", + "typescript": "^4.4.3" } }, "@commitlint/message": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-13.0.0.tgz", - "integrity": "sha512-W/pxhesVEk8747BEWJ+VGQ9ILHmCV27/pEwJ0hGny1wqVquUR8SxvScRCbUjHCB1YtWX4dEnOPXOS9CLH/CX7A==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-15.0.0.tgz", + "integrity": "sha512-L8euabzboKavPuDJsdIYAY2wx97LbiGEYsckMo6NmV8pOun50c8hQx6ouXFSAx4pp+mX9yUGmMiVqfrk2LKDJQ==", "dev": true }, "@commitlint/parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-13.1.0.tgz", - "integrity": "sha512-xFybZcqBiKVjt6vTStvQkySWEUYPI0AcO4QQELyy29o8EzYZqWkhUfrb7K61fWiHsplWL1iL6F3qCLoxSgTcrg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-15.0.0.tgz", + "integrity": "sha512-7fweM67tZfBNS7zw1KTuuT5K2u9nGytUJqFqT/1Ln3Na9cBCsoAqR47mfsNOTlRCgGwakm4xiQ7BpS2gN0OGuw==", "dev": true, "requires": { - "@commitlint/types": "^13.1.0", + "@commitlint/types": "^15.0.0", "conventional-changelog-angular": "^5.0.11", - "conventional-commits-parser": "^3.0.0" + "conventional-commits-parser": "^3.2.2" } }, "@commitlint/read": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-13.1.0.tgz", - "integrity": "sha512-NrVe23GMKyL6i1yDJD8IpqCBzhzoS3wtLfDj8QBzc01Ov1cYBmDojzvBklypGb+MLJM1NbzmRM4PR5pNX0U/NQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-15.0.0.tgz", + "integrity": "sha512-5yI1o2HKZFVe7RTjL7IhuhHMKar/MDNY34vEHqqz9gMI7BK/rdP8uVb4Di1efl2V0UPnwID0nPKWESjQ8Ti0gw==", "dev": true, "requires": { - "@commitlint/top-level": "^13.0.0", - "@commitlint/types": "^13.1.0", + "@commitlint/top-level": "^15.0.0", + "@commitlint/types": "^15.0.0", "fs-extra": "^10.0.0", "git-raw-commits": "^2.0.0" } }, "@commitlint/resolve-extends": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.0.0.tgz", - "integrity": "sha512-1SyaE+UOsYTkQlTPUOoj4NwxQhGFtYildVS/d0TJuK8a9uAJLw7bhCLH2PEeH5cC2D1do4Eqhx/3bLDrSLH3hg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz", + "integrity": "sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==", "dev": true, "requires": { "import-fresh": "^3.0.0", @@ -11104,85 +11653,86 @@ } }, "@commitlint/rules": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-13.1.0.tgz", - "integrity": "sha512-b6F+vBqEXsHVghrhomG0Y6YJimHZqkzZ0n5QEpk03dpBXH2OnsezpTw5e+GvbyYCc7PutGbYVQkytuv+7xCxYA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-15.0.0.tgz", + "integrity": "sha512-SqXfp6QUlwBS+0IZm4FEA/NmmAwcFQIkG3B05BtemOVWXQdZ8j1vV6hDwvA9oMPCmUSrrGpHOtZK7HaHhng2yA==", "dev": true, "requires": { - "@commitlint/ensure": "^13.1.0", - "@commitlint/message": "^13.0.0", - "@commitlint/to-lines": "^13.0.0", - "@commitlint/types": "^13.1.0", + "@commitlint/ensure": "^15.0.0", + "@commitlint/message": "^15.0.0", + "@commitlint/to-lines": "^15.0.0", + "@commitlint/types": "^15.0.0", "execa": "^5.0.0" } }, "@commitlint/to-lines": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-13.0.0.tgz", - "integrity": "sha512-mzxWwCio1M4/kG9/69TTYqrraQ66LmtJCYTzAZdZ2eJX3I5w52pSjyP/DJzAUVmmJCYf2Kw3s+RtNVShtnZ+Rw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-15.0.0.tgz", + "integrity": "sha512-mY3MNA9ujPqVpiJjTYG9MDsYCobue5PJFO0MfcIzS1mCVvngH8ZFTPAh1fT5t+t1h876boS88+9WgqjRvbYItw==", "dev": true }, "@commitlint/top-level": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-13.0.0.tgz", - "integrity": "sha512-baBy3MZBF28sR93yFezd4a5TdHsbXaakeladfHK9dOcGdXo9oQe3GS5hP3BmlN680D6AiQSN7QPgEJgrNUWUCg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-15.0.0.tgz", + "integrity": "sha512-7Gz3t7xcuuUw1d1Nou6YLaztzp2Em+qZ6YdCzrqYc+aquca3Vt0O696nuiBDU/oE+tls4Hx2CNpAbWhTgEwB5A==", "dev": true, "requires": { "find-up": "^5.0.0" } }, "@commitlint/types": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.1.0.tgz", - "integrity": "sha512-zcVjuT+OfKt8h91vhBxt05RMcTGEx6DM7Q9QZeuMbXFk6xgbsSEDMMapbJPA1bCZ81fa/1OQBijSYPrKvtt06g==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-15.0.0.tgz", + "integrity": "sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==", "dev": true, "requires": { "chalk": "^4.0.0" } }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, - "peer": true - }, - "@cspotcode/source-map-support": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz", - "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", + "@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", "dev": true, - "peer": true, "requires": { - "@cspotcode/source-map-consumer": "0.8.0" + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" } }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "dependencies": { "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -11192,20 +11742,20 @@ } }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" } }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@istanbuljs/load-nyc-config": { @@ -11221,6 +11771,21 @@ "resolve-from": "^5.0.0" }, "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -11231,6 +11796,16 @@ "path-exists": "^4.0.0" } }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -11261,9 +11836,9 @@ } }, "@istanbuljs/nyc-config-typescript": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.1.tgz", - "integrity": "sha512-/gz6LgVpky205LuoOfwEZmnUtaSmdk0QIMcNFj9OvxhiMhPpKftMgZmGN7jNj7jR+lr8IB1Yks3QSSSNSxfoaQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.2.tgz", + "integrity": "sha512-iKGIyMoyJuFnJRSVTZ78POIRvNnwZaWIf8vG4ZS3rQq58MMDrqEX2nnzx0R28V2X8JvmKYiqY9FP2hlJsm8A0w==", "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2" @@ -11276,34 +11851,34 @@ "dev": true }, "@marko/babel-utils": { - "version": "5.15.9", - "resolved": "https://registry.npmjs.org/@marko/babel-utils/-/babel-utils-5.15.9.tgz", - "integrity": "sha512-PYmkI2MIWkyOvtVooHZtq2t+JfUzHAJsUClMnJpmvRD6QiyjhrXJd5TivFvu7v4ZN7A2nueqpjo0FX+D6olXEw==", + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/@marko/babel-utils/-/babel-utils-5.17.4.tgz", + "integrity": "sha512-sPPbFipMLn09XYlV+tHV9EX4gWCQTHmHVEvbGrlPCK+XcIzWRcjgqH8dFinMJ0IV+SpZQFuP/vbHYi5ZbYqRIw==", "dev": true, "requires": { - "@babel/runtime": "^7.13.10", + "@babel/runtime": "^7.16.0", "jsesc": "^3.0.2" } }, "@marko/compiler": { - "version": "5.15.10", - "resolved": "https://registry.npmjs.org/@marko/compiler/-/compiler-5.15.10.tgz", - "integrity": "sha512-HbkvNAeEhlnxTv66YJYfoP9sts/kIrqTQQsT2xJfbxJR5Uqi6HWIPozz11sPXCMyD6CC2f6oj4udRto6nKZbXQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/core": "^7.13.10", - "@babel/generator": "^7.13.9", - "@babel/parser": "^7.13.11", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/runtime": "^7.13.10", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "@marko/babel-utils": "^5.15.9", + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/@marko/compiler/-/compiler-5.17.4.tgz", + "integrity": "sha512-2eYIf8DBgJI5wY0HWPPJM6kYWLeo5I1jn+19rnTlrntKP1zBStZazujtXSghcNwXBGaPRAg26TtSl7FaHaLhOA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/core": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "@marko/babel-utils": "^5.17.4", "complain": "^1.6.0", "enhanced-resolve": "5.7.0", "he": "^1.2.0", - "htmljs-parser": "^2.10.0", + "htmljs-parser": "^2.11.1", "jsesc": "^3.0.2", "lasso-package-root": "^1.0.1", "property-handlers": "^1.1.1", @@ -11316,13 +11891,13 @@ } }, "@marko/translator-default": { - "version": "5.15.10", - "resolved": "https://registry.npmjs.org/@marko/translator-default/-/translator-default-5.15.10.tgz", - "integrity": "sha512-wDYNbuluGPAiEat03iiTJBxHIO5puGJt0d1Sb7ElP8jk7AFYPZI8H8GAs5lm4RNBp4QZ4G6lLlT6Oh5zEc7ZEg==", + "version": "5.17.5", + "resolved": "https://registry.npmjs.org/@marko/translator-default/-/translator-default-5.17.5.tgz", + "integrity": "sha512-VMRQKbkdC+6q5rwPSkXPXZSh2b8m0rlPyom9gfLfDKPYSxh9g4JxXWaekYG3TU82+aAqPihkDZuN12HjJaKOow==", "dev": true, "requires": { - "@babel/runtime": "^7.13.10", - "@marko/babel-utils": "^5.15.9", + "@babel/runtime": "^7.16.0", + "@marko/babel-utils": "^5.17.4", "escape-string-regexp": "^4.0.0", "magic-string": "^0.25.7", "self-closing-tags": "^1.0.1" @@ -11401,18 +11976,18 @@ } }, "@octokit/openapi-types": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.2.2.tgz", - "integrity": "sha512-EVcXQ+ZrC04cg17AMg1ofocWMxHDn17cB66ZHgYc0eUwjFtxS0oBzkyw2VqIrHBwVgtfoYrq1WMQfQmMjUwthw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", + "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.3.tgz", - "integrity": "sha512-kdc65UEsqze/9fCISq6BxLzeB9qf0vKvKojIfzgwf4tEF+Wy6c9dXnPFE6vgpoDFB1Z5Jek5WFVU6vL1w22+Iw==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", + "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", "dev": true, "requires": { - "@octokit/types": "^6.28.1" + "@octokit/types": "^6.34.0" } }, "@octokit/plugin-request-log": { @@ -11423,19 +11998,19 @@ "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "5.10.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.10.4.tgz", - "integrity": "sha512-Dh+EAMCYR9RUHwQChH94Skl0lM8Fh99auT8ggck/xTzjJrwVzvsd0YH68oRPqp/HxICzmUjLfaQ9sy1o1sfIiA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", + "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", "dev": true, "requires": { - "@octokit/types": "^6.28.1", + "@octokit/types": "^6.34.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz", - "integrity": "sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", + "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", "dev": true, "requires": { "@octokit/endpoint": "^6.0.1", @@ -11458,35 +12033,35 @@ } }, "@octokit/rest": { - "version": "18.10.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.10.0.tgz", - "integrity": "sha512-esHR5OKy38bccL/sajHqZudZCvmv4yjovMJzyXlphaUo7xykmtOdILGJ3aAm0mFHmMLmPFmDMJXf39cAjNJsrw==", + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", "dev": true, "requires": { "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.0", + "@octokit/plugin-paginate-rest": "^2.16.8", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.9.0" + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" } }, "@octokit/types": { - "version": "6.28.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.28.1.tgz", - "integrity": "sha512-XlxDoQLFO5JnFZgKVQTYTvXRsQFfr/GwDUU108NJ9R5yFPkA2qXhTJjYuul3vE4eLXP40FA2nysOu2zd6boE+w==", + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", + "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", "dev": true, "requires": { - "@octokit/openapi-types": "^10.2.2" + "@octokit/openapi-types": "^11.2.0" } }, "@semantic-release/commit-analyzer": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.1.tgz", - "integrity": "sha512-ncNsnrLmiykhgNZUXNvhhAjNN0me7VGIb0X5hu3ogyi5DDPapjGAHdEffO5vi+HX1BFWLRD/Ximx5PjGAKjAqQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", + "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", "dev": true, "requires": { "conventional-changelog-angular": "^5.0.0", "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.7", + "conventional-commits-parser": "^3.2.3", "debug": "^4.0.0", "import-from": "^4.0.0", "lodash": "^4.17.4", @@ -11500,9 +12075,9 @@ "dev": true }, "@semantic-release/github": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.0.tgz", - "integrity": "sha512-TSDlqWeUo7fWlbp6SAMu0T/980s3/SC155ua4rhFj89hC2MYVXDI8o7Mgc5Qw21phQb6+PxHIe5DbFjg9CbeNQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.2.tgz", + "integrity": "sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg==", "dev": true, "requires": { "@octokit/rest": "^18.0.0", @@ -11513,11 +12088,11 @@ "dir-glob": "^3.0.0", "fs-extra": "^10.0.0", "globby": "^11.0.0", - "http-proxy-agent": "^4.0.0", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "issue-parser": "^6.0.0", "lodash": "^4.17.4", - "mime": "^2.4.3", + "mime": "^3.0.0", "p-filter": "^2.0.0", "p-retry": "^4.0.0", "url-join": "^4.0.0" @@ -11532,12 +12107,12 @@ } }, "@semantic-release/npm": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-8.0.0.tgz", - "integrity": "sha512-MAlynjIaN5XwBEzsq3xbZ8I+riD9zhLvpPqGCPaZ0j/ySbR0Sg3YG1MYv03fC1aygPFFC5RwefMxKids9llvDg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-8.0.3.tgz", + "integrity": "sha512-Qbg7x/O1t3sJqsv2+U0AL4Utgi/ymlCiUdt67Ftz9HL9N8aDML4t2tE0T9MBaYdqwD976hz57DqHHXKVppUBoA==", "dev": true, "requires": { - "@semantic-release/error": "^2.2.0", + "@semantic-release/error": "^3.0.0", "aggregate-error": "^3.0.0", "execa": "^5.0.0", "fs-extra": "^10.0.0", @@ -11550,26 +12125,18 @@ "registry-auth-token": "^4.0.0", "semver": "^7.1.2", "tempy": "^1.0.0" - }, - "dependencies": { - "@semantic-release/error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", - "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", - "dev": true - } } }, "@semantic-release/release-notes-generator": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.2.tgz", - "integrity": "sha512-I4eavIcDan8fNQHskZ2cbWkFMimvgxNkqR2UfuYNwYBgswEl3SJsN8XMf9gZWObt6nXDc2QfDwhjy8DjTZqS3w==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", + "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", "dev": true, "requires": { "conventional-changelog-angular": "^5.0.0", "conventional-changelog-writer": "^5.0.0", "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", + "conventional-commits-parser": "^3.2.3", "debug": "^4.0.0", "get-stream": "^6.0.0", "import-from": "^4.0.0", @@ -11579,39 +12146,11 @@ } }, "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true, - "peer": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true, - "peer": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true, - "peer": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true, - "peer": true - }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -11631,9 +12170,9 @@ "dev": true }, "@types/node": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.4.tgz", - "integrity": "sha512-KDazLNYAGIuJugdbULwFZULF9qQ13yNWEBFnfVpqlpgAAo6H/qnM9RjBgh0A0kmHf3XxAKLdN5mTIng9iUvVLA==", + "version": "16.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", + "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", "dev": true }, "@types/normalize-package-data": { @@ -11655,85 +12194,86 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.5.0.tgz", + "integrity": "sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.31.1", - "@typescript-eslint/scope-manager": "4.31.1", - "debug": "^4.3.1", + "@typescript-eslint/experimental-utils": "5.5.0", + "@typescript-eslint/scope-manager": "5.5.0", + "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz", + "integrity": "sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A==", "dev": true, "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.5.0", + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/typescript-estree": "5.5.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.5.0.tgz", + "integrity": "sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", - "debug": "^4.3.1" + "@typescript-eslint/scope-manager": "5.5.0", + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/typescript-estree": "5.5.0", + "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz", + "integrity": "sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/visitor-keys": "5.5.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.5.0.tgz", + "integrity": "sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz", + "integrity": "sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", + "@typescript-eslint/types": "5.5.0", + "@typescript-eslint/visitor-keys": "5.5.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", "semver": "^7.3.5", "tsutils": "^3.21.0" } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz", + "integrity": "sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw==", "dev": true, "requires": { - "@typescript-eslint/types": "4.31.1", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "5.5.0", + "eslint-visitor-keys": "^3.0.0" } }, "@ungap/promise-all-settled": { @@ -11743,9 +12283,9 @@ "dev": true }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true }, "acorn-jsx": { @@ -11755,13 +12295,6 @@ "dev": true, "requires": {} }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "peer": true - }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -11881,8 +12414,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "peer": true + "dev": true }, "argly": { "version": "1.2.0", @@ -11891,18 +12423,9 @@ "dev": true }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "argv-formatter": { @@ -12006,24 +12529,23 @@ "dev": true }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "peer": true + "dev": true }, "caching-transform": { "version": "4.0.0", @@ -12071,9 +12593,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001258", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001258.tgz", - "integrity": "sha512-RBByOG6xWXUp0CR2/WU2amXz3stjKpSl5J1xU49F1n2OxD//uBZO4wCKUiG+QMGf7CHGfDDcqoKriomoGVxTeA==", + "version": "1.0.30001285", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", + "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", "dev": true }, "cardinal": { @@ -12127,6 +12649,17 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "clean-stack": { @@ -12153,16 +12686,41 @@ "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^4.2.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } } }, "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" } }, "cliui": { @@ -12174,19 +12732,31 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - } - }, - "codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", - "dev": true, - "requires": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } } }, "color-convert": { @@ -12205,9 +12775,9 @@ "dev": true }, "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "colors": { @@ -12218,9 +12788,9 @@ "optional": true }, "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true }, "commondir": { @@ -12311,9 +12881,9 @@ } }, "conventional-commits-parser": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz", - "integrity": "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", + "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", "dev": true, "requires": { "is-text-path": "^1.0.1", @@ -12356,8 +12926,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "peer": true + "dev": true }, "cross-spawn": { "version": "7.0.3", @@ -12389,9 +12958,9 @@ "dev": true }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -12549,9 +13118,9 @@ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" }, "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "requires": { "domelementtype": "^2.2.0" } @@ -12585,26 +13154,17 @@ } }, "electron-to-chromium": { - "version": "1.3.843", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.843.tgz", - "integrity": "sha512-OWEwAbzaVd1Lk9MohVw8LxMXFlnYd9oYTYxfX8KS++kLLjDfbovLOcEEXwRhG612dqGQ6+44SZvim0GXuBRiKg==", + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz", + "integrity": "sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA==", "dev": true }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, "enhanced-resolve": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", @@ -12630,47 +13190,14 @@ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" }, "env-ci": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.2.tgz", - "integrity": "sha512-Xc41mKvjouTXD3Oy9AqySz1IeyvJvHZ20Twf5ZLYbNpPPIuCnL/qHCmNlD01LoNy0JTunw9HPYVptD19Ac7Mbw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", + "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", "dev": true, "requires": { - "execa": "^4.0.0", + "execa": "^5.0.0", + "fromentries": "^1.3.2", "java-properties": "^1.0.0" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - } } }, "error-ex": { @@ -12698,20 +13225,158 @@ "dev": true }, "esbuild": { - "version": "0.12.28", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.28.tgz", - "integrity": "sha512-pZ0FrWZXlvQOATlp14lRSk1N9GkeJ3vLIwOcUoo3ICQn9WNR4rWoNi81pbn6sC1iYUy7QPqNzI3+AEzokwyVcA==", - "dev": true + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", + "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", + "dev": true, + "requires": { + "esbuild-android-arm64": "0.14.2", + "esbuild-darwin-64": "0.14.2", + "esbuild-darwin-arm64": "0.14.2", + "esbuild-freebsd-64": "0.14.2", + "esbuild-freebsd-arm64": "0.14.2", + "esbuild-linux-32": "0.14.2", + "esbuild-linux-64": "0.14.2", + "esbuild-linux-arm": "0.14.2", + "esbuild-linux-arm64": "0.14.2", + "esbuild-linux-mips64le": "0.14.2", + "esbuild-linux-ppc64le": "0.14.2", + "esbuild-netbsd-64": "0.14.2", + "esbuild-openbsd-64": "0.14.2", + "esbuild-sunos-64": "0.14.2", + "esbuild-windows-32": "0.14.2", + "esbuild-windows-64": "0.14.2", + "esbuild-windows-arm64": "0.14.2" + } + }, + "esbuild-android-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", + "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", + "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", + "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", + "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", + "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", + "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", + "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", + "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", + "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", + "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", + "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", + "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", + "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", + "dev": true, + "optional": true }, "esbuild-register": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.0.0.tgz", - "integrity": "sha512-No7U3ZUd6gPrrC6gqdb3XFcf2lNqzn8nvQXcgcyOl8szMVuN6YUvOplnmakxWyogI9d8SiJMl0uzBzJck+Aoxw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.2.0.tgz", + "integrity": "sha512-i1sYwESrRHJz15Cl1u2OgLjBBp/bWtGoDdFXVLL1clsp+pFdqIpRfHIQGkgvQAlAecP5IC/bObYrKCyx/lE50Q==", "dev": true, "requires": { "jsonc-parser": "^3.0.0" } }, + "esbuild-sunos-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", + "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", + "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", + "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", + "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", + "dev": true, + "optional": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -12725,37 +13390,36 @@ "dev": true }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.0.tgz", + "integrity": "sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -12763,50 +13427,45 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -12839,31 +13498,31 @@ "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", + "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^8.6.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "eslint-visitor-keys": "^3.1.0" } }, "esprima": { @@ -12882,9 +13541,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -12899,9 +13558,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -12967,6 +13626,17 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "fast-json-stable-stringify": { @@ -12981,23 +13651,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dev": true, - "requires": { - "punycode": "^1.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -13115,9 +13768,9 @@ } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "foreground-child": { @@ -13205,12 +13858,6 @@ "has-symbols": "^1.0.1" } }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -13286,12 +13933,12 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "global-dirs": { @@ -13321,14 +13968,6 @@ "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } } }, "graceful-fs": { @@ -13437,9 +14076,9 @@ "dev": true }, "htmljs-parser": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/htmljs-parser/-/htmljs-parser-2.10.0.tgz", - "integrity": "sha512-HxGvSIIHpnC8WsVqZ/OAxPsgh8xIL7d0eb24TG/WwjxCbzjuxiJm6g8NHAlfFDYq4H9Q/kztAlUxQ/plS/IZfw==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/htmljs-parser/-/htmljs-parser-2.11.1.tgz", + "integrity": "sha512-9TM67eoRSSYFYi+R0yP8ysFOzhQiXClQ41r8V+HCWXuQHKG5qEtY/H8wAhOIsBEVroIeMHU/DatFKOkMXmDnwg==", "dev": true, "requires": { "char-props": "^0.1.5", @@ -13447,9 +14086,9 @@ } }, "htmlparser2": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.1.2.tgz", - "integrity": "sha512-d6cqsbJba2nRdg8WW2okyD4ceonFHn9jLFxhwlNcLhQWcFPdxXeJulgOLjLKtAK9T6ahd+GQNZwG9fjmGW7lyg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.2", @@ -13458,12 +14097,12 @@ } }, "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "requires": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } @@ -13485,26 +14124,17 @@ "dev": true }, "husky": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.2.tgz", - "integrity": "sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -13589,9 +14219,9 @@ } }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" @@ -13604,15 +14234,15 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -13654,12 +14284,6 @@ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -13719,9 +14343,9 @@ } }, "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-hook": { @@ -13791,9 +14415,9 @@ } }, "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -13810,9 +14434,9 @@ } }, "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -13832,21 +14456,12 @@ "dev": true }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } + "argparse": "^2.0.1" } }, "jsesc": { @@ -13960,32 +14575,46 @@ "type-check": "~0.4.0" } }, + "lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true + }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz", + "integrity": "sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==", "dev": true, "requires": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", + "cli-truncate": "^3.1.0", + "colorette": "^2.0.16", + "commander": "^8.3.0", + "debug": "^4.3.2", "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", + "execa": "^5.1.1", + "lilconfig": "2.0.4", + "listr2": "^3.13.3", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "object-inspect": "^1.11.0", + "string-argv": "^0.3.1", + "supports-color": "^9.0.2", + "yaml": "^1.10.2" + }, + "dependencies": { + "supports-color": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", + "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==", + "dev": true + } } }, "listener-tracker": { @@ -13995,18 +14624,65 @@ "dev": true }, "listr2": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.1.tgz", - "integrity": "sha512-oB1DlXlCzGPbvWhqYBZUQEPJKqsmebQWofXG6Mpbe3uIvoNl8mctBEojyF13ZyqwQ91clCWXpwsWp+t98K4FOQ==", + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", + "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", "dev": true, "requires": { "cli-truncate": "^2.1.0", - "colorette": "^1.4.0", + "colorette": "^2.0.16", "log-update": "^4.0.0", "p-map": "^4.0.0", - "rxjs": "^6.6.7", + "rfdc": "^1.3.0", + "rxjs": "^7.4.0", "through": "^2.3.8", "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } } }, "load-json-file": { @@ -14060,12 +14736,6 @@ "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", "dev": true }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", @@ -14078,6 +14748,12 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -14102,12 +14778,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", @@ -14136,6 +14806,18 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -14147,6 +14829,17 @@ "is-fullwidth-code-point": "^3.0.0" } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -14199,8 +14892,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "peer": true + "dev": true }, "map-obj": { "version": "4.3.0", @@ -14229,13 +14921,13 @@ } }, "marko": { - "version": "5.15.10", - "resolved": "https://registry.npmjs.org/marko/-/marko-5.15.10.tgz", - "integrity": "sha512-M35ak/1qRs9GSut6YAJuW3/d2OwNQ8yuY2sPu4k0rm7eMhtFdygpV8szVF7kkRb4l09uRIBrfg8RAjhRprsAEQ==", + "version": "5.17.5", + "resolved": "https://registry.npmjs.org/marko/-/marko-5.17.5.tgz", + "integrity": "sha512-LCCkqKOc0Rm4APBmEeda/7REtqDUI6CaxcEb6wn8hnLatEn9szq7CZsY/brLX8Qk4f344VqrTk/AXmDNkEX4KQ==", "dev": true, "requires": { - "@marko/compiler": "^5.15.10", - "@marko/translator-default": "^5.15.10", + "@marko/compiler": "^5.17.4", + "@marko/translator-default": "^5.17.5", "app-module-path": "^2.2.0", "argly": "^1.2.0", "browser-refresh-client": "1.1.4", @@ -14299,9 +14991,9 @@ } }, "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true }, "mimic-fn": { @@ -14343,16 +15035,16 @@ } }, "mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", + "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.2", - "debug": "4.3.1", + "debug": "4.3.2", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", @@ -14363,28 +15055,21 @@ "log-symbols": "4.1.0", "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.1.23", + "nanoid": "3.1.25", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "wide-align": "1.1.3", "workerpool": "6.1.5", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -14398,14 +15083,17 @@ } } }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "ms": { "version": "2.1.3", @@ -14413,6 +15101,17 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -14446,9 +15145,9 @@ } }, "mocha-snap": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/mocha-snap/-/mocha-snap-4.0.2.tgz", - "integrity": "sha512-N7X2W5nvC3hCL2yn/BP0RFTgQikHE50AaVaQ9S8nNO6Q2Xa67fY7nFn+rDfYKPwqeH011TdJ1PU5wS96i9Pj6w==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mocha-snap/-/mocha-snap-4.2.1.tgz", + "integrity": "sha512-xGGroJy0PgIbKThCcue3na/5xirEDZhvKdGVbGwp0vgZKe5EDKpGioMWmvu5W6N1/2yZygDrMzypMBqDhIDYAA==", "dev": true, "requires": { "fast-glob": "^3.2.7" @@ -14467,9 +15166,9 @@ "dev": true }, "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, "natural-compare": { @@ -14500,10 +15199,13 @@ } }, "node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", - "dev": true + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-preload": { "version": "0.2.1", @@ -14515,9 +15217,9 @@ } }, "node-releases": { - "version": "1.1.76", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", - "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "normalize-package-data": { @@ -14544,11 +15246,12 @@ "dev": true }, "npm": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-7.24.0.tgz", - "integrity": "sha512-4zd4txmN7dYEx32kH/K+gecnZhnGDdCrRFK6/n5TGUtqtyjevw0uPul0knJ9PzwDXeNf9MsWzGhjxGeI1M43FA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz", + "integrity": "sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==", "dev": true, "requires": { + "@isaacs/string-locale-compare": "*", "@npmcli/arborist": "*", "@npmcli/ci-detect": "*", "@npmcli/config": "*", @@ -14625,11 +15328,17 @@ "bundled": true, "dev": true }, + "@isaacs/string-locale-compare": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, "@npmcli/arborist": { - "version": "2.8.3", + "version": "2.9.0", "bundled": true, "dev": true, "requires": { + "@isaacs/string-locale-compare": "^1.0.1", "@npmcli/installed-package-contents": "^1.0.7", "@npmcli/map-workspaces": "^1.0.2", "@npmcli/metavuln-calculator": "^1.1.0", @@ -15312,7 +16021,7 @@ } }, "glob": { - "version": "7.1.7", + "version": "7.2.0", "bundled": true, "dev": true, "requires": { @@ -15495,7 +16204,7 @@ } }, "is-core-module": { - "version": "2.6.0", + "version": "2.7.0", "bundled": true, "dev": true, "requires": { @@ -16348,7 +17057,7 @@ } }, "socks-proxy-agent": { - "version": "6.0.0", + "version": "6.1.0", "bundled": true, "dev": true, "requires": { @@ -16679,6 +17388,12 @@ "wrap-ansi": "^6.2.0" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -16689,6 +17404,12 @@ "path-exists": "^4.0.0" } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -16725,6 +17446,17 @@ "aggregate-error": "^3.0.0" } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -16779,6 +17511,12 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, + "object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "dev": true + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -16970,6 +17708,12 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -17090,24 +17834,23 @@ } } }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", "dev": true, "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map-js": "^0.6.2" + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "dependencies": { + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true + } } }, "prelude-ls": { @@ -17117,9 +17860,9 @@ "dev": true }, "prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true }, "process-nextick-args": { @@ -17149,16 +17892,6 @@ "integrity": "sha1-yyDTIqq32U//rCj0bJGGvVlHtLQ=", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -17417,12 +18150,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -17476,6 +18203,12 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -17486,9 +18219,9 @@ } }, "rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", + "version": "2.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.2.tgz", + "integrity": "sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -17504,12 +18237,20 @@ } }, "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "~2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true + } } }, "safe-buffer": { @@ -17525,12 +18266,12 @@ "dev": true }, "semantic-release": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-18.0.0.tgz", - "integrity": "sha512-/Szyhq5DTZCYry/aZqpBbK/kqv10ydn6oiiaYOXtPgDbAIkqidZcQOm+mfYFJ0sBTUaOYCKMlcPMgJycP7jDYQ==", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-18.0.1.tgz", + "integrity": "sha512-xTdKCaEnCzHr+Fqyhg/5I8P9pvY9z7WHa8TFCYIwcdPbuzAtQShOTzw3VNPsqBT+Yq1kFyBQFBKBYkGOlqWmfA==", "dev": true, "requires": { - "@semantic-release/commit-analyzer": "^9.0.0", + "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/error": "^3.0.0", "@semantic-release/github": "^8.0.0", "@semantic-release/npm": "^8.0.0", @@ -17560,6 +18301,29 @@ "yargs": "^16.2.0" }, "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -17586,12 +18350,6 @@ "lru-cache": "^6.0.0" } }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", @@ -17646,9 +18404,9 @@ "dev": true }, "signal-exit": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.4.tgz", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, "signale": { @@ -17736,14 +18494,21 @@ "dev": true }, "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true + } } }, "source-map": { @@ -17753,17 +18518,16 @@ "dev": true }, "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true }, "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "peer": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -17773,8 +18537,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "peer": true + "dev": true } } }, @@ -17831,9 +18594,9 @@ } }, "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "split": { @@ -17889,15 +18652,6 @@ "readable-stream": "^2.0.2" } }, - "stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "requires": { - "stubs": "^3.0.0" - } - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -17914,42 +18668,40 @@ "dev": true }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", + "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", "dev": true, "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" + "emoji-regex": "^9.2.2", + "is-fullwidth-code-point": "^4.0.0", + "strip-ansi": "^7.0.1" }, "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } } } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -17979,12 +18731,6 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -18004,78 +18750,12 @@ "supports-color": "^7.0.0" } }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - } - } - }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", - "dev": true, - "requires": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } - } - }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -18169,6 +18849,12 @@ "is-number": "^7.0.0" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, "traverse": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", @@ -18182,46 +18868,31 @@ "dev": true }, "ts-node": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz", - "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", - "dev": true, - "peer": true, - "requires": { - "@cspotcode/source-map-support": "0.6.1", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "requires": { "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", + "source-map-support": "^0.5.17", "yn": "3.1.1" }, "dependencies": { - "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true, - "peer": true - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true + "dev": true } } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "dev": true }, "tsutils": { @@ -18231,6 +18902,14 @@ "dev": true, "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "type-check": { @@ -18264,15 +18943,15 @@ } }, "typescript": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", "dev": true }, "uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", + "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", "dev": true, "optional": true }, @@ -18312,15 +18991,6 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, - "urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", - "dev": true, - "requires": { - "fast-url-parser": "^1.1.3" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -18350,16 +19020,162 @@ } }, "vite": { - "version": "2.5.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.5.10.tgz", - "integrity": "sha512-0ObiHTi5AHyXdJcvZ67HMsDgVpjT5RehvVKv6+Q0jFZ7zDI28PF5zK9mYz2avxdA+4iJMdwCz6wnGNnn4WX5Gg==", + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.14.tgz", + "integrity": "sha512-2HA9xGyi+EhY2MXo0+A2dRsqsAG3eFNEVIo12olkWhOmc8LfiM+eMdrXf+Ruje9gdXgvSqjLI9freec1RUM5EA==", "dev": true, "requires": { - "esbuild": "^0.12.17", + "esbuild": "^0.13.2", "fsevents": "~2.3.2", - "postcss": "^8.3.6", + "postcss": "^8.3.8", "resolve": "^1.20.0", - "rollup": "^2.38.5" + "rollup": "^2.57.0" + }, + "dependencies": { + "esbuild": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", + "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", + "dev": true, + "requires": { + "esbuild-android-arm64": "0.13.15", + "esbuild-darwin-64": "0.13.15", + "esbuild-darwin-arm64": "0.13.15", + "esbuild-freebsd-64": "0.13.15", + "esbuild-freebsd-arm64": "0.13.15", + "esbuild-linux-32": "0.13.15", + "esbuild-linux-64": "0.13.15", + "esbuild-linux-arm": "0.13.15", + "esbuild-linux-arm64": "0.13.15", + "esbuild-linux-mips64le": "0.13.15", + "esbuild-linux-ppc64le": "0.13.15", + "esbuild-netbsd-64": "0.13.15", + "esbuild-openbsd-64": "0.13.15", + "esbuild-sunos-64": "0.13.15", + "esbuild-windows-32": "0.13.15", + "esbuild-windows-64": "0.13.15", + "esbuild-windows-arm64": "0.13.15" + } + }, + "esbuild-android-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", + "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", + "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", + "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", + "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", + "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", + "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", + "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", + "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", + "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", + "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", + "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", + "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", + "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", + "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", + "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", + "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", + "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", + "dev": true, + "optional": true + } } }, "warp10": { @@ -18368,6 +19184,22 @@ "integrity": "sha512-CC8MD3mBxPvKgBz58QJo8G+jPGo/oaBL2vcT6EWVpWsgzvDNwhiBBLGUDmRqaaVXv1INh8bpJPpVMUP5q1myBw==", "dev": true }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -18383,48 +19215,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -18452,6 +19242,31 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } } }, "wrappy": { @@ -18497,18 +19312,49 @@ "dev": true }, "yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true + } } }, "yargs-parser": { @@ -18530,9 +19376,9 @@ }, "dependencies": { "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true }, "decamelize": { @@ -18553,8 +19399,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "peer": true + "dev": true }, "yocto-queue": { "version": "0.1.0", diff --git a/package.json b/package.json index 4af9567..2a5e0bd 100644 --- a/package.json +++ b/package.json @@ -7,35 +7,34 @@ "dependencies": { "anymatch": "^3.1.2", "domelementtype": "^2.2.0", - "domhandler": "^4.2.2", - "htmlparser2": "^7.1.1" + "domhandler": "^4.3.0", + "htmlparser2": "^7.2.0" }, "devDependencies": { - "@commitlint/cli": "^13.1.0", - "@commitlint/config-conventional": "^13.1.0", - "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@marko/compiler": "^5.15.10", + "@commitlint/cli": "^15.0.0", + "@commitlint/config-conventional": "^15.0.0", + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@marko/compiler": "^5.17.4", "@types/mocha": "^9.0.0", - "@types/node": "^16.9.4", - "@typescript-eslint/eslint-plugin": "^4.31.1", - "@typescript-eslint/parser": "^4.31.1", - "codecov": "^3.8.3", - "esbuild": "^0.12.28", - "esbuild-register": "^3.0.0", - "eslint": "^7.32.0", + "@types/node": "^16.11.11", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "esbuild": "^0.14.2", + "esbuild-register": "^3.2.0", + "eslint": "^8.4.0", "eslint-config-prettier": "^8.3.0", "fast-glob": "^3.2.7", "fixpack": "^4.0.0", - "husky": "^7.0.2", - "lint-staged": "^11.1.2", - "marko": "^5.15.10", - "mocha": "^9.1.1", - "mocha-snap": "^4.0.2", + "husky": "^7.0.4", + "lint-staged": "^12.1.2", + "marko": "^5.17.5", + "mocha": "^9.1.3", + "mocha-snap": "^4.2.1", "nyc": "^15.1.0", - "prettier": "^2.4.1", - "semantic-release": "^18.0.0", - "typescript": "^4.4.3", - "vite": "^2.5.3" + "prettier": "^2.5.1", + "semantic-release": "^18.0.1", + "typescript": "^4.5.2", + "vite": "^2.6.14" }, "files": [ "dist", @@ -54,8 +53,8 @@ "main": "dist/index.js", "module": "dist/index.mjs", "peerDependencies": { - "@marko/compiler": "^5.15.10", - "vite": "^2.5.10" + "@marko/compiler": "^5", + "vite": "^2" }, "repository": { "type": "git", @@ -63,7 +62,6 @@ }, "scripts": { "build": "tsc -b && node -r esbuild-register build", - "ci:report": "codecov", "ci:test": "nyc npm run mocha -- --forbid-pending --forbid-only", "format": "npm run lint:eslint -- --fix && npm run lint:prettier -- --write && (fixpack || true)", "lint": "tsc -b && npm run lint:eslint && npm run lint:prettier -- -l && fixpack", diff --git a/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/index.4b99b1e2.js b/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/index.4b99b1e2.js deleted file mode 100644 index a216fb4..0000000 --- a/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/index.4b99b1e2.js +++ /dev/null @@ -1,90 +0,0 @@ -import { t, v as vElement, r, a as renderer, d as defineComponent, b as renderTag } from "./vendor.d0fc20d1.js"; -const p = function polyfill() { - const relList = document.createElement("link").relList; - if (relList && relList.supports && relList.supports("modulepreload")) { - return; - } - for (const link of document.querySelectorAll('link[rel="modulepreload"]')) { - processPreload(link); - } - new MutationObserver((mutations) => { - for (const mutation of mutations) { - if (mutation.type !== "childList") { - continue; - } - for (const node of mutation.addedNodes) { - if (node.tagName === "LINK" && node.rel === "modulepreload") - processPreload(node); - } - } - }).observe(document, { childList: true, subtree: true }); - function getFetchOpts(script) { - const fetchOpts = {}; - if (script.integrity) - fetchOpts.integrity = script.integrity; - if (script.referrerpolicy) - fetchOpts.referrerPolicy = script.referrerpolicy; - if (script.crossorigin === "use-credentials") - fetchOpts.credentials = "include"; - else if (script.crossorigin === "anonymous") - fetchOpts.credentials = "omit"; - else - fetchOpts.credentials = "same-origin"; - return fetchOpts; - } - function processPreload(link) { - if (link.ep) - return; - link.ep = true; - const fetchOpts = getFetchOpts(link); - fetch(link.href, fetchOpts); - } -}; -p(); -var index_marko = "\n div { color: green }\n"; -const _marko_componentType$2 = "jNoSojxo", _marko_template$2 = t(_marko_componentType$2); -const _marko_node = vElement("div", { - "id": "implicit" -}, "0", null, 0, 1); -r(_marko_componentType$2, () => _marko_template$2); -const _marko_component$2 = {}; -_marko_template$2._ = renderer(function(input, out, _componentDef, _component, state) { - out.n(_marko_node, _component); -}, { - t: _marko_componentType$2, - i: true -}, _marko_component$2); -_marko_template$2.Component = defineComponent(_marko_component$2, _marko_template$2._); -var _marko_split_component = { - onMount() { - console.log("mounted"); - } -}; -const _marko_componentType$1 = "iKnY83y7", _marko_template$1 = t(_marko_componentType$1); -r(_marko_componentType$1, () => _marko_split_component); -const _marko_component$1 = {}; -_marko_template$1._ = renderer(function(input, out, _componentDef, _component, state) { - out.be("div", { - "id": "split" - }, "0", _component, null, 1); - renderTag(_marko_template$2, {}, out, _componentDef, "1"); - out.ee(); -}, { - t: _marko_componentType$1, - s: true -}, _marko_component$1); -_marko_template$1.Component = defineComponent(_marko_component$1, _marko_template$1._); -const _marko_componentType = "pWXzc6jh", _marko_template = t(_marko_componentType); -r(_marko_componentType, () => _marko_template); -const _marko_component = {}; -_marko_template._ = renderer(function(input, out, _componentDef, _component, state) { - out.be("div", { - "id": "page" - }, "0", _component, null, 1); - renderTag(_marko_template$1, {}, out, _componentDef, "1"); - out.ee(); -}, { - t: _marko_componentType, - i: true -}, _marko_component); -_marko_template.Component = defineComponent(_marko_component, _marko_template._); diff --git a/src/__tests__/__snapshots__/browser-basic.expected/assets/index.b8f16c63.css b/src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/index.css similarity index 100% rename from src/__tests__/__snapshots__/browser-basic.expected/assets/index.b8f16c63.css rename to src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/index.css diff --git a/src/__tests__/__snapshots__/browser-basic.expected/assets/index.2adea718.js b/src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/index.js similarity index 96% rename from src/__tests__/__snapshots__/browser-basic.expected/assets/index.2adea718.js rename to src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/index.js index b44d297..dfb6205 100644 --- a/src/__tests__/__snapshots__/browser-basic.expected/assets/index.2adea718.js +++ b/src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/index.js @@ -1,4 +1,4 @@ -import { t, v as vElement, r, a as renderer, d as defineComponent, b as renderTag } from "./vendor.d0fc20d1.js"; +import { t, v as vElement, r, a as renderer, d as defineComponent, b as renderTag } from "./vendor.js"; const p = function polyfill() { const relList = document.createElement("link").relList; if (relList && relList.supports && relList.supports("modulepreload")) { @@ -41,7 +41,7 @@ const p = function polyfill() { } }; p(); -var template_marko = "\n div { color: green }\n"; +var template_marko = ""; const _marko_componentType$2 = "NApEsAbr", _marko_template$2 = t(_marko_componentType$2); const _marko_node = vElement("div", { "id": "class" diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/vendor.d0fc20d1.js b/src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/vendor.js similarity index 91% rename from src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/vendor.d0fc20d1.js rename to src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/vendor.js index 01f3ca7..95acae2 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/vendor.d0fc20d1.js +++ b/src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/assets/vendor.js @@ -132,64 +132,64 @@ var vdom$1 = {}; function VNode$6() { } VNode$6.prototype = { - bz_: function(finalChildCount, ownerComponent) { - this.bP_ = finalChildCount; - this.bQ_ = 0; - this.bF_ = null; - this.bR_ = null; + by_: function(finalChildCount, ownerComponent) { + this.bO_ = finalChildCount; + this.bP_ = 0; + this.bE_ = null; + this.bQ_ = null; + this.bB_ = null; this.bC_ = null; - this.bD_ = null; this.aA_ = ownerComponent; }, get _r_() { - var firstChild2 = this.bF_; - if (firstChild2 && firstChild2.bE_) { + var firstChild2 = this.bE_; + if (firstChild2 && firstChild2.bD_) { var nestedFirstChild = firstChild2._r_; - return nestedFirstChild || firstChild2.bS_; + return nestedFirstChild || firstChild2.bR_; } return firstChild2; }, - get bS_() { - var nextSibling2 = this.bD_; + get bR_() { + var nextSibling2 = this.bC_; if (nextSibling2) { - if (nextSibling2.bE_) { + if (nextSibling2.bD_) { var firstChild2 = nextSibling2._r_; - return firstChild2 || nextSibling2.bS_; + return firstChild2 || nextSibling2.bR_; } } else { - var parentNode = this.bC_; - if (parentNode && parentNode.bE_) { - return parentNode.bS_; + var parentNode = this.bB_; + if (parentNode && parentNode.bD_) { + return parentNode.bR_; } } return nextSibling2; }, - br_: function(child) { - this.bQ_++; - if (this.bH_ === "textarea") { - if (child.bT_) { - var childValue = child.bU_; - this.bI_ = (this.bI_ || "") + childValue; + bq_: function(child) { + this.bP_++; + if (this.bG_ === "textarea") { + if (child.bS_) { + var childValue = child.bT_; + this.bH_ = (this.bH_ || "") + childValue; } else if (child.n_ || child.m_) { - this.bV_ = true; + this.bU_ = true; } else { throw TypeError(); } } else { - var lastChild = this.bR_; - child.bC_ = this; + var lastChild = this.bQ_; + child.bB_ = this; if (lastChild) { - lastChild.bD_ = child; + lastChild.bC_ = child; } else { - this.bF_ = child; + this.bE_ = child; } - this.bR_ = child; + this.bQ_ = child; } return child; }, - bK_: function finishChild() { - if (this.bQ_ === this.bP_ && this.bC_) { - return this.bC_.bK_(); + bJ_: function finishChild() { + if (this.bP_ === this.bO_ && this.bB_) { + return this.bB_.bJ_(); } else { return this; } @@ -239,21 +239,21 @@ var inherit$6 = inherit_1; var extend$4 = extend$5; function VDocumentFragmentClone(other) { extend$4(this, other); + this.bB_ = null; this.bC_ = null; - this.bD_ = null; } function VDocumentFragment$2(out) { - this.bz_(null); + this.by_(null); this.y_ = out; } VDocumentFragment$2.prototype = { - bB_: 11, - bE_: true, - bs_: function() { + bA_: 11, + bD_: true, + br_: function() { return new VDocumentFragmentClone(this); }, - by_: function(doc) { - return doc.createDocumentFragment(); + bx_: function(host) { + return (host.ownerDocument || host).createDocumentFragment(); } }; inherit$6(VDocumentFragment$2, VNode$5); @@ -276,10 +276,9 @@ var vPropsByDOMNode = domData$5.ad_; var markoUID = window.$MUID || (window.$MUID = { i: 0 }); var runtimeId$1 = markoUID.i++; var componentLookup$4 = {}; -var defaultDocument$3 = document; var EMPTY_OBJECT$2 = {}; -function getComponentForEl(el, doc) { - var node = typeof el == "string" ? (doc || defaultDocument$3).getElementById(el) : el; +function getComponentForEl(el, host) { + var node = typeof el == "string" ? ((host ? host.ownerDocument : host) || document).getElementById(el) : el; var component; var vElement2; while (node) { @@ -434,58 +433,58 @@ function removeAttribute(el, namespaceURI, name) { } } function VElementClone(other) { - this.bF_ = other.bF_; + this.bE_ = other.bE_; + this.bB_ = null; this.bC_ = null; - this.bD_ = null; - this.bA_ = other.bA_; - this.bG_ = other.bG_; + this.bz_ = other.bz_; + this.bF_ = other.bF_; this.aB_ = other.aB_; - this.bH_ = other.bH_; + this.bG_ = other.bG_; this._I_ = other._I_; + this.bH_ = other.bH_; this.bI_ = other.bI_; - this.bJ_ = other.bJ_; } function VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - this.bz_(childCount, ownerComponent); + this.by_(childCount, ownerComponent); var constId; if (props) { constId = props.i; } - this.bA_ = key; + this.bz_ = key; this._I_ = flags || 0; - this.bG_ = attrs2 || EMPTY_OBJECT$1; + this.bF_ = attrs2 || EMPTY_OBJECT$1; this.aB_ = props || EMPTY_OBJECT$1; - this.bH_ = tagName; - this.bI_ = null; - this.bJ_ = constId; + this.bG_ = tagName; + this.bH_ = null; + this.bI_ = constId; this.n_ = false; this.m_ = false; } VElement$4.prototype = { - bB_: 1, - bs_: function() { + bA_: 1, + br_: function() { return new VElementClone(this); }, e: function(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - var child = this.br_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); + var child = this.bq_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); if (childCount === 0) { - return this.bK_(); + return this.bJ_(); } else { return child; } }, n: function(node, ownerComponent) { - node = node.bs_(); + node = node.br_(); node.aA_ = ownerComponent; - this.br_(node); - return this.bK_(); + this.bq_(node); + return this.bJ_(); }, - by_: function(doc, parentNamespaceURI) { - var tagName = this.bH_; - var attributes = this.bG_; + bx_: function(host, parentNamespaceURI) { + var tagName = this.bG_; + var attributes = this.bF_; var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; var flags = this._I_; - var el = doc.createElementNS(namespaceURI, tagName); + var el = (host.ownerDocument || host).createElementNS(namespaceURI, tagName); if (flags & FLAG_CUSTOM_ELEMENT) { assign(el, attributes); } else { @@ -510,8 +509,8 @@ VElement$4.prototype = { vElementByDOMNode$2.set(el, this); return el; }, - bL_: function(name) { - var value = this.bG_[name]; + bK_: function(name) { + var value = this.bF_[name]; return value != null && value !== false; } }; @@ -520,21 +519,21 @@ var proto$2 = VElementClone.prototype = VElement$4.prototype; ["checked", "selected", "disabled"].forEach(function(name) { defineProperty(proto$2, name, { get: function() { - var value = this.bG_[name]; + var value = this.bF_[name]; return value !== false && value != null; } }); }); defineProperty(proto$2, "q_", { get: function() { - var value = this.bI_; + var value = this.bH_; if (value == null) { - value = this.bG_.value; + value = this.bF_.value; } - return value != null && value !== false ? value + "" : this.bG_.type === "checkbox" || this.bG_.type === "radio" ? "on" : ""; + return value != null && value !== false ? value + "" : this.bF_.type === "checkbox" || this.bF_.type === "radio" ? "on" : ""; } }); -VElement$4.bM_ = function(attrs2) { +VElement$4.bL_ = function(attrs2) { return attrs2; }; function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { @@ -563,26 +562,26 @@ function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { tagName = tagName.toLowerCase(); } var vdomEl = new VElement$4(tagName, attrs2, null, ownerComponent, 0, 0, props); - if (vdomEl.bH_ === "textarea") { - vdomEl.bI_ = node.value; + if (vdomEl.bG_ === "textarea") { + vdomEl.bH_ = node.value; } else if (virtualizeChildNodes2) { virtualizeChildNodes2(node, vdomEl, ownerComponent); } return vdomEl; } -VElement$4.bN_ = virtualizeElement$1; -VElement$4.bO_ = function(fromEl, vFromEl, toEl) { - var removePreservedAttributes = VElement$4.bM_; +VElement$4.bM_ = virtualizeElement$1; +VElement$4.bN_ = function(fromEl, vFromEl, toEl) { + var removePreservedAttributes = VElement$4.bL_; var fromFlags = vFromEl._I_; var toFlags = toEl._I_; vElementByDOMNode$2.set(fromEl, toEl); - var attrs2 = toEl.bG_; + var attrs2 = toEl.bF_; var props = toEl.aB_; if (toFlags & FLAG_CUSTOM_ELEMENT) { return assign(fromEl, attrs2); } var attrName; - var oldAttrs = vFromEl.bG_; + var oldAttrs = vFromEl.bF_; if (oldAttrs) { if (oldAttrs === attrs2) { return; @@ -599,7 +598,7 @@ VElement$4.bO_ = function(fromEl, vFromEl, toEl) { fromEl.id = attrValue; } if (oldAttrs.style !== (attrValue = attrs2.style)) { - fromEl.style.cssText = attrValue; + fromEl.cssText = attrValue; } return; } @@ -622,7 +621,7 @@ VElement$4.bO_ = function(fromEl, vFromEl, toEl) { setAttribute(fromEl, namespaceURI, attrName, attrValue); } } - if (toEl.bA_ === null || fromFlags & FLAG_SPREAD_ATTRS) { + if (toEl.bz_ === null || fromFlags & FLAG_SPREAD_ATTRS) { for (attrName in oldAttrs) { if (!(attrName in attrs2)) { if (attrName === ATTR_XLINK_HREF) { @@ -638,17 +637,17 @@ var VElement_1 = VElement$4; var VNode$3 = VNode_1; var inherit$4 = inherit_1; function VText$2(value, ownerComponent) { - this.bz_(-1, ownerComponent); - this.bU_ = value; + this.by_(-1, ownerComponent); + this.bT_ = value; } VText$2.prototype = { - bT_: true, - bB_: 3, - by_: function(doc) { - return doc.createTextNode(this.bU_); + bS_: true, + bA_: 3, + bx_: function(host) { + return (host.ownerDocument || host).createTextNode(this.bT_); }, - bs_: function() { - return new VText$2(this.bU_); + br_: function() { + return new VText$2(this.bT_); } }; inherit$4(VText$2, VNode$3); @@ -656,13 +655,13 @@ var VText_1 = VText$2; var VNode$2 = VNode_1; var inherit$3 = inherit_1; function VComponent$2(component, key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; + this.by_(null, ownerComponent); + this.bz_ = key; this.h_ = component; this.n_ = preserve; } VComponent$2.prototype = { - bB_: 2 + bA_: 2 }; inherit$3(VComponent$2, VNode$2); var VComponent_1 = VComponent$2; @@ -697,7 +696,7 @@ function removeChild$2(node) { } helpers$3.aF_ = insertBefore$3; helpers$3.aG_ = insertAfter$2; -helpers$3.bS_ = nextSibling$1; +helpers$3.bR_ = nextSibling$1; helpers$3._r_ = firstChild$1; helpers$3.aH_ = removeChild$2; var helpers$2 = helpers$3; @@ -763,14 +762,14 @@ function createFragmentNode$3(startNode, nextNode, parentNode) { } function beginFragmentNode$1(startNode, parentNode) { var fragment2 = createFragmentNode$3(startNode, null, parentNode); - fragment2.bY_ = function(nextNode) { - fragment2.bY_ = null; + fragment2.bX_ = function(nextNode) { + fragment2.bX_ = null; insertBefore$2(fragment2.endNode, nextNode, parentNode || startNode.parentNode); }; return fragment2; } fragment$1.ao_ = createFragmentNode$3; -fragment$1.bZ_ = beginFragmentNode$1; +fragment$1.bY_ = beginFragmentNode$1; var domData$3 = domData$6; var keysByDOMNode$1 = domData$3.ag_; var vElementByDOMNode$1 = domData$3.ae_; @@ -778,15 +777,15 @@ var VNode$1 = VNode_1; var inherit$2 = inherit_1; var createFragmentNode$2 = fragment$1.ao_; function VFragment$2(key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; + this.by_(null, ownerComponent); + this.bz_ = key; this.n_ = preserve; } VFragment$2.prototype = { - bB_: 12, - by_: function() { + bA_: 12, + bx_: function() { var fragment2 = createFragmentNode$2(); - keysByDOMNode$1.set(fragment2, this.bA_); + keysByDOMNode$1.set(fragment2, this.bz_); vElementByDOMNode$1.set(fragment2, this); return fragment2; } @@ -814,19 +813,18 @@ var VText$1 = VText_1; var VComponent$1 = VComponent_1; var VFragment$1 = VFragment_1; var parseHTML = parseHtml; -var defaultDocument$2 = typeof document != "undefined" && document; var specialHtmlRegexp = /[&<]/; function virtualizeChildNodes(node, vdomParent, ownerComponent) { var curChild = node.firstChild; while (curChild) { - vdomParent.br_(virtualize(curChild, ownerComponent)); + vdomParent.bq_(virtualize(curChild, ownerComponent)); curChild = curChild.nextSibling; } } function virtualize(node, ownerComponent) { switch (node.nodeType) { case 1: - return VElement$3.bN_(node, virtualizeChildNodes, ownerComponent); + return VElement$3.bM_(node, virtualizeChildNodes, ownerComponent); case 3: return new VText$1(node.nodeValue, ownerComponent); case 11: @@ -835,14 +833,14 @@ function virtualize(node, ownerComponent) { return vdomDocFragment; } } -function virtualizeHTML$1(html, doc, ownerComponent) { +function virtualizeHTML$1(html, ownerComponent) { if (!specialHtmlRegexp.test(html)) { return new VText$1(html, ownerComponent); } var vdomFragment = new VDocumentFragment$1(); var curChild = parseHTML(html); while (curChild) { - vdomFragment.br_(virtualize(curChild, ownerComponent)); + vdomFragment.bq_(virtualize(curChild, ownerComponent)); curChild = curChild.nextSibling; } return vdomFragment; @@ -860,20 +858,19 @@ Node_prototype.t = function(value) { } } } - this.br_(vdomNode || new VText$1(value.toString())); - return this.bK_(); + this.bq_(vdomNode || new VText$1(value.toString())); + return this.bJ_(); }; -Node_prototype.bw_ = function() { - return this.br_(new VDocumentFragment$1()); +Node_prototype.bv_ = function() { + return this.bq_(new VDocumentFragment$1()); }; vdom$1.ba_ = VDocumentFragment$1; vdom$1.b__ = VElement$3; vdom$1.bb_ = VText$1; vdom$1.bc_ = VComponent$1; vdom$1.bd_ = VFragment$1; -vdom$1.bN_ = virtualize; +vdom$1.bM_ = virtualize; vdom$1.be_ = virtualizeHTML$1; -vdom$1.bf_ = defaultDocument$2; var extend$3 = extend$5; var componentsUtil$5 = indexBrowser$5; var destroyComponentForNode = componentsUtil$5.aC_; @@ -946,6 +943,12 @@ var domInsert$2 = function(target, getEl3, afterInsert3) { }); }; var domInsert$1 = domInsert$2; +function getRootNode(el) { + var cur = el; + while (cur.parentNode) + cur = cur.parentNode; + return cur; +} function getComponentDefs(result) { var componentDefs = result.b_; if (!componentDefs) { @@ -976,18 +979,18 @@ var proto$1 = RenderResult$2.prototype = { }); return components; }, - afterInsert: function(doc) { + afterInsert: function(host) { var out = this.y_; var componentsContext = out.b_; if (componentsContext) { - this.b_ = componentsContext.z_(doc); + this.b_ = componentsContext.z_(host); } else { this.b_ = null; } return this; }, - getNode: function(doc) { - return this.y_.A_(doc); + getNode: function(host) { + return this.y_.A_(host); }, getOutput: function() { return this.y_.B_(); @@ -995,7 +998,7 @@ var proto$1 = RenderResult$2.prototype = { toString: function() { return this.y_.toString(); }, - document: typeof document != "undefined" && document + document: typeof window === "object" && document }; Object.defineProperty(proto$1, "html", { get: function() { @@ -1008,10 +1011,9 @@ Object.defineProperty(proto$1, "context", { } }); domInsert$1(proto$1, function getEl(renderResult, referenceEl) { - return renderResult.getNode(referenceEl.ownerDocument); + return renderResult.getNode(getRootNode(referenceEl)); }, function afterInsert(renderResult, referenceEl) { - var isShadow = typeof ShadowRoot === "function" && referenceEl instanceof ShadowRoot; - return renderResult.afterInsert(isShadow ? referenceEl : referenceEl.ownerDocument); + return renderResult.afterInsert(getRootNode(referenceEl)); }); function syncBooleanAttrProp(fromEl, toEl, name) { if (fromEl[name] !== toEl[name]) { @@ -1026,12 +1028,12 @@ function syncBooleanAttrProp(fromEl, toEl, name) { function forEachOption(el, fn, i) { var curChild = el._r_; while (curChild) { - if (curChild.bH_ === "option") { + if (curChild.bG_ === "option") { fn(curChild, ++i); } else { i = forEachOption(curChild, fn, i); } - curChild = curChild.bS_; + curChild = curChild.bR_; } return i; } @@ -1050,12 +1052,12 @@ SpecialElHandlers.prototype = { if (fromEl.value != toEl.q_) { fromEl.value = toEl.q_; } - if (fromEl.hasAttribute("value") && !toEl.bL_("value")) { + if (fromEl.hasAttribute("value") && !toEl.bK_("value")) { fromEl.removeAttribute("value"); } }, textarea: function(fromEl, toEl) { - if (toEl.bV_) { + if (toEl.bU_) { return; } var newValue = toEl.q_; @@ -1072,10 +1074,10 @@ SpecialElHandlers.prototype = { } }, select: function(fromEl, toEl) { - if (!toEl.bL_("multiple")) { + if (!toEl.bK_("multiple")) { var selected = 0; forEachOption(toEl, function(option, i) { - if (option.bL_("selected")) { + if (option.bK_("selected")) { selected = i; } }, -1); @@ -1153,11 +1155,10 @@ function addDelegatedEventHandler$1(eventType) { delegatedEvents[eventType] = true; } } -function addDelegatedEventHandlerToDoc(eventType, doc) { - var body = doc.body || doc; - var listeners = doc[listenersAttachedKey] = doc[listenersAttachedKey] || {}; +function addDelegatedEventHandlerToHost(eventType, host) { + var listeners = host[listenersAttachedKey] = host[listenersAttachedKey] || {}; if (!listeners[eventType]) { - body.addEventListener(eventType, listeners[eventType] = function(event) { + (host.body || host).addEventListener(eventType, listeners[eventType] = function(event) { var propagationStopped = false; var oldStopPropagation = event.stopPropagation; event.stopPropagation = function() { @@ -1189,9 +1190,9 @@ eventDelegation$3.___ = noop; eventDelegation$3._Z_ = delegateEvent; eventDelegation$3.a__ = getEventFromEl; eventDelegation$3._D_ = addDelegatedEventHandler$1; -eventDelegation$3.an_ = function(doc) { +eventDelegation$3.an_ = function(host) { Object.keys(delegatedEvents).forEach(function(eventType) { - addDelegatedEventHandlerToDoc(eventType, doc); + addDelegatedEventHandlerToHost(eventType, host); }); }; var specialElHandlers = specialElHandlers$1; @@ -1202,8 +1203,8 @@ var destroyNodeRecursive$1 = componentsUtil$3.D_; var addComponentRootToKeyedElements$1 = componentsUtil$3.ap_; var normalizeComponentKey = componentsUtil$3.aD_; var VElement$2 = vdom$1.b__; -var virtualizeElement = VElement$2.bN_; -var morphAttrs = VElement$2.bO_; +var virtualizeElement = VElement$2.bM_; +var morphAttrs = VElement$2.bN_; var eventDelegation$2 = eventDelegation$3; var fragment = fragment$1; var helpers = helpers$3; @@ -1214,11 +1215,11 @@ var vElementByDOMNode = domData$2.ae_; var detachedByDOMNode = domData$2.af_; var insertBefore = helpers.aF_; var insertAfter = helpers.aG_; -var nextSibling = helpers.bS_; +var nextSibling = helpers.bR_; var firstChild = helpers._r_; var removeChild = helpers.aH_; var createFragmentNode$1 = fragment.ao_; -var beginFragmentNode = fragment.bZ_; +var beginFragmentNode = fragment.bY_; var ELEMENT_NODE$1 = 1; var TEXT_NODE = 3; var COMMENT_NODE = 8; @@ -1229,7 +1230,7 @@ function isAutoKey(key) { return key[0] !== "@"; } function compareNodeNames(fromEl, toEl) { - return fromEl.bH_ === toEl.bH_; + return fromEl.bG_ === toEl.bG_; } function caseInsensitiveCompare(a, b) { return a.toLowerCase() === b.toLowerCase(); @@ -1239,7 +1240,7 @@ function onNodeAdded(node, componentsContext) { eventDelegation$2.ab_(node, componentsContext); } } -function morphdom$2(fromNode, toNode, doc, componentsContext) { +function morphdom$2(fromNode, toNode, host, componentsContext) { var globalComponentsContext; var isHydrate = false; var keySequences = Object.create(null); @@ -1248,14 +1249,14 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { isHydrate = globalComponentsContext.f_; } function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { - var realNode = vNode.by_(doc, parentEl.namespaceURI); + var realNode = vNode.bx_(host, parentEl.namespaceURI); insertBefore(realNode, referenceEl, parentEl); - if (vNode.bB_ === ELEMENT_NODE$1 || vNode.bB_ === FRAGMENT_NODE) { + if (vNode.bA_ === ELEMENT_NODE$1 || vNode.bA_ === FRAGMENT_NODE) { if (key) { keysByDOMNode.set(realNode, key); (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; } - if (vNode.bH_ !== "textarea") { + if (vNode.bG_ !== "textarea") { morphChildren(realNode, vNode, parentComponent); } onNodeAdded(realNode, componentsContext); @@ -1301,9 +1302,9 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { var fromComponent; outer: while (curToNodeChild) { - toNextSibling = curToNodeChild.bS_; - curToNodeType = curToNodeChild.bB_; - curToNodeKey = curToNodeChild.bA_; + toNextSibling = curToNodeChild.bR_; + curToNodeType = curToNodeChild.bA_; + curToNodeKey = curToNodeChild.bz_; if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { curFromNodeChild = nextSibling(curFromNodeChild); } @@ -1374,9 +1375,9 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { matchingFromEl = referenceComponent.k_[curToNodeKey]; if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { if (isHydrate === true && curFromNodeChild) { - if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bH_ || ""))) { + if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bG_ || ""))) { curVFromNodeChild = virtualizeElement(curFromNodeChild); - curVFromNodeChild.bH_ = curToNodeChild.bH_; + curVFromNodeChild.bG_ = curToNodeChild.bG_; keysByDOMNode.set(curFromNodeChild, curToNodeKey); referenceComponent.k_[curToNodeKey] = curFromNodeChild; if (curToNodeChild.n_) { @@ -1387,7 +1388,7 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { curToNodeChild = toNextSibling; curFromNodeChild = fromNextSibling; continue; - } else if (curToNodeChild.bB_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { + } else if (curToNodeChild.bA_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { var content = curFromNodeChild.nodeValue; if (content == "F#" + curToNodeKeyOriginal) { var endNode = curFromNodeChild.nextSibling; @@ -1433,7 +1434,7 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { if (fromNextSibling === matchingFromEl) { - if (toNextSibling && toNextSibling.bA_ === curFromNodeKey) { + if (toNextSibling && toNextSibling.bz_ === curFromNodeKey) { fromNextSibling = curFromNodeChild; insertBefore(matchingFromEl, curFromNodeChild, fromNode2); } else { @@ -1480,14 +1481,14 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { if (curVFromNodeChild === void 0) { if (isHydrate === true) { curVFromNodeChild = virtualizeElement(curFromNodeChild); - if (caseInsensitiveCompare(curVFromNodeChild.bH_, curToNodeChild.bH_)) { - curVFromNodeChild.bH_ = curToNodeChild.bH_; + if (caseInsensitiveCompare(curVFromNodeChild.bG_, curToNodeChild.bG_)) { + curVFromNodeChild.bG_ = curToNodeChild.bG_; } } else { curFromNodeChild = fromNextSibling; continue; } - } else if (curFromNodeKey = curVFromNodeChild.bA_) { + } else if (curFromNodeKey = curVFromNodeChild.bz_) { isCompatible = false; } isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; @@ -1496,8 +1497,11 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { } } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { isCompatible = true; - if (curFromNodeChild.nodeValue !== curToNodeChild.bU_) { - curFromNodeChild.nodeValue = curToNodeChild.bU_; + if (isHydrate === true && toNextSibling && curFromNodeType === TEXT_NODE && toNextSibling.bA_ === TEXT_NODE) { + fromNextSibling = curFromNodeChild.splitText(curToNodeChild.bT_.length); + } + if (curFromNodeChild.nodeValue !== curToNodeChild.bT_) { + curFromNodeChild.nodeValue = curToNodeChild.bT_; } } } @@ -1513,8 +1517,8 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { curToNodeChild = toNextSibling; curFromNodeChild = fromNextSibling; } - if (fromNode2.bY_) { - fromNode2.bY_(curFromNodeChild); + if (fromNode2.bX_) { + fromNode2.bX_(curFromNodeChild); } else { var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { @@ -1539,9 +1543,9 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { } } function morphEl(fromEl, vFromEl, toEl, parentComponent) { - var nodeName = toEl.bH_; - var constId = toEl.bJ_; - if (constId !== void 0 && vFromEl.bJ_ === constId) { + var nodeName = toEl.bG_; + var constId = toEl.bI_; + if (constId !== void 0 && vFromEl.bI_ === constId) { return; } morphAttrs(fromEl, vFromEl, toEl); @@ -1687,15 +1691,14 @@ var VComponent = vdom.bc_; var VFragment = vdom.bd_; var virtualizeHTML = vdom.be_; var RenderResult$1 = RenderResult_1; -var defaultDocument$1 = vdom.bf_; var morphdom$1 = morphdom_1; var attrsHelper = attrs; var EVENT_UPDATE = "update"; var EVENT_FINISH = "finish"; function State$1(tree) { - this.bg_ = new EventEmitter$1(); - this.bh_ = tree; - this.bi_ = false; + this.bf_ = new EventEmitter$1(); + this.bg_ = tree; + this.bh_ = false; } function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { if (!parentNode) { @@ -1707,17 +1710,17 @@ function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { } else { state = new State$1(parentNode); } - this.bj_ = 1; - this.bk_ = 0; - this.bl_ = null; - this.bm_ = parentOut; + this.bi_ = 1; + this.bj_ = 0; + this.bk_ = null; + this.bl_ = parentOut; this.data = {}; this.J_ = state; this.l_ = parentNode; this.global = globalData || {}; - this.bn_ = [parentNode]; - this.bo_ = false; - this.bp_ = void 0; + this.bm_ = [parentNode]; + this.bn_ = false; + this.bo_ = void 0; this.b_ = null; this.g_ = null; this.i_ = null; @@ -1725,38 +1728,38 @@ function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { } var proto = AsyncVDOMBuilder$1.prototype = { aP_: true, - X_: defaultDocument$1, + X_: typeof window === "object" && document, bc: function(component, key, ownerComponent) { var vComponent = new VComponent(component, key, ownerComponent); - return this.bq_(vComponent, 0, true); + return this.bp_(vComponent, 0, true); }, ay_: function(component, key, ownerComponent) { var vComponent = new VComponent(component, key, ownerComponent, true); - this.bq_(vComponent, 0); + this.bp_(vComponent, 0); }, - bq_: function(child, childCount, pushToStack) { - this.l_.br_(child); + bp_: function(child, childCount, pushToStack) { + this.l_.bq_(child); if (pushToStack === true) { - this.bn_.push(child); + this.bm_.push(child); this.l_ = child; } return childCount === 0 ? this : child; }, element: function(tagName, attrs2, key, component, childCount, flags, props) { var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - return this.bq_(element, childCount); + return this.bp_(element, childCount); }, aM_: function(tagName, attrs2, key, componentDef, props) { return this.element(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); }, n: function(node, component) { - var clone = node.bs_(); + var clone = node.br_(); this.node(clone); clone.aA_ = component; return this; }, node: function(node) { - this.l_.br_(node); + this.l_.bq_(node); return this; }, text: function(text, ownerComponent) { @@ -1771,19 +1774,19 @@ var proto = AsyncVDOMBuilder$1.prototype = { } text = text.toString(); } - this.l_.br_(new VText(text, ownerComponent)); + this.l_.bq_(new VText(text, ownerComponent)); return this; }, html: function(html, ownerComponent) { if (html != null) { - var vdomNode = virtualizeHTML(html, this.X_ || document, ownerComponent); + var vdomNode = virtualizeHTML(html, ownerComponent); this.node(vdomNode); } return this; }, beginElement: function(tagName, attrs2, key, component, childCount, flags, props) { var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - this.bq_(element, childCount, true); + this.bp_(element, childCount, true); return this; }, aK_: function(tagName, attrs2, key, componentDef, props) { @@ -1791,51 +1794,51 @@ var proto = AsyncVDOMBuilder$1.prototype = { }, bf: function(key, component, preserve) { var fragment2 = new VFragment(key, component, preserve); - this.bq_(fragment2, null, true); + this.bp_(fragment2, null, true); return this; }, ef: function() { this.endElement(); }, endElement: function() { - var stack = this.bn_; + var stack = this.bm_; stack.pop(); this.l_ = stack[stack.length - 1]; }, end: function() { this.l_ = void 0; - var remaining = --this.bj_; - var parentOut = this.bm_; + var remaining = --this.bi_; + var parentOut = this.bl_; if (remaining === 0) { if (parentOut) { - parentOut.bt_(); + parentOut.bs_(); } else { - this.bu_(); + this.bt_(); } - } else if (remaining - this.bk_ === 0) { - this.bv_(); + } else if (remaining - this.bj_ === 0) { + this.bu_(); } return this; }, - bt_: function() { - var remaining = --this.bj_; + bs_: function() { + var remaining = --this.bi_; if (remaining === 0) { - var parentOut = this.bm_; + var parentOut = this.bl_; if (parentOut) { - parentOut.bt_(); + parentOut.bs_(); } else { - this.bu_(); + this.bt_(); } - } else if (remaining - this.bk_ === 0) { - this.bv_(); + } else if (remaining - this.bj_ === 0) { + this.bu_(); } }, - bu_: function() { + bt_: function() { var state = this.J_; - state.bi_ = true; - state.bg_.emit(EVENT_FINISH, this.aQ_()); + state.bh_ = true; + state.bf_.emit(EVENT_FINISH, this.aQ_()); }, - bv_: function() { + bu_: function() { var lastArray = this._last; var i = 0; function next() { @@ -1859,19 +1862,19 @@ var proto = AsyncVDOMBuilder$1.prototype = { return this; }, beginAsync: function(options) { - if (this.bo_) { + if (this.bn_) { throw Error("Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."); } var state = this.J_; if (options) { if (options.last) { - this.bk_++; + this.bj_++; } } - this.bj_++; - var documentFragment = this.l_.bw_(); + this.bi_++; + var documentFragment = this.l_.bv_(); var asyncOut = new AsyncVDOMBuilder$1(this.global, documentFragment, this); - state.bg_.emit("beginAsync", { + state.bf_.emit("beginAsync", { out: asyncOut, parentOut: this }); @@ -1881,41 +1884,41 @@ var proto = AsyncVDOMBuilder$1.prototype = { return new AsyncVDOMBuilder$1(this.global); }, flush: function() { - var events = this.J_.bg_; + var events = this.J_.bf_; if (events.listenerCount(EVENT_UPDATE)) { events.emit(EVENT_UPDATE, new RenderResult$1(this)); } }, B_: function() { - return this.J_.bh_; + return this.J_.bg_; }, aQ_: function() { - return this.bx_ || (this.bx_ = new RenderResult$1(this)); + return this.bw_ || (this.bw_ = new RenderResult$1(this)); }, on: function(event, callback) { var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { + if (event === EVENT_FINISH && state.bh_) { callback(this.aQ_()); } else if (event === "last") { this.onLast(callback); } else { - state.bg_.on(event, callback); + state.bf_.on(event, callback); } return this; }, once: function(event, callback) { var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { + if (event === EVENT_FINISH && state.bh_) { callback(this.aQ_()); } else if (event === "last") { this.onLast(callback); } else { - state.bg_.once(event, callback); + state.bf_.once(event, callback); } return this; }, emit: function(type, arg) { - var events = this.J_.bg_; + var events = this.J_.bf_; switch (arguments.length) { case 1: events.emit(type); @@ -1930,15 +1933,15 @@ var proto = AsyncVDOMBuilder$1.prototype = { return this; }, removeListener: function() { - var events = this.J_.bg_; + var events = this.J_.bf_; events.removeListener.apply(events, arguments); return this; }, sync: function() { - this.bo_ = true; + this.bn_ = true; }, isSync: function() { - return this.bo_; + return this.bn_; }, onLast: function(callback) { var lastArray = this._last; @@ -1949,18 +1952,19 @@ var proto = AsyncVDOMBuilder$1.prototype = { } return this; }, - A_: function(doc) { - var node = this.bp_; + A_: function(host) { + var node = this.bo_; if (!node) { var vdomTree = this.B_(); - doc = doc || this.X_ || document; - this.bp_ = node = vdomTree.by_(doc, null); - morphdom$1(node, vdomTree, doc, this.b_); + if (!host) + host = this.X_; + this.bo_ = node = vdomTree.bx_(host, null); + morphdom$1(node, vdomTree, host, this.b_); } return node; }, - toString: function(doc) { - var docFragment = this.A_(doc); + toString: function(host) { + var docFragment = this.A_(host); var html = ""; var child = docFragment.firstChild; while (child) { @@ -2171,9 +2175,9 @@ var GlobalComponentsContext_1 = GlobalComponentsContext; this.p_ = parentComponentsContext && parentComponentsContext.p_; } ComponentsContext2.prototype = { - z_: function(doc) { + z_: function(host) { var componentDefs = this.b_; - ComponentsContext2._R_(componentDefs, doc); + ComponentsContext2._R_(componentDefs, host); this.y_.emit("_S_"); this.y_.global.b_ = void 0; return componentDefs; @@ -2885,7 +2889,7 @@ Component.prototype = componentProto = { this.I_(); }, _p_: function(input, isHydrate) { - var doc = this.X_; + var host = this.X_; var globalData = this.S_; var rootNode = this.K_; var renderer2 = this._n_; @@ -2901,7 +2905,7 @@ Component.prototype = componentProto = { renderer2(input, out); var result = new RenderResult(out); var targetNode = out.B_()._r_; - morphdom(rootNode, targetNode, doc, componentsContext); + morphdom(rootNode, targetNode, host, componentsContext); return result; }, _s_: function() { @@ -3174,7 +3178,6 @@ var ComponentDef_1 = ComponentDef$2; var warp10Finalize = finalize2; var eventDelegation = eventDelegation$3; var win = window; -var defaultDocument = document; var createFragmentNode = fragment$1.ao_; var componentsUtil$1 = indexBrowser$5; var componentLookup$1 = componentsUtil$1.C_; @@ -3290,10 +3293,10 @@ function addDOMEventListeners(component, el, eventType, targetMethodName, isOnce }); handles.push(removeListener2); } -function initComponent(componentDef, doc) { +function initComponent(componentDef, host) { var component = componentDef.h_; component.I_(); - component.X_ = doc; + component.X_ = host; var isExisting = componentDef._G_; if (isExisting) { component._b_(); @@ -3320,9 +3323,10 @@ function initComponent(componentDef, doc) { component._z_(); } } -function initClientRendered(componentDefs, doc) { - eventDelegation.an_(doc); - doc = doc || defaultDocument; +function initClientRendered(componentDefs, host) { + if (!host) + host = document; + eventDelegation.an_(host); var len = componentDefs.length; var componentDef; var i; @@ -3332,10 +3336,10 @@ function initClientRendered(componentDefs, doc) { } for (i = len; i--; ) { componentDef = componentDefs[i]; - initComponent(componentDef, doc); + initComponent(componentDef, host); } } -function initServerRendered(renderedComponents, doc) { +function initServerRendered(renderedComponents, host) { var type = typeof renderedComponents; var globalKey = "$"; var runtimeId2; @@ -3362,10 +3366,11 @@ function initServerRendered(renderedComponents, doc) { renderedComponents = warp10Finalize(renderedComponents); if (isFromSerializedGlobals) { runtimeId2 = this.r; - doc = defaultDocument; + host = document; } else { runtimeId2 = renderedComponents.r || DEFAULT_RUNTIME_ID; - doc = doc || defaultDocument; + if (!host) + host = document; } var prefix = renderedComponents.p || ""; var meta = serverRenderedMeta[prefix]; @@ -3380,8 +3385,8 @@ function initServerRendered(renderedComponents, doc) { serverRenderedMeta[prefix] = meta; } } - indexServerComponentBoundaries(doc, runtimeId2); - eventDelegation.an_(doc); + indexServerComponentBoundaries(host, runtimeId2); + eventDelegation.an_(host); if (renderedComponents.g) { meta.aq_ = renderedComponents.g; } @@ -3390,22 +3395,22 @@ function initServerRendered(renderedComponents, doc) { } (renderedComponents.w || []).map(function(componentDef) { var typeName = meta.ar_[componentDef[1]]; - return registry$1.as_(typeName) ? tryHydrateComponent(componentDef, meta, doc, runtimeId2) : registry$1.at_(componentDef, typeName, meta, doc, runtimeId2); + return registry$1.as_(typeName) ? tryHydrateComponent(componentDef, meta, host, runtimeId2) : registry$1.at_(componentDef, typeName, meta, host, runtimeId2); }).reverse().forEach(tryInvoke); return this; } -function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { +function tryHydrateComponent(rawDef, meta, host, runtimeId2) { var componentDef = ComponentDef$1._O_(rawDef, meta.ar_, meta.aq_, registry$1); - var mount = hydrateComponentAndGetMount(componentDef, doc); + var mount = hydrateComponentAndGetMount(componentDef, host); if (!mount) { if (deferredDefs) { deferredDefs.push(componentDef); } else { deferredDefs = [componentDef]; - doc.addEventListener("DOMContentLoaded", function() { - indexServerComponentBoundaries(doc, runtimeId2); + document.addEventListener("DOMContentLoaded", function() { + indexServerComponentBoundaries(host, runtimeId2); deferredDefs.map(function(componentDef2) { - return hydrateComponentAndGetMount(componentDef2, doc); + return hydrateComponentAndGetMount(componentDef2, host); }).reverse().forEach(tryInvoke); deferredDefs = void 0; }); @@ -3413,7 +3418,7 @@ function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { } return mount; } -function hydrateComponentAndGetMount(componentDef, doc) { +function hydrateComponentAndGetMount(componentDef, host) { var componentId = componentDef.id; var component = componentDef.h_; var rootNode = serverComponentRootNodes[componentId]; @@ -3423,17 +3428,17 @@ function hydrateComponentAndGetMount(componentDef, doc) { component.K_ = rootNode; componentsByDOMNode.set(rootNode, component); if (componentDef._I_ & FLAG_WILL_RERENDER_IN_BROWSER) { - component.X_ = doc; + component.X_ = host; renderResult = component._p_(component.Q_, true); trackComponent(componentDef); return function mount() { - renderResult.afterInsert(doc); + renderResult.afterInsert(host); }; } else { trackComponent(componentDef); } return function mount() { - initComponent(componentDef, doc); + initComponent(componentDef, host); }; } } @@ -3478,14 +3483,14 @@ function register(type, def) { } return type; } -function addPendingDef(def, type, meta, doc, runtimeId2) { +function addPendingDef(def, type, meta, host, runtimeId2) { if (!pendingDefs) { pendingDefs = {}; } (pendingDefs[type] = pendingDefs[type] || []).push([ def, meta, - doc, + host, runtimeId2 ]); } diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/index.html b/src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/index.html similarity index 58% rename from src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/index.html rename to src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/index.html index 85e7a31..370ea31 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/index.html +++ b/src/__tests__/fixtures/browser-basic/__snapshots__/browser-basic.expected/index.html @@ -5,9 +5,9 @@ Vite App - - - + + +
diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.b8f16c63.css b/src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.css similarity index 100% rename from src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.b8f16c63.css rename to src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.css diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/index.dd9914b5.js b/src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.js similarity index 57% rename from src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/index.dd9914b5.js rename to src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.js index 24e44dc..491d728 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/index.dd9914b5.js +++ b/src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.js @@ -1,4 +1,4 @@ -import { t, v as vElement, r, a as renderer, d as defineComponent, b as renderTag } from "./vendor.d0fc20d1.js"; +import { t, v as vElement, r, a as renderer, d as defineComponent, c as components } from "./vendor.js"; const p = function polyfill() { const relList = document.createElement("link").relList; if (relList && relList.supports && relList.supports("modulepreload")) { @@ -41,48 +41,21 @@ const p = function polyfill() { } }; p(); -var index_marko = "\n div { color: green }\n"; -const _marko_componentType$2 = "n16FFHyL", _marko_template$2 = t(_marko_componentType$2); +var index_marko = ""; +const _marko_componentType = "h5bDTuBb", _marko_template = t(_marko_componentType); const _marko_node = vElement("div", { "id": "class" }, "0", null, 0, 1); -r(_marko_componentType$2, () => _marko_template$2); -const _marko_component$2 = { +r(_marko_componentType, () => _marko_template); +const _marko_component = { onMount() { console.log("mounted"); } }; -_marko_template$2._ = renderer(function(input, out, _componentDef, _component, state) { - out.n(_marko_node, _component); -}, { - t: _marko_componentType$2 -}, _marko_component$2); -_marko_template$2.Component = defineComponent(_marko_component$2, _marko_template$2._); -const _marko_componentType$1 = "yC5aAoyn", _marko_template$1 = t(_marko_componentType$1); -r(_marko_componentType$1, () => _marko_template$1); -const _marko_component$1 = {}; -_marko_template$1._ = renderer(function(input, out, _componentDef, _component, state) { - out.be("div", { - "id": "implicit" - }, "0", _component, null, 1); - renderTag(_marko_template$2, {}, out, _componentDef, "1"); - out.ee(); -}, { - t: _marko_componentType$1, - i: true -}, _marko_component$1); -_marko_template$1.Component = defineComponent(_marko_component$1, _marko_template$1._); -const _marko_componentType = "iBqAFeSK", _marko_template = t(_marko_componentType); -r(_marko_componentType, () => _marko_template); -const _marko_component = {}; _marko_template._ = renderer(function(input, out, _componentDef, _component, state) { - out.be("div", { - "id": "page" - }, "0", _component, null, 1); - renderTag(_marko_template$1, {}, out, _componentDef, "1"); - out.ee(); + out.n(_marko_node, _component); }, { - t: _marko_componentType, - i: true + t: _marko_componentType }, _marko_component); _marko_template.Component = defineComponent(_marko_component, _marko_template._); +components.init("SOME_COMPONENTS"); diff --git a/src/__tests__/__snapshots__/isomorphic-basic.expected/assets/vendor.6f686af0.js b/src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/vendor.js similarity index 91% rename from src/__tests__/__snapshots__/isomorphic-basic.expected/assets/vendor.6f686af0.js rename to src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/vendor.js index d153db7..60924a9 100644 --- a/src/__tests__/__snapshots__/isomorphic-basic.expected/assets/vendor.6f686af0.js +++ b/src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/vendor.js @@ -77,10 +77,9 @@ var vPropsByDOMNode = domData$5.ad_; var markoUID = window.$MUID || (window.$MUID = { i: 0 }); var runtimeId$1 = markoUID.i++; var componentLookup$4 = {}; -var defaultDocument$3 = document; var EMPTY_OBJECT$2 = {}; -function getComponentForEl(el, doc) { - var node = typeof el == "string" ? (doc || defaultDocument$3).getElementById(el) : el; +function getComponentForEl(el, host) { + var node = typeof el == "string" ? ((host ? host.ownerDocument : host) || document).getElementById(el) : el; var component; var vElement2; while (node) { @@ -235,11 +234,10 @@ function addDelegatedEventHandler$1(eventType) { delegatedEvents[eventType] = true; } } -function addDelegatedEventHandlerToDoc(eventType, doc) { - var body = doc.body || doc; - var listeners = doc[listenersAttachedKey] = doc[listenersAttachedKey] || {}; +function addDelegatedEventHandlerToHost(eventType, host) { + var listeners = host[listenersAttachedKey] = host[listenersAttachedKey] || {}; if (!listeners[eventType]) { - body.addEventListener(eventType, listeners[eventType] = function(event) { + (host.body || host).addEventListener(eventType, listeners[eventType] = function(event) { var propagationStopped = false; var oldStopPropagation = event.stopPropagation; event.stopPropagation = function() { @@ -271,9 +269,9 @@ eventDelegation$3.___ = noop; eventDelegation$3._Z_ = delegateEvent; eventDelegation$3.a__ = getEventFromEl; eventDelegation$3._D_ = addDelegatedEventHandler$1; -eventDelegation$3.an_ = function(doc) { +eventDelegation$3.an_ = function(host) { Object.keys(delegatedEvents).forEach(function(eventType) { - addDelegatedEventHandlerToDoc(eventType, doc); + addDelegatedEventHandlerToHost(eventType, host); }); }; var fragment$1 = {}; @@ -307,7 +305,7 @@ function removeChild$2(node) { } helpers$3.aF_ = insertBefore$3; helpers$3.aG_ = insertAfter$2; -helpers$3.bS_ = nextSibling$1; +helpers$3.bR_ = nextSibling$1; helpers$3._r_ = firstChild$1; helpers$3.aH_ = removeChild$2; var helpers$2 = helpers$3; @@ -373,14 +371,14 @@ function createFragmentNode$3(startNode, nextNode, parentNode) { } function beginFragmentNode$1(startNode, parentNode) { var fragment2 = createFragmentNode$3(startNode, null, parentNode); - fragment2.bY_ = function(nextNode) { - fragment2.bY_ = null; + fragment2.bX_ = function(nextNode) { + fragment2.bX_ = null; insertBefore$2(fragment2.endNode, nextNode, parentNode || startNode.parentNode); }; return fragment2; } fragment$1.ao_ = createFragmentNode$3; -fragment$1.bZ_ = beginFragmentNode$1; +fragment$1.bY_ = beginFragmentNode$1; var constants = constants$2; var extend$5 = function extend(target, source) { if (!target) { @@ -709,9 +707,9 @@ var GlobalComponentsContext_1 = GlobalComponentsContext; this.p_ = parentComponentsContext && parentComponentsContext.p_; } ComponentsContext2.prototype = { - z_: function(doc) { + z_: function(host) { var componentDefs = this.b_; - ComponentsContext2._R_(componentDefs, doc); + ComponentsContext2._R_(componentDefs, host); this.y_.emit("_S_"); this.y_.global.b_ = void 0; return componentDefs; @@ -853,6 +851,12 @@ EventEmitter$2.prototype = { }; var src = EventEmitter$2; var domInsert$1 = domInsert$2; +function getRootNode(el) { + var cur = el; + while (cur.parentNode) + cur = cur.parentNode; + return cur; +} function getComponentDefs(result) { var componentDefs = result.b_; if (!componentDefs) { @@ -883,18 +887,18 @@ var proto$2 = RenderResult$2.prototype = { }); return components2; }, - afterInsert: function(doc) { + afterInsert: function(host) { var out = this.y_; var componentsContext = out.b_; if (componentsContext) { - this.b_ = componentsContext.z_(doc); + this.b_ = componentsContext.z_(host); } else { this.b_ = null; } return this; }, - getNode: function(doc) { - return this.y_.A_(doc); + getNode: function(host) { + return this.y_.A_(host); }, getOutput: function() { return this.y_.B_(); @@ -902,7 +906,7 @@ var proto$2 = RenderResult$2.prototype = { toString: function() { return this.y_.toString(); }, - document: typeof document != "undefined" && document + document: typeof window === "object" && document }; Object.defineProperty(proto$2, "html", { get: function() { @@ -915,10 +919,9 @@ Object.defineProperty(proto$2, "context", { } }); domInsert$1(proto$2, function getEl(renderResult, referenceEl) { - return renderResult.getNode(referenceEl.ownerDocument); + return renderResult.getNode(getRootNode(referenceEl)); }, function afterInsert(renderResult, referenceEl) { - var isShadow = typeof ShadowRoot === "function" && referenceEl instanceof ShadowRoot; - return renderResult.afterInsert(isShadow ? referenceEl : referenceEl.ownerDocument); + return renderResult.afterInsert(getRootNode(referenceEl)); }); var listenerTracker = { exports: {} }; (function(module, exports) { @@ -1229,12 +1232,12 @@ function syncBooleanAttrProp(fromEl, toEl, name) { function forEachOption(el, fn, i) { var curChild = el._r_; while (curChild) { - if (curChild.bH_ === "option") { + if (curChild.bG_ === "option") { fn(curChild, ++i); } else { i = forEachOption(curChild, fn, i); } - curChild = curChild.bS_; + curChild = curChild.bR_; } return i; } @@ -1253,12 +1256,12 @@ SpecialElHandlers.prototype = { if (fromEl.value != toEl.q_) { fromEl.value = toEl.q_; } - if (fromEl.hasAttribute("value") && !toEl.bL_("value")) { + if (fromEl.hasAttribute("value") && !toEl.bK_("value")) { fromEl.removeAttribute("value"); } }, textarea: function(fromEl, toEl) { - if (toEl.bV_) { + if (toEl.bU_) { return; } var newValue = toEl.q_; @@ -1275,10 +1278,10 @@ SpecialElHandlers.prototype = { } }, select: function(fromEl, toEl) { - if (!toEl.bL_("multiple")) { + if (!toEl.bK_("multiple")) { var selected = 0; forEachOption(toEl, function(option, i) { - if (option.bL_("selected")) { + if (option.bK_("selected")) { selected = i; } }, -1); @@ -1293,64 +1296,64 @@ var vdom$1 = {}; function VNode$6() { } VNode$6.prototype = { - bz_: function(finalChildCount, ownerComponent) { - this.bP_ = finalChildCount; - this.bQ_ = 0; - this.bF_ = null; - this.bR_ = null; + by_: function(finalChildCount, ownerComponent) { + this.bO_ = finalChildCount; + this.bP_ = 0; + this.bE_ = null; + this.bQ_ = null; + this.bB_ = null; this.bC_ = null; - this.bD_ = null; this.aA_ = ownerComponent; }, get _r_() { - var firstChild2 = this.bF_; - if (firstChild2 && firstChild2.bE_) { + var firstChild2 = this.bE_; + if (firstChild2 && firstChild2.bD_) { var nestedFirstChild = firstChild2._r_; - return nestedFirstChild || firstChild2.bS_; + return nestedFirstChild || firstChild2.bR_; } return firstChild2; }, - get bS_() { - var nextSibling2 = this.bD_; + get bR_() { + var nextSibling2 = this.bC_; if (nextSibling2) { - if (nextSibling2.bE_) { + if (nextSibling2.bD_) { var firstChild2 = nextSibling2._r_; - return firstChild2 || nextSibling2.bS_; + return firstChild2 || nextSibling2.bR_; } } else { - var parentNode = this.bC_; - if (parentNode && parentNode.bE_) { - return parentNode.bS_; + var parentNode = this.bB_; + if (parentNode && parentNode.bD_) { + return parentNode.bR_; } } return nextSibling2; }, - br_: function(child) { - this.bQ_++; - if (this.bH_ === "textarea") { - if (child.bT_) { - var childValue = child.bU_; - this.bI_ = (this.bI_ || "") + childValue; + bq_: function(child) { + this.bP_++; + if (this.bG_ === "textarea") { + if (child.bS_) { + var childValue = child.bT_; + this.bH_ = (this.bH_ || "") + childValue; } else if (child.n_ || child.m_) { - this.bV_ = true; + this.bU_ = true; } else { throw TypeError(); } } else { - var lastChild = this.bR_; - child.bC_ = this; + var lastChild = this.bQ_; + child.bB_ = this; if (lastChild) { - lastChild.bD_ = child; + lastChild.bC_ = child; } else { - this.bF_ = child; + this.bE_ = child; } - this.bR_ = child; + this.bQ_ = child; } return child; }, - bK_: function finishChild() { - if (this.bQ_ === this.bP_ && this.bC_) { - return this.bC_.bK_(); + bJ_: function finishChild() { + if (this.bP_ === this.bO_ && this.bB_) { + return this.bB_.bJ_(); } else { return this; } @@ -1362,21 +1365,21 @@ var inherit$6 = inherit_1; var extend$1 = extend$5; function VDocumentFragmentClone(other) { extend$1(this, other); + this.bB_ = null; this.bC_ = null; - this.bD_ = null; } function VDocumentFragment$2(out) { - this.bz_(null); + this.by_(null); this.y_ = out; } VDocumentFragment$2.prototype = { - bB_: 11, - bE_: true, - bs_: function() { + bA_: 11, + bD_: true, + br_: function() { return new VDocumentFragmentClone(this); }, - by_: function(doc) { - return doc.createDocumentFragment(); + bx_: function(host) { + return (host.ownerDocument || host).createDocumentFragment(); } }; inherit$6(VDocumentFragment$2, VNode$5); @@ -1436,58 +1439,58 @@ function removeAttribute(el, namespaceURI, name) { } } function VElementClone(other) { - this.bF_ = other.bF_; + this.bE_ = other.bE_; + this.bB_ = null; this.bC_ = null; - this.bD_ = null; - this.bA_ = other.bA_; - this.bG_ = other.bG_; + this.bz_ = other.bz_; + this.bF_ = other.bF_; this.aB_ = other.aB_; - this.bH_ = other.bH_; + this.bG_ = other.bG_; this._I_ = other._I_; + this.bH_ = other.bH_; this.bI_ = other.bI_; - this.bJ_ = other.bJ_; } function VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - this.bz_(childCount, ownerComponent); + this.by_(childCount, ownerComponent); var constId; if (props) { constId = props.i; } - this.bA_ = key; + this.bz_ = key; this._I_ = flags || 0; - this.bG_ = attrs2 || EMPTY_OBJECT; + this.bF_ = attrs2 || EMPTY_OBJECT; this.aB_ = props || EMPTY_OBJECT; - this.bH_ = tagName; - this.bI_ = null; - this.bJ_ = constId; + this.bG_ = tagName; + this.bH_ = null; + this.bI_ = constId; this.n_ = false; this.m_ = false; } VElement$4.prototype = { - bB_: 1, - bs_: function() { + bA_: 1, + br_: function() { return new VElementClone(this); }, e: function(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - var child = this.br_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); + var child = this.bq_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); if (childCount === 0) { - return this.bK_(); + return this.bJ_(); } else { return child; } }, n: function(node, ownerComponent) { - node = node.bs_(); + node = node.br_(); node.aA_ = ownerComponent; - this.br_(node); - return this.bK_(); + this.bq_(node); + return this.bJ_(); }, - by_: function(doc, parentNamespaceURI) { - var tagName = this.bH_; - var attributes = this.bG_; + bx_: function(host, parentNamespaceURI) { + var tagName = this.bG_; + var attributes = this.bF_; var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; var flags = this._I_; - var el = doc.createElementNS(namespaceURI, tagName); + var el = (host.ownerDocument || host).createElementNS(namespaceURI, tagName); if (flags & FLAG_CUSTOM_ELEMENT) { assign(el, attributes); } else { @@ -1512,8 +1515,8 @@ VElement$4.prototype = { vElementByDOMNode$2.set(el, this); return el; }, - bL_: function(name) { - var value = this.bG_[name]; + bK_: function(name) { + var value = this.bF_[name]; return value != null && value !== false; } }; @@ -1522,21 +1525,21 @@ var proto$1 = VElementClone.prototype = VElement$4.prototype; ["checked", "selected", "disabled"].forEach(function(name) { defineProperty(proto$1, name, { get: function() { - var value = this.bG_[name]; + var value = this.bF_[name]; return value !== false && value != null; } }); }); defineProperty(proto$1, "q_", { get: function() { - var value = this.bI_; + var value = this.bH_; if (value == null) { - value = this.bG_.value; + value = this.bF_.value; } - return value != null && value !== false ? value + "" : this.bG_.type === "checkbox" || this.bG_.type === "radio" ? "on" : ""; + return value != null && value !== false ? value + "" : this.bF_.type === "checkbox" || this.bF_.type === "radio" ? "on" : ""; } }); -VElement$4.bM_ = function(attrs2) { +VElement$4.bL_ = function(attrs2) { return attrs2; }; function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { @@ -1565,26 +1568,26 @@ function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { tagName = tagName.toLowerCase(); } var vdomEl = new VElement$4(tagName, attrs2, null, ownerComponent, 0, 0, props); - if (vdomEl.bH_ === "textarea") { - vdomEl.bI_ = node.value; + if (vdomEl.bG_ === "textarea") { + vdomEl.bH_ = node.value; } else if (virtualizeChildNodes2) { virtualizeChildNodes2(node, vdomEl, ownerComponent); } return vdomEl; } -VElement$4.bN_ = virtualizeElement$1; -VElement$4.bO_ = function(fromEl, vFromEl, toEl) { - var removePreservedAttributes = VElement$4.bM_; +VElement$4.bM_ = virtualizeElement$1; +VElement$4.bN_ = function(fromEl, vFromEl, toEl) { + var removePreservedAttributes = VElement$4.bL_; var fromFlags = vFromEl._I_; var toFlags = toEl._I_; vElementByDOMNode$2.set(fromEl, toEl); - var attrs2 = toEl.bG_; + var attrs2 = toEl.bF_; var props = toEl.aB_; if (toFlags & FLAG_CUSTOM_ELEMENT) { return assign(fromEl, attrs2); } var attrName; - var oldAttrs = vFromEl.bG_; + var oldAttrs = vFromEl.bF_; if (oldAttrs) { if (oldAttrs === attrs2) { return; @@ -1601,7 +1604,7 @@ VElement$4.bO_ = function(fromEl, vFromEl, toEl) { fromEl.id = attrValue; } if (oldAttrs.style !== (attrValue = attrs2.style)) { - fromEl.style.cssText = attrValue; + fromEl.cssText = attrValue; } return; } @@ -1624,7 +1627,7 @@ VElement$4.bO_ = function(fromEl, vFromEl, toEl) { setAttribute(fromEl, namespaceURI, attrName, attrValue); } } - if (toEl.bA_ === null || fromFlags & FLAG_SPREAD_ATTRS) { + if (toEl.bz_ === null || fromFlags & FLAG_SPREAD_ATTRS) { for (attrName in oldAttrs) { if (!(attrName in attrs2)) { if (attrName === ATTR_XLINK_HREF) { @@ -1640,17 +1643,17 @@ var VElement_1 = VElement$4; var VNode$3 = VNode_1; var inherit$4 = inherit_1; function VText$2(value, ownerComponent) { - this.bz_(-1, ownerComponent); - this.bU_ = value; + this.by_(-1, ownerComponent); + this.bT_ = value; } VText$2.prototype = { - bT_: true, - bB_: 3, - by_: function(doc) { - return doc.createTextNode(this.bU_); + bS_: true, + bA_: 3, + bx_: function(host) { + return (host.ownerDocument || host).createTextNode(this.bT_); }, - bs_: function() { - return new VText$2(this.bU_); + br_: function() { + return new VText$2(this.bT_); } }; inherit$4(VText$2, VNode$3); @@ -1658,13 +1661,13 @@ var VText_1 = VText$2; var VNode$2 = VNode_1; var inherit$3 = inherit_1; function VComponent$2(component, key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; + this.by_(null, ownerComponent); + this.bz_ = key; this.h_ = component; this.n_ = preserve; } VComponent$2.prototype = { - bB_: 2 + bA_: 2 }; inherit$3(VComponent$2, VNode$2); var VComponent_1 = VComponent$2; @@ -1675,15 +1678,15 @@ var VNode$1 = VNode_1; var inherit$2 = inherit_1; var createFragmentNode$2 = fragment$1.ao_; function VFragment$2(key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; + this.by_(null, ownerComponent); + this.bz_ = key; this.n_ = preserve; } VFragment$2.prototype = { - bB_: 12, - by_: function() { + bA_: 12, + bx_: function() { var fragment2 = createFragmentNode$2(); - keysByDOMNode$1.set(fragment2, this.bA_); + keysByDOMNode$1.set(fragment2, this.bz_); vElementByDOMNode$1.set(fragment2, this); return fragment2; } @@ -1711,19 +1714,18 @@ var VText$1 = VText_1; var VComponent$1 = VComponent_1; var VFragment$1 = VFragment_1; var parseHTML = parseHtml; -var defaultDocument$2 = typeof document != "undefined" && document; var specialHtmlRegexp = /[&<]/; function virtualizeChildNodes(node, vdomParent, ownerComponent) { var curChild = node.firstChild; while (curChild) { - vdomParent.br_(virtualize(curChild, ownerComponent)); + vdomParent.bq_(virtualize(curChild, ownerComponent)); curChild = curChild.nextSibling; } } function virtualize(node, ownerComponent) { switch (node.nodeType) { case 1: - return VElement$3.bN_(node, virtualizeChildNodes, ownerComponent); + return VElement$3.bM_(node, virtualizeChildNodes, ownerComponent); case 3: return new VText$1(node.nodeValue, ownerComponent); case 11: @@ -1732,14 +1734,14 @@ function virtualize(node, ownerComponent) { return vdomDocFragment; } } -function virtualizeHTML$1(html, doc, ownerComponent) { +function virtualizeHTML$1(html, ownerComponent) { if (!specialHtmlRegexp.test(html)) { return new VText$1(html, ownerComponent); } var vdomFragment = new VDocumentFragment$1(); var curChild = parseHTML(html); while (curChild) { - vdomFragment.br_(virtualize(curChild, ownerComponent)); + vdomFragment.bq_(virtualize(curChild, ownerComponent)); curChild = curChild.nextSibling; } return vdomFragment; @@ -1757,20 +1759,19 @@ Node_prototype.t = function(value) { } } } - this.br_(vdomNode || new VText$1(value.toString())); - return this.bK_(); + this.bq_(vdomNode || new VText$1(value.toString())); + return this.bJ_(); }; -Node_prototype.bw_ = function() { - return this.br_(new VDocumentFragment$1()); +Node_prototype.bv_ = function() { + return this.bq_(new VDocumentFragment$1()); }; vdom$1.ba_ = VDocumentFragment$1; vdom$1.b__ = VElement$3; vdom$1.bb_ = VText$1; vdom$1.bc_ = VComponent$1; vdom$1.bd_ = VFragment$1; -vdom$1.bN_ = virtualize; +vdom$1.bM_ = virtualize; vdom$1.be_ = virtualizeHTML$1; -vdom$1.bf_ = defaultDocument$2; var specialElHandlers = specialElHandlers$1; var KeySequence = KeySequence_1; var componentsUtil$3 = indexBrowser$4; @@ -1779,8 +1780,8 @@ var destroyNodeRecursive$1 = componentsUtil$3.D_; var addComponentRootToKeyedElements$1 = componentsUtil$3.ap_; var normalizeComponentKey = componentsUtil$3.aD_; var VElement$2 = vdom$1.b__; -var virtualizeElement = VElement$2.bN_; -var morphAttrs = VElement$2.bO_; +var virtualizeElement = VElement$2.bM_; +var morphAttrs = VElement$2.bN_; var eventDelegation$2 = eventDelegation$3; var fragment = fragment$1; var helpers = helpers$3; @@ -1791,11 +1792,11 @@ var vElementByDOMNode = domData$2.ae_; var detachedByDOMNode = domData$2.af_; var insertBefore = helpers.aF_; var insertAfter = helpers.aG_; -var nextSibling = helpers.bS_; +var nextSibling = helpers.bR_; var firstChild = helpers._r_; var removeChild = helpers.aH_; var createFragmentNode$1 = fragment.ao_; -var beginFragmentNode = fragment.bZ_; +var beginFragmentNode = fragment.bY_; var ELEMENT_NODE$1 = 1; var TEXT_NODE = 3; var COMMENT_NODE = 8; @@ -1806,7 +1807,7 @@ function isAutoKey(key) { return key[0] !== "@"; } function compareNodeNames(fromEl, toEl) { - return fromEl.bH_ === toEl.bH_; + return fromEl.bG_ === toEl.bG_; } function caseInsensitiveCompare(a, b) { return a.toLowerCase() === b.toLowerCase(); @@ -1816,7 +1817,7 @@ function onNodeAdded(node, componentsContext) { eventDelegation$2.ab_(node, componentsContext); } } -function morphdom$2(fromNode, toNode, doc, componentsContext) { +function morphdom$2(fromNode, toNode, host, componentsContext) { var globalComponentsContext; var isHydrate = false; var keySequences = Object.create(null); @@ -1825,14 +1826,14 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { isHydrate = globalComponentsContext.f_; } function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { - var realNode = vNode.by_(doc, parentEl.namespaceURI); + var realNode = vNode.bx_(host, parentEl.namespaceURI); insertBefore(realNode, referenceEl, parentEl); - if (vNode.bB_ === ELEMENT_NODE$1 || vNode.bB_ === FRAGMENT_NODE) { + if (vNode.bA_ === ELEMENT_NODE$1 || vNode.bA_ === FRAGMENT_NODE) { if (key) { keysByDOMNode.set(realNode, key); (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; } - if (vNode.bH_ !== "textarea") { + if (vNode.bG_ !== "textarea") { morphChildren(realNode, vNode, parentComponent); } onNodeAdded(realNode, componentsContext); @@ -1878,9 +1879,9 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { var fromComponent; outer: while (curToNodeChild) { - toNextSibling = curToNodeChild.bS_; - curToNodeType = curToNodeChild.bB_; - curToNodeKey = curToNodeChild.bA_; + toNextSibling = curToNodeChild.bR_; + curToNodeType = curToNodeChild.bA_; + curToNodeKey = curToNodeChild.bz_; if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { curFromNodeChild = nextSibling(curFromNodeChild); } @@ -1951,9 +1952,9 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { matchingFromEl = referenceComponent.k_[curToNodeKey]; if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { if (isHydrate === true && curFromNodeChild) { - if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bH_ || ""))) { + if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bG_ || ""))) { curVFromNodeChild = virtualizeElement(curFromNodeChild); - curVFromNodeChild.bH_ = curToNodeChild.bH_; + curVFromNodeChild.bG_ = curToNodeChild.bG_; keysByDOMNode.set(curFromNodeChild, curToNodeKey); referenceComponent.k_[curToNodeKey] = curFromNodeChild; if (curToNodeChild.n_) { @@ -1964,7 +1965,7 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { curToNodeChild = toNextSibling; curFromNodeChild = fromNextSibling; continue; - } else if (curToNodeChild.bB_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { + } else if (curToNodeChild.bA_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { var content = curFromNodeChild.nodeValue; if (content == "F#" + curToNodeKeyOriginal) { var endNode = curFromNodeChild.nextSibling; @@ -2010,7 +2011,7 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { if (fromNextSibling === matchingFromEl) { - if (toNextSibling && toNextSibling.bA_ === curFromNodeKey) { + if (toNextSibling && toNextSibling.bz_ === curFromNodeKey) { fromNextSibling = curFromNodeChild; insertBefore(matchingFromEl, curFromNodeChild, fromNode2); } else { @@ -2057,14 +2058,14 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { if (curVFromNodeChild === void 0) { if (isHydrate === true) { curVFromNodeChild = virtualizeElement(curFromNodeChild); - if (caseInsensitiveCompare(curVFromNodeChild.bH_, curToNodeChild.bH_)) { - curVFromNodeChild.bH_ = curToNodeChild.bH_; + if (caseInsensitiveCompare(curVFromNodeChild.bG_, curToNodeChild.bG_)) { + curVFromNodeChild.bG_ = curToNodeChild.bG_; } } else { curFromNodeChild = fromNextSibling; continue; } - } else if (curFromNodeKey = curVFromNodeChild.bA_) { + } else if (curFromNodeKey = curVFromNodeChild.bz_) { isCompatible = false; } isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; @@ -2073,8 +2074,11 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { } } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { isCompatible = true; - if (curFromNodeChild.nodeValue !== curToNodeChild.bU_) { - curFromNodeChild.nodeValue = curToNodeChild.bU_; + if (isHydrate === true && toNextSibling && curFromNodeType === TEXT_NODE && toNextSibling.bA_ === TEXT_NODE) { + fromNextSibling = curFromNodeChild.splitText(curToNodeChild.bT_.length); + } + if (curFromNodeChild.nodeValue !== curToNodeChild.bT_) { + curFromNodeChild.nodeValue = curToNodeChild.bT_; } } } @@ -2090,8 +2094,8 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { curToNodeChild = toNextSibling; curFromNodeChild = fromNextSibling; } - if (fromNode2.bY_) { - fromNode2.bY_(curFromNodeChild); + if (fromNode2.bX_) { + fromNode2.bX_(curFromNodeChild); } else { var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { @@ -2116,9 +2120,9 @@ function morphdom$2(fromNode, toNode, doc, componentsContext) { } } function morphEl(fromEl, vFromEl, toEl, parentComponent) { - var nodeName = toEl.bH_; - var constId = toEl.bJ_; - if (constId !== void 0 && vFromEl.bJ_ === constId) { + var nodeName = toEl.bG_; + var constId = toEl.bI_; + if (constId !== void 0 && vFromEl.bI_ === constId) { return; } morphAttrs(fromEl, vFromEl, toEl); @@ -2512,7 +2516,7 @@ Component.prototype = componentProto = { this.I_(); }, _p_: function(input, isHydrate) { - var doc = this.X_; + var host = this.X_; var globalData = this.S_; var rootNode = this.K_; var renderer2 = this._n_; @@ -2528,7 +2532,7 @@ Component.prototype = componentProto = { renderer2(input, out); var result = new RenderResult$1(out); var targetNode = out.B_()._r_; - morphdom$1(rootNode, targetNode, doc, componentsContext); + morphdom$1(rootNode, targetNode, host, componentsContext); return result; }, _s_: function() { @@ -2660,14 +2664,14 @@ function register(type, def) { } return type; } -function addPendingDef(def, type, meta, doc, runtimeId2) { +function addPendingDef(def, type, meta, host, runtimeId2) { if (!pendingDefs) { pendingDefs = {}; } (pendingDefs[type] = pendingDefs[type] || []).push([ def, meta, - doc, + host, runtimeId2 ]); } @@ -2714,7 +2718,6 @@ indexBrowser$3.at_ = addPendingDef; var warp10Finalize = finalize2; var eventDelegation = eventDelegation$3; var win = window; -var defaultDocument$1 = document; var createFragmentNode = fragment$1.ao_; var componentsUtil$1 = indexBrowser$4; var componentLookup$1 = componentsUtil$1.C_; @@ -2830,10 +2833,10 @@ function addDOMEventListeners(component, el, eventType, targetMethodName, isOnce }); handles.push(removeListener2); } -function initComponent(componentDef, doc) { +function initComponent(componentDef, host) { var component = componentDef.h_; component.I_(); - component.X_ = doc; + component.X_ = host; var isExisting = componentDef._G_; if (isExisting) { component._b_(); @@ -2860,9 +2863,10 @@ function initComponent(componentDef, doc) { component._z_(); } } -function initClientRendered(componentDefs, doc) { - eventDelegation.an_(doc); - doc = doc || defaultDocument$1; +function initClientRendered(componentDefs, host) { + if (!host) + host = document; + eventDelegation.an_(host); var len = componentDefs.length; var componentDef; var i; @@ -2872,10 +2876,10 @@ function initClientRendered(componentDefs, doc) { } for (i = len; i--; ) { componentDef = componentDefs[i]; - initComponent(componentDef, doc); + initComponent(componentDef, host); } } -function initServerRendered(renderedComponents, doc) { +function initServerRendered(renderedComponents, host) { var type = typeof renderedComponents; var globalKey = "$"; var runtimeId2; @@ -2902,10 +2906,11 @@ function initServerRendered(renderedComponents, doc) { renderedComponents = warp10Finalize(renderedComponents); if (isFromSerializedGlobals) { runtimeId2 = this.r; - doc = defaultDocument$1; + host = document; } else { runtimeId2 = renderedComponents.r || DEFAULT_RUNTIME_ID; - doc = doc || defaultDocument$1; + if (!host) + host = document; } var prefix = renderedComponents.p || ""; var meta = serverRenderedMeta[prefix]; @@ -2920,8 +2925,8 @@ function initServerRendered(renderedComponents, doc) { serverRenderedMeta[prefix] = meta; } } - indexServerComponentBoundaries(doc, runtimeId2); - eventDelegation.an_(doc); + indexServerComponentBoundaries(host, runtimeId2); + eventDelegation.an_(host); if (renderedComponents.g) { meta.aq_ = renderedComponents.g; } @@ -2930,22 +2935,22 @@ function initServerRendered(renderedComponents, doc) { } (renderedComponents.w || []).map(function(componentDef) { var typeName = meta.ar_[componentDef[1]]; - return registry$2.as_(typeName) ? tryHydrateComponent(componentDef, meta, doc, runtimeId2) : registry$2.at_(componentDef, typeName, meta, doc, runtimeId2); + return registry$2.as_(typeName) ? tryHydrateComponent(componentDef, meta, host, runtimeId2) : registry$2.at_(componentDef, typeName, meta, host, runtimeId2); }).reverse().forEach(tryInvoke); return this; } -function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { +function tryHydrateComponent(rawDef, meta, host, runtimeId2) { var componentDef = ComponentDef$1._O_(rawDef, meta.ar_, meta.aq_, registry$2); - var mount = hydrateComponentAndGetMount(componentDef, doc); + var mount = hydrateComponentAndGetMount(componentDef, host); if (!mount) { if (deferredDefs) { deferredDefs.push(componentDef); } else { deferredDefs = [componentDef]; - doc.addEventListener("DOMContentLoaded", function() { - indexServerComponentBoundaries(doc, runtimeId2); + document.addEventListener("DOMContentLoaded", function() { + indexServerComponentBoundaries(host, runtimeId2); deferredDefs.map(function(componentDef2) { - return hydrateComponentAndGetMount(componentDef2, doc); + return hydrateComponentAndGetMount(componentDef2, host); }).reverse().forEach(tryInvoke); deferredDefs = void 0; }); @@ -2953,7 +2958,7 @@ function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { } return mount; } -function hydrateComponentAndGetMount(componentDef, doc) { +function hydrateComponentAndGetMount(componentDef, host) { var componentId = componentDef.id; var component = componentDef.h_; var rootNode = serverComponentRootNodes[componentId]; @@ -2963,17 +2968,17 @@ function hydrateComponentAndGetMount(componentDef, doc) { component.K_ = rootNode; componentsByDOMNode.set(rootNode, component); if (componentDef._I_ & FLAG_WILL_RERENDER_IN_BROWSER) { - component.X_ = doc; + component.X_ = host; renderResult = component._p_(component.Q_, true); trackComponent(componentDef); return function mount() { - renderResult.afterInsert(doc); + renderResult.afterInsert(host); }; } else { trackComponent(componentDef); } return function mount() { - initComponent(componentDef, doc); + initComponent(componentDef, host); }; } } @@ -3114,15 +3119,14 @@ var VComponent = vdom.bc_; var VFragment = vdom.bd_; var virtualizeHTML = vdom.be_; var RenderResult = RenderResult_1; -var defaultDocument = vdom.bf_; var morphdom = morphdom_1; var attrsHelper = attrs; var EVENT_UPDATE = "update"; var EVENT_FINISH = "finish"; function State(tree) { - this.bg_ = new EventEmitter(); - this.bh_ = tree; - this.bi_ = false; + this.bf_ = new EventEmitter(); + this.bg_ = tree; + this.bh_ = false; } function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { if (!parentNode) { @@ -3134,17 +3138,17 @@ function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { } else { state = new State(parentNode); } - this.bj_ = 1; - this.bk_ = 0; - this.bl_ = null; - this.bm_ = parentOut; + this.bi_ = 1; + this.bj_ = 0; + this.bk_ = null; + this.bl_ = parentOut; this.data = {}; this.J_ = state; this.l_ = parentNode; this.global = globalData || {}; - this.bn_ = [parentNode]; - this.bo_ = false; - this.bp_ = void 0; + this.bm_ = [parentNode]; + this.bn_ = false; + this.bo_ = void 0; this.b_ = null; this.g_ = null; this.i_ = null; @@ -3152,38 +3156,38 @@ function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { } var proto = AsyncVDOMBuilder$1.prototype = { aP_: true, - X_: defaultDocument, + X_: typeof window === "object" && document, bc: function(component, key, ownerComponent) { var vComponent = new VComponent(component, key, ownerComponent); - return this.bq_(vComponent, 0, true); + return this.bp_(vComponent, 0, true); }, ay_: function(component, key, ownerComponent) { var vComponent = new VComponent(component, key, ownerComponent, true); - this.bq_(vComponent, 0); + this.bp_(vComponent, 0); }, - bq_: function(child, childCount, pushToStack) { - this.l_.br_(child); + bp_: function(child, childCount, pushToStack) { + this.l_.bq_(child); if (pushToStack === true) { - this.bn_.push(child); + this.bm_.push(child); this.l_ = child; } return childCount === 0 ? this : child; }, element: function(tagName, attrs2, key, component, childCount, flags, props) { var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - return this.bq_(element, childCount); + return this.bp_(element, childCount); }, aM_: function(tagName, attrs2, key, componentDef, props) { return this.element(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); }, n: function(node, component) { - var clone = node.bs_(); + var clone = node.br_(); this.node(clone); clone.aA_ = component; return this; }, node: function(node) { - this.l_.br_(node); + this.l_.bq_(node); return this; }, text: function(text, ownerComponent) { @@ -3198,19 +3202,19 @@ var proto = AsyncVDOMBuilder$1.prototype = { } text = text.toString(); } - this.l_.br_(new VText(text, ownerComponent)); + this.l_.bq_(new VText(text, ownerComponent)); return this; }, html: function(html, ownerComponent) { if (html != null) { - var vdomNode = virtualizeHTML(html, this.X_ || document, ownerComponent); + var vdomNode = virtualizeHTML(html, ownerComponent); this.node(vdomNode); } return this; }, beginElement: function(tagName, attrs2, key, component, childCount, flags, props) { var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - this.bq_(element, childCount, true); + this.bp_(element, childCount, true); return this; }, aK_: function(tagName, attrs2, key, componentDef, props) { @@ -3218,51 +3222,51 @@ var proto = AsyncVDOMBuilder$1.prototype = { }, bf: function(key, component, preserve) { var fragment2 = new VFragment(key, component, preserve); - this.bq_(fragment2, null, true); + this.bp_(fragment2, null, true); return this; }, ef: function() { this.endElement(); }, endElement: function() { - var stack = this.bn_; + var stack = this.bm_; stack.pop(); this.l_ = stack[stack.length - 1]; }, end: function() { this.l_ = void 0; - var remaining = --this.bj_; - var parentOut = this.bm_; + var remaining = --this.bi_; + var parentOut = this.bl_; if (remaining === 0) { if (parentOut) { - parentOut.bt_(); + parentOut.bs_(); } else { - this.bu_(); + this.bt_(); } - } else if (remaining - this.bk_ === 0) { - this.bv_(); + } else if (remaining - this.bj_ === 0) { + this.bu_(); } return this; }, - bt_: function() { - var remaining = --this.bj_; + bs_: function() { + var remaining = --this.bi_; if (remaining === 0) { - var parentOut = this.bm_; + var parentOut = this.bl_; if (parentOut) { - parentOut.bt_(); + parentOut.bs_(); } else { - this.bu_(); + this.bt_(); } - } else if (remaining - this.bk_ === 0) { - this.bv_(); + } else if (remaining - this.bj_ === 0) { + this.bu_(); } }, - bu_: function() { + bt_: function() { var state = this.J_; - state.bi_ = true; - state.bg_.emit(EVENT_FINISH, this.aQ_()); + state.bh_ = true; + state.bf_.emit(EVENT_FINISH, this.aQ_()); }, - bv_: function() { + bu_: function() { var lastArray = this._last; var i = 0; function next() { @@ -3286,19 +3290,19 @@ var proto = AsyncVDOMBuilder$1.prototype = { return this; }, beginAsync: function(options) { - if (this.bo_) { + if (this.bn_) { throw Error("Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."); } var state = this.J_; if (options) { if (options.last) { - this.bk_++; + this.bj_++; } } - this.bj_++; - var documentFragment = this.l_.bw_(); + this.bi_++; + var documentFragment = this.l_.bv_(); var asyncOut = new AsyncVDOMBuilder$1(this.global, documentFragment, this); - state.bg_.emit("beginAsync", { + state.bf_.emit("beginAsync", { out: asyncOut, parentOut: this }); @@ -3308,41 +3312,41 @@ var proto = AsyncVDOMBuilder$1.prototype = { return new AsyncVDOMBuilder$1(this.global); }, flush: function() { - var events = this.J_.bg_; + var events = this.J_.bf_; if (events.listenerCount(EVENT_UPDATE)) { events.emit(EVENT_UPDATE, new RenderResult(this)); } }, B_: function() { - return this.J_.bh_; + return this.J_.bg_; }, aQ_: function() { - return this.bx_ || (this.bx_ = new RenderResult(this)); + return this.bw_ || (this.bw_ = new RenderResult(this)); }, on: function(event, callback) { var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { + if (event === EVENT_FINISH && state.bh_) { callback(this.aQ_()); } else if (event === "last") { this.onLast(callback); } else { - state.bg_.on(event, callback); + state.bf_.on(event, callback); } return this; }, once: function(event, callback) { var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { + if (event === EVENT_FINISH && state.bh_) { callback(this.aQ_()); } else if (event === "last") { this.onLast(callback); } else { - state.bg_.once(event, callback); + state.bf_.once(event, callback); } return this; }, emit: function(type, arg) { - var events = this.J_.bg_; + var events = this.J_.bf_; switch (arguments.length) { case 1: events.emit(type); @@ -3357,15 +3361,15 @@ var proto = AsyncVDOMBuilder$1.prototype = { return this; }, removeListener: function() { - var events = this.J_.bg_; + var events = this.J_.bf_; events.removeListener.apply(events, arguments); return this; }, sync: function() { - this.bo_ = true; + this.bn_ = true; }, isSync: function() { - return this.bo_; + return this.bn_; }, onLast: function(callback) { var lastArray = this._last; @@ -3376,18 +3380,19 @@ var proto = AsyncVDOMBuilder$1.prototype = { } return this; }, - A_: function(doc) { - var node = this.bp_; + A_: function(host) { + var node = this.bo_; if (!node) { var vdomTree = this.B_(); - doc = doc || this.X_ || document; - this.bp_ = node = vdomTree.by_(doc, null); - morphdom(node, vdomTree, doc, this.b_); + if (!host) + host = this.X_; + this.bo_ = node = vdomTree.bx_(host, null); + morphdom(node, vdomTree, host, this.b_); } return node; }, - toString: function(doc) { - var docFragment = this.A_(doc); + toString: function(host) { + var docFragment = this.A_(host); var html = ""; var child = docFragment.firstChild; while (child) { diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry.expected/index.html b/src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/index.html similarity index 58% rename from src/__tests__/__snapshots__/browser-hydrate-entry.expected/index.html rename to src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/index.html index 7c74c09..370ea31 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-entry.expected/index.html +++ b/src/__tests__/fixtures/browser-hydrate-entry-custom-init/__snapshots__/browser-hydrate-entry-custom-init.expected/index.html @@ -5,9 +5,9 @@ Vite App - - - + + +
diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/index.b8f16c63.css b/src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/index.css similarity index 100% rename from src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/index.b8f16c63.css rename to src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/index.css diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.f96899f4.js b/src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/index.js similarity index 57% rename from src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.f96899f4.js rename to src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/index.js index 5029a05..2cfc815 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-entry-custom-init.expected/assets/index.f96899f4.js +++ b/src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/index.js @@ -1,4 +1,4 @@ -import { t, v as vElement, r, a as renderer, d as defineComponent, b as renderTag } from "./vendor.d0fc20d1.js"; +import { t, v as vElement, r, a as renderer, d as defineComponent, c as components } from "./vendor.js"; const p = function polyfill() { const relList = document.createElement("link").relList; if (relList && relList.supports && relList.supports("modulepreload")) { @@ -41,48 +41,21 @@ const p = function polyfill() { } }; p(); -var index_marko = "\n div { color: green }\n"; -const _marko_componentType$2 = "h5bDTuBb", _marko_template$2 = t(_marko_componentType$2); +var index_marko = ""; +const _marko_componentType = "n16FFHyL", _marko_template = t(_marko_componentType); const _marko_node = vElement("div", { "id": "class" }, "0", null, 0, 1); -r(_marko_componentType$2, () => _marko_template$2); -const _marko_component$2 = { +r(_marko_componentType, () => _marko_template); +const _marko_component = { onMount() { console.log("mounted"); } }; -_marko_template$2._ = renderer(function(input, out, _componentDef, _component, state) { - out.n(_marko_node, _component); -}, { - t: _marko_componentType$2 -}, _marko_component$2); -_marko_template$2.Component = defineComponent(_marko_component$2, _marko_template$2._); -const _marko_componentType$1 = "RgYWz5U1", _marko_template$1 = t(_marko_componentType$1); -r(_marko_componentType$1, () => _marko_template$1); -const _marko_component$1 = {}; -_marko_template$1._ = renderer(function(input, out, _componentDef, _component, state) { - out.be("div", { - "id": "implicit" - }, "0", _component, null, 1); - renderTag(_marko_template$2, {}, out, _componentDef, "1"); - out.ee(); -}, { - t: _marko_componentType$1, - i: true -}, _marko_component$1); -_marko_template$1.Component = defineComponent(_marko_component$1, _marko_template$1._); -const _marko_componentType = "py6VJAXd", _marko_template = t(_marko_componentType); -r(_marko_componentType, () => _marko_template); -const _marko_component = {}; _marko_template._ = renderer(function(input, out, _componentDef, _component, state) { - out.be("div", { - "id": "page" - }, "0", _component, null, 1); - renderTag(_marko_template$1, {}, out, _componentDef, "1"); - out.ee(); + out.n(_marko_node, _component); }, { - t: _marko_componentType, - i: true + t: _marko_componentType }, _marko_component); _marko_template.Component = defineComponent(_marko_component, _marko_template._); +components.init(); diff --git a/src/__tests__/__snapshots__/browser-basic.expected/assets/vendor.d0fc20d1.js b/src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/vendor.js similarity index 89% rename from src/__tests__/__snapshots__/browser-basic.expected/assets/vendor.d0fc20d1.js rename to src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/vendor.js index 01f3ca7..60924a9 100644 --- a/src/__tests__/__snapshots__/browser-basic.expected/assets/vendor.d0fc20d1.js +++ b/src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/assets/vendor.js @@ -1,344 +1,144 @@ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -var slice$1 = Array.prototype.slice; -function isFunction(arg) { - return typeof arg === "function"; -} -function checkListener(listener) { - if (!isFunction(listener)) { - throw TypeError("Invalid listener"); - } -} -function invokeListener(ee, listener, args) { - switch (args.length) { - case 1: - listener.call(ee); - break; - case 2: - listener.call(ee, args[1]); - break; - case 3: - listener.call(ee, args[1], args[2]); - break; - default: - listener.apply(ee, slice$1.call(args, 1)); +var indexBrowser$6 = {}; +var indexBrowser$5 = {}; +var constants$2 = {}; +var win$1 = typeof window !== "undefined" ? window : commonjsGlobal; +constants$2.NOOP = win$1.$W10NOOP = win$1.$W10NOOP || function() { +}; +var constants$1 = constants$2; +var isArray = Array.isArray; +function resolve(object, path, len) { + var current = object; + for (var i = 0; i < len; i++) { + current = current[path[i]]; } + return current; } -function addListener(eventEmitter, type, listener, prepend) { - checkListener(listener); - var events = eventEmitter.$e || (eventEmitter.$e = {}); - var listeners = events[type]; - if (listeners) { - if (isFunction(listeners)) { - events[type] = prepend ? [listener, listeners] : [listeners, listener]; - } else { - if (prepend) { - listeners.unshift(listener); - } else { - listeners.push(listener); - } - } +function resolveType(info) { + if (info.type === "Date") { + return new Date(info.value); + } else if (info.type === "NOOP") { + return constants$1.NOOP; } else { - events[type] = listener; + throw new Error("Bad type"); } - return eventEmitter; } -function EventEmitter$2() { - this.$e = this.$e || {}; -} -EventEmitter$2.EventEmitter = EventEmitter$2; -EventEmitter$2.prototype = { - $e: null, - emit: function(type) { - var args = arguments; - var events = this.$e; - if (!events) { - return; - } - var listeners = events && events[type]; - if (!listeners) { - if (type === "error") { - var error = args[1]; - if (!(error instanceof Error)) { - var context = error; - error = new Error("Error: " + context); - error.context = context; +var finalize$1 = function finalize(outer) { + if (!outer) { + return outer; + } + var assignments = outer.$$; + if (assignments) { + var object = outer.o; + var len; + if (assignments && (len = assignments.length)) { + for (var i = 0; i < len; i++) { + var assignment = assignments[i]; + var rhs = assignment.r; + var rhsValue; + if (isArray(rhs)) { + rhsValue = resolve(object, rhs, rhs.length); + } else { + rhsValue = resolveType(rhs); + } + var lhs = assignment.l; + var lhsLast = lhs.length - 1; + if (lhsLast === -1) { + object = outer.o = rhsValue; + break; + } else { + var lhsParent = resolve(object, lhs, lhsLast); + lhsParent[lhs[lhsLast]] = rhsValue; } - throw error; } - return false; } - if (isFunction(listeners)) { - invokeListener(this, listeners, args); - } else { - listeners = slice$1.call(listeners); - for (var i = 0, len = listeners.length; i < len; i++) { - var listener = listeners[i]; - invokeListener(this, listener, args); + assignments.length = 0; + return object == null ? null : object; + } else { + return outer; + } +}; +var finalize2 = finalize$1; +var eventDelegation$3 = {}; +var indexBrowser$4 = {}; +var domData$6 = { + ad_: new WeakMap(), + ae_: new WeakMap(), + E_: new WeakMap(), + af_: new WeakMap(), + ag_: new WeakMap(), + F_: {} +}; +var domData$5 = domData$6; +var componentsByDOMNode$2 = domData$5.E_; +var keysByDOMNode$2 = domData$5.ag_; +var vElementsByDOMNode = domData$5.ae_; +var vPropsByDOMNode = domData$5.ad_; +var markoUID = window.$MUID || (window.$MUID = { i: 0 }); +var runtimeId$1 = markoUID.i++; +var componentLookup$4 = {}; +var EMPTY_OBJECT$2 = {}; +function getComponentForEl(el, host) { + var node = typeof el == "string" ? ((host ? host.ownerDocument : host) || document).getElementById(el) : el; + var component; + var vElement2; + while (node) { + if (node.fragment) { + if (node.fragment.endNode === node) { + node = node.fragment.startNode; + } else { + node = node.fragment; + component = componentsByDOMNode$2.get(node); } + } else if (vElement2 = vElementsByDOMNode.get(node)) { + component = vElement2.aA_; } - return true; - }, - on: function(type, listener) { - return addListener(this, type, listener, false); - }, - prependListener: function(type, listener) { - return addListener(this, type, listener, true); - }, - once: function(type, listener) { - checkListener(listener); - function g() { - this.removeListener(type, g); - if (listener) { - listener.apply(this, arguments); - listener = null; - } + if (component) { + return component; } - this.on(type, g); - return this; - }, - removeListener: function(type, listener) { - checkListener(listener); - var events = this.$e; - var listeners; - if (events && (listeners = events[type])) { - if (isFunction(listeners)) { - if (listeners === listener) { - delete events[type]; - } - } else { - for (var i = listeners.length - 1; i >= 0; i--) { - if (listeners[i] === listener) { - listeners.splice(i, 1); - } + node = node.previousSibling || node.parentNode; + } +} +function destroyComponentForNode$1(node) { + var componentToDestroy = componentsByDOMNode$2.get(node.fragment || node); + if (componentToDestroy) { + componentToDestroy.Z_(); + delete componentLookup$4[componentToDestroy.id]; + } +} +function destroyNodeRecursive$3(node, component) { + destroyComponentForNode$1(node); + if (node.nodeType === 1 || node.nodeType === 12) { + var key; + if (component && (key = keysByDOMNode$2.get(node))) { + if (node === component.k_[key]) { + if (componentsByDOMNode$2.get(node) && /\[\]$/.test(key)) { + delete component.k_[key][componentsByDOMNode$2.get(node).id]; + } else { + delete component.k_[key]; } } } - return this; - }, - removeAllListeners: function(type) { - var events = this.$e; - if (events) { - delete events[type]; + var curChild = node.firstChild; + while (curChild && curChild !== node.endNode) { + destroyNodeRecursive$3(curChild, component); + curChild = curChild.nextSibling; } - }, - listenerCount: function(type) { - var events = this.$e; - var listeners = events && events[type]; - return listeners ? isFunction(listeners) ? 1 : listeners.length : 0; } -}; -var src = EventEmitter$2; -var vdom$1 = {}; -function VNode$6() { } -VNode$6.prototype = { - bz_: function(finalChildCount, ownerComponent) { - this.bP_ = finalChildCount; - this.bQ_ = 0; - this.bF_ = null; - this.bR_ = null; - this.bC_ = null; - this.bD_ = null; - this.aA_ = ownerComponent; - }, - get _r_() { - var firstChild2 = this.bF_; - if (firstChild2 && firstChild2.bE_) { - var nestedFirstChild = firstChild2._r_; - return nestedFirstChild || firstChild2.bS_; - } - return firstChild2; - }, - get bS_() { - var nextSibling2 = this.bD_; - if (nextSibling2) { - if (nextSibling2.bE_) { - var firstChild2 = nextSibling2._r_; - return firstChild2 || nextSibling2.bS_; - } +function nextComponentId() { + return "c" + markoUID.i++; +} +function nextComponentIdProvider$1() { + return nextComponentId; +} +function attachBubblingEvent$1(componentDef, handlerMethodName, isOnce, extraArgs) { + if (handlerMethodName) { + var componentId = componentDef.id; + if (extraArgs) { + return [handlerMethodName, componentId, isOnce, extraArgs]; } else { - var parentNode = this.bC_; - if (parentNode && parentNode.bE_) { - return parentNode.bS_; - } - } - return nextSibling2; - }, - br_: function(child) { - this.bQ_++; - if (this.bH_ === "textarea") { - if (child.bT_) { - var childValue = child.bU_; - this.bI_ = (this.bI_ || "") + childValue; - } else if (child.n_ || child.m_) { - this.bV_ = true; - } else { - throw TypeError(); - } - } else { - var lastChild = this.bR_; - child.bC_ = this; - if (lastChild) { - lastChild.bD_ = child; - } else { - this.bF_ = child; - } - this.bR_ = child; - } - return child; - }, - bK_: function finishChild() { - if (this.bQ_ === this.bP_ && this.bC_) { - return this.bC_.bK_(); - } else { - return this; - } - } -}; -var VNode_1 = VNode$6; -var copyProps$2 = function copyProps(from, to) { - Object.getOwnPropertyNames(from).forEach(function(name) { - var descriptor = Object.getOwnPropertyDescriptor(from, name); - Object.defineProperty(to, name, descriptor); - }); -}; -var copyProps$1 = copyProps$2; -function inherit$7(ctor, superCtor, shouldCopyProps) { - var oldProto = ctor.prototype; - var newProto = ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - writable: true, - configurable: true - } - }); - if (oldProto && shouldCopyProps !== false) { - copyProps$1(oldProto, newProto); - } - ctor.$super = superCtor; - ctor.prototype = newProto; - return ctor; -} -var inherit_1 = inherit$7; -inherit$7._inherit = inherit$7; -var extend$5 = function extend(target, source) { - if (!target) { - target = {}; - } - if (source) { - for (var propName in source) { - if (source.hasOwnProperty(propName)) { - target[propName] = source[propName]; - } - } - } - return target; -}; -var VNode$5 = VNode_1; -var inherit$6 = inherit_1; -var extend$4 = extend$5; -function VDocumentFragmentClone(other) { - extend$4(this, other); - this.bC_ = null; - this.bD_ = null; -} -function VDocumentFragment$2(out) { - this.bz_(null); - this.y_ = out; -} -VDocumentFragment$2.prototype = { - bB_: 11, - bE_: true, - bs_: function() { - return new VDocumentFragmentClone(this); - }, - by_: function(doc) { - return doc.createDocumentFragment(); - } -}; -inherit$6(VDocumentFragment$2, VNode$5); -VDocumentFragmentClone.prototype = VDocumentFragment$2.prototype; -var VDocumentFragment_1 = VDocumentFragment$2; -var domData$6 = { - ad_: new WeakMap(), - ae_: new WeakMap(), - E_: new WeakMap(), - af_: new WeakMap(), - ag_: new WeakMap(), - F_: {} -}; -var indexBrowser$5 = {}; -var domData$5 = domData$6; -var componentsByDOMNode$2 = domData$5.E_; -var keysByDOMNode$2 = domData$5.ag_; -var vElementsByDOMNode = domData$5.ae_; -var vPropsByDOMNode = domData$5.ad_; -var markoUID = window.$MUID || (window.$MUID = { i: 0 }); -var runtimeId$1 = markoUID.i++; -var componentLookup$4 = {}; -var defaultDocument$3 = document; -var EMPTY_OBJECT$2 = {}; -function getComponentForEl(el, doc) { - var node = typeof el == "string" ? (doc || defaultDocument$3).getElementById(el) : el; - var component; - var vElement2; - while (node) { - if (node.fragment) { - if (node.fragment.endNode === node) { - node = node.fragment.startNode; - } else { - node = node.fragment; - component = componentsByDOMNode$2.get(node); - } - } else if (vElement2 = vElementsByDOMNode.get(node)) { - component = vElement2.aA_; - } - if (component) { - return component; - } - node = node.previousSibling || node.parentNode; - } -} -function destroyComponentForNode$1(node) { - var componentToDestroy = componentsByDOMNode$2.get(node.fragment || node); - if (componentToDestroy) { - componentToDestroy.Z_(); - delete componentLookup$4[componentToDestroy.id]; - } -} -function destroyNodeRecursive$3(node, component) { - destroyComponentForNode$1(node); - if (node.nodeType === 1 || node.nodeType === 12) { - var key; - if (component && (key = keysByDOMNode$2.get(node))) { - if (node === component.k_[key]) { - if (componentsByDOMNode$2.get(node) && /\[\]$/.test(key)) { - delete component.k_[key][componentsByDOMNode$2.get(node).id]; - } else { - delete component.k_[key]; - } - } - } - var curChild = node.firstChild; - while (curChild && curChild !== node.endNode) { - destroyNodeRecursive$3(curChild, component); - curChild = curChild.nextSibling; - } - } -} -function nextComponentId() { - return "c" + markoUID.i++; -} -function nextComponentIdProvider$1() { - return nextComponentId; -} -function attachBubblingEvent$1(componentDef, handlerMethodName, isOnce, extraArgs) { - if (handlerMethodName) { - var componentId = componentDef.id; - if (extraArgs) { - return [handlerMethodName, componentId, isOnce, extraArgs]; - } else { - return [handlerMethodName, componentId, isOnce]; + return [handlerMethodName, componentId, isOnce]; } } } @@ -370,302 +170,110 @@ function addComponentRootToKeyedElements$2(keyedElements, key, rootNode, compone keyedElements[key] = rootNode; } } -indexBrowser$5.al_ = runtimeId$1; -indexBrowser$5.C_ = componentLookup$4; -indexBrowser$5.ah_ = getComponentForEl; -indexBrowser$5.aC_ = destroyComponentForNode$1; -indexBrowser$5.D_ = destroyNodeRecursive$3; -indexBrowser$5._T_ = nextComponentIdProvider$1; -indexBrowser$5._C_ = attachBubblingEvent$1; -indexBrowser$5.am_ = getMarkoPropsFromEl$1; -indexBrowser$5.ap_ = addComponentRootToKeyedElements$2; -indexBrowser$5.aD_ = normalizeComponentKey$1; -var domData$4 = domData$6; -var componentsUtil$6 = indexBrowser$5; -var vElementByDOMNode$2 = domData$4.ae_; -var VNode$4 = VNode_1; -var inherit$5 = inherit_1; -var ATTR_XLINK_HREF = "xlink:href"; -var xmlnsRegExp = /^xmlns(:|$)/; -var hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var NS_XLINK = "http://www.w3.org/1999/xlink"; -var NS_HTML = "http://www.w3.org/1999/xhtml"; -var NS_MATH = "http://www.w3.org/1998/Math/MathML"; -var NS_SVG = "http://www.w3.org/2000/svg"; -var DEFAULT_NS = { - svg: NS_SVG, - math: NS_MATH -}; -var FLAG_SIMPLE_ATTRS = 1; -var FLAG_CUSTOM_ELEMENT = 2; -var FLAG_SPREAD_ATTRS = 4; -var defineProperty = Object.defineProperty; -var ATTR_HREF = "href"; -var EMPTY_OBJECT$1 = Object.freeze({}); -function convertAttrValue(type, value) { - if (value === true) { - return ""; - } else if (type == "object") { - if (value instanceof RegExp) { - return value.source; +indexBrowser$4.al_ = runtimeId$1; +indexBrowser$4.C_ = componentLookup$4; +indexBrowser$4.ah_ = getComponentForEl; +indexBrowser$4.aC_ = destroyComponentForNode$1; +indexBrowser$4.D_ = destroyNodeRecursive$3; +indexBrowser$4._T_ = nextComponentIdProvider$1; +indexBrowser$4._C_ = attachBubblingEvent$1; +indexBrowser$4.am_ = getMarkoPropsFromEl$1; +indexBrowser$4.ap_ = addComponentRootToKeyedElements$2; +indexBrowser$4.aD_ = normalizeComponentKey$1; +var componentsUtil$6 = indexBrowser$4; +var runtimeId = componentsUtil$6.al_; +var componentLookup$3 = componentsUtil$6.C_; +var getMarkoPropsFromEl = componentsUtil$6.am_; +var TEXT_NODE$1 = 3; +var listenersAttachedKey = "$MDE" + runtimeId; +var delegatedEvents = {}; +function getEventFromEl(el, eventName) { + var virtualProps = getMarkoPropsFromEl(el); + var eventInfo = virtualProps[eventName]; + if (typeof eventInfo === "string") { + eventInfo = eventInfo.split(" "); + if (eventInfo[2]) { + eventInfo[2] = eventInfo[2] === "true"; + } + if (eventInfo.length == 4) { + eventInfo[3] = parseInt(eventInfo[3], 10); } } - return value + ""; + return eventInfo; } -function assign(a, b) { - for (var key in b) { - if (hasOwnProperty$1.call(b, key)) { - a[key] = b[key]; +function delegateEvent(node, eventName, target, event) { + var targetMethod = target[0]; + var targetComponentId = target[1]; + var isOnce = target[2]; + var extraArgs = target[3]; + if (isOnce) { + var virtualProps = getMarkoPropsFromEl(node); + delete virtualProps[eventName]; + } + var targetComponent = componentLookup$3[targetComponentId]; + if (!targetComponent) { + return; + } + var targetFunc = typeof targetMethod === "function" ? targetMethod : targetComponent[targetMethod]; + if (!targetFunc) { + throw Error("Method not found: " + targetMethod); + } + if (extraArgs != null) { + if (typeof extraArgs === "number") { + extraArgs = targetComponent.N_[extraArgs]; } } -} -function setAttribute(el, namespaceURI, name, value) { - if (namespaceURI === null) { - el.setAttribute(name, value); + if (extraArgs) { + targetFunc.apply(targetComponent, extraArgs.concat(event, node)); } else { - el.setAttributeNS(namespaceURI, name, value); + targetFunc.call(targetComponent, event, node); } } -function removeAttribute(el, namespaceURI, name) { - if (namespaceURI === null) { - el.removeAttribute(name); - } else { - el.removeAttributeNS(namespaceURI, name); +function addDelegatedEventHandler$1(eventType) { + if (!delegatedEvents[eventType]) { + delegatedEvents[eventType] = true; } } -function VElementClone(other) { - this.bF_ = other.bF_; - this.bC_ = null; - this.bD_ = null; - this.bA_ = other.bA_; - this.bG_ = other.bG_; - this.aB_ = other.aB_; - this.bH_ = other.bH_; - this._I_ = other._I_; - this.bI_ = other.bI_; - this.bJ_ = other.bJ_; +function addDelegatedEventHandlerToHost(eventType, host) { + var listeners = host[listenersAttachedKey] = host[listenersAttachedKey] || {}; + if (!listeners[eventType]) { + (host.body || host).addEventListener(eventType, listeners[eventType] = function(event) { + var propagationStopped = false; + var oldStopPropagation = event.stopPropagation; + event.stopPropagation = function() { + oldStopPropagation.call(event); + propagationStopped = true; + }; + var curNode = event.target; + if (!curNode) { + return; + } + curNode = curNode.correspondingUseElement || (curNode.nodeType === TEXT_NODE$1 ? curNode.parentNode : curNode); + var propName = "on" + eventType; + var target; + do { + if (target = getEventFromEl(curNode, propName)) { + delegateEvent(curNode, propName, target, event); + if (propagationStopped) { + break; + } + } + } while ((curNode = curNode.parentNode) && curNode.getAttribute); + }, true); + } } -function VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - this.bz_(childCount, ownerComponent); - var constId; - if (props) { - constId = props.i; - } - this.bA_ = key; - this._I_ = flags || 0; - this.bG_ = attrs2 || EMPTY_OBJECT$1; - this.aB_ = props || EMPTY_OBJECT$1; - this.bH_ = tagName; - this.bI_ = null; - this.bJ_ = constId; - this.n_ = false; - this.m_ = false; +function noop() { } -VElement$4.prototype = { - bB_: 1, - bs_: function() { - return new VElementClone(this); - }, - e: function(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - var child = this.br_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); - if (childCount === 0) { - return this.bK_(); - } else { - return child; - } - }, - n: function(node, ownerComponent) { - node = node.bs_(); - node.aA_ = ownerComponent; - this.br_(node); - return this.bK_(); - }, - by_: function(doc, parentNamespaceURI) { - var tagName = this.bH_; - var attributes = this.bG_; - var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; - var flags = this._I_; - var el = doc.createElementNS(namespaceURI, tagName); - if (flags & FLAG_CUSTOM_ELEMENT) { - assign(el, attributes); - } else { - for (var attrName in attributes) { - var attrValue = attributes[attrName]; - if (attrValue !== false && attrValue != null) { - var type = typeof attrValue; - if (type !== "string") { - attrValue = convertAttrValue(type, attrValue); - } - if (attrName == ATTR_XLINK_HREF) { - setAttribute(el, NS_XLINK, ATTR_HREF, attrValue); - } else { - el.setAttribute(attrName, attrValue); - } - } - } - if (tagName === "textarea") { - el.defaultValue = el.value = this.q_; - } - } - vElementByDOMNode$2.set(el, this); - return el; - }, - bL_: function(name) { - var value = this.bG_[name]; - return value != null && value !== false; - } -}; -inherit$5(VElement$4, VNode$4); -var proto$2 = VElementClone.prototype = VElement$4.prototype; -["checked", "selected", "disabled"].forEach(function(name) { - defineProperty(proto$2, name, { - get: function() { - var value = this.bG_[name]; - return value !== false && value != null; - } +eventDelegation$3.ab_ = noop; +eventDelegation$3.___ = noop; +eventDelegation$3._Z_ = delegateEvent; +eventDelegation$3.a__ = getEventFromEl; +eventDelegation$3._D_ = addDelegatedEventHandler$1; +eventDelegation$3.an_ = function(host) { + Object.keys(delegatedEvents).forEach(function(eventType) { + addDelegatedEventHandlerToHost(eventType, host); }); -}); -defineProperty(proto$2, "q_", { - get: function() { - var value = this.bI_; - if (value == null) { - value = this.bG_.value; - } - return value != null && value !== false ? value + "" : this.bG_.type === "checkbox" || this.bG_.type === "radio" ? "on" : ""; - } -}); -VElement$4.bM_ = function(attrs2) { - return attrs2; -}; -function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { - var attributes = node.attributes; - var attrCount = attributes.length; - var attrs2 = null; - var props = null; - if (attrCount) { - attrs2 = {}; - for (var i = 0; i < attrCount; i++) { - var attr = attributes[i]; - var attrName = attr.name; - if (!xmlnsRegExp.test(attrName)) { - if (attrName === "data-marko") { - props = componentsUtil$6.am_(node); - } else if (attr.namespaceURI === NS_XLINK) { - attrs2[ATTR_XLINK_HREF] = attr.value; - } else { - attrs2[attrName] = attr.value; - } - } - } - } - var tagName = node.nodeName; - if (node.namespaceURI === NS_HTML) { - tagName = tagName.toLowerCase(); - } - var vdomEl = new VElement$4(tagName, attrs2, null, ownerComponent, 0, 0, props); - if (vdomEl.bH_ === "textarea") { - vdomEl.bI_ = node.value; - } else if (virtualizeChildNodes2) { - virtualizeChildNodes2(node, vdomEl, ownerComponent); - } - return vdomEl; -} -VElement$4.bN_ = virtualizeElement$1; -VElement$4.bO_ = function(fromEl, vFromEl, toEl) { - var removePreservedAttributes = VElement$4.bM_; - var fromFlags = vFromEl._I_; - var toFlags = toEl._I_; - vElementByDOMNode$2.set(fromEl, toEl); - var attrs2 = toEl.bG_; - var props = toEl.aB_; - if (toFlags & FLAG_CUSTOM_ELEMENT) { - return assign(fromEl, attrs2); - } - var attrName; - var oldAttrs = vFromEl.bG_; - if (oldAttrs) { - if (oldAttrs === attrs2) { - return; - } else { - oldAttrs = removePreservedAttributes(oldAttrs, props); - } - } - var attrValue; - if (toFlags & FLAG_SIMPLE_ATTRS && fromFlags & FLAG_SIMPLE_ATTRS) { - if (oldAttrs["class"] !== (attrValue = attrs2["class"])) { - fromEl.className = attrValue; - } - if (oldAttrs.id !== (attrValue = attrs2.id)) { - fromEl.id = attrValue; - } - if (oldAttrs.style !== (attrValue = attrs2.style)) { - fromEl.style.cssText = attrValue; - } - return; - } - attrs2 = removePreservedAttributes(attrs2, props, true); - var namespaceURI; - for (attrName in attrs2) { - attrValue = attrs2[attrName]; - namespaceURI = null; - if (attrName === ATTR_XLINK_HREF) { - namespaceURI = NS_XLINK; - attrName = ATTR_HREF; - } - if (attrValue == null || attrValue === false) { - removeAttribute(fromEl, namespaceURI, attrName); - } else if (oldAttrs[attrName] !== attrValue) { - var type = typeof attrValue; - if (type !== "string") { - attrValue = convertAttrValue(type, attrValue); - } - setAttribute(fromEl, namespaceURI, attrName, attrValue); - } - } - if (toEl.bA_ === null || fromFlags & FLAG_SPREAD_ATTRS) { - for (attrName in oldAttrs) { - if (!(attrName in attrs2)) { - if (attrName === ATTR_XLINK_HREF) { - fromEl.removeAttributeNS(ATTR_XLINK_HREF, ATTR_HREF); - } else { - fromEl.removeAttribute(attrName); - } - } - } - } -}; -var VElement_1 = VElement$4; -var VNode$3 = VNode_1; -var inherit$4 = inherit_1; -function VText$2(value, ownerComponent) { - this.bz_(-1, ownerComponent); - this.bU_ = value; -} -VText$2.prototype = { - bT_: true, - bB_: 3, - by_: function(doc) { - return doc.createTextNode(this.bU_); - }, - bs_: function() { - return new VText$2(this.bU_); - } -}; -inherit$4(VText$2, VNode$3); -var VText_1 = VText$2; -var VNode$2 = VNode_1; -var inherit$3 = inherit_1; -function VComponent$2(component, key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; - this.h_ = component; - this.n_ = preserve; -} -VComponent$2.prototype = { - bB_: 2 }; -inherit$3(VComponent$2, VNode$2); -var VComponent_1 = VComponent$2; var fragment$1 = {}; var helpers$3 = {}; function insertBefore$3(node, referenceNode, parentNode) { @@ -697,7 +305,7 @@ function removeChild$2(node) { } helpers$3.aF_ = insertBefore$3; helpers$3.aG_ = insertAfter$2; -helpers$3.bS_ = nextSibling$1; +helpers$3.bR_ = nextSibling$1; helpers$3._r_ = firstChild$1; helpers$3.aH_ = removeChild$2; var helpers$2 = helpers$3; @@ -763,119 +371,229 @@ function createFragmentNode$3(startNode, nextNode, parentNode) { } function beginFragmentNode$1(startNode, parentNode) { var fragment2 = createFragmentNode$3(startNode, null, parentNode); - fragment2.bY_ = function(nextNode) { - fragment2.bY_ = null; + fragment2.bX_ = function(nextNode) { + fragment2.bX_ = null; insertBefore$2(fragment2.endNode, nextNode, parentNode || startNode.parentNode); }; return fragment2; } fragment$1.ao_ = createFragmentNode$3; -fragment$1.bZ_ = beginFragmentNode$1; -var domData$3 = domData$6; -var keysByDOMNode$1 = domData$3.ag_; -var vElementByDOMNode$1 = domData$3.ae_; -var VNode$1 = VNode_1; -var inherit$2 = inherit_1; -var createFragmentNode$2 = fragment$1.ao_; -function VFragment$2(key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; - this.n_ = preserve; -} -VFragment$2.prototype = { - bB_: 12, - by_: function() { - var fragment2 = createFragmentNode$2(); - keysByDOMNode$1.set(fragment2, this.bA_); - vElementByDOMNode$1.set(fragment2, this); - return fragment2; - } -}; -inherit$2(VFragment$2, VNode$1); -var VFragment_1 = VFragment$2; -var parseHTML$1 = function(html) { - var container = document.createElement("template"); - parseHTML$1 = container.content ? function(html2) { - container.innerHTML = html2; - return container.content; - } : function(html2) { - container.innerHTML = html2; - return container; - }; - return parseHTML$1(html); -}; -var parseHtml = function(html) { - return parseHTML$1(html).firstChild; -}; -var VNode = VNode_1; -var VDocumentFragment$1 = VDocumentFragment_1; -var VElement$3 = VElement_1; -var VText$1 = VText_1; -var VComponent$1 = VComponent_1; -var VFragment$1 = VFragment_1; -var parseHTML = parseHtml; -var defaultDocument$2 = typeof document != "undefined" && document; -var specialHtmlRegexp = /[&<]/; -function virtualizeChildNodes(node, vdomParent, ownerComponent) { - var curChild = node.firstChild; - while (curChild) { - vdomParent.br_(virtualize(curChild, ownerComponent)); - curChild = curChild.nextSibling; +fragment$1.bY_ = beginFragmentNode$1; +var constants = constants$2; +var extend$5 = function extend(target, source) { + if (!target) { + target = {}; } -} -function virtualize(node, ownerComponent) { - switch (node.nodeType) { - case 1: - return VElement$3.bN_(node, virtualizeChildNodes, ownerComponent); - case 3: - return new VText$1(node.nodeValue, ownerComponent); - case 11: - var vdomDocFragment = new VDocumentFragment$1(); - virtualizeChildNodes(node, vdomDocFragment, ownerComponent); - return vdomDocFragment; + if (source) { + for (var propName in source) { + if (source.hasOwnProperty(propName)) { + target[propName] = source[propName]; + } + } } + return target; +}; +function KeySequence$2() { + this._V_ = Object.create(null); } -function virtualizeHTML$1(html, doc, ownerComponent) { - if (!specialHtmlRegexp.test(html)) { - return new VText$1(html, ownerComponent); - } - var vdomFragment = new VDocumentFragment$1(); - var curChild = parseHTML(html); - while (curChild) { - vdomFragment.br_(virtualize(curChild, ownerComponent)); - curChild = curChild.nextSibling; +KeySequence$2.prototype._L_ = function(key) { + var lookup = this._V_; + if (lookup[key]) { + return key + "_" + lookup[key]++; } - return vdomFragment; + lookup[key] = 1; + return key; +}; +var KeySequence_1 = KeySequence$2; +var w10Noop = constants.NOOP; +var componentUtil = indexBrowser$4; +var attachBubblingEvent = componentUtil._C_; +var addDelegatedEventHandler = eventDelegation$3._D_; +var extend$4 = extend$5; +var KeySequence$1 = KeySequence_1; +var EMPTY_OBJECT$1 = {}; +var FLAG_WILL_RERENDER_IN_BROWSER$1 = 1; +var FLAG_HAS_RENDER_BODY = 2; +function ComponentDef$2(component, componentId, componentsContext) { + this._E_ = componentsContext; + this.h_ = component; + this.id = componentId; + this._F_ = void 0; + this._G_ = false; + this._H_ = false; + this._I_ = 0; + this._J_ = 0; + this._K_ = null; } -var Node_prototype = VNode.prototype; -Node_prototype.t = function(value) { - var type = typeof value; - var vdomNode; - if (type !== "string") { - if (value == null) { - value = ""; - } else if (type === "object") { - if (value.toHTML) { - vdomNode = virtualizeHTML$1(value.toHTML()); +ComponentDef$2.prototype = { + _L_: function(key) { + return (this._K_ || (this._K_ = new KeySequence$1()))._L_(key); + }, + elId: function(nestedId) { + var id = this.id; + if (nestedId == null) { + return id; + } else { + if (typeof nestedId !== "string") { + nestedId = String(nestedId); + } + if (nestedId.indexOf("#") === 0) { + id = "#" + id; + nestedId = nestedId.substring(1); } + return id + "-" + nestedId; } + }, + _M_: function() { + return this.id + "-c" + this._J_++; + }, + d: function(eventName, handlerMethodName, isOnce, extraArgs) { + addDelegatedEventHandler(eventName); + return attachBubblingEvent(this, handlerMethodName, isOnce, extraArgs); + }, + get _N_() { + return this.h_._N_; } - this.br_(vdomNode || new VText$1(value.toString())); - return this.bK_(); }; -Node_prototype.bw_ = function() { - return this.br_(new VDocumentFragment$1()); +ComponentDef$2.prototype.nk = ComponentDef$2.prototype._L_; +ComponentDef$2._O_ = function(o, types, global2, registry2) { + var id = o[0]; + var typeName = types[o[1]]; + var input = o[2] || null; + var extra = o[3] || EMPTY_OBJECT$1; + var state = extra.s; + var componentProps = extra.w; + var flags = extra.f; + var component = registry2._P_(typeName, id); + component.U_ = true; + if (flags & FLAG_HAS_RENDER_BODY) { + (input || (input = {})).renderBody = w10Noop; + } + if (flags & FLAG_WILL_RERENDER_IN_BROWSER$1) { + if (component.onCreate) { + component.onCreate(input, { global: global2 }); + } + if (component.onInput) { + input = component.onInput(input, { global: global2 }) || input; + } + } else { + if (state) { + var undefinedPropNames = extra.u; + if (undefinedPropNames) { + undefinedPropNames.forEach(function(undefinedPropName) { + state[undefinedPropName] = void 0; + }); + } + component.state = state; + } + if (componentProps) { + extend$4(component, componentProps); + } + } + component.Q_ = input; + if (extra.b) { + component.N_ = extra.b; + } + var scope = extra.p; + var customEvents = extra.e; + if (customEvents) { + component._v_(customEvents, scope); + } + component.S_ = global2; + return { + id, + h_: component, + _F_: extra.d, + _I_: extra.f || 0 + }; }; -vdom$1.ba_ = VDocumentFragment$1; -vdom$1.b__ = VElement$3; -vdom$1.bb_ = VText$1; -vdom$1.bc_ = VComponent$1; -vdom$1.bd_ = VFragment$1; -vdom$1.bN_ = virtualize; -vdom$1.be_ = virtualizeHTML$1; -vdom$1.bf_ = defaultDocument$2; +var ComponentDef_1 = ComponentDef$2; +var indexBrowser$3 = {}; +var promise; +var queueMicrotask_1 = typeof queueMicrotask === "function" ? queueMicrotask : typeof Promise === "function" && (promise = Promise.resolve()) ? function(cb) { + promise.then(cb).catch(rethrow); +} : setTimeout; +function rethrow(err) { + setTimeout(function() { + throw err; + }); +} var extend$3 = extend$5; -var componentsUtil$5 = indexBrowser$5; +function ensure(state, propertyName) { + var proto2 = state.constructor.prototype; + if (!(propertyName in proto2)) { + Object.defineProperty(proto2, propertyName, { + get: function() { + return this._u_[propertyName]; + }, + set: function(value) { + this._f_(propertyName, value, false); + } + }); + } +} +function State$1(component) { + this.h_ = component; + this._u_ = {}; + this.V_ = false; + this._l_ = null; + this._k_ = null; + this._Y_ = null; + Object.seal(this); +} +State$1.prototype = { + I_: function() { + var self2 = this; + self2.V_ = false; + self2._l_ = null; + self2._k_ = null; + self2._Y_ = null; + }, + _d_: function(newState) { + var state = this; + var key; + var rawState = this._u_; + for (key in rawState) { + if (!(key in newState)) { + state._f_(key, void 0, false, false); + } + } + for (key in newState) { + state._f_(key, newState[key], true, false); + } + }, + _f_: function(name, value, shouldEnsure, forceDirty) { + var rawState = this._u_; + if (shouldEnsure) { + ensure(this, name); + } + if (forceDirty) { + var forcedDirtyState = this._Y_ || (this._Y_ = {}); + forcedDirtyState[name] = true; + } else if (rawState[name] === value) { + return; + } + if (!this.V_) { + this.V_ = true; + this._l_ = rawState; + this._u_ = rawState = extend$3({}, rawState); + this._k_ = {}; + this.h_._e_(); + } + this._k_[name] = value; + if (value === void 0) { + delete rawState[name]; + } else { + rawState[name] = value; + } + }, + toJSON: function() { + return this._u_; + } +}; +var State_1 = State$1; +var extend$2 = extend$5; +var componentsUtil$5 = indexBrowser$4; var destroyComponentForNode = componentsUtil$5.aC_; var destroyNodeRecursive$2 = componentsUtil$5.D_; var helpers$1 = helpers$3; @@ -897,7 +615,7 @@ function beforeRemove(referenceEl) { destroyComponentForNode(referenceEl); } var domInsert$2 = function(target, getEl3, afterInsert3) { - extend$3(target, { + extend$2(target, { appendTo: function(referenceEl) { referenceEl = resolveEl(referenceEl); var el = getEl3(this, referenceEl); @@ -945,1597 +663,1510 @@ var domInsert$2 = function(target, getEl3, afterInsert3) { } }); }; -var domInsert$1 = domInsert$2; -function getComponentDefs(result) { - var componentDefs = result.b_; - if (!componentDefs) { - throw Error("No component"); - } - return componentDefs; +var actualCreateOut; +function setCreateOut(createOutFunc) { + actualCreateOut = createOutFunc; } -function RenderResult$2(out) { - this.out = this.y_ = out; - this.b_ = void 0; +function createOut(globalData) { + return actualCreateOut(globalData); } -var RenderResult_1 = RenderResult$2; -var proto$1 = RenderResult$2.prototype = { - getComponent: function() { - return this.getComponents()[0]; - }, - getComponents: function(selector) { - if (this.b_ === void 0) { - throw Error("Not added to DOM"); - } - var componentDefs = getComponentDefs(this); - var components = []; - componentDefs.forEach(function(componentDef) { - var component = componentDef.h_; - if (!selector || selector(component)) { - components.push(component); +createOut.aE_ = setCreateOut; +var createOut_1 = createOut; +var ComponentsContext$1 = { exports: {} }; +var nextComponentIdProvider = indexBrowser$4._T_; +function GlobalComponentsContext(out) { + this._U_ = {}; + this._q_ = void 0; + this._M_ = nextComponentIdProvider(out); +} +var GlobalComponentsContext_1 = GlobalComponentsContext; +(function(module, exports) { + var GlobalComponentsContext2 = GlobalComponentsContext_1; + function ComponentsContext2(out, parentComponentsContext) { + var globalComponentsContext; + var componentDef; + if (parentComponentsContext) { + globalComponentsContext = parentComponentsContext.e_; + componentDef = parentComponentsContext.j_; + var nestedContextsForParent; + if (!(nestedContextsForParent = parentComponentsContext._Q_)) { + nestedContextsForParent = parentComponentsContext._Q_ = []; } - }); - return components; - }, - afterInsert: function(doc) { - var out = this.y_; - var componentsContext = out.b_; - if (componentsContext) { - this.b_ = componentsContext.z_(doc); + nestedContextsForParent.push(this); } else { - this.b_ = null; + globalComponentsContext = out.global.b_; + if (globalComponentsContext === void 0) { + out.global.b_ = globalComponentsContext = new GlobalComponentsContext2(out); + } } - return this; - }, - getNode: function(doc) { - return this.y_.A_(doc); - }, - getOutput: function() { - return this.y_.B_(); - }, - toString: function() { - return this.y_.toString(); - }, - document: typeof document != "undefined" && document -}; -Object.defineProperty(proto$1, "html", { - get: function() { - return this.toString(); - } -}); -Object.defineProperty(proto$1, "context", { - get: function() { - return this.y_; + this.e_ = globalComponentsContext; + this.b_ = []; + this.y_ = out; + this.j_ = componentDef; + this._Q_ = void 0; + this.p_ = parentComponentsContext && parentComponentsContext.p_; } -}); -domInsert$1(proto$1, function getEl(renderResult, referenceEl) { - return renderResult.getNode(referenceEl.ownerDocument); -}, function afterInsert(renderResult, referenceEl) { - var isShadow = typeof ShadowRoot === "function" && referenceEl instanceof ShadowRoot; - return renderResult.afterInsert(isShadow ? referenceEl : referenceEl.ownerDocument); -}); -function syncBooleanAttrProp(fromEl, toEl, name) { - if (fromEl[name] !== toEl[name]) { - fromEl[name] = toEl[name]; - if (fromEl[name]) { - fromEl.setAttribute(name, ""); - } else { - fromEl.removeAttribute(name, ""); + ComponentsContext2.prototype = { + z_: function(host) { + var componentDefs = this.b_; + ComponentsContext2._R_(componentDefs, host); + this.y_.emit("_S_"); + this.y_.global.b_ = void 0; + return componentDefs; } + }; + function getComponentsContext2(out) { + return out.b_ || (out.b_ = new ComponentsContext2(out)); } + module.exports = exports = ComponentsContext2; + exports.o_ = getComponentsContext2; +})(ComponentsContext$1, ComponentsContext$1.exports); +var slice$1 = Array.prototype.slice; +function isFunction(arg) { + return typeof arg === "function"; } -function forEachOption(el, fn, i) { - var curChild = el._r_; - while (curChild) { - if (curChild.bH_ === "option") { - fn(curChild, ++i); +function checkListener(listener) { + if (!isFunction(listener)) { + throw TypeError("Invalid listener"); + } +} +function invokeListener(ee, listener, args) { + switch (args.length) { + case 1: + listener.call(ee); + break; + case 2: + listener.call(ee, args[1]); + break; + case 3: + listener.call(ee, args[1], args[2]); + break; + default: + listener.apply(ee, slice$1.call(args, 1)); + } +} +function addListener(eventEmitter, type, listener, prepend) { + checkListener(listener); + var events = eventEmitter.$e || (eventEmitter.$e = {}); + var listeners = events[type]; + if (listeners) { + if (isFunction(listeners)) { + events[type] = prepend ? [listener, listeners] : [listeners, listener]; } else { - i = forEachOption(curChild, fn, i); + if (prepend) { + listeners.unshift(listener); + } else { + listeners.push(listener); + } } - curChild = curChild.bS_; + } else { + events[type] = listener; } - return i; + return eventEmitter; } -function SpecialElHandlers() { +function EventEmitter$2() { + this.$e = this.$e || {}; } -SpecialElHandlers.prototype = { - option: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "selected"); - }, - button: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "disabled"); - }, - input: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "checked"); - syncBooleanAttrProp(fromEl, toEl, "disabled"); - if (fromEl.value != toEl.q_) { - fromEl.value = toEl.q_; - } - if (fromEl.hasAttribute("value") && !toEl.bL_("value")) { - fromEl.removeAttribute("value"); - } - }, - textarea: function(fromEl, toEl) { - if (toEl.bV_) { +EventEmitter$2.EventEmitter = EventEmitter$2; +EventEmitter$2.prototype = { + $e: null, + emit: function(type) { + var args = arguments; + var events = this.$e; + if (!events) { return; } - var newValue = toEl.q_; - if (fromEl.value != newValue) { - fromEl.value = newValue; + var listeners = events && events[type]; + if (!listeners) { + if (type === "error") { + var error = args[1]; + if (!(error instanceof Error)) { + var context = error; + error = new Error("Error: " + context); + error.context = context; + } + throw error; + } + return false; } - var firstChild2 = fromEl.firstChild; - if (firstChild2) { - var oldValue = firstChild2.nodeValue; - if (oldValue == newValue || !newValue && oldValue == fromEl.placeholder) { - return; + if (isFunction(listeners)) { + invokeListener(this, listeners, args); + } else { + listeners = slice$1.call(listeners); + for (var i = 0, len = listeners.length; i < len; i++) { + var listener = listeners[i]; + invokeListener(this, listener, args); } - firstChild2.nodeValue = newValue; } + return true; }, - select: function(fromEl, toEl) { - if (!toEl.bL_("multiple")) { - var selected = 0; - forEachOption(toEl, function(option, i) { - if (option.bL_("selected")) { - selected = i; + on: function(type, listener) { + return addListener(this, type, listener, false); + }, + prependListener: function(type, listener) { + return addListener(this, type, listener, true); + }, + once: function(type, listener) { + checkListener(listener); + function g() { + this.removeListener(type, g); + if (listener) { + listener.apply(this, arguments); + listener = null; + } + } + this.on(type, g); + return this; + }, + removeListener: function(type, listener) { + checkListener(listener); + var events = this.$e; + var listeners; + if (events && (listeners = events[type])) { + if (isFunction(listeners)) { + if (listeners === listener) { + delete events[type]; + } + } else { + for (var i = listeners.length - 1; i >= 0; i--) { + if (listeners[i] === listener) { + listeners.splice(i, 1); + } } - }, -1); - if (fromEl.selectedIndex !== selected) { - fromEl.selectedIndex = selected; } } + return this; + }, + removeAllListeners: function(type) { + var events = this.$e; + if (events) { + delete events[type]; + } + }, + listenerCount: function(type) { + var events = this.$e; + var listeners = events && events[type]; + return listeners ? isFunction(listeners) ? 1 : listeners.length : 0; } }; -var specialElHandlers$1 = new SpecialElHandlers(); -function KeySequence$2() { - this._V_ = Object.create(null); +var src = EventEmitter$2; +var domInsert$1 = domInsert$2; +function getRootNode(el) { + var cur = el; + while (cur.parentNode) + cur = cur.parentNode; + return cur; } -KeySequence$2.prototype._L_ = function(key) { - var lookup = this._V_; - if (lookup[key]) { - return key + "_" + lookup[key]++; +function getComponentDefs(result) { + var componentDefs = result.b_; + if (!componentDefs) { + throw Error("No component"); } - lookup[key] = 1; - return key; -}; -var KeySequence_1 = KeySequence$2; -var eventDelegation$3 = {}; -var componentsUtil$4 = indexBrowser$5; -var runtimeId = componentsUtil$4.al_; -var componentLookup$3 = componentsUtil$4.C_; -var getMarkoPropsFromEl = componentsUtil$4.am_; -var TEXT_NODE$1 = 3; -var listenersAttachedKey = "$MDE" + runtimeId; -var delegatedEvents = {}; -function getEventFromEl(el, eventName) { - var virtualProps = getMarkoPropsFromEl(el); - var eventInfo = virtualProps[eventName]; - if (typeof eventInfo === "string") { - eventInfo = eventInfo.split(" "); - if (eventInfo[2]) { - eventInfo[2] = eventInfo[2] === "true"; + return componentDefs; +} +function RenderResult$2(out) { + this.out = this.y_ = out; + this.b_ = void 0; +} +var RenderResult_1 = RenderResult$2; +var proto$2 = RenderResult$2.prototype = { + getComponent: function() { + return this.getComponents()[0]; + }, + getComponents: function(selector) { + if (this.b_ === void 0) { + throw Error("Not added to DOM"); } - if (eventInfo.length == 4) { - eventInfo[3] = parseInt(eventInfo[3], 10); + var componentDefs = getComponentDefs(this); + var components2 = []; + componentDefs.forEach(function(componentDef) { + var component = componentDef.h_; + if (!selector || selector(component)) { + components2.push(component); + } + }); + return components2; + }, + afterInsert: function(host) { + var out = this.y_; + var componentsContext = out.b_; + if (componentsContext) { + this.b_ = componentsContext.z_(host); + } else { + this.b_ = null; } + return this; + }, + getNode: function(host) { + return this.y_.A_(host); + }, + getOutput: function() { + return this.y_.B_(); + }, + toString: function() { + return this.y_.toString(); + }, + document: typeof window === "object" && document +}; +Object.defineProperty(proto$2, "html", { + get: function() { + return this.toString(); } - return eventInfo; -} -function delegateEvent(node, eventName, target, event) { - var targetMethod = target[0]; - var targetComponentId = target[1]; - var isOnce = target[2]; - var extraArgs = target[3]; - if (isOnce) { - var virtualProps = getMarkoPropsFromEl(node); - delete virtualProps[eventName]; +}); +Object.defineProperty(proto$2, "context", { + get: function() { + return this.y_; } - var targetComponent = componentLookup$3[targetComponentId]; - if (!targetComponent) { - return; +}); +domInsert$1(proto$2, function getEl(renderResult, referenceEl) { + return renderResult.getNode(getRootNode(referenceEl)); +}, function afterInsert(renderResult, referenceEl) { + return renderResult.afterInsert(getRootNode(referenceEl)); +}); +var listenerTracker = { exports: {} }; +(function(module, exports) { + var INDEX_EVENT = 0; + var INDEX_USER_LISTENER = 1; + var INDEX_WRAPPED_LISTENER = 2; + var DESTROY = "destroy"; + function isNonEventEmitter(target) { + return !target.once; } - var targetFunc = typeof targetMethod === "function" ? targetMethod : targetComponent[targetMethod]; - if (!targetFunc) { - throw Error("Method not found: " + targetMethod); + function EventEmitterWrapper(target) { + this.$__target = target; + this.$__listeners = []; + this.$__subscribeTo = null; } - if (extraArgs != null) { - if (typeof extraArgs === "number") { - extraArgs = targetComponent.N_[extraArgs]; + EventEmitterWrapper.prototype = { + $__remove: function(test, testWrapped) { + var target = this.$__target; + var listeners = this.$__listeners; + this.$__listeners = listeners.filter(function(curListener) { + var curEvent = curListener[INDEX_EVENT]; + var curListenerFunc = curListener[INDEX_USER_LISTENER]; + var curWrappedListenerFunc = curListener[INDEX_WRAPPED_LISTENER]; + if (testWrapped) { + if (curWrappedListenerFunc && test(curEvent, curWrappedListenerFunc)) { + target.removeListener(curEvent, curWrappedListenerFunc); + return false; + } + } else if (test(curEvent, curListenerFunc)) { + target.removeListener(curEvent, curWrappedListenerFunc || curListenerFunc); + return false; + } + return true; + }); + var subscribeTo = this.$__subscribeTo; + if (!this.$__listeners.length && subscribeTo) { + var self2 = this; + var subscribeToList = subscribeTo.$__subscribeToList; + subscribeTo.$__subscribeToList = subscribeToList.filter(function(cur) { + return cur !== self2; + }); + } + }, + on: function(event, listener) { + this.$__target.on(event, listener); + this.$__listeners.push([event, listener]); + return this; + }, + once: function(event, listener) { + var self2 = this; + var wrappedListener = function() { + self2.$__remove(function(event2, listenerFunc) { + return wrappedListener === listenerFunc; + }, true); + listener.apply(this, arguments); + }; + this.$__target.once(event, wrappedListener); + this.$__listeners.push([event, listener, wrappedListener]); + return this; + }, + removeListener: function(event, listener) { + if (typeof event === "function") { + listener = event; + event = null; + } + if (listener && event) { + this.$__remove(function(curEvent, curListener) { + return event === curEvent && listener === curListener; + }); + } else if (listener) { + this.$__remove(function(curEvent, curListener) { + return listener === curListener; + }); + } else if (event) { + this.removeAllListeners(event); + } + return this; + }, + removeAllListeners: function(event) { + var listeners = this.$__listeners; + var target = this.$__target; + if (event) { + this.$__remove(function(curEvent, curListener) { + return event === curEvent; + }); + } else { + for (var i = listeners.length - 1; i >= 0; i--) { + var cur = listeners[i]; + target.removeListener(cur[INDEX_EVENT], cur[INDEX_USER_LISTENER]); + } + this.$__listeners.length = 0; + } + return this; } + }; + function EventEmitterAdapter(target) { + this.$__target = target; } - if (extraArgs) { - targetFunc.apply(targetComponent, extraArgs.concat(event, node)); - } else { - targetFunc.call(targetComponent, event, node); - } -} -function addDelegatedEventHandler$1(eventType) { - if (!delegatedEvents[eventType]) { - delegatedEvents[eventType] = true; - } -} -function addDelegatedEventHandlerToDoc(eventType, doc) { - var body = doc.body || doc; - var listeners = doc[listenersAttachedKey] = doc[listenersAttachedKey] || {}; - if (!listeners[eventType]) { - body.addEventListener(eventType, listeners[eventType] = function(event) { - var propagationStopped = false; - var oldStopPropagation = event.stopPropagation; - event.stopPropagation = function() { - oldStopPropagation.call(event); - propagationStopped = true; + EventEmitterAdapter.prototype = { + on: function(event, listener) { + this.$__target.addEventListener(event, listener); + return this; + }, + once: function(event, listener) { + var self2 = this; + var onceListener = function() { + self2.$__target.removeEventListener(event, onceListener); + listener(); }; - var curNode = event.target; - if (!curNode) { - return; + this.$__target.addEventListener(event, onceListener); + return this; + }, + removeListener: function(event, listener) { + this.$__target.removeEventListener(event, listener); + return this; + } + }; + function SubscriptionTracker2() { + this.$__subscribeToList = []; + } + SubscriptionTracker2.prototype = { + subscribeTo: function(target, options) { + var addDestroyListener = !options || options.addDestroyListener !== false; + var wrapper; + var nonEE; + var subscribeToList = this.$__subscribeToList; + for (var i = 0, len = subscribeToList.length; i < len; i++) { + var cur = subscribeToList[i]; + if (cur.$__target === target) { + wrapper = cur; + break; + } } - curNode = curNode.correspondingUseElement || (curNode.nodeType === TEXT_NODE$1 ? curNode.parentNode : curNode); - var propName = "on" + eventType; - var target; - do { - if (target = getEventFromEl(curNode, propName)) { - delegateEvent(curNode, propName, target, event); - if (propagationStopped) { + if (!wrapper) { + if (isNonEventEmitter(target)) { + nonEE = new EventEmitterAdapter(target); + } + wrapper = new EventEmitterWrapper(nonEE || target); + if (addDestroyListener && !nonEE) { + wrapper.once(DESTROY, function() { + wrapper.removeAllListeners(); + for (var i2 = subscribeToList.length - 1; i2 >= 0; i2--) { + if (subscribeToList[i2].$__target === target) { + subscribeToList.splice(i2, 1); + break; + } + } + }); + } + wrapper.$__subscribeTo = this; + subscribeToList.push(wrapper); + } + return wrapper; + }, + removeAllListeners: function(target, event) { + var subscribeToList = this.$__subscribeToList; + var i; + if (target) { + for (i = subscribeToList.length - 1; i >= 0; i--) { + var cur = subscribeToList[i]; + if (cur.$__target === target) { + cur.removeAllListeners(event); + if (!cur.$__listeners.length) { + subscribeToList.splice(i, 1); + } break; } } - } while ((curNode = curNode.parentNode) && curNode.getAttribute); - }, true); - } -} -function noop() { -} -eventDelegation$3.ab_ = noop; -eventDelegation$3.___ = noop; -eventDelegation$3._Z_ = delegateEvent; -eventDelegation$3.a__ = getEventFromEl; -eventDelegation$3._D_ = addDelegatedEventHandler$1; -eventDelegation$3.an_ = function(doc) { - Object.keys(delegatedEvents).forEach(function(eventType) { - addDelegatedEventHandlerToDoc(eventType, doc); + } else { + for (i = subscribeToList.length - 1; i >= 0; i--) { + subscribeToList[i].removeAllListeners(); + } + subscribeToList.length = 0; + } + } + }; + exports = module.exports = SubscriptionTracker2; + exports.wrap = function(targetEventEmitter) { + var nonEE; + var wrapper; + if (isNonEventEmitter(targetEventEmitter)) { + nonEE = new EventEmitterAdapter(targetEventEmitter); + } + wrapper = new EventEmitterWrapper(nonEE || targetEventEmitter); + if (!nonEE) { + targetEventEmitter.once(DESTROY, function() { + wrapper.$__listeners.length = 0; + }); + } + return wrapper; + }; + exports.createTracker = function() { + return new SubscriptionTracker2(); + }; +})(listenerTracker, listenerTracker.exports); +var copyProps$2 = function copyProps(from, to) { + Object.getOwnPropertyNames(from).forEach(function(name) { + var descriptor = Object.getOwnPropertyDescriptor(from, name); + Object.defineProperty(to, name, descriptor); }); }; -var specialElHandlers = specialElHandlers$1; -var KeySequence$1 = KeySequence_1; -var componentsUtil$3 = indexBrowser$5; -var existingComponentLookup = componentsUtil$3.C_; -var destroyNodeRecursive$1 = componentsUtil$3.D_; -var addComponentRootToKeyedElements$1 = componentsUtil$3.ap_; -var normalizeComponentKey = componentsUtil$3.aD_; -var VElement$2 = vdom$1.b__; -var virtualizeElement = VElement$2.bN_; -var morphAttrs = VElement$2.bO_; -var eventDelegation$2 = eventDelegation$3; -var fragment = fragment$1; -var helpers = helpers$3; -var domData$2 = domData$6; -var keysByDOMNode = domData$2.ag_; -var componentByDOMNode = domData$2.E_; -var vElementByDOMNode = domData$2.ae_; -var detachedByDOMNode = domData$2.af_; -var insertBefore = helpers.aF_; -var insertAfter = helpers.aG_; -var nextSibling = helpers.bS_; -var firstChild = helpers._r_; -var removeChild = helpers.aH_; -var createFragmentNode$1 = fragment.ao_; -var beginFragmentNode = fragment.bZ_; -var ELEMENT_NODE$1 = 1; -var TEXT_NODE = 3; -var COMMENT_NODE = 8; -var COMPONENT_NODE = 2; -var FRAGMENT_NODE = 12; -var DOCTYPE_NODE = 10; -function isAutoKey(key) { - return key[0] !== "@"; -} -function compareNodeNames(fromEl, toEl) { - return fromEl.bH_ === toEl.bH_; +var copyProps$1 = copyProps$2; +function inherit$7(ctor, superCtor, shouldCopyProps) { + var oldProto = ctor.prototype; + var newProto = ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + writable: true, + configurable: true + } + }); + if (oldProto && shouldCopyProps !== false) { + copyProps$1(oldProto, newProto); + } + ctor.$super = superCtor; + ctor.prototype = newProto; + return ctor; } -function caseInsensitiveCompare(a, b) { - return a.toLowerCase() === b.toLowerCase(); +var inherit_1 = inherit$7; +inherit$7._inherit = inherit$7; +var updateManager$1 = {}; +var queue = []; +var msg = "" + Math.random(); +window.addEventListener("message", function(ev) { + if (ev.data === msg) { + var callbacks = queue; + queue = []; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](); + } + } +}); +var indexBrowser$2 = function(callback) { + if (queue.push(callback) === 1) { + window.postMessage(msg, "*"); + } +}; +var updatesScheduled = false; +var batchStack = []; +var unbatchedQueue = []; +var setImmediate$1 = indexBrowser$2; +function updateUnbatchedComponents() { + if (unbatchedQueue.length) { + try { + updateComponents(unbatchedQueue); + } finally { + updatesScheduled = false; + } + } } -function onNodeAdded(node, componentsContext) { - if (node.nodeType === ELEMENT_NODE$1) { - eventDelegation$2.ab_(node, componentsContext); +function scheduleUpdates() { + if (updatesScheduled) { + return; } + updatesScheduled = true; + setImmediate$1(updateUnbatchedComponents); } -function morphdom$2(fromNode, toNode, doc, componentsContext) { - var globalComponentsContext; - var isHydrate = false; - var keySequences = Object.create(null); - if (componentsContext) { - globalComponentsContext = componentsContext.e_; - isHydrate = globalComponentsContext.f_; +function updateComponents(queue2) { + for (var i = 0; i < queue2.length; i++) { + var component = queue2[i]; + component._A_(); } - function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { - var realNode = vNode.by_(doc, parentEl.namespaceURI); - insertBefore(realNode, referenceEl, parentEl); - if (vNode.bB_ === ELEMENT_NODE$1 || vNode.bB_ === FRAGMENT_NODE) { - if (key) { - keysByDOMNode.set(realNode, key); - (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; - } - if (vNode.bH_ !== "textarea") { - morphChildren(realNode, vNode, parentComponent); + queue2.length = 0; +} +function batchUpdate(func) { + var batch = { + az_: null + }; + batchStack.push(batch); + try { + func(); + } finally { + try { + if (batch.az_) { + updateComponents(batch.az_); } - onNodeAdded(realNode, componentsContext); + } finally { + batchStack.length--; } } - function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) { - var rootNode = component.K_ = insertBefore(createFragmentNode$1(), referenceNode, referenceNodeParentEl); - componentByDOMNode.set(rootNode, component); - if (key && ownerComponent) { - key = normalizeComponentKey(key, parentComponent.id); - addComponentRootToKeyedElements$1(ownerComponent.k_, key, rootNode, component.id); - keysByDOMNode.set(rootNode, key); +} +function queueComponentUpdate(component) { + var batchStackLen = batchStack.length; + if (batchStackLen) { + var batch = batchStack[batchStackLen - 1]; + if (batch.az_) { + batch.az_.push(component); + } else { + batch.az_ = [component]; } - morphComponent(component, vComponent); - } - function morphComponent(component, vComponent) { - morphChildren(component.K_, vComponent, component); + } else { + scheduleUpdates(); + unbatchedQueue.push(component); } - var detachedNodes = []; - function detachNode(node, parentNode, ownerComponent) { - if (node.nodeType === ELEMENT_NODE$1 || node.nodeType === FRAGMENT_NODE) { - detachedNodes.push(node); - detachedByDOMNode.set(node, ownerComponent || true); +} +updateManager$1._i_ = queueComponentUpdate; +updateManager$1._o_ = batchUpdate; +function syncBooleanAttrProp(fromEl, toEl, name) { + if (fromEl[name] !== toEl[name]) { + fromEl[name] = toEl[name]; + if (fromEl[name]) { + fromEl.setAttribute(name, ""); } else { - destroyNodeRecursive$1(node); - removeChild(node); + fromEl.removeAttribute(name, ""); } } - function destroyComponent(component) { - component.destroy(); +} +function forEachOption(el, fn, i) { + var curChild = el._r_; + while (curChild) { + if (curChild.bG_ === "option") { + fn(curChild, ++i); + } else { + i = forEachOption(curChild, fn, i); + } + curChild = curChild.bR_; } - function morphChildren(fromNode2, toNode2, parentComponent) { - var curFromNodeChild = firstChild(fromNode2); - var curToNodeChild = toNode2._r_; - var curToNodeKey; - var curFromNodeKey; - var curToNodeType; - var fromNextSibling; - var toNextSibling; - var matchingFromEl; - var matchingFromComponent; - var curVFromNodeChild; - var fromComponent; - outer: - while (curToNodeChild) { - toNextSibling = curToNodeChild.bS_; - curToNodeType = curToNodeChild.bB_; - curToNodeKey = curToNodeChild.bA_; - if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { - curFromNodeChild = nextSibling(curFromNodeChild); + return i; +} +function SpecialElHandlers() { +} +SpecialElHandlers.prototype = { + option: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "selected"); + }, + button: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "disabled"); + }, + input: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "checked"); + syncBooleanAttrProp(fromEl, toEl, "disabled"); + if (fromEl.value != toEl.q_) { + fromEl.value = toEl.q_; + } + if (fromEl.hasAttribute("value") && !toEl.bK_("value")) { + fromEl.removeAttribute("value"); + } + }, + textarea: function(fromEl, toEl) { + if (toEl.bU_) { + return; + } + var newValue = toEl.q_; + if (fromEl.value != newValue) { + fromEl.value = newValue; + } + var firstChild2 = fromEl.firstChild; + if (firstChild2) { + var oldValue = firstChild2.nodeValue; + if (oldValue == newValue || !newValue && oldValue == fromEl.placeholder) { + return; + } + firstChild2.nodeValue = newValue; + } + }, + select: function(fromEl, toEl) { + if (!toEl.bK_("multiple")) { + var selected = 0; + forEachOption(toEl, function(option, i) { + if (option.bK_("selected")) { + selected = i; } - var ownerComponent = curToNodeChild.aA_ || parentComponent; - var referenceComponent; - if (curToNodeType === COMPONENT_NODE) { - var component = curToNodeChild.h_; - if ((matchingFromComponent = existingComponentLookup[component.id]) === void 0) { - if (isHydrate === true) { - var rootNode = beginFragmentNode(curFromNodeChild, fromNode2); - component.K_ = rootNode; - componentByDOMNode.set(rootNode, component); - if (ownerComponent && curToNodeKey) { - curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id); - addComponentRootToKeyedElements$1(ownerComponent.k_, curToNodeKey, rootNode, component.id); - keysByDOMNode.set(rootNode, curToNodeKey); - } - morphComponent(component, curToNodeChild); - curFromNodeChild = nextSibling(rootNode); - } else { - insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode2, component, curToNodeKey, ownerComponent, parentComponent); - } - } else { - if (matchingFromComponent.K_ !== curFromNodeChild) { - if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext._U_[fromComponent.id] === void 0) { - curFromNodeChild = nextSibling(fromComponent.K_); - destroyComponent(fromComponent); - continue; - } - insertBefore(matchingFromComponent.K_, curFromNodeChild, fromNode2); - } else { - curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild); - } - if (!curToNodeChild.n_) { - morphComponent(component, curToNodeChild); - } - } - curToNodeChild = toNextSibling; - continue; - } else if (curToNodeKey) { - curVFromNodeChild = void 0; - curFromNodeKey = void 0; - var curToNodeKeyOriginal = curToNodeKey; - if (isAutoKey(curToNodeKey)) { - if (ownerComponent !== parentComponent) { - curToNodeKey += ":" + ownerComponent.id; - } - referenceComponent = parentComponent; - } else { - referenceComponent = ownerComponent; - } - curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence$1()))._L_(curToNodeKey); - if (curFromNodeChild) { - curFromNodeKey = keysByDOMNode.get(curFromNodeChild); - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - fromNextSibling = nextSibling(curFromNodeChild); - } - if (curFromNodeKey === curToNodeKey) { - if (!curToNodeChild.n_) { - if (compareNodeNames(curToNodeChild, curVFromNodeChild)) { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } else { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - } - } - } else { - matchingFromEl = referenceComponent.k_[curToNodeKey]; - if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { - if (isHydrate === true && curFromNodeChild) { - if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bH_ || ""))) { - curVFromNodeChild = virtualizeElement(curFromNodeChild); - curVFromNodeChild.bH_ = curToNodeChild.bH_; - keysByDOMNode.set(curFromNodeChild, curToNodeKey); - referenceComponent.k_[curToNodeKey] = curFromNodeChild; - if (curToNodeChild.n_) { - vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild); - } else { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue; - } else if (curToNodeChild.bB_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { - var content = curFromNodeChild.nodeValue; - if (content == "F#" + curToNodeKeyOriginal) { - var endNode = curFromNodeChild.nextSibling; - var depth = 0; - var nodeValue; - while (true) { - if (endNode.nodeType === COMMENT_NODE) { - nodeValue = endNode.nodeValue; - if (nodeValue === "F/") { - if (depth === 0) { - break; - } else { - depth--; - } - } else if (nodeValue.indexOf("F#") === 0) { - depth++; - } - } - endNode = endNode.nextSibling; - } - var fragment2 = createFragmentNode$1(curFromNodeChild, endNode.nextSibling, fromNode2); - keysByDOMNode.set(fragment2, curToNodeKey); - vElementByDOMNode.set(fragment2, curToNodeChild); - referenceComponent.k_[curToNodeKey] = fragment2; - removeChild(curFromNodeChild); - removeChild(endNode); - if (!curToNodeChild.n_) { - morphChildren(fragment2, curToNodeChild, parentComponent); - } - curToNodeChild = toNextSibling; - curFromNodeChild = fragment2.nextSibling; - continue; - } - } - } - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - fromNextSibling = curFromNodeChild; - } else { - if (detachedByDOMNode.get(matchingFromEl) !== void 0) { - detachedByDOMNode.set(matchingFromEl, void 0); - } - if (!curToNodeChild.n_) { - curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); - if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { - if (fromNextSibling === matchingFromEl) { - if (toNextSibling && toNextSibling.bA_ === curFromNodeKey) { - fromNextSibling = curFromNodeChild; - insertBefore(matchingFromEl, curFromNodeChild, fromNode2); - } else { - fromNextSibling = nextSibling(fromNextSibling); - if (curFromNodeChild) { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - } - } - } else { - insertAfter(matchingFromEl, curFromNodeChild, fromNode2); - if (curFromNodeChild) { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - } - } - morphEl(matchingFromEl, curVFromNodeChild, curToNodeChild, parentComponent); - } else { - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - detachNode(matchingFromEl, fromNode2, ownerComponent); - } - } else { - insertBefore(matchingFromEl, curFromNodeChild, fromNode2); - fromNextSibling = curFromNodeChild; - } - } - } - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue; - } - while (curFromNodeChild) { - fromNextSibling = nextSibling(curFromNodeChild); - if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { - curFromNodeChild = fromNextSibling; - if (!globalComponentsContext._U_[fromComponent.id]) { - destroyComponent(fromComponent); - } - continue; - } - var curFromNodeType = curFromNodeChild.nodeType; - var isCompatible = void 0; - if (curFromNodeType === curToNodeType) { - if (curFromNodeType === ELEMENT_NODE$1) { - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - if (curVFromNodeChild === void 0) { - if (isHydrate === true) { - curVFromNodeChild = virtualizeElement(curFromNodeChild); - if (caseInsensitiveCompare(curVFromNodeChild.bH_, curToNodeChild.bH_)) { - curVFromNodeChild.bH_ = curToNodeChild.bH_; - } - } else { - curFromNodeChild = fromNextSibling; - continue; - } - } else if (curFromNodeKey = curVFromNodeChild.bA_) { - isCompatible = false; - } - isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; - if (isCompatible === true) { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } - } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { - isCompatible = true; - if (curFromNodeChild.nodeValue !== curToNodeChild.bU_) { - curFromNodeChild.nodeValue = curToNodeChild.bU_; - } - } - } - if (isCompatible === true) { - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue outer; - } - detachNode(curFromNodeChild, fromNode2, ownerComponent); - curFromNodeChild = fromNextSibling; - } - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - } - if (fromNode2.bY_) { - fromNode2.bY_(curFromNodeChild); - } else { - var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; - while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { - fromNextSibling = nextSibling(curFromNodeChild); - if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { - curFromNodeChild = fromNextSibling; - if (!globalComponentsContext._U_[fromComponent.id]) { - destroyComponent(fromComponent); - } - continue; - } - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - curFromNodeKey = keysByDOMNode.get(fromNode2); - if (!curFromNodeKey || isAutoKey(curFromNodeKey)) { - referenceComponent = parentComponent; - } else { - referenceComponent = curVFromNodeChild && curVFromNodeChild.aA_; - } - detachNode(curFromNodeChild, fromNode2, referenceComponent); - curFromNodeChild = fromNextSibling; - } - } - } - function morphEl(fromEl, vFromEl, toEl, parentComponent) { - var nodeName = toEl.bH_; - var constId = toEl.bJ_; - if (constId !== void 0 && vFromEl.bJ_ === constId) { - return; - } - morphAttrs(fromEl, vFromEl, toEl); - if (toEl.m_) { - return; - } - if (nodeName !== "textarea") { - morphChildren(fromEl, toEl, parentComponent); - } - var specialElHandler = specialElHandlers[nodeName]; - if (specialElHandler !== void 0) { - specialElHandler(fromEl, toEl); - } - } - morphChildren(fromNode, toNode, toNode.h_); - detachedNodes.forEach(function(node) { - var detachedFromComponent = detachedByDOMNode.get(node); - if (detachedFromComponent !== void 0) { - detachedByDOMNode.set(node, void 0); - var componentToDestroy = componentByDOMNode.get(node); - if (componentToDestroy) { - componentToDestroy.destroy(); - } else if (node.parentNode) { - destroyNodeRecursive$1(node, detachedFromComponent !== true && detachedFromComponent); - if (eventDelegation$2.___(node) != false) { - removeChild(node); - } - } - } - }); -} -var morphdom_1 = morphdom$2; -var classValue = function classHelper(arg) { - switch (typeof arg) { - case "string": - return arg || null; - case "object": - var result = ""; - var sep = ""; - if (Array.isArray(arg)) { - for (var i = 0, len = arg.length; i < len; i++) { - var value = classHelper(arg[i]); - if (value) { - result += sep + value; - sep = " "; - } - } - } else { - for (var key in arg) { - if (arg[key]) { - result += sep + key; - sep = " "; - } - } - } - return result || null; - default: - return null; - } -}; -var _changeCase = {}; -var camelToDashLookup = Object.create(null); -var dashToCamelLookup = Object.create(null); -_changeCase.aI_ = function camelToDashCase(name) { - var nameDashed = camelToDashLookup[name]; - if (!nameDashed) { - nameDashed = camelToDashLookup[name] = name.replace(/([A-Z])/g, "-$1").toLowerCase(); - if (nameDashed !== name) { - dashToCamelLookup[nameDashed] = name; - } - } - return nameDashed; -}; -_changeCase.aJ_ = function dashToCamelCase(name) { - var nameCamel = dashToCamelLookup[name]; - if (!nameCamel) { - nameCamel = dashToCamelLookup[name] = name.replace(/-([a-z])/g, matchToUpperCase); - if (nameCamel !== name) { - camelToDashLookup[nameCamel] = name; - } - } - return nameCamel; -}; -function matchToUpperCase(_, char) { - return char.toUpperCase(); -} -var changeCase = _changeCase; -var styleValue = function styleHelper(style) { - if (!style) { - return null; - } - var type = typeof style; - if (type !== "string") { - var styles = ""; - if (Array.isArray(style)) { - for (var i = 0, len = style.length; i < len; i++) { - var next = styleHelper(style[i]); - if (next) - styles += next + (next[next.length - 1] !== ";" ? ";" : ""); - } - } else if (type === "object") { - for (var name in style) { - var value = style[name]; - if (value != null && value !== false) { - if (typeof value === "number" && value) { - value += "px"; - } - styles += changeCase.aI_(name) + ":" + value + ";"; - } - } - } - return styles || null; - } - return style; -}; -var classHelper2 = classValue; -var styleHelper2 = styleValue; -var attrs = function(attributes) { - if (attributes != null) { - var newAttributes = {}; - for (var attrName in attributes) { - var val = attributes[attrName]; - if (attrName === "renderBody") { - continue; - } - if (attrName === "class") { - val = classHelper2(val); - } else if (attrName === "style") { - val = styleHelper2(val); - } - newAttributes[attrName] = val; - } - return newAttributes; - } - return attributes; -}; -var EventEmitter$1 = src; -var vdom = vdom$1; -var VElement$1 = vdom.b__; -var VDocumentFragment = vdom.ba_; -var VText = vdom.bb_; -var VComponent = vdom.bc_; -var VFragment = vdom.bd_; -var virtualizeHTML = vdom.be_; -var RenderResult$1 = RenderResult_1; -var defaultDocument$1 = vdom.bf_; -var morphdom$1 = morphdom_1; -var attrsHelper = attrs; -var EVENT_UPDATE = "update"; -var EVENT_FINISH = "finish"; -function State$1(tree) { - this.bg_ = new EventEmitter$1(); - this.bh_ = tree; - this.bi_ = false; -} -function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { - if (!parentNode) { - parentNode = new VDocumentFragment(); - } - var state; - if (parentOut) { - state = parentOut.J_; - } else { - state = new State$1(parentNode); - } - this.bj_ = 1; - this.bk_ = 0; - this.bl_ = null; - this.bm_ = parentOut; - this.data = {}; - this.J_ = state; - this.l_ = parentNode; - this.global = globalData || {}; - this.bn_ = [parentNode]; - this.bo_ = false; - this.bp_ = void 0; - this.b_ = null; - this.g_ = null; - this.i_ = null; - this.ax_ = null; -} -var proto = AsyncVDOMBuilder$1.prototype = { - aP_: true, - X_: defaultDocument$1, - bc: function(component, key, ownerComponent) { - var vComponent = new VComponent(component, key, ownerComponent); - return this.bq_(vComponent, 0, true); - }, - ay_: function(component, key, ownerComponent) { - var vComponent = new VComponent(component, key, ownerComponent, true); - this.bq_(vComponent, 0); - }, - bq_: function(child, childCount, pushToStack) { - this.l_.br_(child); - if (pushToStack === true) { - this.bn_.push(child); - this.l_ = child; - } - return childCount === 0 ? this : child; - }, - element: function(tagName, attrs2, key, component, childCount, flags, props) { - var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - return this.bq_(element, childCount); - }, - aM_: function(tagName, attrs2, key, componentDef, props) { - return this.element(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); - }, - n: function(node, component) { - var clone = node.bs_(); - this.node(clone); - clone.aA_ = component; - return this; - }, - node: function(node) { - this.l_.br_(node); - return this; - }, - text: function(text, ownerComponent) { - var type = typeof text; - if (type != "string") { - if (text == null) { - return; - } else if (type === "object") { - if (text.toHTML) { - return this.h(text.toHTML(), ownerComponent); - } - } - text = text.toString(); - } - this.l_.br_(new VText(text, ownerComponent)); - return this; - }, - html: function(html, ownerComponent) { - if (html != null) { - var vdomNode = virtualizeHTML(html, this.X_ || document, ownerComponent); - this.node(vdomNode); - } - return this; - }, - beginElement: function(tagName, attrs2, key, component, childCount, flags, props) { - var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - this.bq_(element, childCount, true); - return this; - }, - aK_: function(tagName, attrs2, key, componentDef, props) { - return this.beginElement(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); - }, - bf: function(key, component, preserve) { - var fragment2 = new VFragment(key, component, preserve); - this.bq_(fragment2, null, true); - return this; - }, - ef: function() { - this.endElement(); - }, - endElement: function() { - var stack = this.bn_; - stack.pop(); - this.l_ = stack[stack.length - 1]; - }, - end: function() { - this.l_ = void 0; - var remaining = --this.bj_; - var parentOut = this.bm_; - if (remaining === 0) { - if (parentOut) { - parentOut.bt_(); - } else { - this.bu_(); + }, -1); + if (fromEl.selectedIndex !== selected) { + fromEl.selectedIndex = selected; } - } else if (remaining - this.bk_ === 0) { - this.bv_(); } - return this; + } +}; +var specialElHandlers$1 = new SpecialElHandlers(); +var vdom$1 = {}; +function VNode$6() { +} +VNode$6.prototype = { + by_: function(finalChildCount, ownerComponent) { + this.bO_ = finalChildCount; + this.bP_ = 0; + this.bE_ = null; + this.bQ_ = null; + this.bB_ = null; + this.bC_ = null; + this.aA_ = ownerComponent; }, - bt_: function() { - var remaining = --this.bj_; - if (remaining === 0) { - var parentOut = this.bm_; - if (parentOut) { - parentOut.bt_(); - } else { - this.bu_(); - } - } else if (remaining - this.bk_ === 0) { - this.bv_(); + get _r_() { + var firstChild2 = this.bE_; + if (firstChild2 && firstChild2.bD_) { + var nestedFirstChild = firstChild2._r_; + return nestedFirstChild || firstChild2.bR_; } + return firstChild2; }, - bu_: function() { - var state = this.J_; - state.bi_ = true; - state.bg_.emit(EVENT_FINISH, this.aQ_()); - }, - bv_: function() { - var lastArray = this._last; - var i = 0; - function next() { - if (i === lastArray.length) { - return; + get bR_() { + var nextSibling2 = this.bC_; + if (nextSibling2) { + if (nextSibling2.bD_) { + var firstChild2 = nextSibling2._r_; + return firstChild2 || nextSibling2.bR_; } - var lastCallback = lastArray[i++]; - lastCallback(next); - if (!lastCallback.length) { - next(); + } else { + var parentNode = this.bB_; + if (parentNode && parentNode.bD_) { + return parentNode.bR_; } } - next(); - }, - error: function(e) { - try { - this.emit("error", e); - } finally { - this.end(); - } - return this; + return nextSibling2; }, - beginAsync: function(options) { - if (this.bo_) { - throw Error("Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."); - } - var state = this.J_; - if (options) { - if (options.last) { - this.bk_++; + bq_: function(child) { + this.bP_++; + if (this.bG_ === "textarea") { + if (child.bS_) { + var childValue = child.bT_; + this.bH_ = (this.bH_ || "") + childValue; + } else if (child.n_ || child.m_) { + this.bU_ = true; + } else { + throw TypeError(); } - } - this.bj_++; - var documentFragment = this.l_.bw_(); - var asyncOut = new AsyncVDOMBuilder$1(this.global, documentFragment, this); - state.bg_.emit("beginAsync", { - out: asyncOut, - parentOut: this - }); - return asyncOut; - }, - createOut: function() { - return new AsyncVDOMBuilder$1(this.global); - }, - flush: function() { - var events = this.J_.bg_; - if (events.listenerCount(EVENT_UPDATE)) { - events.emit(EVENT_UPDATE, new RenderResult$1(this)); - } - }, - B_: function() { - return this.J_.bh_; - }, - aQ_: function() { - return this.bx_ || (this.bx_ = new RenderResult$1(this)); - }, - on: function(event, callback) { - var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { - callback(this.aQ_()); - } else if (event === "last") { - this.onLast(callback); } else { - state.bg_.on(event, callback); + var lastChild = this.bQ_; + child.bB_ = this; + if (lastChild) { + lastChild.bC_ = child; + } else { + this.bE_ = child; + } + this.bQ_ = child; } - return this; + return child; }, - once: function(event, callback) { - var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { - callback(this.aQ_()); - } else if (event === "last") { - this.onLast(callback); + bJ_: function finishChild() { + if (this.bP_ === this.bO_ && this.bB_) { + return this.bB_.bJ_(); } else { - state.bg_.once(event, callback); - } - return this; - }, - emit: function(type, arg) { - var events = this.J_.bg_; - switch (arguments.length) { - case 1: - events.emit(type); - break; - case 2: - events.emit(type, arg); - break; - default: - events.emit.apply(events, arguments); - break; + return this; } - return this; - }, - removeListener: function() { - var events = this.J_.bg_; - events.removeListener.apply(events, arguments); - return this; - }, - sync: function() { - this.bo_ = true; - }, - isSync: function() { - return this.bo_; + } +}; +var VNode_1 = VNode$6; +var VNode$5 = VNode_1; +var inherit$6 = inherit_1; +var extend$1 = extend$5; +function VDocumentFragmentClone(other) { + extend$1(this, other); + this.bB_ = null; + this.bC_ = null; +} +function VDocumentFragment$2(out) { + this.by_(null); + this.y_ = out; +} +VDocumentFragment$2.prototype = { + bA_: 11, + bD_: true, + br_: function() { + return new VDocumentFragmentClone(this); }, - onLast: function(callback) { - var lastArray = this._last; - if (lastArray === void 0) { - this._last = [callback]; - } else { - lastArray.push(callback); + bx_: function(host) { + return (host.ownerDocument || host).createDocumentFragment(); + } +}; +inherit$6(VDocumentFragment$2, VNode$5); +VDocumentFragmentClone.prototype = VDocumentFragment$2.prototype; +var VDocumentFragment_1 = VDocumentFragment$2; +var domData$4 = domData$6; +var componentsUtil$4 = indexBrowser$4; +var vElementByDOMNode$2 = domData$4.ae_; +var VNode$4 = VNode_1; +var inherit$5 = inherit_1; +var ATTR_XLINK_HREF = "xlink:href"; +var xmlnsRegExp = /^xmlns(:|$)/; +var hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var NS_XLINK = "http://www.w3.org/1999/xlink"; +var NS_HTML = "http://www.w3.org/1999/xhtml"; +var NS_MATH = "http://www.w3.org/1998/Math/MathML"; +var NS_SVG = "http://www.w3.org/2000/svg"; +var DEFAULT_NS = { + svg: NS_SVG, + math: NS_MATH +}; +var FLAG_SIMPLE_ATTRS = 1; +var FLAG_CUSTOM_ELEMENT = 2; +var FLAG_SPREAD_ATTRS = 4; +var defineProperty = Object.defineProperty; +var ATTR_HREF = "href"; +var EMPTY_OBJECT = Object.freeze({}); +function convertAttrValue(type, value) { + if (value === true) { + return ""; + } else if (type == "object") { + if (value instanceof RegExp) { + return value.source; } - return this; - }, - A_: function(doc) { - var node = this.bp_; - if (!node) { - var vdomTree = this.B_(); - doc = doc || this.X_ || document; - this.bp_ = node = vdomTree.by_(doc, null); - morphdom$1(node, vdomTree, doc, this.b_); + } + return value + ""; +} +function assign(a, b) { + for (var key in b) { + if (hasOwnProperty$1.call(b, key)) { + a[key] = b[key]; } - return node; - }, - toString: function(doc) { - var docFragment = this.A_(doc); - var html = ""; - var child = docFragment.firstChild; - while (child) { - var nextSibling2 = child.nextSibling; - if (child.nodeType != 1) { - var container = docFragment.ownerDocument.createElement("div"); - container.appendChild(child.cloneNode()); - html += container.innerHTML; - } else { - html += child.outerHTML; - } - child = nextSibling2; + } +} +function setAttribute(el, namespaceURI, name, value) { + if (namespaceURI === null) { + el.setAttribute(name, value); + } else { + el.setAttributeNS(namespaceURI, name, value); + } +} +function removeAttribute(el, namespaceURI, name) { + if (namespaceURI === null) { + el.removeAttribute(name); + } else { + el.removeAttributeNS(namespaceURI, name); + } +} +function VElementClone(other) { + this.bE_ = other.bE_; + this.bB_ = null; + this.bC_ = null; + this.bz_ = other.bz_; + this.bF_ = other.bF_; + this.aB_ = other.aB_; + this.bG_ = other.bG_; + this._I_ = other._I_; + this.bH_ = other.bH_; + this.bI_ = other.bI_; +} +function VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props) { + this.by_(childCount, ownerComponent); + var constId; + if (props) { + constId = props.i; + } + this.bz_ = key; + this._I_ = flags || 0; + this.bF_ = attrs2 || EMPTY_OBJECT; + this.aB_ = props || EMPTY_OBJECT; + this.bG_ = tagName; + this.bH_ = null; + this.bI_ = constId; + this.n_ = false; + this.m_ = false; +} +VElement$4.prototype = { + bA_: 1, + br_: function() { + return new VElementClone(this); + }, + e: function(tagName, attrs2, key, ownerComponent, childCount, flags, props) { + var child = this.bq_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); + if (childCount === 0) { + return this.bJ_(); + } else { + return child; } - return html; }, - then: function(fn, fnErr) { - var out = this; - var promise2 = new Promise(function(resolve2, reject) { - out.on("error", reject).on(EVENT_FINISH, function(result) { - resolve2(result); - }); - }); - return Promise.resolve(promise2).then(fn, fnErr); + n: function(node, ownerComponent) { + node = node.br_(); + node.aA_ = ownerComponent; + this.bq_(node); + return this.bJ_(); }, - catch: function(fnErr) { - return this.then(void 0, fnErr); + bx_: function(host, parentNamespaceURI) { + var tagName = this.bG_; + var attributes = this.bF_; + var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; + var flags = this._I_; + var el = (host.ownerDocument || host).createElementNS(namespaceURI, tagName); + if (flags & FLAG_CUSTOM_ELEMENT) { + assign(el, attributes); + } else { + for (var attrName in attributes) { + var attrValue = attributes[attrName]; + if (attrValue !== false && attrValue != null) { + var type = typeof attrValue; + if (type !== "string") { + attrValue = convertAttrValue(type, attrValue); + } + if (attrName == ATTR_XLINK_HREF) { + setAttribute(el, NS_XLINK, ATTR_HREF, attrValue); + } else { + el.setAttribute(attrName, attrValue); + } + } + } + if (tagName === "textarea") { + el.defaultValue = el.value = this.q_; + } + } + vElementByDOMNode$2.set(el, this); + return el; }, - isVDOM: true, - c: function(componentDef, key, customEvents) { - this.g_ = componentDef; - this.i_ = key; - this.ax_ = customEvents; + bK_: function(name) { + var value = this.bF_[name]; + return value != null && value !== false; } }; -proto.e = proto.element; -proto.be = proto.beginElement; -proto.ee = proto.aL_ = proto.endElement; -proto.t = proto.text; -proto.h = proto.w = proto.write = proto.html; -var AsyncVDOMBuilder_1 = AsyncVDOMBuilder$1; -var actualCreateOut; -function setCreateOut(createOutFunc) { - actualCreateOut = createOutFunc; -} -function createOut(globalData) { - return actualCreateOut(globalData); -} -createOut.aE_ = setCreateOut; -var createOut_1 = createOut; -var queue = []; -var msg = "" + Math.random(); -window.addEventListener("message", function(ev) { - if (ev.data === msg) { - var callbacks = queue; - queue = []; - for (var i = 0; i < callbacks.length; i++) { - callbacks[i](); +inherit$5(VElement$4, VNode$4); +var proto$1 = VElementClone.prototype = VElement$4.prototype; +["checked", "selected", "disabled"].forEach(function(name) { + defineProperty(proto$1, name, { + get: function() { + var value = this.bF_[name]; + return value !== false && value != null; } - } + }); }); -var indexBrowser$4 = function(callback) { - if (queue.push(callback) === 1) { - window.postMessage(msg, "*"); +defineProperty(proto$1, "q_", { + get: function() { + var value = this.bH_; + if (value == null) { + value = this.bF_.value; + } + return value != null && value !== false ? value + "" : this.bF_.type === "checkbox" || this.bF_.type === "radio" ? "on" : ""; } +}); +VElement$4.bL_ = function(attrs2) { + return attrs2; }; -var defaultCreateOut$1 = createOut_1; -var setImmediate$1 = indexBrowser$4; -var extend$2 = extend$5; -function safeRender(renderFunc, finalData, finalOut, shouldEnd) { - try { - renderFunc(finalData, finalOut); - if (shouldEnd) { - finalOut.end(); +function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { + var attributes = node.attributes; + var attrCount = attributes.length; + var attrs2 = null; + var props = null; + if (attrCount) { + attrs2 = {}; + for (var i = 0; i < attrCount; i++) { + var attr = attributes[i]; + var attrName = attr.name; + if (!xmlnsRegExp.test(attrName)) { + if (attrName === "data-marko") { + props = componentsUtil$4.am_(node); + } else if (attr.namespaceURI === NS_XLINK) { + attrs2[ATTR_XLINK_HREF] = attr.value; + } else { + attrs2[attrName] = attr.value; + } + } } - } catch (err) { - var actualEnd = finalOut.end; - finalOut.end = function() { - }; - setImmediate$1(function() { - finalOut.end = actualEnd; - finalOut.error(err); - }); } - return finalOut; + var tagName = node.nodeName; + if (node.namespaceURI === NS_HTML) { + tagName = tagName.toLowerCase(); + } + var vdomEl = new VElement$4(tagName, attrs2, null, ownerComponent, 0, 0, props); + if (vdomEl.bG_ === "textarea") { + vdomEl.bH_ = node.value; + } else if (virtualizeChildNodes2) { + virtualizeChildNodes2(node, vdomEl, ownerComponent); + } + return vdomEl; } -var renderable = function(target, renderer2) { - var renderFunc = renderer2 && (renderer2.renderer || renderer2.render || renderer2); - var createOut3 = target.createOut || renderer2.createOut || defaultCreateOut$1; - return extend$2(target, { - createOut: createOut3, - renderToString: function(data, callback) { - var localData = data || {}; - var render = renderFunc || this._; - var globalData = localData.$global; - var out = createOut3(globalData); - out.global.template = this; - if (globalData) { - localData.$global = void 0; - } - if (callback) { - out.on("finish", function() { - callback(null, out.toString(), out); - }).once("error", callback); - return safeRender(render, localData, out, true); - } else { - out.sync(); - render(localData, out); - return out.toString(); - } - }, - renderSync: function(data) { - var localData = data || {}; - var render = renderFunc || this._; - var globalData = localData.$global; - var out = createOut3(globalData); - out.sync(); - out.global.template = this; - if (globalData) { - localData.$global = void 0; +VElement$4.bM_ = virtualizeElement$1; +VElement$4.bN_ = function(fromEl, vFromEl, toEl) { + var removePreservedAttributes = VElement$4.bL_; + var fromFlags = vFromEl._I_; + var toFlags = toEl._I_; + vElementByDOMNode$2.set(fromEl, toEl); + var attrs2 = toEl.bF_; + var props = toEl.aB_; + if (toFlags & FLAG_CUSTOM_ELEMENT) { + return assign(fromEl, attrs2); + } + var attrName; + var oldAttrs = vFromEl.bF_; + if (oldAttrs) { + if (oldAttrs === attrs2) { + return; + } else { + oldAttrs = removePreservedAttributes(oldAttrs, props); + } + } + var attrValue; + if (toFlags & FLAG_SIMPLE_ATTRS && fromFlags & FLAG_SIMPLE_ATTRS) { + if (oldAttrs["class"] !== (attrValue = attrs2["class"])) { + fromEl.className = attrValue; + } + if (oldAttrs.id !== (attrValue = attrs2.id)) { + fromEl.id = attrValue; + } + if (oldAttrs.style !== (attrValue = attrs2.style)) { + fromEl.cssText = attrValue; + } + return; + } + attrs2 = removePreservedAttributes(attrs2, props, true); + var namespaceURI; + for (attrName in attrs2) { + attrValue = attrs2[attrName]; + namespaceURI = null; + if (attrName === ATTR_XLINK_HREF) { + namespaceURI = NS_XLINK; + attrName = ATTR_HREF; + } + if (attrValue == null || attrValue === false) { + removeAttribute(fromEl, namespaceURI, attrName); + } else if (oldAttrs[attrName] !== attrValue) { + var type = typeof attrValue; + if (type !== "string") { + attrValue = convertAttrValue(type, attrValue); } - render(localData, out); - return out.aQ_(); - }, - render: function(data, out) { - var callback; - var finalOut; - var finalData; - var globalData; - var render = renderFunc || this._; - var shouldBuffer = this.aS_; - var shouldEnd = true; - if (data) { - finalData = data; - if (globalData = data.$global) { - finalData.$global = void 0; + setAttribute(fromEl, namespaceURI, attrName, attrValue); + } + } + if (toEl.bz_ === null || fromFlags & FLAG_SPREAD_ATTRS) { + for (attrName in oldAttrs) { + if (!(attrName in attrs2)) { + if (attrName === ATTR_XLINK_HREF) { + fromEl.removeAttributeNS(ATTR_XLINK_HREF, ATTR_HREF); + } else { + fromEl.removeAttribute(attrName); } - } else { - finalData = {}; - } - if (out && out.aP_) { - finalOut = out; - shouldEnd = false; - extend$2(out.global, globalData); - } else if (typeof out == "function") { - finalOut = createOut3(globalData); - callback = out; - } else { - finalOut = createOut3(globalData, out, void 0, shouldBuffer); } - if (callback) { - finalOut.on("finish", function() { - callback(null, finalOut.aQ_()); - }).once("error", callback); - } - globalData = finalOut.global; - globalData.template = globalData.template || this; - return safeRender(render, finalData, finalOut, shouldEnd); } - }); + } }; -var t = function createTemplate(typeName) { - return new Template(typeName); +var VElement_1 = VElement$4; +var VNode$3 = VNode_1; +var inherit$4 = inherit_1; +function VText$2(value, ownerComponent) { + this.by_(-1, ownerComponent); + this.bT_ = value; +} +VText$2.prototype = { + bS_: true, + bA_: 3, + bx_: function(host) { + return (host.ownerDocument || host).createTextNode(this.bT_); + }, + br_: function() { + return new VText$2(this.bT_); + } }; -function Template(typeName) { - this.aZ_ = typeName; +inherit$4(VText$2, VNode$3); +var VText_1 = VText$2; +var VNode$2 = VNode_1; +var inherit$3 = inherit_1; +function VComponent$2(component, key, ownerComponent, preserve) { + this.by_(null, ownerComponent); + this.bz_ = key; + this.h_ = component; + this.n_ = preserve; } -var AsyncVDOMBuilder = AsyncVDOMBuilder_1; -createOut_1.aE_(Template.prototype.createOut = function createOut2(globalData, parent, parentOut) { - return new AsyncVDOMBuilder(globalData, parent, parentOut); -}); -renderable(Template.prototype); -var VElement = vdom$1.b__; -var vElement = function(tagName, attrs2, key, component, childCount, flags, props) { - return new VElement(tagName, attrs2, key, component, childCount, flags, props); +VComponent$2.prototype = { + bA_: 2 }; -var ComponentsContext$1 = { exports: {} }; -var nextComponentIdProvider = indexBrowser$5._T_; -function GlobalComponentsContext(out) { - this._U_ = {}; - this._q_ = void 0; - this._M_ = nextComponentIdProvider(out); +inherit$3(VComponent$2, VNode$2); +var VComponent_1 = VComponent$2; +var domData$3 = domData$6; +var keysByDOMNode$1 = domData$3.ag_; +var vElementByDOMNode$1 = domData$3.ae_; +var VNode$1 = VNode_1; +var inherit$2 = inherit_1; +var createFragmentNode$2 = fragment$1.ao_; +function VFragment$2(key, ownerComponent, preserve) { + this.by_(null, ownerComponent); + this.bz_ = key; + this.n_ = preserve; } -var GlobalComponentsContext_1 = GlobalComponentsContext; -(function(module, exports) { - var GlobalComponentsContext2 = GlobalComponentsContext_1; - function ComponentsContext2(out, parentComponentsContext) { - var globalComponentsContext; - var componentDef; - if (parentComponentsContext) { - globalComponentsContext = parentComponentsContext.e_; - componentDef = parentComponentsContext.j_; - var nestedContextsForParent; - if (!(nestedContextsForParent = parentComponentsContext._Q_)) { - nestedContextsForParent = parentComponentsContext._Q_ = []; - } - nestedContextsForParent.push(this); - } else { - globalComponentsContext = out.global.b_; - if (globalComponentsContext === void 0) { - out.global.b_ = globalComponentsContext = new GlobalComponentsContext2(out); - } - } - this.e_ = globalComponentsContext; - this.b_ = []; - this.y_ = out; - this.j_ = componentDef; - this._Q_ = void 0; - this.p_ = parentComponentsContext && parentComponentsContext.p_; +VFragment$2.prototype = { + bA_: 12, + bx_: function() { + var fragment2 = createFragmentNode$2(); + keysByDOMNode$1.set(fragment2, this.bz_); + vElementByDOMNode$1.set(fragment2, this); + return fragment2; } - ComponentsContext2.prototype = { - z_: function(doc) { - var componentDefs = this.b_; - ComponentsContext2._R_(componentDefs, doc); - this.y_.emit("_S_"); - this.y_.global.b_ = void 0; - return componentDefs; - } +}; +inherit$2(VFragment$2, VNode$1); +var VFragment_1 = VFragment$2; +var parseHTML$1 = function(html) { + var container = document.createElement("template"); + parseHTML$1 = container.content ? function(html2) { + container.innerHTML = html2; + return container.content; + } : function(html2) { + container.innerHTML = html2; + return container; }; - function getComponentsContext2(out) { - return out.b_ || (out.b_ = new ComponentsContext2(out)); + return parseHTML$1(html); +}; +var parseHtml = function(html) { + return parseHTML$1(html).firstChild; +}; +var VNode = VNode_1; +var VDocumentFragment$1 = VDocumentFragment_1; +var VElement$3 = VElement_1; +var VText$1 = VText_1; +var VComponent$1 = VComponent_1; +var VFragment$1 = VFragment_1; +var parseHTML = parseHtml; +var specialHtmlRegexp = /[&<]/; +function virtualizeChildNodes(node, vdomParent, ownerComponent) { + var curChild = node.firstChild; + while (curChild) { + vdomParent.bq_(virtualize(curChild, ownerComponent)); + curChild = curChild.nextSibling; } - module.exports = exports = ComponentsContext2; - exports.o_ = getComponentsContext2; -})(ComponentsContext$1, ComponentsContext$1.exports); -var indexBrowser$3 = {}; -var promise; -var queueMicrotask_1 = typeof queueMicrotask === "function" ? queueMicrotask : typeof Promise === "function" && (promise = Promise.resolve()) ? function(cb) { - promise.then(cb).catch(rethrow); -} : setTimeout; -function rethrow(err) { - setTimeout(function() { - throw err; - }); } -var extend$1 = extend$5; -function ensure(state, propertyName) { - var proto2 = state.constructor.prototype; - if (!(propertyName in proto2)) { - Object.defineProperty(proto2, propertyName, { - get: function() { - return this._u_[propertyName]; - }, - set: function(value) { - this._f_(propertyName, value, false); - } - }); +function virtualize(node, ownerComponent) { + switch (node.nodeType) { + case 1: + return VElement$3.bM_(node, virtualizeChildNodes, ownerComponent); + case 3: + return new VText$1(node.nodeValue, ownerComponent); + case 11: + var vdomDocFragment = new VDocumentFragment$1(); + virtualizeChildNodes(node, vdomDocFragment, ownerComponent); + return vdomDocFragment; } } -function State(component) { - this.h_ = component; - this._u_ = {}; - this.V_ = false; - this._l_ = null; - this._k_ = null; - this._Y_ = null; - Object.seal(this); +function virtualizeHTML$1(html, ownerComponent) { + if (!specialHtmlRegexp.test(html)) { + return new VText$1(html, ownerComponent); + } + var vdomFragment = new VDocumentFragment$1(); + var curChild = parseHTML(html); + while (curChild) { + vdomFragment.bq_(virtualize(curChild, ownerComponent)); + curChild = curChild.nextSibling; + } + return vdomFragment; } -State.prototype = { - I_: function() { - var self2 = this; - self2.V_ = false; - self2._l_ = null; - self2._k_ = null; - self2._Y_ = null; - }, - _d_: function(newState) { - var state = this; - var key; - var rawState = this._u_; - for (key in rawState) { - if (!(key in newState)) { - state._f_(key, void 0, false, false); +var Node_prototype = VNode.prototype; +Node_prototype.t = function(value) { + var type = typeof value; + var vdomNode; + if (type !== "string") { + if (value == null) { + value = ""; + } else if (type === "object") { + if (value.toHTML) { + vdomNode = virtualizeHTML$1(value.toHTML()); } } - for (key in newState) { - state._f_(key, newState[key], true, false); - } - }, - _f_: function(name, value, shouldEnsure, forceDirty) { - var rawState = this._u_; - if (shouldEnsure) { - ensure(this, name); - } - if (forceDirty) { - var forcedDirtyState = this._Y_ || (this._Y_ = {}); - forcedDirtyState[name] = true; - } else if (rawState[name] === value) { - return; - } - if (!this.V_) { - this.V_ = true; - this._l_ = rawState; - this._u_ = rawState = extend$1({}, rawState); - this._k_ = {}; - this.h_._e_(); - } - this._k_[name] = value; - if (value === void 0) { - delete rawState[name]; - } else { - rawState[name] = value; - } - }, - toJSON: function() { - return this._u_; } + this.bq_(vdomNode || new VText$1(value.toString())); + return this.bJ_(); }; -var State_1 = State; -var listenerTracker = { exports: {} }; -(function(module, exports) { - var INDEX_EVENT = 0; - var INDEX_USER_LISTENER = 1; - var INDEX_WRAPPED_LISTENER = 2; - var DESTROY = "destroy"; - function isNonEventEmitter(target) { - return !target.once; +Node_prototype.bv_ = function() { + return this.bq_(new VDocumentFragment$1()); +}; +vdom$1.ba_ = VDocumentFragment$1; +vdom$1.b__ = VElement$3; +vdom$1.bb_ = VText$1; +vdom$1.bc_ = VComponent$1; +vdom$1.bd_ = VFragment$1; +vdom$1.bM_ = virtualize; +vdom$1.be_ = virtualizeHTML$1; +var specialElHandlers = specialElHandlers$1; +var KeySequence = KeySequence_1; +var componentsUtil$3 = indexBrowser$4; +var existingComponentLookup = componentsUtil$3.C_; +var destroyNodeRecursive$1 = componentsUtil$3.D_; +var addComponentRootToKeyedElements$1 = componentsUtil$3.ap_; +var normalizeComponentKey = componentsUtil$3.aD_; +var VElement$2 = vdom$1.b__; +var virtualizeElement = VElement$2.bM_; +var morphAttrs = VElement$2.bN_; +var eventDelegation$2 = eventDelegation$3; +var fragment = fragment$1; +var helpers = helpers$3; +var domData$2 = domData$6; +var keysByDOMNode = domData$2.ag_; +var componentByDOMNode = domData$2.E_; +var vElementByDOMNode = domData$2.ae_; +var detachedByDOMNode = domData$2.af_; +var insertBefore = helpers.aF_; +var insertAfter = helpers.aG_; +var nextSibling = helpers.bR_; +var firstChild = helpers._r_; +var removeChild = helpers.aH_; +var createFragmentNode$1 = fragment.ao_; +var beginFragmentNode = fragment.bY_; +var ELEMENT_NODE$1 = 1; +var TEXT_NODE = 3; +var COMMENT_NODE = 8; +var COMPONENT_NODE = 2; +var FRAGMENT_NODE = 12; +var DOCTYPE_NODE = 10; +function isAutoKey(key) { + return key[0] !== "@"; +} +function compareNodeNames(fromEl, toEl) { + return fromEl.bG_ === toEl.bG_; +} +function caseInsensitiveCompare(a, b) { + return a.toLowerCase() === b.toLowerCase(); +} +function onNodeAdded(node, componentsContext) { + if (node.nodeType === ELEMENT_NODE$1) { + eventDelegation$2.ab_(node, componentsContext); } - function EventEmitterWrapper(target) { - this.$__target = target; - this.$__listeners = []; - this.$__subscribeTo = null; +} +function morphdom$2(fromNode, toNode, host, componentsContext) { + var globalComponentsContext; + var isHydrate = false; + var keySequences = Object.create(null); + if (componentsContext) { + globalComponentsContext = componentsContext.e_; + isHydrate = globalComponentsContext.f_; } - EventEmitterWrapper.prototype = { - $__remove: function(test, testWrapped) { - var target = this.$__target; - var listeners = this.$__listeners; - this.$__listeners = listeners.filter(function(curListener) { - var curEvent = curListener[INDEX_EVENT]; - var curListenerFunc = curListener[INDEX_USER_LISTENER]; - var curWrappedListenerFunc = curListener[INDEX_WRAPPED_LISTENER]; - if (testWrapped) { - if (curWrappedListenerFunc && test(curEvent, curWrappedListenerFunc)) { - target.removeListener(curEvent, curWrappedListenerFunc); - return false; - } - } else if (test(curEvent, curListenerFunc)) { - target.removeListener(curEvent, curWrappedListenerFunc || curListenerFunc); - return false; - } - return true; - }); - var subscribeTo = this.$__subscribeTo; - if (!this.$__listeners.length && subscribeTo) { - var self2 = this; - var subscribeToList = subscribeTo.$__subscribeToList; - subscribeTo.$__subscribeToList = subscribeToList.filter(function(cur) { - return cur !== self2; - }); - } - }, - on: function(event, listener) { - this.$__target.on(event, listener); - this.$__listeners.push([event, listener]); - return this; - }, - once: function(event, listener) { - var self2 = this; - var wrappedListener = function() { - self2.$__remove(function(event2, listenerFunc) { - return wrappedListener === listenerFunc; - }, true); - listener.apply(this, arguments); - }; - this.$__target.once(event, wrappedListener); - this.$__listeners.push([event, listener, wrappedListener]); - return this; - }, - removeListener: function(event, listener) { - if (typeof event === "function") { - listener = event; - event = null; - } - if (listener && event) { - this.$__remove(function(curEvent, curListener) { - return event === curEvent && listener === curListener; - }); - } else if (listener) { - this.$__remove(function(curEvent, curListener) { - return listener === curListener; - }); - } else if (event) { - this.removeAllListeners(event); + function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { + var realNode = vNode.bx_(host, parentEl.namespaceURI); + insertBefore(realNode, referenceEl, parentEl); + if (vNode.bA_ === ELEMENT_NODE$1 || vNode.bA_ === FRAGMENT_NODE) { + if (key) { + keysByDOMNode.set(realNode, key); + (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; } - return this; - }, - removeAllListeners: function(event) { - var listeners = this.$__listeners; - var target = this.$__target; - if (event) { - this.$__remove(function(curEvent, curListener) { - return event === curEvent; - }); - } else { - for (var i = listeners.length - 1; i >= 0; i--) { - var cur = listeners[i]; - target.removeListener(cur[INDEX_EVENT], cur[INDEX_USER_LISTENER]); - } - this.$__listeners.length = 0; + if (vNode.bG_ !== "textarea") { + morphChildren(realNode, vNode, parentComponent); } - return this; + onNodeAdded(realNode, componentsContext); } - }; - function EventEmitterAdapter(target) { - this.$__target = target; } - EventEmitterAdapter.prototype = { - on: function(event, listener) { - this.$__target.addEventListener(event, listener); - return this; - }, - once: function(event, listener) { - var self2 = this; - var onceListener = function() { - self2.$__target.removeEventListener(event, onceListener); - listener(); - }; - this.$__target.addEventListener(event, onceListener); - return this; - }, - removeListener: function(event, listener) { - this.$__target.removeEventListener(event, listener); - return this; + function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) { + var rootNode = component.K_ = insertBefore(createFragmentNode$1(), referenceNode, referenceNodeParentEl); + componentByDOMNode.set(rootNode, component); + if (key && ownerComponent) { + key = normalizeComponentKey(key, parentComponent.id); + addComponentRootToKeyedElements$1(ownerComponent.k_, key, rootNode, component.id); + keysByDOMNode.set(rootNode, key); } - }; - function SubscriptionTracker2() { - this.$__subscribeToList = []; + morphComponent(component, vComponent); } - SubscriptionTracker2.prototype = { - subscribeTo: function(target, options) { - var addDestroyListener = !options || options.addDestroyListener !== false; - var wrapper; - var nonEE; - var subscribeToList = this.$__subscribeToList; - for (var i = 0, len = subscribeToList.length; i < len; i++) { - var cur = subscribeToList[i]; - if (cur.$__target === target) { - wrapper = cur; - break; + function morphComponent(component, vComponent) { + morphChildren(component.K_, vComponent, component); + } + var detachedNodes = []; + function detachNode(node, parentNode, ownerComponent) { + if (node.nodeType === ELEMENT_NODE$1 || node.nodeType === FRAGMENT_NODE) { + detachedNodes.push(node); + detachedByDOMNode.set(node, ownerComponent || true); + } else { + destroyNodeRecursive$1(node); + removeChild(node); + } + } + function destroyComponent(component) { + component.destroy(); + } + function morphChildren(fromNode2, toNode2, parentComponent) { + var curFromNodeChild = firstChild(fromNode2); + var curToNodeChild = toNode2._r_; + var curToNodeKey; + var curFromNodeKey; + var curToNodeType; + var fromNextSibling; + var toNextSibling; + var matchingFromEl; + var matchingFromComponent; + var curVFromNodeChild; + var fromComponent; + outer: + while (curToNodeChild) { + toNextSibling = curToNodeChild.bR_; + curToNodeType = curToNodeChild.bA_; + curToNodeKey = curToNodeChild.bz_; + if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { + curFromNodeChild = nextSibling(curFromNodeChild); } - } - if (!wrapper) { - if (isNonEventEmitter(target)) { - nonEE = new EventEmitterAdapter(target); + var ownerComponent = curToNodeChild.aA_ || parentComponent; + var referenceComponent; + if (curToNodeType === COMPONENT_NODE) { + var component = curToNodeChild.h_; + if ((matchingFromComponent = existingComponentLookup[component.id]) === void 0) { + if (isHydrate === true) { + var rootNode = beginFragmentNode(curFromNodeChild, fromNode2); + component.K_ = rootNode; + componentByDOMNode.set(rootNode, component); + if (ownerComponent && curToNodeKey) { + curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id); + addComponentRootToKeyedElements$1(ownerComponent.k_, curToNodeKey, rootNode, component.id); + keysByDOMNode.set(rootNode, curToNodeKey); + } + morphComponent(component, curToNodeChild); + curFromNodeChild = nextSibling(rootNode); + } else { + insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode2, component, curToNodeKey, ownerComponent, parentComponent); + } + } else { + if (matchingFromComponent.K_ !== curFromNodeChild) { + if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext._U_[fromComponent.id] === void 0) { + curFromNodeChild = nextSibling(fromComponent.K_); + destroyComponent(fromComponent); + continue; + } + insertBefore(matchingFromComponent.K_, curFromNodeChild, fromNode2); + } else { + curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild); + } + if (!curToNodeChild.n_) { + morphComponent(component, curToNodeChild); + } + } + curToNodeChild = toNextSibling; + continue; + } else if (curToNodeKey) { + curVFromNodeChild = void 0; + curFromNodeKey = void 0; + var curToNodeKeyOriginal = curToNodeKey; + if (isAutoKey(curToNodeKey)) { + if (ownerComponent !== parentComponent) { + curToNodeKey += ":" + ownerComponent.id; + } + referenceComponent = parentComponent; + } else { + referenceComponent = ownerComponent; + } + curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence()))._L_(curToNodeKey); + if (curFromNodeChild) { + curFromNodeKey = keysByDOMNode.get(curFromNodeChild); + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + fromNextSibling = nextSibling(curFromNodeChild); + } + if (curFromNodeKey === curToNodeKey) { + if (!curToNodeChild.n_) { + if (compareNodeNames(curToNodeChild, curVFromNodeChild)) { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } else { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + } + } + } else { + matchingFromEl = referenceComponent.k_[curToNodeKey]; + if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { + if (isHydrate === true && curFromNodeChild) { + if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bG_ || ""))) { + curVFromNodeChild = virtualizeElement(curFromNodeChild); + curVFromNodeChild.bG_ = curToNodeChild.bG_; + keysByDOMNode.set(curFromNodeChild, curToNodeKey); + referenceComponent.k_[curToNodeKey] = curFromNodeChild; + if (curToNodeChild.n_) { + vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild); + } else { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue; + } else if (curToNodeChild.bA_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { + var content = curFromNodeChild.nodeValue; + if (content == "F#" + curToNodeKeyOriginal) { + var endNode = curFromNodeChild.nextSibling; + var depth = 0; + var nodeValue; + while (true) { + if (endNode.nodeType === COMMENT_NODE) { + nodeValue = endNode.nodeValue; + if (nodeValue === "F/") { + if (depth === 0) { + break; + } else { + depth--; + } + } else if (nodeValue.indexOf("F#") === 0) { + depth++; + } + } + endNode = endNode.nextSibling; + } + var fragment2 = createFragmentNode$1(curFromNodeChild, endNode.nextSibling, fromNode2); + keysByDOMNode.set(fragment2, curToNodeKey); + vElementByDOMNode.set(fragment2, curToNodeChild); + referenceComponent.k_[curToNodeKey] = fragment2; + removeChild(curFromNodeChild); + removeChild(endNode); + if (!curToNodeChild.n_) { + morphChildren(fragment2, curToNodeChild, parentComponent); + } + curToNodeChild = toNextSibling; + curFromNodeChild = fragment2.nextSibling; + continue; + } + } + } + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + fromNextSibling = curFromNodeChild; + } else { + if (detachedByDOMNode.get(matchingFromEl) !== void 0) { + detachedByDOMNode.set(matchingFromEl, void 0); + } + if (!curToNodeChild.n_) { + curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); + if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { + if (fromNextSibling === matchingFromEl) { + if (toNextSibling && toNextSibling.bz_ === curFromNodeKey) { + fromNextSibling = curFromNodeChild; + insertBefore(matchingFromEl, curFromNodeChild, fromNode2); + } else { + fromNextSibling = nextSibling(fromNextSibling); + if (curFromNodeChild) { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + } + } + } else { + insertAfter(matchingFromEl, curFromNodeChild, fromNode2); + if (curFromNodeChild) { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + } + } + morphEl(matchingFromEl, curVFromNodeChild, curToNodeChild, parentComponent); + } else { + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + detachNode(matchingFromEl, fromNode2, ownerComponent); + } + } else { + insertBefore(matchingFromEl, curFromNodeChild, fromNode2); + fromNextSibling = curFromNodeChild; + } + } + } + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue; } - wrapper = new EventEmitterWrapper(nonEE || target); - if (addDestroyListener && !nonEE) { - wrapper.once(DESTROY, function() { - wrapper.removeAllListeners(); - for (var i2 = subscribeToList.length - 1; i2 >= 0; i2--) { - if (subscribeToList[i2].$__target === target) { - subscribeToList.splice(i2, 1); - break; + while (curFromNodeChild) { + fromNextSibling = nextSibling(curFromNodeChild); + if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { + curFromNodeChild = fromNextSibling; + if (!globalComponentsContext._U_[fromComponent.id]) { + destroyComponent(fromComponent); + } + continue; + } + var curFromNodeType = curFromNodeChild.nodeType; + var isCompatible = void 0; + if (curFromNodeType === curToNodeType) { + if (curFromNodeType === ELEMENT_NODE$1) { + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + if (curVFromNodeChild === void 0) { + if (isHydrate === true) { + curVFromNodeChild = virtualizeElement(curFromNodeChild); + if (caseInsensitiveCompare(curVFromNodeChild.bG_, curToNodeChild.bG_)) { + curVFromNodeChild.bG_ = curToNodeChild.bG_; + } + } else { + curFromNodeChild = fromNextSibling; + continue; + } + } else if (curFromNodeKey = curVFromNodeChild.bz_) { + isCompatible = false; + } + isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; + if (isCompatible === true) { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } + } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { + isCompatible = true; + if (isHydrate === true && toNextSibling && curFromNodeType === TEXT_NODE && toNextSibling.bA_ === TEXT_NODE) { + fromNextSibling = curFromNodeChild.splitText(curToNodeChild.bT_.length); + } + if (curFromNodeChild.nodeValue !== curToNodeChild.bT_) { + curFromNodeChild.nodeValue = curToNodeChild.bT_; } } - }); + } + if (isCompatible === true) { + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue outer; + } + detachNode(curFromNodeChild, fromNode2, ownerComponent); + curFromNodeChild = fromNextSibling; } - wrapper.$__subscribeTo = this; - subscribeToList.push(wrapper); + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; } - return wrapper; - }, - removeAllListeners: function(target, event) { - var subscribeToList = this.$__subscribeToList; - var i; - if (target) { - for (i = subscribeToList.length - 1; i >= 0; i--) { - var cur = subscribeToList[i]; - if (cur.$__target === target) { - cur.removeAllListeners(event); - if (!cur.$__listeners.length) { - subscribeToList.splice(i, 1); - } - break; + if (fromNode2.bX_) { + fromNode2.bX_(curFromNodeChild); + } else { + var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; + while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { + fromNextSibling = nextSibling(curFromNodeChild); + if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { + curFromNodeChild = fromNextSibling; + if (!globalComponentsContext._U_[fromComponent.id]) { + destroyComponent(fromComponent); } + continue; } - } else { - for (i = subscribeToList.length - 1; i >= 0; i--) { - subscribeToList[i].removeAllListeners(); + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + curFromNodeKey = keysByDOMNode.get(fromNode2); + if (!curFromNodeKey || isAutoKey(curFromNodeKey)) { + referenceComponent = parentComponent; + } else { + referenceComponent = curVFromNodeChild && curVFromNodeChild.aA_; } - subscribeToList.length = 0; + detachNode(curFromNodeChild, fromNode2, referenceComponent); + curFromNodeChild = fromNextSibling; } } - }; - exports = module.exports = SubscriptionTracker2; - exports.wrap = function(targetEventEmitter) { - var nonEE; - var wrapper; - if (isNonEventEmitter(targetEventEmitter)) { - nonEE = new EventEmitterAdapter(targetEventEmitter); + } + function morphEl(fromEl, vFromEl, toEl, parentComponent) { + var nodeName = toEl.bG_; + var constId = toEl.bI_; + if (constId !== void 0 && vFromEl.bI_ === constId) { + return; } - wrapper = new EventEmitterWrapper(nonEE || targetEventEmitter); - if (!nonEE) { - targetEventEmitter.once(DESTROY, function() { - wrapper.$__listeners.length = 0; - }); + morphAttrs(fromEl, vFromEl, toEl); + if (toEl.m_) { + return; } - return wrapper; - }; - exports.createTracker = function() { - return new SubscriptionTracker2(); - }; -})(listenerTracker, listenerTracker.exports); -var updateManager$1 = {}; -var updatesScheduled = false; -var batchStack = []; -var unbatchedQueue = []; -var setImmediate = indexBrowser$4; -function updateUnbatchedComponents() { - if (unbatchedQueue.length) { - try { - updateComponents(unbatchedQueue); - } finally { - updatesScheduled = false; + if (nodeName !== "textarea") { + morphChildren(fromEl, toEl, parentComponent); } - } -} -function scheduleUpdates() { - if (updatesScheduled) { - return; - } - updatesScheduled = true; - setImmediate(updateUnbatchedComponents); -} -function updateComponents(queue2) { - for (var i = 0; i < queue2.length; i++) { - var component = queue2[i]; - component._A_(); - } - queue2.length = 0; -} -function batchUpdate(func) { - var batch = { - az_: null - }; - batchStack.push(batch); - try { - func(); - } finally { - try { - if (batch.az_) { - updateComponents(batch.az_); - } - } finally { - batchStack.length--; + var specialElHandler = specialElHandlers[nodeName]; + if (specialElHandler !== void 0) { + specialElHandler(fromEl, toEl); } } -} -function queueComponentUpdate(component) { - var batchStackLen = batchStack.length; - if (batchStackLen) { - var batch = batchStack[batchStackLen - 1]; - if (batch.az_) { - batch.az_.push(component); - } else { - batch.az_ = [component]; + morphChildren(fromNode, toNode, toNode.h_); + detachedNodes.forEach(function(node) { + var detachedFromComponent = detachedByDOMNode.get(node); + if (detachedFromComponent !== void 0) { + detachedByDOMNode.set(node, void 0); + var componentToDestroy = componentByDOMNode.get(node); + if (componentToDestroy) { + componentToDestroy.destroy(); + } else if (node.parentNode) { + destroyNodeRecursive$1(node, detachedFromComponent !== true && detachedFromComponent); + if (eventDelegation$2.___(node) != false) { + removeChild(node); + } + } } - } else { - scheduleUpdates(); - unbatchedQueue.push(component); - } + }); } -updateManager$1._i_ = queueComponentUpdate; -updateManager$1._o_ = batchUpdate; +var morphdom_1 = morphdom$2; var domInsert = domInsert$2; -var defaultCreateOut = createOut_1; +var defaultCreateOut$1 = createOut_1; var getComponentsContext$1 = ComponentsContext$1.exports.o_; -var componentsUtil$2 = indexBrowser$5; +var componentsUtil$2 = indexBrowser$4; var componentLookup$2 = componentsUtil$2.C_; var destroyNodeRecursive = componentsUtil$2.D_; -var EventEmitter = src; -var RenderResult = RenderResult_1; +var EventEmitter$1 = src; +var RenderResult$1 = RenderResult_1; var SubscriptionTracker = listenerTracker.exports; var inherit$1 = inherit_1; var updateManager = updateManager$1; -var morphdom = morphdom_1; +var morphdom$1 = morphdom_1; var eventDelegation$1 = eventDelegation$3; var domData$1 = domData$6; var componentsByDOMNode$1 = domData$1.E_; @@ -2547,7 +2178,7 @@ var COMPONENT_SUBSCRIBE_TO_OPTIONS; var NON_COMPONENT_SUBSCRIBE_TO_OPTIONS = { addDestroyListener: false }; -var emit = EventEmitter.prototype.emit; +var emit = EventEmitter$1.prototype.emit; var ELEMENT_NODE = 1; function removeListener(removeEventListenerHandle) { removeEventListenerHandle(); @@ -2630,7 +2261,7 @@ function checkInputChanged(existingComponent, oldInput, newInput) { } var componentProto; function Component(id) { - EventEmitter.call(this); + EventEmitter$1.call(this); this.id = id; this.J_ = null; this.K_ = null; @@ -2885,11 +2516,11 @@ Component.prototype = componentProto = { this.I_(); }, _p_: function(input, isHydrate) { - var doc = this.X_; + var host = this.X_; var globalData = this.S_; var rootNode = this.K_; var renderer2 = this._n_; - var createOut3 = renderer2.createOut || defaultCreateOut; + var createOut3 = renderer2.createOut || defaultCreateOut$1; var out = createOut3(globalData); out.sync(); out.X_ = this.X_; @@ -2899,9 +2530,9 @@ Component.prototype = componentProto = { globalComponentsContext._q_ = this; globalComponentsContext.f_ = isHydrate; renderer2(input, out); - var result = new RenderResult(out); + var result = new RenderResult$1(out); var targetNode = out.B_()._r_; - morphdom(rootNode, targetNode, doc, componentsContext); + morphdom$1(rootNode, targetNode, host, componentsContext); return result; }, _s_: function() { @@ -2962,573 +2593,956 @@ Component.prototype = componentProto = { this.onDestroy && this.onDestroy(); this._w_("destroy"); } -}; -componentProto.elId = componentProto.getElId; -componentProto._A_ = componentProto.update; -componentProto._B_ = componentProto.destroy; -domInsert(componentProto, function getEl2(component) { - return component._s_(); -}, function afterInsert2(component) { - return component; -}); -inherit$1(Component, EventEmitter); -var Component_1 = Component; -var BaseState = State_1; -var BaseComponent = Component_1; -var inherit = inherit_1; -var defineComponent$1 = function defineComponent(def, renderer2) { - if (def.Y_) { - return def; +}; +componentProto.elId = componentProto.getElId; +componentProto._A_ = componentProto.update; +componentProto._B_ = componentProto.destroy; +domInsert(componentProto, function getEl2(component) { + return component._s_(); +}, function afterInsert2(component) { + return component; +}); +inherit$1(Component, EventEmitter$1); +var Component_1 = Component; +var BaseState = State_1; +var BaseComponent = Component_1; +var inherit = inherit_1; +var defineComponent$1 = function defineComponent(def, renderer2) { + if (def.Y_) { + return def; + } + var ComponentClass = function() { + }; + var proto2; + var type = typeof def; + if (type == "function") { + proto2 = def.prototype; + } else if (type == "object") { + proto2 = def; + } else { + throw TypeError(); + } + ComponentClass.prototype = proto2; + function Component2(id) { + BaseComponent.call(this, id); + } + if (!proto2.Y_) { + inherit(ComponentClass, BaseComponent); + } + proto2 = Component2.prototype = ComponentClass.prototype; + Component2.Y_ = true; + function State2(component) { + BaseState.call(this, component); + } + inherit(State2, BaseState); + proto2._c_ = State2; + proto2._n_ = renderer2; + return Component2; +}; +var queueMicrotask$1 = queueMicrotask_1; +var defineComponent2 = defineComponent$1; +var initComponents$1 = indexBrowser$5; +var registered = {}; +var loaded = {}; +var componentTypes = {}; +var pendingDefs; +function register(type, def) { + var pendingForType; + if (pendingDefs) { + pendingForType = pendingDefs[type]; + } + registered[type] = def; + delete loaded[type]; + delete componentTypes[type]; + if (pendingForType) { + delete pendingDefs[type]; + queueMicrotask$1(function() { + pendingForType.forEach(function(args) { + initComponents$1.au_(args[0], args[1], args[2], args[3])(); + }); + }); + } + return type; +} +function addPendingDef(def, type, meta, host, runtimeId2) { + if (!pendingDefs) { + pendingDefs = {}; + } + (pendingDefs[type] = pendingDefs[type] || []).push([ + def, + meta, + host, + runtimeId2 + ]); +} +function isRegistered(type) { + return Boolean(registered[type]); +} +function load(typeName) { + var target = loaded[typeName]; + if (!target) { + target = registered[typeName]; + if (target) { + target = target(); + } + if (!target) { + throw Error("Component not found: " + typeName); + } + loaded[typeName] = target; + } + return target; +} +function getComponentClass(typeName) { + var ComponentClass = componentTypes[typeName]; + if (ComponentClass) { + return ComponentClass; + } + ComponentClass = load(typeName); + ComponentClass = ComponentClass.Component || ComponentClass; + if (!ComponentClass.Y_) { + ComponentClass = defineComponent2(ComponentClass, ComponentClass.renderer); + } + ComponentClass.prototype._N_ = typeName; + componentTypes[typeName] = ComponentClass; + return ComponentClass; +} +function createComponent(typeName, id) { + var ComponentClass = getComponentClass(typeName); + return new ComponentClass(id); +} +var r = indexBrowser$3.r = register; +indexBrowser$3.av_ = getComponentClass; +indexBrowser$3._P_ = createComponent; +indexBrowser$3.as_ = isRegistered; +indexBrowser$3.at_ = addPendingDef; +var warp10Finalize = finalize2; +var eventDelegation = eventDelegation$3; +var win = window; +var createFragmentNode = fragment$1.ao_; +var componentsUtil$1 = indexBrowser$4; +var componentLookup$1 = componentsUtil$1.C_; +var addComponentRootToKeyedElements = componentsUtil$1.ap_; +var ComponentDef$1 = ComponentDef_1; +var registry$2 = indexBrowser$3; +var domData = domData$6; +var keyedElementsByComponentId = domData.F_; +var componentsByDOMNode = domData.E_; +var serverComponentRootNodes = {}; +var serverRenderedMeta = {}; +var DEFAULT_RUNTIME_ID = "M"; +var FLAG_WILL_RERENDER_IN_BROWSER = 1; +var deferredDefs; +function indexServerComponentBoundaries(node, runtimeId2, stack) { + var componentId; + var ownerId; + var ownerComponent; + var keyedElements; + var nextSibling2; + var runtimeLength = runtimeId2.length; + stack = stack || []; + node = node.firstChild; + while (node) { + nextSibling2 = node.nextSibling; + if (node.nodeType === 8) { + var commentValue = node.nodeValue; + if (commentValue.slice(0, runtimeLength) === runtimeId2) { + var firstChar = commentValue[runtimeLength]; + if (firstChar === "^" || firstChar === "#") { + stack.push(node); + } else if (firstChar === "/") { + var endNode = node; + var startNode = stack.pop(); + var rootNode; + if (startNode.parentNode === endNode.parentNode) { + rootNode = createFragmentNode(startNode.nextSibling, endNode); + } else { + rootNode = createFragmentNode(endNode.parentNode.firstChild, endNode); + } + componentId = startNode.nodeValue.substring(runtimeLength + 1); + firstChar = startNode.nodeValue[runtimeLength]; + if (firstChar === "^") { + var parts = componentId.split(/ /g); + var key = parts[2]; + ownerId = parts[1]; + componentId = parts[0]; + if (ownerComponent = componentLookup$1[ownerId]) { + keyedElements = ownerComponent.k_; + } else { + keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); + } + addComponentRootToKeyedElements(keyedElements, key, rootNode, componentId); + } + serverComponentRootNodes[componentId] = rootNode; + startNode.parentNode.removeChild(startNode); + endNode.parentNode.removeChild(endNode); + } + } + } else if (node.nodeType === 1) { + var markoKey = node.getAttribute("data-marko-key"); + var markoProps = componentsUtil$1.am_(node); + if (markoKey) { + var separatorIndex = markoKey.indexOf(" "); + ownerId = markoKey.substring(separatorIndex + 1); + markoKey = markoKey.substring(0, separatorIndex); + if (ownerComponent = componentLookup$1[ownerId]) { + keyedElements = ownerComponent.k_; + } else { + keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); + } + keyedElements[markoKey] = node; + } + if (markoProps) { + Object.keys(markoProps).forEach(function(key2) { + if (key2.slice(0, 2) === "on") { + eventDelegation._D_(key2.slice(2)); + } + }); + } + indexServerComponentBoundaries(node, runtimeId2, stack); + } + node = nextSibling2; + } +} +function invokeComponentEventHandler(component, targetMethodName, args) { + var method = component[targetMethodName]; + if (!method) { + throw Error("Method not found: " + targetMethodName); + } + method.apply(component, args); +} +function addEventListenerHelper(el, eventType, isOnce, listener) { + var eventListener = listener; + if (isOnce) { + eventListener = function(event) { + listener(event); + el.removeEventListener(eventType, eventListener); + }; + } + el.addEventListener(eventType, eventListener, false); + return function remove() { + el.removeEventListener(eventType, eventListener); + }; +} +function addDOMEventListeners(component, el, eventType, targetMethodName, isOnce, extraArgs, handles) { + var removeListener2 = addEventListenerHelper(el, eventType, isOnce, function(event) { + var args = [event, el]; + if (extraArgs) { + args = extraArgs.concat(args); + } + invokeComponentEventHandler(component, targetMethodName, args); + }); + handles.push(removeListener2); +} +function initComponent(componentDef, host) { + var component = componentDef.h_; + component.I_(); + component.X_ = host; + var isExisting = componentDef._G_; + if (isExisting) { + component._b_(); + } + var domEvents = componentDef._F_; + if (domEvents) { + var eventListenerHandles = []; + domEvents.forEach(function(domEventArgs) { + var eventType = domEventArgs[0]; + var targetMethodName = domEventArgs[1]; + var eventEl = component.k_[domEventArgs[2]]; + var isOnce = domEventArgs[3]; + var extraArgs = domEventArgs[4]; + addDOMEventListeners(component, eventEl, eventType, targetMethodName, isOnce, extraArgs, eventListenerHandles); + }); + if (eventListenerHandles.length) { + component.M_ = eventListenerHandles; + } + } + if (component.R_) { + component.H_(); + } else { + component.R_ = true; + component._z_(); } - var ComponentClass = function() { - }; - var proto2; - var type = typeof def; - if (type == "function") { - proto2 = def.prototype; - } else if (type == "object") { - proto2 = def; +} +function initClientRendered(componentDefs, host) { + if (!host) + host = document; + eventDelegation.an_(host); + var len = componentDefs.length; + var componentDef; + var i; + for (i = len; i--; ) { + componentDef = componentDefs[i]; + trackComponent(componentDef); + } + for (i = len; i--; ) { + componentDef = componentDefs[i]; + initComponent(componentDef, host); + } +} +function initServerRendered(renderedComponents, host) { + var type = typeof renderedComponents; + var globalKey = "$"; + var runtimeId2; + if (type !== "object") { + if (type === "string") { + runtimeId2 = renderedComponents; + globalKey += runtimeId2 + "_C"; + } else { + globalKey += (runtimeId2 = DEFAULT_RUNTIME_ID) + "C"; + } + renderedComponents = win[globalKey]; + var fakeArray = win[globalKey] = { + r: runtimeId2, + concat: initServerRendered + }; + if (renderedComponents && renderedComponents.forEach) { + renderedComponents.forEach(function(renderedComponent) { + fakeArray.concat(renderedComponent); + }); + } + return fakeArray; + } + var isFromSerializedGlobals = this.concat === initServerRendered; + renderedComponents = warp10Finalize(renderedComponents); + if (isFromSerializedGlobals) { + runtimeId2 = this.r; + host = document; } else { - throw TypeError(); + runtimeId2 = renderedComponents.r || DEFAULT_RUNTIME_ID; + if (!host) + host = document; } - ComponentClass.prototype = proto2; - function Component2(id) { - BaseComponent.call(this, id); + var prefix = renderedComponents.p || ""; + var meta = serverRenderedMeta[prefix]; + var isLast = renderedComponents.l; + if (meta) { + if (isLast) { + delete serverRenderedMeta[prefix]; + } + } else { + meta = {}; + if (!isLast) { + serverRenderedMeta[prefix] = meta; + } } - if (!proto2.Y_) { - inherit(ComponentClass, BaseComponent); + indexServerComponentBoundaries(host, runtimeId2); + eventDelegation.an_(host); + if (renderedComponents.g) { + meta.aq_ = renderedComponents.g; } - proto2 = Component2.prototype = ComponentClass.prototype; - Component2.Y_ = true; - function State2(component) { - BaseState.call(this, component); + if (renderedComponents.t) { + meta.ar_ = meta.ar_ ? meta.ar_.concat(renderedComponents.t) : renderedComponents.t; } - inherit(State2, BaseState); - proto2._c_ = State2; - proto2._n_ = renderer2; - return Component2; -}; -var indexBrowser$2 = {}; -var constants$2 = {}; -var win$1 = typeof window !== "undefined" ? window : commonjsGlobal; -constants$2.NOOP = win$1.$W10NOOP = win$1.$W10NOOP || function() { -}; -var constants$1 = constants$2; -var isArray = Array.isArray; -function resolve(object, path, len) { - var current = object; - for (var i = 0; i < len; i++) { - current = current[path[i]]; + (renderedComponents.w || []).map(function(componentDef) { + var typeName = meta.ar_[componentDef[1]]; + return registry$2.as_(typeName) ? tryHydrateComponent(componentDef, meta, host, runtimeId2) : registry$2.at_(componentDef, typeName, meta, host, runtimeId2); + }).reverse().forEach(tryInvoke); + return this; +} +function tryHydrateComponent(rawDef, meta, host, runtimeId2) { + var componentDef = ComponentDef$1._O_(rawDef, meta.ar_, meta.aq_, registry$2); + var mount = hydrateComponentAndGetMount(componentDef, host); + if (!mount) { + if (deferredDefs) { + deferredDefs.push(componentDef); + } else { + deferredDefs = [componentDef]; + document.addEventListener("DOMContentLoaded", function() { + indexServerComponentBoundaries(host, runtimeId2); + deferredDefs.map(function(componentDef2) { + return hydrateComponentAndGetMount(componentDef2, host); + }).reverse().forEach(tryInvoke); + deferredDefs = void 0; + }); + } } - return current; + return mount; } -function resolveType(info) { - if (info.type === "Date") { - return new Date(info.value); - } else if (info.type === "NOOP") { - return constants$1.NOOP; - } else { - throw new Error("Bad type"); +function hydrateComponentAndGetMount(componentDef, host) { + var componentId = componentDef.id; + var component = componentDef.h_; + var rootNode = serverComponentRootNodes[componentId]; + var renderResult; + if (rootNode) { + delete serverComponentRootNodes[componentId]; + component.K_ = rootNode; + componentsByDOMNode.set(rootNode, component); + if (componentDef._I_ & FLAG_WILL_RERENDER_IN_BROWSER) { + component.X_ = host; + renderResult = component._p_(component.Q_, true); + trackComponent(componentDef); + return function mount() { + renderResult.afterInsert(host); + }; + } else { + trackComponent(componentDef); + } + return function mount() { + initComponent(componentDef, host); + }; } } -var finalize$1 = function finalize(outer) { - if (!outer) { - return outer; +function trackComponent(componentDef) { + var component = componentDef.h_; + if (component) { + componentLookup$1[component.id] = component; } - var assignments = outer.$$; - if (assignments) { - var object = outer.o; - var len; - if (assignments && (len = assignments.length)) { - for (var i = 0; i < len; i++) { - var assignment = assignments[i]; - var rhs = assignment.r; - var rhsValue; - if (isArray(rhs)) { - rhsValue = resolve(object, rhs, rhs.length); - } else { - rhsValue = resolveType(rhs); +} +function tryInvoke(fn) { + if (fn) + fn(); +} +indexBrowser$5._R_ = initClientRendered; +indexBrowser$5.ai_ = initServerRendered; +indexBrowser$5.au_ = tryHydrateComponent; +var initComponents = indexBrowser$5; +ComponentsContext$1.exports._R_ = initComponents._R_; +indexBrowser$6.getComponentForEl = indexBrowser$4.ah_; +indexBrowser$6.init = window.$initComponents = initComponents.ai_; +var registry$1 = indexBrowser$3; +indexBrowser$6.register = function(id, component) { + registry$1.r(id, function() { + return component; + }); +}; +var components = indexBrowser$6; +var classValue = function classHelper(arg) { + switch (typeof arg) { + case "string": + return arg || null; + case "object": + var result = ""; + var sep = ""; + if (Array.isArray(arg)) { + for (var i = 0, len = arg.length; i < len; i++) { + var value = classHelper(arg[i]); + if (value) { + result += sep + value; + sep = " "; + } } - var lhs = assignment.l; - var lhsLast = lhs.length - 1; - if (lhsLast === -1) { - object = outer.o = rhsValue; - break; - } else { - var lhsParent = resolve(object, lhs, lhsLast); - lhsParent[lhs[lhsLast]] = rhsValue; + } else { + for (var key in arg) { + if (arg[key]) { + result += sep + key; + sep = " "; + } + } + } + return result || null; + default: + return null; + } +}; +var _changeCase = {}; +var camelToDashLookup = Object.create(null); +var dashToCamelLookup = Object.create(null); +_changeCase.aI_ = function camelToDashCase(name) { + var nameDashed = camelToDashLookup[name]; + if (!nameDashed) { + nameDashed = camelToDashLookup[name] = name.replace(/([A-Z])/g, "-$1").toLowerCase(); + if (nameDashed !== name) { + dashToCamelLookup[nameDashed] = name; + } + } + return nameDashed; +}; +_changeCase.aJ_ = function dashToCamelCase(name) { + var nameCamel = dashToCamelLookup[name]; + if (!nameCamel) { + nameCamel = dashToCamelLookup[name] = name.replace(/-([a-z])/g, matchToUpperCase); + if (nameCamel !== name) { + camelToDashLookup[nameCamel] = name; + } + } + return nameCamel; +}; +function matchToUpperCase(_, char) { + return char.toUpperCase(); +} +var changeCase = _changeCase; +var styleValue = function styleHelper(style) { + if (!style) { + return null; + } + var type = typeof style; + if (type !== "string") { + var styles = ""; + if (Array.isArray(style)) { + for (var i = 0, len = style.length; i < len; i++) { + var next = styleHelper(style[i]); + if (next) + styles += next + (next[next.length - 1] !== ";" ? ";" : ""); + } + } else if (type === "object") { + for (var name in style) { + var value = style[name]; + if (value != null && value !== false) { + if (typeof value === "number" && value) { + value += "px"; + } + styles += changeCase.aI_(name) + ":" + value + ";"; } } } - assignments.length = 0; - return object == null ? null : object; - } else { - return outer; + return styles || null; } + return style; }; -var finalize2 = finalize$1; -var constants = constants$2; -var w10Noop = constants.NOOP; -var componentUtil = indexBrowser$5; -var attachBubblingEvent = componentUtil._C_; -var addDelegatedEventHandler = eventDelegation$3._D_; -var extend2 = extend$5; -var KeySequence = KeySequence_1; -var EMPTY_OBJECT = {}; -var FLAG_WILL_RERENDER_IN_BROWSER$1 = 1; -var FLAG_HAS_RENDER_BODY = 2; -function ComponentDef$2(component, componentId, componentsContext) { - this._E_ = componentsContext; - this.h_ = component; - this.id = componentId; - this._F_ = void 0; - this._G_ = false; - this._H_ = false; - this._I_ = 0; - this._J_ = 0; - this._K_ = null; -} -ComponentDef$2.prototype = { - _L_: function(key) { - return (this._K_ || (this._K_ = new KeySequence()))._L_(key); - }, - elId: function(nestedId) { - var id = this.id; - if (nestedId == null) { - return id; - } else { - if (typeof nestedId !== "string") { - nestedId = String(nestedId); +var classHelper2 = classValue; +var styleHelper2 = styleValue; +var attrs = function(attributes) { + if (attributes != null) { + var newAttributes = {}; + for (var attrName in attributes) { + var val = attributes[attrName]; + if (attrName === "renderBody") { + continue; } - if (nestedId.indexOf("#") === 0) { - id = "#" + id; - nestedId = nestedId.substring(1); + if (attrName === "class") { + val = classHelper2(val); + } else if (attrName === "style") { + val = styleHelper2(val); } - return id + "-" + nestedId; + newAttributes[attrName] = val; } - }, - _M_: function() { - return this.id + "-c" + this._J_++; - }, - d: function(eventName, handlerMethodName, isOnce, extraArgs) { - addDelegatedEventHandler(eventName); - return attachBubblingEvent(this, handlerMethodName, isOnce, extraArgs); - }, - get _N_() { - return this.h_._N_; + return newAttributes; } + return attributes; }; -ComponentDef$2.prototype.nk = ComponentDef$2.prototype._L_; -ComponentDef$2._O_ = function(o, types, global2, registry2) { - var id = o[0]; - var typeName = types[o[1]]; - var input = o[2] || null; - var extra = o[3] || EMPTY_OBJECT; - var state = extra.s; - var componentProps = extra.w; - var flags = extra.f; - var component = registry2._P_(typeName, id); - component.U_ = true; - if (flags & FLAG_HAS_RENDER_BODY) { - (input || (input = {})).renderBody = w10Noop; +var EventEmitter = src; +var vdom = vdom$1; +var VElement$1 = vdom.b__; +var VDocumentFragment = vdom.ba_; +var VText = vdom.bb_; +var VComponent = vdom.bc_; +var VFragment = vdom.bd_; +var virtualizeHTML = vdom.be_; +var RenderResult = RenderResult_1; +var morphdom = morphdom_1; +var attrsHelper = attrs; +var EVENT_UPDATE = "update"; +var EVENT_FINISH = "finish"; +function State(tree) { + this.bf_ = new EventEmitter(); + this.bg_ = tree; + this.bh_ = false; +} +function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { + if (!parentNode) { + parentNode = new VDocumentFragment(); } - if (flags & FLAG_WILL_RERENDER_IN_BROWSER$1) { - if (component.onCreate) { - component.onCreate(input, { global: global2 }); - } - if (component.onInput) { - input = component.onInput(input, { global: global2 }) || input; - } + var state; + if (parentOut) { + state = parentOut.J_; } else { - if (state) { - var undefinedPropNames = extra.u; - if (undefinedPropNames) { - undefinedPropNames.forEach(function(undefinedPropName) { - state[undefinedPropName] = void 0; - }); - } - component.state = state; - } - if (componentProps) { - extend2(component, componentProps); - } - } - component.Q_ = input; - if (extra.b) { - component.N_ = extra.b; - } - var scope = extra.p; - var customEvents = extra.e; - if (customEvents) { - component._v_(customEvents, scope); + state = new State(parentNode); } - component.S_ = global2; - return { - id, - h_: component, - _F_: extra.d, - _I_: extra.f || 0 - }; -}; -var ComponentDef_1 = ComponentDef$2; -var warp10Finalize = finalize2; -var eventDelegation = eventDelegation$3; -var win = window; -var defaultDocument = document; -var createFragmentNode = fragment$1.ao_; -var componentsUtil$1 = indexBrowser$5; -var componentLookup$1 = componentsUtil$1.C_; -var addComponentRootToKeyedElements = componentsUtil$1.ap_; -var ComponentDef$1 = ComponentDef_1; -var registry$1 = indexBrowser$3; -var domData = domData$6; -var keyedElementsByComponentId = domData.F_; -var componentsByDOMNode = domData.E_; -var serverComponentRootNodes = {}; -var serverRenderedMeta = {}; -var DEFAULT_RUNTIME_ID = "M"; -var FLAG_WILL_RERENDER_IN_BROWSER = 1; -var deferredDefs; -function indexServerComponentBoundaries(node, runtimeId2, stack) { - var componentId; - var ownerId; - var ownerComponent; - var keyedElements; - var nextSibling2; - var runtimeLength = runtimeId2.length; - stack = stack || []; - node = node.firstChild; - while (node) { - nextSibling2 = node.nextSibling; - if (node.nodeType === 8) { - var commentValue = node.nodeValue; - if (commentValue.slice(0, runtimeLength) === runtimeId2) { - var firstChar = commentValue[runtimeLength]; - if (firstChar === "^" || firstChar === "#") { - stack.push(node); - } else if (firstChar === "/") { - var endNode = node; - var startNode = stack.pop(); - var rootNode; - if (startNode.parentNode === endNode.parentNode) { - rootNode = createFragmentNode(startNode.nextSibling, endNode); - } else { - rootNode = createFragmentNode(endNode.parentNode.firstChild, endNode); - } - componentId = startNode.nodeValue.substring(runtimeLength + 1); - firstChar = startNode.nodeValue[runtimeLength]; - if (firstChar === "^") { - var parts = componentId.split(/ /g); - var key = parts[2]; - ownerId = parts[1]; - componentId = parts[0]; - if (ownerComponent = componentLookup$1[ownerId]) { - keyedElements = ownerComponent.k_; - } else { - keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); - } - addComponentRootToKeyedElements(keyedElements, key, rootNode, componentId); - } - serverComponentRootNodes[componentId] = rootNode; - startNode.parentNode.removeChild(startNode); - endNode.parentNode.removeChild(endNode); - } - } - } else if (node.nodeType === 1) { - var markoKey = node.getAttribute("data-marko-key"); - var markoProps = componentsUtil$1.am_(node); - if (markoKey) { - var separatorIndex = markoKey.indexOf(" "); - ownerId = markoKey.substring(separatorIndex + 1); - markoKey = markoKey.substring(0, separatorIndex); - if (ownerComponent = componentLookup$1[ownerId]) { - keyedElements = ownerComponent.k_; - } else { - keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); + this.bi_ = 1; + this.bj_ = 0; + this.bk_ = null; + this.bl_ = parentOut; + this.data = {}; + this.J_ = state; + this.l_ = parentNode; + this.global = globalData || {}; + this.bm_ = [parentNode]; + this.bn_ = false; + this.bo_ = void 0; + this.b_ = null; + this.g_ = null; + this.i_ = null; + this.ax_ = null; +} +var proto = AsyncVDOMBuilder$1.prototype = { + aP_: true, + X_: typeof window === "object" && document, + bc: function(component, key, ownerComponent) { + var vComponent = new VComponent(component, key, ownerComponent); + return this.bp_(vComponent, 0, true); + }, + ay_: function(component, key, ownerComponent) { + var vComponent = new VComponent(component, key, ownerComponent, true); + this.bp_(vComponent, 0); + }, + bp_: function(child, childCount, pushToStack) { + this.l_.bq_(child); + if (pushToStack === true) { + this.bm_.push(child); + this.l_ = child; + } + return childCount === 0 ? this : child; + }, + element: function(tagName, attrs2, key, component, childCount, flags, props) { + var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); + return this.bp_(element, childCount); + }, + aM_: function(tagName, attrs2, key, componentDef, props) { + return this.element(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); + }, + n: function(node, component) { + var clone = node.br_(); + this.node(clone); + clone.aA_ = component; + return this; + }, + node: function(node) { + this.l_.bq_(node); + return this; + }, + text: function(text, ownerComponent) { + var type = typeof text; + if (type != "string") { + if (text == null) { + return; + } else if (type === "object") { + if (text.toHTML) { + return this.h(text.toHTML(), ownerComponent); } - keyedElements[markoKey] = node; } - if (markoProps) { - Object.keys(markoProps).forEach(function(key2) { - if (key2.slice(0, 2) === "on") { - eventDelegation._D_(key2.slice(2)); - } - }); + text = text.toString(); + } + this.l_.bq_(new VText(text, ownerComponent)); + return this; + }, + html: function(html, ownerComponent) { + if (html != null) { + var vdomNode = virtualizeHTML(html, ownerComponent); + this.node(vdomNode); + } + return this; + }, + beginElement: function(tagName, attrs2, key, component, childCount, flags, props) { + var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); + this.bp_(element, childCount, true); + return this; + }, + aK_: function(tagName, attrs2, key, componentDef, props) { + return this.beginElement(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); + }, + bf: function(key, component, preserve) { + var fragment2 = new VFragment(key, component, preserve); + this.bp_(fragment2, null, true); + return this; + }, + ef: function() { + this.endElement(); + }, + endElement: function() { + var stack = this.bm_; + stack.pop(); + this.l_ = stack[stack.length - 1]; + }, + end: function() { + this.l_ = void 0; + var remaining = --this.bi_; + var parentOut = this.bl_; + if (remaining === 0) { + if (parentOut) { + parentOut.bs_(); + } else { + this.bt_(); } - indexServerComponentBoundaries(node, runtimeId2, stack); + } else if (remaining - this.bj_ === 0) { + this.bu_(); } - node = nextSibling2; - } -} -function invokeComponentEventHandler(component, targetMethodName, args) { - var method = component[targetMethodName]; - if (!method) { - throw Error("Method not found: " + targetMethodName); - } - method.apply(component, args); -} -function addEventListenerHelper(el, eventType, isOnce, listener) { - var eventListener = listener; - if (isOnce) { - eventListener = function(event) { - listener(event); - el.removeEventListener(eventType, eventListener); - }; - } - el.addEventListener(eventType, eventListener, false); - return function remove() { - el.removeEventListener(eventType, eventListener); - }; -} -function addDOMEventListeners(component, el, eventType, targetMethodName, isOnce, extraArgs, handles) { - var removeListener2 = addEventListenerHelper(el, eventType, isOnce, function(event) { - var args = [event, el]; - if (extraArgs) { - args = extraArgs.concat(args); + return this; + }, + bs_: function() { + var remaining = --this.bi_; + if (remaining === 0) { + var parentOut = this.bl_; + if (parentOut) { + parentOut.bs_(); + } else { + this.bt_(); + } + } else if (remaining - this.bj_ === 0) { + this.bu_(); } - invokeComponentEventHandler(component, targetMethodName, args); - }); - handles.push(removeListener2); -} -function initComponent(componentDef, doc) { - var component = componentDef.h_; - component.I_(); - component.X_ = doc; - var isExisting = componentDef._G_; - if (isExisting) { - component._b_(); - } - var domEvents = componentDef._F_; - if (domEvents) { - var eventListenerHandles = []; - domEvents.forEach(function(domEventArgs) { - var eventType = domEventArgs[0]; - var targetMethodName = domEventArgs[1]; - var eventEl = component.k_[domEventArgs[2]]; - var isOnce = domEventArgs[3]; - var extraArgs = domEventArgs[4]; - addDOMEventListeners(component, eventEl, eventType, targetMethodName, isOnce, extraArgs, eventListenerHandles); + }, + bt_: function() { + var state = this.J_; + state.bh_ = true; + state.bf_.emit(EVENT_FINISH, this.aQ_()); + }, + bu_: function() { + var lastArray = this._last; + var i = 0; + function next() { + if (i === lastArray.length) { + return; + } + var lastCallback = lastArray[i++]; + lastCallback(next); + if (!lastCallback.length) { + next(); + } + } + next(); + }, + error: function(e) { + try { + this.emit("error", e); + } finally { + this.end(); + } + return this; + }, + beginAsync: function(options) { + if (this.bn_) { + throw Error("Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."); + } + var state = this.J_; + if (options) { + if (options.last) { + this.bj_++; + } + } + this.bi_++; + var documentFragment = this.l_.bv_(); + var asyncOut = new AsyncVDOMBuilder$1(this.global, documentFragment, this); + state.bf_.emit("beginAsync", { + out: asyncOut, + parentOut: this }); - if (eventListenerHandles.length) { - component.M_ = eventListenerHandles; + return asyncOut; + }, + createOut: function() { + return new AsyncVDOMBuilder$1(this.global); + }, + flush: function() { + var events = this.J_.bf_; + if (events.listenerCount(EVENT_UPDATE)) { + events.emit(EVENT_UPDATE, new RenderResult(this)); } - } - if (component.R_) { - component.H_(); - } else { - component.R_ = true; - component._z_(); - } -} -function initClientRendered(componentDefs, doc) { - eventDelegation.an_(doc); - doc = doc || defaultDocument; - var len = componentDefs.length; - var componentDef; - var i; - for (i = len; i--; ) { - componentDef = componentDefs[i]; - trackComponent(componentDef); - } - for (i = len; i--; ) { - componentDef = componentDefs[i]; - initComponent(componentDef, doc); - } -} -function initServerRendered(renderedComponents, doc) { - var type = typeof renderedComponents; - var globalKey = "$"; - var runtimeId2; - if (type !== "object") { - if (type === "string") { - runtimeId2 = renderedComponents; - globalKey += runtimeId2 + "_C"; + }, + B_: function() { + return this.J_.bg_; + }, + aQ_: function() { + return this.bw_ || (this.bw_ = new RenderResult(this)); + }, + on: function(event, callback) { + var state = this.J_; + if (event === EVENT_FINISH && state.bh_) { + callback(this.aQ_()); + } else if (event === "last") { + this.onLast(callback); } else { - globalKey += (runtimeId2 = DEFAULT_RUNTIME_ID) + "C"; - } - renderedComponents = win[globalKey]; - var fakeArray = win[globalKey] = { - r: runtimeId2, - concat: initServerRendered - }; - if (renderedComponents && renderedComponents.forEach) { - renderedComponents.forEach(function(renderedComponent) { - fakeArray.concat(renderedComponent); - }); + state.bf_.on(event, callback); } - return fakeArray; - } - var isFromSerializedGlobals = this.concat === initServerRendered; - renderedComponents = warp10Finalize(renderedComponents); - if (isFromSerializedGlobals) { - runtimeId2 = this.r; - doc = defaultDocument; - } else { - runtimeId2 = renderedComponents.r || DEFAULT_RUNTIME_ID; - doc = doc || defaultDocument; - } - var prefix = renderedComponents.p || ""; - var meta = serverRenderedMeta[prefix]; - var isLast = renderedComponents.l; - if (meta) { - if (isLast) { - delete serverRenderedMeta[prefix]; + return this; + }, + once: function(event, callback) { + var state = this.J_; + if (event === EVENT_FINISH && state.bh_) { + callback(this.aQ_()); + } else if (event === "last") { + this.onLast(callback); + } else { + state.bf_.once(event, callback); } - } else { - meta = {}; - if (!isLast) { - serverRenderedMeta[prefix] = meta; + return this; + }, + emit: function(type, arg) { + var events = this.J_.bf_; + switch (arguments.length) { + case 1: + events.emit(type); + break; + case 2: + events.emit(type, arg); + break; + default: + events.emit.apply(events, arguments); + break; } - } - indexServerComponentBoundaries(doc, runtimeId2); - eventDelegation.an_(doc); - if (renderedComponents.g) { - meta.aq_ = renderedComponents.g; - } - if (renderedComponents.t) { - meta.ar_ = meta.ar_ ? meta.ar_.concat(renderedComponents.t) : renderedComponents.t; - } - (renderedComponents.w || []).map(function(componentDef) { - var typeName = meta.ar_[componentDef[1]]; - return registry$1.as_(typeName) ? tryHydrateComponent(componentDef, meta, doc, runtimeId2) : registry$1.at_(componentDef, typeName, meta, doc, runtimeId2); - }).reverse().forEach(tryInvoke); - return this; -} -function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { - var componentDef = ComponentDef$1._O_(rawDef, meta.ar_, meta.aq_, registry$1); - var mount = hydrateComponentAndGetMount(componentDef, doc); - if (!mount) { - if (deferredDefs) { - deferredDefs.push(componentDef); + return this; + }, + removeListener: function() { + var events = this.J_.bf_; + events.removeListener.apply(events, arguments); + return this; + }, + sync: function() { + this.bn_ = true; + }, + isSync: function() { + return this.bn_; + }, + onLast: function(callback) { + var lastArray = this._last; + if (lastArray === void 0) { + this._last = [callback]; } else { - deferredDefs = [componentDef]; - doc.addEventListener("DOMContentLoaded", function() { - indexServerComponentBoundaries(doc, runtimeId2); - deferredDefs.map(function(componentDef2) { - return hydrateComponentAndGetMount(componentDef2, doc); - }).reverse().forEach(tryInvoke); - deferredDefs = void 0; - }); + lastArray.push(callback); } - } - return mount; -} -function hydrateComponentAndGetMount(componentDef, doc) { - var componentId = componentDef.id; - var component = componentDef.h_; - var rootNode = serverComponentRootNodes[componentId]; - var renderResult; - if (rootNode) { - delete serverComponentRootNodes[componentId]; - component.K_ = rootNode; - componentsByDOMNode.set(rootNode, component); - if (componentDef._I_ & FLAG_WILL_RERENDER_IN_BROWSER) { - component.X_ = doc; - renderResult = component._p_(component.Q_, true); - trackComponent(componentDef); - return function mount() { - renderResult.afterInsert(doc); - }; - } else { - trackComponent(componentDef); + return this; + }, + A_: function(host) { + var node = this.bo_; + if (!node) { + var vdomTree = this.B_(); + if (!host) + host = this.X_; + this.bo_ = node = vdomTree.bx_(host, null); + morphdom(node, vdomTree, host, this.b_); } - return function mount() { - initComponent(componentDef, doc); - }; - } -} -function trackComponent(componentDef) { - var component = componentDef.h_; - if (component) { - componentLookup$1[component.id] = component; - } -} -function tryInvoke(fn) { - if (fn) - fn(); -} -indexBrowser$2._R_ = initClientRendered; -indexBrowser$2.ai_ = initServerRendered; -indexBrowser$2.au_ = tryHydrateComponent; -var initComponents$1 = indexBrowser$2; -ComponentsContext$1.exports._R_ = initComponents$1._R_; -window.$initComponents = initComponents$1.ai_; -var queueMicrotask$1 = queueMicrotask_1; -var defineComponent2 = defineComponent$1; -var initComponents = indexBrowser$2; -var registered = {}; -var loaded = {}; -var componentTypes = {}; -var pendingDefs; -function register(type, def) { - var pendingForType; - if (pendingDefs) { - pendingForType = pendingDefs[type]; - } - registered[type] = def; - delete loaded[type]; - delete componentTypes[type]; - if (pendingForType) { - delete pendingDefs[type]; - queueMicrotask$1(function() { - pendingForType.forEach(function(args) { - initComponents.au_(args[0], args[1], args[2], args[3])(); + return node; + }, + toString: function(host) { + var docFragment = this.A_(host); + var html = ""; + var child = docFragment.firstChild; + while (child) { + var nextSibling2 = child.nextSibling; + if (child.nodeType != 1) { + var container = docFragment.ownerDocument.createElement("div"); + container.appendChild(child.cloneNode()); + html += container.innerHTML; + } else { + html += child.outerHTML; + } + child = nextSibling2; + } + return html; + }, + then: function(fn, fnErr) { + var out = this; + var promise2 = new Promise(function(resolve2, reject) { + out.on("error", reject).on(EVENT_FINISH, function(result) { + resolve2(result); }); }); + return Promise.resolve(promise2).then(fn, fnErr); + }, + catch: function(fnErr) { + return this.then(void 0, fnErr); + }, + isVDOM: true, + c: function(componentDef, key, customEvents) { + this.g_ = componentDef; + this.i_ = key; + this.ax_ = customEvents; } - return type; -} -function addPendingDef(def, type, meta, doc, runtimeId2) { - if (!pendingDefs) { - pendingDefs = {}; - } - (pendingDefs[type] = pendingDefs[type] || []).push([ - def, - meta, - doc, - runtimeId2 - ]); -} -function isRegistered(type) { - return Boolean(registered[type]); -} -function load(typeName) { - var target = loaded[typeName]; - if (!target) { - target = registered[typeName]; - if (target) { - target = target(); - } - if (!target) { - throw Error("Component not found: " + typeName); +}; +proto.e = proto.element; +proto.be = proto.beginElement; +proto.ee = proto.aL_ = proto.endElement; +proto.t = proto.text; +proto.h = proto.w = proto.write = proto.html; +var AsyncVDOMBuilder_1 = AsyncVDOMBuilder$1; +var defaultCreateOut = createOut_1; +var setImmediate = indexBrowser$2; +var extend2 = extend$5; +function safeRender(renderFunc, finalData, finalOut, shouldEnd) { + try { + renderFunc(finalData, finalOut); + if (shouldEnd) { + finalOut.end(); } - loaded[typeName] = target; - } - return target; -} -function getComponentClass(typeName) { - var ComponentClass = componentTypes[typeName]; - if (ComponentClass) { - return ComponentClass; - } - ComponentClass = load(typeName); - ComponentClass = ComponentClass.Component || ComponentClass; - if (!ComponentClass.Y_) { - ComponentClass = defineComponent2(ComponentClass, ComponentClass.renderer); + } catch (err) { + var actualEnd = finalOut.end; + finalOut.end = function() { + }; + setImmediate(function() { + finalOut.end = actualEnd; + finalOut.error(err); + }); } - ComponentClass.prototype._N_ = typeName; - componentTypes[typeName] = ComponentClass; - return ComponentClass; + return finalOut; } -function createComponent(typeName, id) { - var ComponentClass = getComponentClass(typeName); - return new ComponentClass(id); +var renderable = function(target, renderer2) { + var renderFunc = renderer2 && (renderer2.renderer || renderer2.render || renderer2); + var createOut3 = target.createOut || renderer2.createOut || defaultCreateOut; + return extend2(target, { + createOut: createOut3, + renderToString: function(data, callback) { + var localData = data || {}; + var render = renderFunc || this._; + var globalData = localData.$global; + var out = createOut3(globalData); + out.global.template = this; + if (globalData) { + localData.$global = void 0; + } + if (callback) { + out.on("finish", function() { + callback(null, out.toString(), out); + }).once("error", callback); + return safeRender(render, localData, out, true); + } else { + out.sync(); + render(localData, out); + return out.toString(); + } + }, + renderSync: function(data) { + var localData = data || {}; + var render = renderFunc || this._; + var globalData = localData.$global; + var out = createOut3(globalData); + out.sync(); + out.global.template = this; + if (globalData) { + localData.$global = void 0; + } + render(localData, out); + return out.aQ_(); + }, + render: function(data, out) { + var callback; + var finalOut; + var finalData; + var globalData; + var render = renderFunc || this._; + var shouldBuffer = this.aS_; + var shouldEnd = true; + if (data) { + finalData = data; + if (globalData = data.$global) { + finalData.$global = void 0; + } + } else { + finalData = {}; + } + if (out && out.aP_) { + finalOut = out; + shouldEnd = false; + extend2(out.global, globalData); + } else if (typeof out == "function") { + finalOut = createOut3(globalData); + callback = out; + } else { + finalOut = createOut3(globalData, out, void 0, shouldBuffer); + } + if (callback) { + finalOut.on("finish", function() { + callback(null, finalOut.aQ_()); + }).once("error", callback); + } + globalData = finalOut.global; + globalData.template = globalData.template || this; + return safeRender(render, finalData, finalOut, shouldEnd); + } + }); +}; +var t = function createTemplate(typeName) { + return new Template(typeName); +}; +function Template(typeName) { + this.aZ_ = typeName; } -var r = indexBrowser$3.r = register; -indexBrowser$3.av_ = getComponentClass; -indexBrowser$3._P_ = createComponent; -indexBrowser$3.as_ = isRegistered; -indexBrowser$3.at_ = addPendingDef; +var AsyncVDOMBuilder = AsyncVDOMBuilder_1; +createOut_1.aE_(Template.prototype.createOut = function createOut2(globalData, parent, parentOut) { + return new AsyncVDOMBuilder(globalData, parent, parentOut); +}); +renderable(Template.prototype); +var VElement = vdom$1.b__; +var vElement = function(tagName, attrs2, key, component, childCount, flags, props) { + return new VElement(tagName, attrs2, key, component, childCount, flags, props); +}; var ComponentDef = ComponentDef_1; var indexBrowser$1 = function beginComponent(componentsContext, component, key, ownerComponentDef) { var componentId = component.id; @@ -3542,7 +3556,7 @@ var indexBrowser$1 = function beginComponent(componentsContext, component, key, var indexBrowser = function endComponent(out) { out.ee(); }; -var componentsUtil = indexBrowser$5; +var componentsUtil = indexBrowser$4; var componentLookup = componentsUtil.C_; var ComponentsContext = ComponentsContext$1.exports; var getComponentsContext = ComponentsContext.o_; @@ -3668,9 +3682,4 @@ function createRendererFunc(templateRenderFunc, componentProps, renderingLogic) }; } var renderer = createRendererFunc; -var renderTag = function renderTagHelper(handler, input, out, componentDef, key, customEvents) { - out.c(componentDef, key, customEvents); - (handler._ || (handler._ = handler.render || handler.renderer || handler))(input, out); - out.g_ = null; -}; -export { renderer as a, renderTag as b, defineComponent$1 as d, r, t, vElement as v }; +export { renderer as a, components as c, defineComponent$1 as d, r, t, vElement as v }; diff --git a/src/__tests__/__snapshots__/browser-basic.expected/index.html b/src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/index.html similarity index 58% rename from src/__tests__/__snapshots__/browser-basic.expected/index.html rename to src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/index.html index 4adb770..370ea31 100644 --- a/src/__tests__/__snapshots__/browser-basic.expected/index.html +++ b/src/__tests__/fixtures/browser-hydrate-entry/__snapshots__/browser-hydrate-entry.expected/index.html @@ -5,9 +5,9 @@ Vite App - - - + + +
diff --git a/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/index.b8f16c63.css b/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/index.css similarity index 100% rename from src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/index.b8f16c63.css rename to src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/index.css diff --git a/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/index.js b/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/index.js new file mode 100644 index 0000000..13d4605 --- /dev/null +++ b/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/index.js @@ -0,0 +1,51 @@ +import { c as components } from "./vendor.js"; +const p = function polyfill() { + const relList = document.createElement("link").relList; + if (relList && relList.supports && relList.supports("modulepreload")) { + return; + } + for (const link of document.querySelectorAll('link[rel="modulepreload"]')) { + processPreload(link); + } + new MutationObserver((mutations) => { + for (const mutation of mutations) { + if (mutation.type !== "childList") { + continue; + } + for (const node of mutation.addedNodes) { + if (node.tagName === "LINK" && node.rel === "modulepreload") + processPreload(node); + } + } + }).observe(document, { childList: true, subtree: true }); + function getFetchOpts(script) { + const fetchOpts = {}; + if (script.integrity) + fetchOpts.integrity = script.integrity; + if (script.referrerpolicy) + fetchOpts.referrerPolicy = script.referrerpolicy; + if (script.crossorigin === "use-credentials") + fetchOpts.credentials = "include"; + else if (script.crossorigin === "anonymous") + fetchOpts.credentials = "omit"; + else + fetchOpts.credentials = "same-origin"; + return fetchOpts; + } + function processPreload(link) { + if (link.ep) + return; + link.ep = true; + const fetchOpts = getFetchOpts(link); + fetch(link.href, fetchOpts); + } +}; +p(); +var index_marko = ""; +var component_0 = { + onMount() { + console.log("mounted"); + } +}; +components.register("iKnY83y7", component_0); +components.init(); diff --git a/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/vendor.d0fc20d1.js b/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/vendor.js similarity index 69% rename from src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/vendor.d0fc20d1.js rename to src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/vendor.js index 01f3ca7..2557e31 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/assets/vendor.d0fc20d1.js +++ b/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/assets/vendor.js @@ -1,264 +1,66 @@ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -var slice$1 = Array.prototype.slice; -function isFunction(arg) { - return typeof arg === "function"; -} -function checkListener(listener) { - if (!isFunction(listener)) { - throw TypeError("Invalid listener"); - } -} -function invokeListener(ee, listener, args) { - switch (args.length) { - case 1: - listener.call(ee); - break; - case 2: - listener.call(ee, args[1]); - break; - case 3: - listener.call(ee, args[1], args[2]); - break; - default: - listener.apply(ee, slice$1.call(args, 1)); +var indexBrowser$4 = {}; +var indexBrowser$3 = {}; +var constants$2 = {}; +var win$1 = typeof window !== "undefined" ? window : commonjsGlobal; +constants$2.NOOP = win$1.$W10NOOP = win$1.$W10NOOP || function() { +}; +var constants$1 = constants$2; +var isArray = Array.isArray; +function resolve(object, path, len) { + var current = object; + for (var i = 0; i < len; i++) { + current = current[path[i]]; } + return current; } -function addListener(eventEmitter, type, listener, prepend) { - checkListener(listener); - var events = eventEmitter.$e || (eventEmitter.$e = {}); - var listeners = events[type]; - if (listeners) { - if (isFunction(listeners)) { - events[type] = prepend ? [listener, listeners] : [listeners, listener]; - } else { - if (prepend) { - listeners.unshift(listener); - } else { - listeners.push(listener); - } - } +function resolveType(info) { + if (info.type === "Date") { + return new Date(info.value); + } else if (info.type === "NOOP") { + return constants$1.NOOP; } else { - events[type] = listener; + throw new Error("Bad type"); } - return eventEmitter; } -function EventEmitter$2() { - this.$e = this.$e || {}; -} -EventEmitter$2.EventEmitter = EventEmitter$2; -EventEmitter$2.prototype = { - $e: null, - emit: function(type) { - var args = arguments; - var events = this.$e; - if (!events) { - return; - } - var listeners = events && events[type]; - if (!listeners) { - if (type === "error") { - var error = args[1]; - if (!(error instanceof Error)) { - var context = error; - error = new Error("Error: " + context); - error.context = context; - } - throw error; - } - return false; - } - if (isFunction(listeners)) { - invokeListener(this, listeners, args); - } else { - listeners = slice$1.call(listeners); - for (var i = 0, len = listeners.length; i < len; i++) { - var listener = listeners[i]; - invokeListener(this, listener, args); - } - } - return true; - }, - on: function(type, listener) { - return addListener(this, type, listener, false); - }, - prependListener: function(type, listener) { - return addListener(this, type, listener, true); - }, - once: function(type, listener) { - checkListener(listener); - function g() { - this.removeListener(type, g); - if (listener) { - listener.apply(this, arguments); - listener = null; - } - } - this.on(type, g); - return this; - }, - removeListener: function(type, listener) { - checkListener(listener); - var events = this.$e; - var listeners; - if (events && (listeners = events[type])) { - if (isFunction(listeners)) { - if (listeners === listener) { - delete events[type]; +var finalize$1 = function finalize(outer) { + if (!outer) { + return outer; + } + var assignments = outer.$$; + if (assignments) { + var object = outer.o; + var len; + if (assignments && (len = assignments.length)) { + for (var i = 0; i < len; i++) { + var assignment = assignments[i]; + var rhs = assignment.r; + var rhsValue; + if (isArray(rhs)) { + rhsValue = resolve(object, rhs, rhs.length); + } else { + rhsValue = resolveType(rhs); } - } else { - for (var i = listeners.length - 1; i >= 0; i--) { - if (listeners[i] === listener) { - listeners.splice(i, 1); - } + var lhs = assignment.l; + var lhsLast = lhs.length - 1; + if (lhsLast === -1) { + object = outer.o = rhsValue; + break; + } else { + var lhsParent = resolve(object, lhs, lhsLast); + lhsParent[lhs[lhsLast]] = rhsValue; } } } - return this; - }, - removeAllListeners: function(type) { - var events = this.$e; - if (events) { - delete events[type]; - } - }, - listenerCount: function(type) { - var events = this.$e; - var listeners = events && events[type]; - return listeners ? isFunction(listeners) ? 1 : listeners.length : 0; - } -}; -var src = EventEmitter$2; -var vdom$1 = {}; -function VNode$6() { -} -VNode$6.prototype = { - bz_: function(finalChildCount, ownerComponent) { - this.bP_ = finalChildCount; - this.bQ_ = 0; - this.bF_ = null; - this.bR_ = null; - this.bC_ = null; - this.bD_ = null; - this.aA_ = ownerComponent; - }, - get _r_() { - var firstChild2 = this.bF_; - if (firstChild2 && firstChild2.bE_) { - var nestedFirstChild = firstChild2._r_; - return nestedFirstChild || firstChild2.bS_; - } - return firstChild2; - }, - get bS_() { - var nextSibling2 = this.bD_; - if (nextSibling2) { - if (nextSibling2.bE_) { - var firstChild2 = nextSibling2._r_; - return firstChild2 || nextSibling2.bS_; - } - } else { - var parentNode = this.bC_; - if (parentNode && parentNode.bE_) { - return parentNode.bS_; - } - } - return nextSibling2; - }, - br_: function(child) { - this.bQ_++; - if (this.bH_ === "textarea") { - if (child.bT_) { - var childValue = child.bU_; - this.bI_ = (this.bI_ || "") + childValue; - } else if (child.n_ || child.m_) { - this.bV_ = true; - } else { - throw TypeError(); - } - } else { - var lastChild = this.bR_; - child.bC_ = this; - if (lastChild) { - lastChild.bD_ = child; - } else { - this.bF_ = child; - } - this.bR_ = child; - } - return child; - }, - bK_: function finishChild() { - if (this.bQ_ === this.bP_ && this.bC_) { - return this.bC_.bK_(); - } else { - return this; - } - } -}; -var VNode_1 = VNode$6; -var copyProps$2 = function copyProps(from, to) { - Object.getOwnPropertyNames(from).forEach(function(name) { - var descriptor = Object.getOwnPropertyDescriptor(from, name); - Object.defineProperty(to, name, descriptor); - }); -}; -var copyProps$1 = copyProps$2; -function inherit$7(ctor, superCtor, shouldCopyProps) { - var oldProto = ctor.prototype; - var newProto = ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - writable: true, - configurable: true - } - }); - if (oldProto && shouldCopyProps !== false) { - copyProps$1(oldProto, newProto); - } - ctor.$super = superCtor; - ctor.prototype = newProto; - return ctor; -} -var inherit_1 = inherit$7; -inherit$7._inherit = inherit$7; -var extend$5 = function extend(target, source) { - if (!target) { - target = {}; - } - if (source) { - for (var propName in source) { - if (source.hasOwnProperty(propName)) { - target[propName] = source[propName]; - } - } - } - return target; -}; -var VNode$5 = VNode_1; -var inherit$6 = inherit_1; -var extend$4 = extend$5; -function VDocumentFragmentClone(other) { - extend$4(this, other); - this.bC_ = null; - this.bD_ = null; -} -function VDocumentFragment$2(out) { - this.bz_(null); - this.y_ = out; -} -VDocumentFragment$2.prototype = { - bB_: 11, - bE_: true, - bs_: function() { - return new VDocumentFragmentClone(this); - }, - by_: function(doc) { - return doc.createDocumentFragment(); + assignments.length = 0; + return object == null ? null : object; + } else { + return outer; } }; -inherit$6(VDocumentFragment$2, VNode$5); -VDocumentFragmentClone.prototype = VDocumentFragment$2.prototype; -var VDocumentFragment_1 = VDocumentFragment$2; +var finalize2 = finalize$1; +var eventDelegation$3 = {}; +var indexBrowser$2 = {}; var domData$6 = { ad_: new WeakMap(), ae_: new WeakMap(), @@ -267,7 +69,6 @@ var domData$6 = { ag_: new WeakMap(), F_: {} }; -var indexBrowser$5 = {}; var domData$5 = domData$6; var componentsByDOMNode$2 = domData$5.E_; var keysByDOMNode$2 = domData$5.ag_; @@ -275,13 +76,12 @@ var vElementsByDOMNode = domData$5.ae_; var vPropsByDOMNode = domData$5.ad_; var markoUID = window.$MUID || (window.$MUID = { i: 0 }); var runtimeId$1 = markoUID.i++; -var componentLookup$4 = {}; -var defaultDocument$3 = document; +var componentLookup$3 = {}; var EMPTY_OBJECT$2 = {}; -function getComponentForEl(el, doc) { - var node = typeof el == "string" ? (doc || defaultDocument$3).getElementById(el) : el; +function getComponentForEl(el, host) { + var node = typeof el == "string" ? ((host ? host.ownerDocument : host) || document).getElementById(el) : el; var component; - var vElement2; + var vElement; while (node) { if (node.fragment) { if (node.fragment.endNode === node) { @@ -290,8 +90,8 @@ function getComponentForEl(el, doc) { node = node.fragment; component = componentsByDOMNode$2.get(node); } - } else if (vElement2 = vElementsByDOMNode.get(node)) { - component = vElement2.aA_; + } else if (vElement = vElementsByDOMNode.get(node)) { + component = vElement.aA_; } if (component) { return component; @@ -303,7 +103,7 @@ function destroyComponentForNode$1(node) { var componentToDestroy = componentsByDOMNode$2.get(node.fragment || node); if (componentToDestroy) { componentToDestroy.Z_(); - delete componentLookup$4[componentToDestroy.id]; + delete componentLookup$3[componentToDestroy.id]; } } function destroyNodeRecursive$3(node, component) { @@ -343,10 +143,10 @@ function attachBubblingEvent$1(componentDef, handlerMethodName, isOnce, extraArg } } function getMarkoPropsFromEl$1(el) { - var vElement2 = vElementsByDOMNode.get(el); + var vElement = vElementsByDOMNode.get(el); var virtualProps; - if (vElement2) { - virtualProps = vElement2.aB_; + if (vElement) { + virtualProps = vElement.aB_; } else { virtualProps = vPropsByDOMNode.get(el); if (!virtualProps) { @@ -370,302 +170,110 @@ function addComponentRootToKeyedElements$2(keyedElements, key, rootNode, compone keyedElements[key] = rootNode; } } -indexBrowser$5.al_ = runtimeId$1; -indexBrowser$5.C_ = componentLookup$4; -indexBrowser$5.ah_ = getComponentForEl; -indexBrowser$5.aC_ = destroyComponentForNode$1; -indexBrowser$5.D_ = destroyNodeRecursive$3; -indexBrowser$5._T_ = nextComponentIdProvider$1; -indexBrowser$5._C_ = attachBubblingEvent$1; -indexBrowser$5.am_ = getMarkoPropsFromEl$1; -indexBrowser$5.ap_ = addComponentRootToKeyedElements$2; -indexBrowser$5.aD_ = normalizeComponentKey$1; -var domData$4 = domData$6; -var componentsUtil$6 = indexBrowser$5; -var vElementByDOMNode$2 = domData$4.ae_; -var VNode$4 = VNode_1; -var inherit$5 = inherit_1; -var ATTR_XLINK_HREF = "xlink:href"; -var xmlnsRegExp = /^xmlns(:|$)/; -var hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var NS_XLINK = "http://www.w3.org/1999/xlink"; -var NS_HTML = "http://www.w3.org/1999/xhtml"; -var NS_MATH = "http://www.w3.org/1998/Math/MathML"; -var NS_SVG = "http://www.w3.org/2000/svg"; -var DEFAULT_NS = { - svg: NS_SVG, - math: NS_MATH -}; -var FLAG_SIMPLE_ATTRS = 1; -var FLAG_CUSTOM_ELEMENT = 2; -var FLAG_SPREAD_ATTRS = 4; -var defineProperty = Object.defineProperty; -var ATTR_HREF = "href"; -var EMPTY_OBJECT$1 = Object.freeze({}); -function convertAttrValue(type, value) { - if (value === true) { - return ""; - } else if (type == "object") { - if (value instanceof RegExp) { - return value.source; +indexBrowser$2.al_ = runtimeId$1; +indexBrowser$2.C_ = componentLookup$3; +indexBrowser$2.ah_ = getComponentForEl; +indexBrowser$2.aC_ = destroyComponentForNode$1; +indexBrowser$2.D_ = destroyNodeRecursive$3; +indexBrowser$2._T_ = nextComponentIdProvider$1; +indexBrowser$2._C_ = attachBubblingEvent$1; +indexBrowser$2.am_ = getMarkoPropsFromEl$1; +indexBrowser$2.ap_ = addComponentRootToKeyedElements$2; +indexBrowser$2.aD_ = normalizeComponentKey$1; +var componentsUtil$5 = indexBrowser$2; +var runtimeId = componentsUtil$5.al_; +var componentLookup$2 = componentsUtil$5.C_; +var getMarkoPropsFromEl = componentsUtil$5.am_; +var TEXT_NODE$1 = 3; +var listenersAttachedKey = "$MDE" + runtimeId; +var delegatedEvents = {}; +function getEventFromEl(el, eventName) { + var virtualProps = getMarkoPropsFromEl(el); + var eventInfo = virtualProps[eventName]; + if (typeof eventInfo === "string") { + eventInfo = eventInfo.split(" "); + if (eventInfo[2]) { + eventInfo[2] = eventInfo[2] === "true"; } - } - return value + ""; -} -function assign(a, b) { - for (var key in b) { - if (hasOwnProperty$1.call(b, key)) { - a[key] = b[key]; + if (eventInfo.length == 4) { + eventInfo[3] = parseInt(eventInfo[3], 10); } } + return eventInfo; } -function setAttribute(el, namespaceURI, name, value) { - if (namespaceURI === null) { - el.setAttribute(name, value); - } else { - el.setAttributeNS(namespaceURI, name, value); - } -} -function removeAttribute(el, namespaceURI, name) { - if (namespaceURI === null) { - el.removeAttribute(name); - } else { - el.removeAttributeNS(namespaceURI, name); - } -} -function VElementClone(other) { - this.bF_ = other.bF_; - this.bC_ = null; - this.bD_ = null; - this.bA_ = other.bA_; - this.bG_ = other.bG_; - this.aB_ = other.aB_; - this.bH_ = other.bH_; - this._I_ = other._I_; - this.bI_ = other.bI_; - this.bJ_ = other.bJ_; -} -function VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - this.bz_(childCount, ownerComponent); - var constId; - if (props) { - constId = props.i; +function delegateEvent(node, eventName, target, event) { + var targetMethod = target[0]; + var targetComponentId = target[1]; + var isOnce = target[2]; + var extraArgs = target[3]; + if (isOnce) { + var virtualProps = getMarkoPropsFromEl(node); + delete virtualProps[eventName]; } - this.bA_ = key; - this._I_ = flags || 0; - this.bG_ = attrs2 || EMPTY_OBJECT$1; - this.aB_ = props || EMPTY_OBJECT$1; - this.bH_ = tagName; - this.bI_ = null; - this.bJ_ = constId; - this.n_ = false; - this.m_ = false; -} -VElement$4.prototype = { - bB_: 1, - bs_: function() { - return new VElementClone(this); - }, - e: function(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - var child = this.br_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); - if (childCount === 0) { - return this.bK_(); - } else { - return child; - } - }, - n: function(node, ownerComponent) { - node = node.bs_(); - node.aA_ = ownerComponent; - this.br_(node); - return this.bK_(); - }, - by_: function(doc, parentNamespaceURI) { - var tagName = this.bH_; - var attributes = this.bG_; - var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; - var flags = this._I_; - var el = doc.createElementNS(namespaceURI, tagName); - if (flags & FLAG_CUSTOM_ELEMENT) { - assign(el, attributes); - } else { - for (var attrName in attributes) { - var attrValue = attributes[attrName]; - if (attrValue !== false && attrValue != null) { - var type = typeof attrValue; - if (type !== "string") { - attrValue = convertAttrValue(type, attrValue); - } - if (attrName == ATTR_XLINK_HREF) { - setAttribute(el, NS_XLINK, ATTR_HREF, attrValue); - } else { - el.setAttribute(attrName, attrValue); - } - } - } - if (tagName === "textarea") { - el.defaultValue = el.value = this.q_; - } - } - vElementByDOMNode$2.set(el, this); - return el; - }, - bL_: function(name) { - var value = this.bG_[name]; - return value != null && value !== false; + var targetComponent = componentLookup$2[targetComponentId]; + if (!targetComponent) { + return; } -}; -inherit$5(VElement$4, VNode$4); -var proto$2 = VElementClone.prototype = VElement$4.prototype; -["checked", "selected", "disabled"].forEach(function(name) { - defineProperty(proto$2, name, { - get: function() { - var value = this.bG_[name]; - return value !== false && value != null; - } - }); -}); -defineProperty(proto$2, "q_", { - get: function() { - var value = this.bI_; - if (value == null) { - value = this.bG_.value; - } - return value != null && value !== false ? value + "" : this.bG_.type === "checkbox" || this.bG_.type === "radio" ? "on" : ""; + var targetFunc = typeof targetMethod === "function" ? targetMethod : targetComponent[targetMethod]; + if (!targetFunc) { + throw Error("Method not found: " + targetMethod); } -}); -VElement$4.bM_ = function(attrs2) { - return attrs2; -}; -function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { - var attributes = node.attributes; - var attrCount = attributes.length; - var attrs2 = null; - var props = null; - if (attrCount) { - attrs2 = {}; - for (var i = 0; i < attrCount; i++) { - var attr = attributes[i]; - var attrName = attr.name; - if (!xmlnsRegExp.test(attrName)) { - if (attrName === "data-marko") { - props = componentsUtil$6.am_(node); - } else if (attr.namespaceURI === NS_XLINK) { - attrs2[ATTR_XLINK_HREF] = attr.value; - } else { - attrs2[attrName] = attr.value; - } - } + if (extraArgs != null) { + if (typeof extraArgs === "number") { + extraArgs = targetComponent.N_[extraArgs]; } } - var tagName = node.nodeName; - if (node.namespaceURI === NS_HTML) { - tagName = tagName.toLowerCase(); - } - var vdomEl = new VElement$4(tagName, attrs2, null, ownerComponent, 0, 0, props); - if (vdomEl.bH_ === "textarea") { - vdomEl.bI_ = node.value; - } else if (virtualizeChildNodes2) { - virtualizeChildNodes2(node, vdomEl, ownerComponent); + if (extraArgs) { + targetFunc.apply(targetComponent, extraArgs.concat(event, node)); + } else { + targetFunc.call(targetComponent, event, node); } - return vdomEl; } -VElement$4.bN_ = virtualizeElement$1; -VElement$4.bO_ = function(fromEl, vFromEl, toEl) { - var removePreservedAttributes = VElement$4.bM_; - var fromFlags = vFromEl._I_; - var toFlags = toEl._I_; - vElementByDOMNode$2.set(fromEl, toEl); - var attrs2 = toEl.bG_; - var props = toEl.aB_; - if (toFlags & FLAG_CUSTOM_ELEMENT) { - return assign(fromEl, attrs2); - } - var attrName; - var oldAttrs = vFromEl.bG_; - if (oldAttrs) { - if (oldAttrs === attrs2) { - return; - } else { - oldAttrs = removePreservedAttributes(oldAttrs, props); - } - } - var attrValue; - if (toFlags & FLAG_SIMPLE_ATTRS && fromFlags & FLAG_SIMPLE_ATTRS) { - if (oldAttrs["class"] !== (attrValue = attrs2["class"])) { - fromEl.className = attrValue; - } - if (oldAttrs.id !== (attrValue = attrs2.id)) { - fromEl.id = attrValue; - } - if (oldAttrs.style !== (attrValue = attrs2.style)) { - fromEl.style.cssText = attrValue; - } - return; +function addDelegatedEventHandler$1(eventType) { + if (!delegatedEvents[eventType]) { + delegatedEvents[eventType] = true; } - attrs2 = removePreservedAttributes(attrs2, props, true); - var namespaceURI; - for (attrName in attrs2) { - attrValue = attrs2[attrName]; - namespaceURI = null; - if (attrName === ATTR_XLINK_HREF) { - namespaceURI = NS_XLINK; - attrName = ATTR_HREF; - } - if (attrValue == null || attrValue === false) { - removeAttribute(fromEl, namespaceURI, attrName); - } else if (oldAttrs[attrName] !== attrValue) { - var type = typeof attrValue; - if (type !== "string") { - attrValue = convertAttrValue(type, attrValue); +} +function addDelegatedEventHandlerToHost(eventType, host) { + var listeners = host[listenersAttachedKey] = host[listenersAttachedKey] || {}; + if (!listeners[eventType]) { + (host.body || host).addEventListener(eventType, listeners[eventType] = function(event) { + var propagationStopped = false; + var oldStopPropagation = event.stopPropagation; + event.stopPropagation = function() { + oldStopPropagation.call(event); + propagationStopped = true; + }; + var curNode = event.target; + if (!curNode) { + return; } - setAttribute(fromEl, namespaceURI, attrName, attrValue); - } - } - if (toEl.bA_ === null || fromFlags & FLAG_SPREAD_ATTRS) { - for (attrName in oldAttrs) { - if (!(attrName in attrs2)) { - if (attrName === ATTR_XLINK_HREF) { - fromEl.removeAttributeNS(ATTR_XLINK_HREF, ATTR_HREF); - } else { - fromEl.removeAttribute(attrName); + curNode = curNode.correspondingUseElement || (curNode.nodeType === TEXT_NODE$1 ? curNode.parentNode : curNode); + var propName = "on" + eventType; + var target; + do { + if (target = getEventFromEl(curNode, propName)) { + delegateEvent(curNode, propName, target, event); + if (propagationStopped) { + break; + } } - } - } + } while ((curNode = curNode.parentNode) && curNode.getAttribute); + }, true); } -}; -var VElement_1 = VElement$4; -var VNode$3 = VNode_1; -var inherit$4 = inherit_1; -function VText$2(value, ownerComponent) { - this.bz_(-1, ownerComponent); - this.bU_ = value; } -VText$2.prototype = { - bT_: true, - bB_: 3, - by_: function(doc) { - return doc.createTextNode(this.bU_); - }, - bs_: function() { - return new VText$2(this.bU_); - } -}; -inherit$4(VText$2, VNode$3); -var VText_1 = VText$2; -var VNode$2 = VNode_1; -var inherit$3 = inherit_1; -function VComponent$2(component, key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; - this.h_ = component; - this.n_ = preserve; +function noop() { } -VComponent$2.prototype = { - bB_: 2 +eventDelegation$3.ab_ = noop; +eventDelegation$3.___ = noop; +eventDelegation$3._Z_ = delegateEvent; +eventDelegation$3.a__ = getEventFromEl; +eventDelegation$3._D_ = addDelegatedEventHandler$1; +eventDelegation$3.an_ = function(host) { + Object.keys(delegatedEvents).forEach(function(eventType) { + addDelegatedEventHandlerToHost(eventType, host); + }); }; -inherit$3(VComponent$2, VNode$2); -var VComponent_1 = VComponent$2; var fragment$1 = {}; var helpers$3 = {}; function insertBefore$3(node, referenceNode, parentNode) { @@ -697,7 +305,7 @@ function removeChild$2(node) { } helpers$3.aF_ = insertBefore$3; helpers$3.aG_ = insertAfter$2; -helpers$3.bS_ = nextSibling$1; +helpers$3.bR_ = nextSibling$1; helpers$3._r_ = firstChild$1; helpers$3.aH_ = removeChild$2; var helpers$2 = helpers$3; @@ -763,121 +371,231 @@ function createFragmentNode$3(startNode, nextNode, parentNode) { } function beginFragmentNode$1(startNode, parentNode) { var fragment2 = createFragmentNode$3(startNode, null, parentNode); - fragment2.bY_ = function(nextNode) { - fragment2.bY_ = null; + fragment2.bX_ = function(nextNode) { + fragment2.bX_ = null; insertBefore$2(fragment2.endNode, nextNode, parentNode || startNode.parentNode); }; return fragment2; } fragment$1.ao_ = createFragmentNode$3; -fragment$1.bZ_ = beginFragmentNode$1; -var domData$3 = domData$6; -var keysByDOMNode$1 = domData$3.ag_; -var vElementByDOMNode$1 = domData$3.ae_; -var VNode$1 = VNode_1; -var inherit$2 = inherit_1; -var createFragmentNode$2 = fragment$1.ao_; -function VFragment$2(key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; - this.n_ = preserve; -} -VFragment$2.prototype = { - bB_: 12, - by_: function() { - var fragment2 = createFragmentNode$2(); - keysByDOMNode$1.set(fragment2, this.bA_); - vElementByDOMNode$1.set(fragment2, this); - return fragment2; +fragment$1.bY_ = beginFragmentNode$1; +var constants = constants$2; +var extend$4 = function extend(target, source) { + if (!target) { + target = {}; } -}; -inherit$2(VFragment$2, VNode$1); -var VFragment_1 = VFragment$2; -var parseHTML$1 = function(html) { - var container = document.createElement("template"); - parseHTML$1 = container.content ? function(html2) { - container.innerHTML = html2; - return container.content; - } : function(html2) { - container.innerHTML = html2; - return container; - }; - return parseHTML$1(html); -}; -var parseHtml = function(html) { - return parseHTML$1(html).firstChild; -}; -var VNode = VNode_1; -var VDocumentFragment$1 = VDocumentFragment_1; -var VElement$3 = VElement_1; -var VText$1 = VText_1; -var VComponent$1 = VComponent_1; -var VFragment$1 = VFragment_1; -var parseHTML = parseHtml; -var defaultDocument$2 = typeof document != "undefined" && document; -var specialHtmlRegexp = /[&<]/; -function virtualizeChildNodes(node, vdomParent, ownerComponent) { - var curChild = node.firstChild; - while (curChild) { - vdomParent.br_(virtualize(curChild, ownerComponent)); - curChild = curChild.nextSibling; + if (source) { + for (var propName in source) { + if (source.hasOwnProperty(propName)) { + target[propName] = source[propName]; + } + } } + return target; +}; +function KeySequence$2() { + this._V_ = Object.create(null); } -function virtualize(node, ownerComponent) { - switch (node.nodeType) { - case 1: - return VElement$3.bN_(node, virtualizeChildNodes, ownerComponent); - case 3: - return new VText$1(node.nodeValue, ownerComponent); - case 11: - var vdomDocFragment = new VDocumentFragment$1(); - virtualizeChildNodes(node, vdomDocFragment, ownerComponent); - return vdomDocFragment; +KeySequence$2.prototype._L_ = function(key) { + var lookup = this._V_; + if (lookup[key]) { + return key + "_" + lookup[key]++; } + lookup[key] = 1; + return key; +}; +var KeySequence_1 = KeySequence$2; +var w10Noop = constants.NOOP; +var componentUtil = indexBrowser$2; +var attachBubblingEvent = componentUtil._C_; +var addDelegatedEventHandler = eventDelegation$3._D_; +var extend$3 = extend$4; +var KeySequence$1 = KeySequence_1; +var EMPTY_OBJECT$1 = {}; +var FLAG_WILL_RERENDER_IN_BROWSER$1 = 1; +var FLAG_HAS_RENDER_BODY = 2; +function ComponentDef$1(component, componentId, componentsContext) { + this._E_ = componentsContext; + this.h_ = component; + this.id = componentId; + this._F_ = void 0; + this._G_ = false; + this._H_ = false; + this._I_ = 0; + this._J_ = 0; + this._K_ = null; } -function virtualizeHTML$1(html, doc, ownerComponent) { - if (!specialHtmlRegexp.test(html)) { - return new VText$1(html, ownerComponent); +ComponentDef$1.prototype = { + _L_: function(key) { + return (this._K_ || (this._K_ = new KeySequence$1()))._L_(key); + }, + elId: function(nestedId) { + var id = this.id; + if (nestedId == null) { + return id; + } else { + if (typeof nestedId !== "string") { + nestedId = String(nestedId); + } + if (nestedId.indexOf("#") === 0) { + id = "#" + id; + nestedId = nestedId.substring(1); + } + return id + "-" + nestedId; + } + }, + _M_: function() { + return this.id + "-c" + this._J_++; + }, + d: function(eventName, handlerMethodName, isOnce, extraArgs) { + addDelegatedEventHandler(eventName); + return attachBubblingEvent(this, handlerMethodName, isOnce, extraArgs); + }, + get _N_() { + return this.h_._N_; } - var vdomFragment = new VDocumentFragment$1(); - var curChild = parseHTML(html); - while (curChild) { - vdomFragment.br_(virtualize(curChild, ownerComponent)); - curChild = curChild.nextSibling; +}; +ComponentDef$1.prototype.nk = ComponentDef$1.prototype._L_; +ComponentDef$1._O_ = function(o, types, global2, registry2) { + var id = o[0]; + var typeName = types[o[1]]; + var input = o[2] || null; + var extra = o[3] || EMPTY_OBJECT$1; + var state = extra.s; + var componentProps = extra.w; + var flags = extra.f; + var component = registry2._P_(typeName, id); + component.U_ = true; + if (flags & FLAG_HAS_RENDER_BODY) { + (input || (input = {})).renderBody = w10Noop; } - return vdomFragment; -} -var Node_prototype = VNode.prototype; -Node_prototype.t = function(value) { - var type = typeof value; - var vdomNode; - if (type !== "string") { - if (value == null) { - value = ""; - } else if (type === "object") { - if (value.toHTML) { - vdomNode = virtualizeHTML$1(value.toHTML()); + if (flags & FLAG_WILL_RERENDER_IN_BROWSER$1) { + if (component.onCreate) { + component.onCreate(input, { global: global2 }); + } + if (component.onInput) { + input = component.onInput(input, { global: global2 }) || input; + } + } else { + if (state) { + var undefinedPropNames = extra.u; + if (undefinedPropNames) { + undefinedPropNames.forEach(function(undefinedPropName) { + state[undefinedPropName] = void 0; + }); } + component.state = state; } + if (componentProps) { + extend$3(component, componentProps); + } + } + component.Q_ = input; + if (extra.b) { + component.N_ = extra.b; + } + var scope = extra.p; + var customEvents = extra.e; + if (customEvents) { + component._v_(customEvents, scope); } - this.br_(vdomNode || new VText$1(value.toString())); - return this.bK_(); + component.S_ = global2; + return { + id, + h_: component, + _F_: extra.d, + _I_: extra.f || 0 + }; }; -Node_prototype.bw_ = function() { - return this.br_(new VDocumentFragment$1()); +var ComponentDef_1 = ComponentDef$1; +var indexBrowser$1 = {}; +var promise; +var queueMicrotask_1 = typeof queueMicrotask === "function" ? queueMicrotask : typeof Promise === "function" && (promise = Promise.resolve()) ? function(cb) { + promise.then(cb).catch(rethrow); +} : setTimeout; +function rethrow(err) { + setTimeout(function() { + throw err; + }); +} +var extend$2 = extend$4; +function ensure(state, propertyName) { + var proto2 = state.constructor.prototype; + if (!(propertyName in proto2)) { + Object.defineProperty(proto2, propertyName, { + get: function() { + return this._u_[propertyName]; + }, + set: function(value) { + this._f_(propertyName, value, false); + } + }); + } +} +function State(component) { + this.h_ = component; + this._u_ = {}; + this.V_ = false; + this._l_ = null; + this._k_ = null; + this._Y_ = null; + Object.seal(this); +} +State.prototype = { + I_: function() { + var self2 = this; + self2.V_ = false; + self2._l_ = null; + self2._k_ = null; + self2._Y_ = null; + }, + _d_: function(newState) { + var state = this; + var key; + var rawState = this._u_; + for (key in rawState) { + if (!(key in newState)) { + state._f_(key, void 0, false, false); + } + } + for (key in newState) { + state._f_(key, newState[key], true, false); + } + }, + _f_: function(name, value, shouldEnsure, forceDirty) { + var rawState = this._u_; + if (shouldEnsure) { + ensure(this, name); + } + if (forceDirty) { + var forcedDirtyState = this._Y_ || (this._Y_ = {}); + forcedDirtyState[name] = true; + } else if (rawState[name] === value) { + return; + } + if (!this.V_) { + this.V_ = true; + this._l_ = rawState; + this._u_ = rawState = extend$2({}, rawState); + this._k_ = {}; + this.h_._e_(); + } + this._k_[name] = value; + if (value === void 0) { + delete rawState[name]; + } else { + rawState[name] = value; + } + }, + toJSON: function() { + return this._u_; + } }; -vdom$1.ba_ = VDocumentFragment$1; -vdom$1.b__ = VElement$3; -vdom$1.bb_ = VText$1; -vdom$1.bc_ = VComponent$1; -vdom$1.bd_ = VFragment$1; -vdom$1.bN_ = virtualize; -vdom$1.be_ = virtualizeHTML$1; -vdom$1.bf_ = defaultDocument$2; -var extend$3 = extend$5; -var componentsUtil$5 = indexBrowser$5; -var destroyComponentForNode = componentsUtil$5.aC_; -var destroyNodeRecursive$2 = componentsUtil$5.D_; +var State_1 = State; +var extend$1 = extend$4; +var componentsUtil$4 = indexBrowser$2; +var destroyComponentForNode = componentsUtil$4.aC_; +var destroyNodeRecursive$2 = componentsUtil$4.D_; var helpers$1 = helpers$3; var insertBefore$1 = helpers$1.aF_; var insertAfter$1 = helpers$1.aG_; @@ -897,7 +615,7 @@ function beforeRemove(referenceEl) { destroyComponentForNode(referenceEl); } var domInsert$2 = function(target, getEl3, afterInsert3) { - extend$3(target, { + extend$1(target, { appendTo: function(referenceEl) { referenceEl = resolveEl(referenceEl); var el = getEl3(this, referenceEl); @@ -945,49 +663,242 @@ var domInsert$2 = function(target, getEl3, afterInsert3) { } }); }; -var domInsert$1 = domInsert$2; -function getComponentDefs(result) { - var componentDefs = result.b_; - if (!componentDefs) { - throw Error("No component"); - } - return componentDefs; +var actualCreateOut; +function setCreateOut(createOutFunc) { + actualCreateOut = createOutFunc; } -function RenderResult$2(out) { - this.out = this.y_ = out; - this.b_ = void 0; +function createOut(globalData) { + return actualCreateOut(globalData); } -var RenderResult_1 = RenderResult$2; -var proto$1 = RenderResult$2.prototype = { - getComponent: function() { - return this.getComponents()[0]; - }, - getComponents: function(selector) { - if (this.b_ === void 0) { - throw Error("Not added to DOM"); - } - var componentDefs = getComponentDefs(this); - var components = []; - componentDefs.forEach(function(componentDef) { - var component = componentDef.h_; - if (!selector || selector(component)) { - components.push(component); - } - }); - return components; - }, - afterInsert: function(doc) { - var out = this.y_; - var componentsContext = out.b_; +createOut.aE_ = setCreateOut; +var createOut_1 = createOut; +var ComponentsContext = { exports: {} }; +var nextComponentIdProvider = indexBrowser$2._T_; +function GlobalComponentsContext(out) { + this._U_ = {}; + this._q_ = void 0; + this._M_ = nextComponentIdProvider(out); +} +var GlobalComponentsContext_1 = GlobalComponentsContext; +(function(module, exports) { + var GlobalComponentsContext2 = GlobalComponentsContext_1; + function ComponentsContext2(out, parentComponentsContext) { + var globalComponentsContext; + var componentDef; + if (parentComponentsContext) { + globalComponentsContext = parentComponentsContext.e_; + componentDef = parentComponentsContext.j_; + var nestedContextsForParent; + if (!(nestedContextsForParent = parentComponentsContext._Q_)) { + nestedContextsForParent = parentComponentsContext._Q_ = []; + } + nestedContextsForParent.push(this); + } else { + globalComponentsContext = out.global.b_; + if (globalComponentsContext === void 0) { + out.global.b_ = globalComponentsContext = new GlobalComponentsContext2(out); + } + } + this.e_ = globalComponentsContext; + this.b_ = []; + this.y_ = out; + this.j_ = componentDef; + this._Q_ = void 0; + this.p_ = parentComponentsContext && parentComponentsContext.p_; + } + ComponentsContext2.prototype = { + z_: function(host) { + var componentDefs = this.b_; + ComponentsContext2._R_(componentDefs, host); + this.y_.emit("_S_"); + this.y_.global.b_ = void 0; + return componentDefs; + } + }; + function getComponentsContext2(out) { + return out.b_ || (out.b_ = new ComponentsContext2(out)); + } + module.exports = exports = ComponentsContext2; + exports.o_ = getComponentsContext2; +})(ComponentsContext, ComponentsContext.exports); +var slice$1 = Array.prototype.slice; +function isFunction(arg) { + return typeof arg === "function"; +} +function checkListener(listener) { + if (!isFunction(listener)) { + throw TypeError("Invalid listener"); + } +} +function invokeListener(ee, listener, args) { + switch (args.length) { + case 1: + listener.call(ee); + break; + case 2: + listener.call(ee, args[1]); + break; + case 3: + listener.call(ee, args[1], args[2]); + break; + default: + listener.apply(ee, slice$1.call(args, 1)); + } +} +function addListener(eventEmitter, type, listener, prepend) { + checkListener(listener); + var events = eventEmitter.$e || (eventEmitter.$e = {}); + var listeners = events[type]; + if (listeners) { + if (isFunction(listeners)) { + events[type] = prepend ? [listener, listeners] : [listeners, listener]; + } else { + if (prepend) { + listeners.unshift(listener); + } else { + listeners.push(listener); + } + } + } else { + events[type] = listener; + } + return eventEmitter; +} +function EventEmitter$1() { + this.$e = this.$e || {}; +} +EventEmitter$1.EventEmitter = EventEmitter$1; +EventEmitter$1.prototype = { + $e: null, + emit: function(type) { + var args = arguments; + var events = this.$e; + if (!events) { + return; + } + var listeners = events && events[type]; + if (!listeners) { + if (type === "error") { + var error = args[1]; + if (!(error instanceof Error)) { + var context = error; + error = new Error("Error: " + context); + error.context = context; + } + throw error; + } + return false; + } + if (isFunction(listeners)) { + invokeListener(this, listeners, args); + } else { + listeners = slice$1.call(listeners); + for (var i = 0, len = listeners.length; i < len; i++) { + var listener = listeners[i]; + invokeListener(this, listener, args); + } + } + return true; + }, + on: function(type, listener) { + return addListener(this, type, listener, false); + }, + prependListener: function(type, listener) { + return addListener(this, type, listener, true); + }, + once: function(type, listener) { + checkListener(listener); + function g() { + this.removeListener(type, g); + if (listener) { + listener.apply(this, arguments); + listener = null; + } + } + this.on(type, g); + return this; + }, + removeListener: function(type, listener) { + checkListener(listener); + var events = this.$e; + var listeners; + if (events && (listeners = events[type])) { + if (isFunction(listeners)) { + if (listeners === listener) { + delete events[type]; + } + } else { + for (var i = listeners.length - 1; i >= 0; i--) { + if (listeners[i] === listener) { + listeners.splice(i, 1); + } + } + } + } + return this; + }, + removeAllListeners: function(type) { + var events = this.$e; + if (events) { + delete events[type]; + } + }, + listenerCount: function(type) { + var events = this.$e; + var listeners = events && events[type]; + return listeners ? isFunction(listeners) ? 1 : listeners.length : 0; + } +}; +var src = EventEmitter$1; +var domInsert$1 = domInsert$2; +function getRootNode(el) { + var cur = el; + while (cur.parentNode) + cur = cur.parentNode; + return cur; +} +function getComponentDefs(result) { + var componentDefs = result.b_; + if (!componentDefs) { + throw Error("No component"); + } + return componentDefs; +} +function RenderResult$1(out) { + this.out = this.y_ = out; + this.b_ = void 0; +} +var RenderResult_1 = RenderResult$1; +var proto$1 = RenderResult$1.prototype = { + getComponent: function() { + return this.getComponents()[0]; + }, + getComponents: function(selector) { + if (this.b_ === void 0) { + throw Error("Not added to DOM"); + } + var componentDefs = getComponentDefs(this); + var components2 = []; + componentDefs.forEach(function(componentDef) { + var component = componentDef.h_; + if (!selector || selector(component)) { + components2.push(component); + } + }); + return components2; + }, + afterInsert: function(host) { + var out = this.y_; + var componentsContext = out.b_; if (componentsContext) { - this.b_ = componentsContext.z_(doc); + this.b_ = componentsContext.z_(host); } else { this.b_ = null; } return this; }, - getNode: function(doc) { - return this.y_.A_(doc); + getNode: function(host) { + return this.y_.A_(host); }, getOutput: function() { return this.y_.B_(); @@ -995,7 +906,7 @@ var proto$1 = RenderResult$2.prototype = { toString: function() { return this.y_.toString(); }, - document: typeof document != "undefined" && document + document: typeof window === "object" && document }; Object.defineProperty(proto$1, "html", { get: function() { @@ -1008,1528 +919,1248 @@ Object.defineProperty(proto$1, "context", { } }); domInsert$1(proto$1, function getEl(renderResult, referenceEl) { - return renderResult.getNode(referenceEl.ownerDocument); + return renderResult.getNode(getRootNode(referenceEl)); }, function afterInsert(renderResult, referenceEl) { - var isShadow = typeof ShadowRoot === "function" && referenceEl instanceof ShadowRoot; - return renderResult.afterInsert(isShadow ? referenceEl : referenceEl.ownerDocument); + return renderResult.afterInsert(getRootNode(referenceEl)); }); -function syncBooleanAttrProp(fromEl, toEl, name) { - if (fromEl[name] !== toEl[name]) { - fromEl[name] = toEl[name]; - if (fromEl[name]) { - fromEl.setAttribute(name, ""); - } else { - fromEl.removeAttribute(name, ""); - } +var listenerTracker = { exports: {} }; +(function(module, exports) { + var INDEX_EVENT = 0; + var INDEX_USER_LISTENER = 1; + var INDEX_WRAPPED_LISTENER = 2; + var DESTROY = "destroy"; + function isNonEventEmitter(target) { + return !target.once; } -} -function forEachOption(el, fn, i) { - var curChild = el._r_; - while (curChild) { - if (curChild.bH_ === "option") { - fn(curChild, ++i); - } else { - i = forEachOption(curChild, fn, i); - } - curChild = curChild.bS_; + function EventEmitterWrapper(target) { + this.$__target = target; + this.$__listeners = []; + this.$__subscribeTo = null; } - return i; -} -function SpecialElHandlers() { -} -SpecialElHandlers.prototype = { - option: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "selected"); - }, - button: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "disabled"); - }, - input: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "checked"); - syncBooleanAttrProp(fromEl, toEl, "disabled"); - if (fromEl.value != toEl.q_) { - fromEl.value = toEl.q_; - } - if (fromEl.hasAttribute("value") && !toEl.bL_("value")) { - fromEl.removeAttribute("value"); - } - }, - textarea: function(fromEl, toEl) { - if (toEl.bV_) { - return; - } - var newValue = toEl.q_; - if (fromEl.value != newValue) { - fromEl.value = newValue; - } - var firstChild2 = fromEl.firstChild; - if (firstChild2) { - var oldValue = firstChild2.nodeValue; - if (oldValue == newValue || !newValue && oldValue == fromEl.placeholder) { - return; + EventEmitterWrapper.prototype = { + $__remove: function(test, testWrapped) { + var target = this.$__target; + var listeners = this.$__listeners; + this.$__listeners = listeners.filter(function(curListener) { + var curEvent = curListener[INDEX_EVENT]; + var curListenerFunc = curListener[INDEX_USER_LISTENER]; + var curWrappedListenerFunc = curListener[INDEX_WRAPPED_LISTENER]; + if (testWrapped) { + if (curWrappedListenerFunc && test(curEvent, curWrappedListenerFunc)) { + target.removeListener(curEvent, curWrappedListenerFunc); + return false; + } + } else if (test(curEvent, curListenerFunc)) { + target.removeListener(curEvent, curWrappedListenerFunc || curListenerFunc); + return false; + } + return true; + }); + var subscribeTo = this.$__subscribeTo; + if (!this.$__listeners.length && subscribeTo) { + var self2 = this; + var subscribeToList = subscribeTo.$__subscribeToList; + subscribeTo.$__subscribeToList = subscribeToList.filter(function(cur) { + return cur !== self2; + }); } - firstChild2.nodeValue = newValue; - } - }, - select: function(fromEl, toEl) { - if (!toEl.bL_("multiple")) { - var selected = 0; - forEachOption(toEl, function(option, i) { - if (option.bL_("selected")) { - selected = i; + }, + on: function(event, listener) { + this.$__target.on(event, listener); + this.$__listeners.push([event, listener]); + return this; + }, + once: function(event, listener) { + var self2 = this; + var wrappedListener = function() { + self2.$__remove(function(event2, listenerFunc) { + return wrappedListener === listenerFunc; + }, true); + listener.apply(this, arguments); + }; + this.$__target.once(event, wrappedListener); + this.$__listeners.push([event, listener, wrappedListener]); + return this; + }, + removeListener: function(event, listener) { + if (typeof event === "function") { + listener = event; + event = null; + } + if (listener && event) { + this.$__remove(function(curEvent, curListener) { + return event === curEvent && listener === curListener; + }); + } else if (listener) { + this.$__remove(function(curEvent, curListener) { + return listener === curListener; + }); + } else if (event) { + this.removeAllListeners(event); + } + return this; + }, + removeAllListeners: function(event) { + var listeners = this.$__listeners; + var target = this.$__target; + if (event) { + this.$__remove(function(curEvent, curListener) { + return event === curEvent; + }); + } else { + for (var i = listeners.length - 1; i >= 0; i--) { + var cur = listeners[i]; + target.removeListener(cur[INDEX_EVENT], cur[INDEX_USER_LISTENER]); } - }, -1); - if (fromEl.selectedIndex !== selected) { - fromEl.selectedIndex = selected; + this.$__listeners.length = 0; } + return this; } + }; + function EventEmitterAdapter(target) { + this.$__target = target; } -}; -var specialElHandlers$1 = new SpecialElHandlers(); -function KeySequence$2() { - this._V_ = Object.create(null); -} -KeySequence$2.prototype._L_ = function(key) { - var lookup = this._V_; - if (lookup[key]) { - return key + "_" + lookup[key]++; + EventEmitterAdapter.prototype = { + on: function(event, listener) { + this.$__target.addEventListener(event, listener); + return this; + }, + once: function(event, listener) { + var self2 = this; + var onceListener = function() { + self2.$__target.removeEventListener(event, onceListener); + listener(); + }; + this.$__target.addEventListener(event, onceListener); + return this; + }, + removeListener: function(event, listener) { + this.$__target.removeEventListener(event, listener); + return this; + } + }; + function SubscriptionTracker2() { + this.$__subscribeToList = []; } - lookup[key] = 1; - return key; -}; -var KeySequence_1 = KeySequence$2; -var eventDelegation$3 = {}; -var componentsUtil$4 = indexBrowser$5; -var runtimeId = componentsUtil$4.al_; -var componentLookup$3 = componentsUtil$4.C_; -var getMarkoPropsFromEl = componentsUtil$4.am_; -var TEXT_NODE$1 = 3; -var listenersAttachedKey = "$MDE" + runtimeId; -var delegatedEvents = {}; -function getEventFromEl(el, eventName) { - var virtualProps = getMarkoPropsFromEl(el); - var eventInfo = virtualProps[eventName]; - if (typeof eventInfo === "string") { - eventInfo = eventInfo.split(" "); - if (eventInfo[2]) { - eventInfo[2] = eventInfo[2] === "true"; + SubscriptionTracker2.prototype = { + subscribeTo: function(target, options) { + var addDestroyListener = !options || options.addDestroyListener !== false; + var wrapper; + var nonEE; + var subscribeToList = this.$__subscribeToList; + for (var i = 0, len = subscribeToList.length; i < len; i++) { + var cur = subscribeToList[i]; + if (cur.$__target === target) { + wrapper = cur; + break; + } + } + if (!wrapper) { + if (isNonEventEmitter(target)) { + nonEE = new EventEmitterAdapter(target); + } + wrapper = new EventEmitterWrapper(nonEE || target); + if (addDestroyListener && !nonEE) { + wrapper.once(DESTROY, function() { + wrapper.removeAllListeners(); + for (var i2 = subscribeToList.length - 1; i2 >= 0; i2--) { + if (subscribeToList[i2].$__target === target) { + subscribeToList.splice(i2, 1); + break; + } + } + }); + } + wrapper.$__subscribeTo = this; + subscribeToList.push(wrapper); + } + return wrapper; + }, + removeAllListeners: function(target, event) { + var subscribeToList = this.$__subscribeToList; + var i; + if (target) { + for (i = subscribeToList.length - 1; i >= 0; i--) { + var cur = subscribeToList[i]; + if (cur.$__target === target) { + cur.removeAllListeners(event); + if (!cur.$__listeners.length) { + subscribeToList.splice(i, 1); + } + break; + } + } + } else { + for (i = subscribeToList.length - 1; i >= 0; i--) { + subscribeToList[i].removeAllListeners(); + } + subscribeToList.length = 0; + } } - if (eventInfo.length == 4) { - eventInfo[3] = parseInt(eventInfo[3], 10); + }; + exports = module.exports = SubscriptionTracker2; + exports.wrap = function(targetEventEmitter) { + var nonEE; + var wrapper; + if (isNonEventEmitter(targetEventEmitter)) { + nonEE = new EventEmitterAdapter(targetEventEmitter); + } + wrapper = new EventEmitterWrapper(nonEE || targetEventEmitter); + if (!nonEE) { + targetEventEmitter.once(DESTROY, function() { + wrapper.$__listeners.length = 0; + }); + } + return wrapper; + }; + exports.createTracker = function() { + return new SubscriptionTracker2(); + }; +})(listenerTracker, listenerTracker.exports); +var copyProps$1 = function copyProps(from, to) { + Object.getOwnPropertyNames(from).forEach(function(name) { + var descriptor = Object.getOwnPropertyDescriptor(from, name); + Object.defineProperty(to, name, descriptor); + }); +}; +var copyProps2 = copyProps$1; +function inherit$7(ctor, superCtor, shouldCopyProps) { + var oldProto = ctor.prototype; + var newProto = ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + writable: true, + configurable: true } + }); + if (oldProto && shouldCopyProps !== false) { + copyProps2(oldProto, newProto); } - return eventInfo; + ctor.$super = superCtor; + ctor.prototype = newProto; + return ctor; } -function delegateEvent(node, eventName, target, event) { - var targetMethod = target[0]; - var targetComponentId = target[1]; - var isOnce = target[2]; - var extraArgs = target[3]; - if (isOnce) { - var virtualProps = getMarkoPropsFromEl(node); - delete virtualProps[eventName]; +var inherit_1 = inherit$7; +inherit$7._inherit = inherit$7; +var updateManager$1 = {}; +var queue = []; +var msg = "" + Math.random(); +window.addEventListener("message", function(ev) { + if (ev.data === msg) { + var callbacks = queue; + queue = []; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](); + } } - var targetComponent = componentLookup$3[targetComponentId]; - if (!targetComponent) { - return; +}); +var indexBrowser = function(callback) { + if (queue.push(callback) === 1) { + window.postMessage(msg, "*"); } - var targetFunc = typeof targetMethod === "function" ? targetMethod : targetComponent[targetMethod]; - if (!targetFunc) { - throw Error("Method not found: " + targetMethod); - } - if (extraArgs != null) { - if (typeof extraArgs === "number") { - extraArgs = targetComponent.N_[extraArgs]; +}; +var updatesScheduled = false; +var batchStack = []; +var unbatchedQueue = []; +var setImmediate = indexBrowser; +function updateUnbatchedComponents() { + if (unbatchedQueue.length) { + try { + updateComponents(unbatchedQueue); + } finally { + updatesScheduled = false; } } - if (extraArgs) { - targetFunc.apply(targetComponent, extraArgs.concat(event, node)); - } else { - targetFunc.call(targetComponent, event, node); +} +function scheduleUpdates() { + if (updatesScheduled) { + return; } + updatesScheduled = true; + setImmediate(updateUnbatchedComponents); } -function addDelegatedEventHandler$1(eventType) { - if (!delegatedEvents[eventType]) { - delegatedEvents[eventType] = true; +function updateComponents(queue2) { + for (var i = 0; i < queue2.length; i++) { + var component = queue2[i]; + component._A_(); } + queue2.length = 0; } -function addDelegatedEventHandlerToDoc(eventType, doc) { - var body = doc.body || doc; - var listeners = doc[listenersAttachedKey] = doc[listenersAttachedKey] || {}; - if (!listeners[eventType]) { - body.addEventListener(eventType, listeners[eventType] = function(event) { - var propagationStopped = false; - var oldStopPropagation = event.stopPropagation; - event.stopPropagation = function() { - oldStopPropagation.call(event); - propagationStopped = true; - }; - var curNode = event.target; - if (!curNode) { - return; +function batchUpdate(func) { + var batch = { + az_: null + }; + batchStack.push(batch); + try { + func(); + } finally { + try { + if (batch.az_) { + updateComponents(batch.az_); } - curNode = curNode.correspondingUseElement || (curNode.nodeType === TEXT_NODE$1 ? curNode.parentNode : curNode); - var propName = "on" + eventType; - var target; - do { - if (target = getEventFromEl(curNode, propName)) { - delegateEvent(curNode, propName, target, event); - if (propagationStopped) { - break; - } - } - } while ((curNode = curNode.parentNode) && curNode.getAttribute); - }, true); + } finally { + batchStack.length--; + } } } -function noop() { +function queueComponentUpdate(component) { + var batchStackLen = batchStack.length; + if (batchStackLen) { + var batch = batchStack[batchStackLen - 1]; + if (batch.az_) { + batch.az_.push(component); + } else { + batch.az_ = [component]; + } + } else { + scheduleUpdates(); + unbatchedQueue.push(component); + } } -eventDelegation$3.ab_ = noop; -eventDelegation$3.___ = noop; -eventDelegation$3._Z_ = delegateEvent; -eventDelegation$3.a__ = getEventFromEl; -eventDelegation$3._D_ = addDelegatedEventHandler$1; -eventDelegation$3.an_ = function(doc) { - Object.keys(delegatedEvents).forEach(function(eventType) { - addDelegatedEventHandlerToDoc(eventType, doc); - }); -}; -var specialElHandlers = specialElHandlers$1; -var KeySequence$1 = KeySequence_1; -var componentsUtil$3 = indexBrowser$5; -var existingComponentLookup = componentsUtil$3.C_; -var destroyNodeRecursive$1 = componentsUtil$3.D_; -var addComponentRootToKeyedElements$1 = componentsUtil$3.ap_; -var normalizeComponentKey = componentsUtil$3.aD_; -var VElement$2 = vdom$1.b__; -var virtualizeElement = VElement$2.bN_; -var morphAttrs = VElement$2.bO_; -var eventDelegation$2 = eventDelegation$3; -var fragment = fragment$1; -var helpers = helpers$3; -var domData$2 = domData$6; -var keysByDOMNode = domData$2.ag_; -var componentByDOMNode = domData$2.E_; -var vElementByDOMNode = domData$2.ae_; -var detachedByDOMNode = domData$2.af_; -var insertBefore = helpers.aF_; -var insertAfter = helpers.aG_; -var nextSibling = helpers.bS_; -var firstChild = helpers._r_; -var removeChild = helpers.aH_; -var createFragmentNode$1 = fragment.ao_; -var beginFragmentNode = fragment.bZ_; -var ELEMENT_NODE$1 = 1; -var TEXT_NODE = 3; -var COMMENT_NODE = 8; -var COMPONENT_NODE = 2; -var FRAGMENT_NODE = 12; -var DOCTYPE_NODE = 10; -function isAutoKey(key) { - return key[0] !== "@"; +updateManager$1._i_ = queueComponentUpdate; +updateManager$1._o_ = batchUpdate; +function syncBooleanAttrProp(fromEl, toEl, name) { + if (fromEl[name] !== toEl[name]) { + fromEl[name] = toEl[name]; + if (fromEl[name]) { + fromEl.setAttribute(name, ""); + } else { + fromEl.removeAttribute(name, ""); + } + } } -function compareNodeNames(fromEl, toEl) { - return fromEl.bH_ === toEl.bH_; +function forEachOption(el, fn, i) { + var curChild = el._r_; + while (curChild) { + if (curChild.bG_ === "option") { + fn(curChild, ++i); + } else { + i = forEachOption(curChild, fn, i); + } + curChild = curChild.bR_; + } + return i; } -function caseInsensitiveCompare(a, b) { - return a.toLowerCase() === b.toLowerCase(); +function SpecialElHandlers() { } -function onNodeAdded(node, componentsContext) { - if (node.nodeType === ELEMENT_NODE$1) { - eventDelegation$2.ab_(node, componentsContext); +SpecialElHandlers.prototype = { + option: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "selected"); + }, + button: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "disabled"); + }, + input: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "checked"); + syncBooleanAttrProp(fromEl, toEl, "disabled"); + if (fromEl.value != toEl.q_) { + fromEl.value = toEl.q_; + } + if (fromEl.hasAttribute("value") && !toEl.bK_("value")) { + fromEl.removeAttribute("value"); + } + }, + textarea: function(fromEl, toEl) { + if (toEl.bU_) { + return; + } + var newValue = toEl.q_; + if (fromEl.value != newValue) { + fromEl.value = newValue; + } + var firstChild2 = fromEl.firstChild; + if (firstChild2) { + var oldValue = firstChild2.nodeValue; + if (oldValue == newValue || !newValue && oldValue == fromEl.placeholder) { + return; + } + firstChild2.nodeValue = newValue; + } + }, + select: function(fromEl, toEl) { + if (!toEl.bK_("multiple")) { + var selected = 0; + forEachOption(toEl, function(option, i) { + if (option.bK_("selected")) { + selected = i; + } + }, -1); + if (fromEl.selectedIndex !== selected) { + fromEl.selectedIndex = selected; + } + } } +}; +var specialElHandlers$1 = new SpecialElHandlers(); +var vdom = {}; +function VNode$6() { } -function morphdom$2(fromNode, toNode, doc, componentsContext) { - var globalComponentsContext; - var isHydrate = false; - var keySequences = Object.create(null); - if (componentsContext) { - globalComponentsContext = componentsContext.e_; - isHydrate = globalComponentsContext.f_; - } - function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { - var realNode = vNode.by_(doc, parentEl.namespaceURI); - insertBefore(realNode, referenceEl, parentEl); - if (vNode.bB_ === ELEMENT_NODE$1 || vNode.bB_ === FRAGMENT_NODE) { - if (key) { - keysByDOMNode.set(realNode, key); - (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; +VNode$6.prototype = { + by_: function(finalChildCount, ownerComponent) { + this.bO_ = finalChildCount; + this.bP_ = 0; + this.bE_ = null; + this.bQ_ = null; + this.bB_ = null; + this.bC_ = null; + this.aA_ = ownerComponent; + }, + get _r_() { + var firstChild2 = this.bE_; + if (firstChild2 && firstChild2.bD_) { + var nestedFirstChild = firstChild2._r_; + return nestedFirstChild || firstChild2.bR_; + } + return firstChild2; + }, + get bR_() { + var nextSibling2 = this.bC_; + if (nextSibling2) { + if (nextSibling2.bD_) { + var firstChild2 = nextSibling2._r_; + return firstChild2 || nextSibling2.bR_; } - if (vNode.bH_ !== "textarea") { - morphChildren(realNode, vNode, parentComponent); + } else { + var parentNode = this.bB_; + if (parentNode && parentNode.bD_) { + return parentNode.bR_; } - onNodeAdded(realNode, componentsContext); } - } - function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) { - var rootNode = component.K_ = insertBefore(createFragmentNode$1(), referenceNode, referenceNodeParentEl); - componentByDOMNode.set(rootNode, component); - if (key && ownerComponent) { - key = normalizeComponentKey(key, parentComponent.id); - addComponentRootToKeyedElements$1(ownerComponent.k_, key, rootNode, component.id); - keysByDOMNode.set(rootNode, key); + return nextSibling2; + }, + bq_: function(child) { + this.bP_++; + if (this.bG_ === "textarea") { + if (child.bS_) { + var childValue = child.bT_; + this.bH_ = (this.bH_ || "") + childValue; + } else if (child.n_ || child.m_) { + this.bU_ = true; + } else { + throw TypeError(); + } + } else { + var lastChild = this.bQ_; + child.bB_ = this; + if (lastChild) { + lastChild.bC_ = child; + } else { + this.bE_ = child; + } + this.bQ_ = child; } - morphComponent(component, vComponent); - } - function morphComponent(component, vComponent) { - morphChildren(component.K_, vComponent, component); - } - var detachedNodes = []; - function detachNode(node, parentNode, ownerComponent) { - if (node.nodeType === ELEMENT_NODE$1 || node.nodeType === FRAGMENT_NODE) { - detachedNodes.push(node); - detachedByDOMNode.set(node, ownerComponent || true); + return child; + }, + bJ_: function finishChild() { + if (this.bP_ === this.bO_ && this.bB_) { + return this.bB_.bJ_(); } else { - destroyNodeRecursive$1(node); - removeChild(node); + return this; } } - function destroyComponent(component) { - component.destroy(); - } - function morphChildren(fromNode2, toNode2, parentComponent) { - var curFromNodeChild = firstChild(fromNode2); - var curToNodeChild = toNode2._r_; - var curToNodeKey; - var curFromNodeKey; - var curToNodeType; - var fromNextSibling; - var toNextSibling; - var matchingFromEl; - var matchingFromComponent; - var curVFromNodeChild; - var fromComponent; - outer: - while (curToNodeChild) { - toNextSibling = curToNodeChild.bS_; - curToNodeType = curToNodeChild.bB_; - curToNodeKey = curToNodeChild.bA_; - if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { - curFromNodeChild = nextSibling(curFromNodeChild); - } - var ownerComponent = curToNodeChild.aA_ || parentComponent; - var referenceComponent; - if (curToNodeType === COMPONENT_NODE) { - var component = curToNodeChild.h_; - if ((matchingFromComponent = existingComponentLookup[component.id]) === void 0) { - if (isHydrate === true) { - var rootNode = beginFragmentNode(curFromNodeChild, fromNode2); - component.K_ = rootNode; - componentByDOMNode.set(rootNode, component); - if (ownerComponent && curToNodeKey) { - curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id); - addComponentRootToKeyedElements$1(ownerComponent.k_, curToNodeKey, rootNode, component.id); - keysByDOMNode.set(rootNode, curToNodeKey); - } - morphComponent(component, curToNodeChild); - curFromNodeChild = nextSibling(rootNode); - } else { - insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode2, component, curToNodeKey, ownerComponent, parentComponent); - } - } else { - if (matchingFromComponent.K_ !== curFromNodeChild) { - if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext._U_[fromComponent.id] === void 0) { - curFromNodeChild = nextSibling(fromComponent.K_); - destroyComponent(fromComponent); - continue; - } - insertBefore(matchingFromComponent.K_, curFromNodeChild, fromNode2); - } else { - curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild); - } - if (!curToNodeChild.n_) { - morphComponent(component, curToNodeChild); - } - } - curToNodeChild = toNextSibling; - continue; - } else if (curToNodeKey) { - curVFromNodeChild = void 0; - curFromNodeKey = void 0; - var curToNodeKeyOriginal = curToNodeKey; - if (isAutoKey(curToNodeKey)) { - if (ownerComponent !== parentComponent) { - curToNodeKey += ":" + ownerComponent.id; - } - referenceComponent = parentComponent; - } else { - referenceComponent = ownerComponent; - } - curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence$1()))._L_(curToNodeKey); - if (curFromNodeChild) { - curFromNodeKey = keysByDOMNode.get(curFromNodeChild); - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - fromNextSibling = nextSibling(curFromNodeChild); - } - if (curFromNodeKey === curToNodeKey) { - if (!curToNodeChild.n_) { - if (compareNodeNames(curToNodeChild, curVFromNodeChild)) { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } else { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - } - } - } else { - matchingFromEl = referenceComponent.k_[curToNodeKey]; - if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { - if (isHydrate === true && curFromNodeChild) { - if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bH_ || ""))) { - curVFromNodeChild = virtualizeElement(curFromNodeChild); - curVFromNodeChild.bH_ = curToNodeChild.bH_; - keysByDOMNode.set(curFromNodeChild, curToNodeKey); - referenceComponent.k_[curToNodeKey] = curFromNodeChild; - if (curToNodeChild.n_) { - vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild); - } else { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue; - } else if (curToNodeChild.bB_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { - var content = curFromNodeChild.nodeValue; - if (content == "F#" + curToNodeKeyOriginal) { - var endNode = curFromNodeChild.nextSibling; - var depth = 0; - var nodeValue; - while (true) { - if (endNode.nodeType === COMMENT_NODE) { - nodeValue = endNode.nodeValue; - if (nodeValue === "F/") { - if (depth === 0) { - break; - } else { - depth--; - } - } else if (nodeValue.indexOf("F#") === 0) { - depth++; - } - } - endNode = endNode.nextSibling; - } - var fragment2 = createFragmentNode$1(curFromNodeChild, endNode.nextSibling, fromNode2); - keysByDOMNode.set(fragment2, curToNodeKey); - vElementByDOMNode.set(fragment2, curToNodeChild); - referenceComponent.k_[curToNodeKey] = fragment2; - removeChild(curFromNodeChild); - removeChild(endNode); - if (!curToNodeChild.n_) { - morphChildren(fragment2, curToNodeChild, parentComponent); - } - curToNodeChild = toNextSibling; - curFromNodeChild = fragment2.nextSibling; - continue; - } - } - } - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - fromNextSibling = curFromNodeChild; - } else { - if (detachedByDOMNode.get(matchingFromEl) !== void 0) { - detachedByDOMNode.set(matchingFromEl, void 0); - } - if (!curToNodeChild.n_) { - curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); - if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { - if (fromNextSibling === matchingFromEl) { - if (toNextSibling && toNextSibling.bA_ === curFromNodeKey) { - fromNextSibling = curFromNodeChild; - insertBefore(matchingFromEl, curFromNodeChild, fromNode2); - } else { - fromNextSibling = nextSibling(fromNextSibling); - if (curFromNodeChild) { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - } - } - } else { - insertAfter(matchingFromEl, curFromNodeChild, fromNode2); - if (curFromNodeChild) { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - } - } - morphEl(matchingFromEl, curVFromNodeChild, curToNodeChild, parentComponent); - } else { - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - detachNode(matchingFromEl, fromNode2, ownerComponent); - } - } else { - insertBefore(matchingFromEl, curFromNodeChild, fromNode2); - fromNextSibling = curFromNodeChild; - } - } - } - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue; - } - while (curFromNodeChild) { - fromNextSibling = nextSibling(curFromNodeChild); - if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { - curFromNodeChild = fromNextSibling; - if (!globalComponentsContext._U_[fromComponent.id]) { - destroyComponent(fromComponent); - } - continue; - } - var curFromNodeType = curFromNodeChild.nodeType; - var isCompatible = void 0; - if (curFromNodeType === curToNodeType) { - if (curFromNodeType === ELEMENT_NODE$1) { - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - if (curVFromNodeChild === void 0) { - if (isHydrate === true) { - curVFromNodeChild = virtualizeElement(curFromNodeChild); - if (caseInsensitiveCompare(curVFromNodeChild.bH_, curToNodeChild.bH_)) { - curVFromNodeChild.bH_ = curToNodeChild.bH_; - } - } else { - curFromNodeChild = fromNextSibling; - continue; - } - } else if (curFromNodeKey = curVFromNodeChild.bA_) { - isCompatible = false; - } - isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; - if (isCompatible === true) { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } - } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { - isCompatible = true; - if (curFromNodeChild.nodeValue !== curToNodeChild.bU_) { - curFromNodeChild.nodeValue = curToNodeChild.bU_; - } - } - } - if (isCompatible === true) { - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue outer; - } - detachNode(curFromNodeChild, fromNode2, ownerComponent); - curFromNodeChild = fromNextSibling; - } - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - } - if (fromNode2.bY_) { - fromNode2.bY_(curFromNodeChild); - } else { - var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; - while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { - fromNextSibling = nextSibling(curFromNodeChild); - if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { - curFromNodeChild = fromNextSibling; - if (!globalComponentsContext._U_[fromComponent.id]) { - destroyComponent(fromComponent); - } - continue; - } - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - curFromNodeKey = keysByDOMNode.get(fromNode2); - if (!curFromNodeKey || isAutoKey(curFromNodeKey)) { - referenceComponent = parentComponent; - } else { - referenceComponent = curVFromNodeChild && curVFromNodeChild.aA_; - } - detachNode(curFromNodeChild, fromNode2, referenceComponent); - curFromNodeChild = fromNextSibling; - } - } - } - function morphEl(fromEl, vFromEl, toEl, parentComponent) { - var nodeName = toEl.bH_; - var constId = toEl.bJ_; - if (constId !== void 0 && vFromEl.bJ_ === constId) { - return; - } - morphAttrs(fromEl, vFromEl, toEl); - if (toEl.m_) { - return; - } - if (nodeName !== "textarea") { - morphChildren(fromEl, toEl, parentComponent); - } - var specialElHandler = specialElHandlers[nodeName]; - if (specialElHandler !== void 0) { - specialElHandler(fromEl, toEl); - } - } - morphChildren(fromNode, toNode, toNode.h_); - detachedNodes.forEach(function(node) { - var detachedFromComponent = detachedByDOMNode.get(node); - if (detachedFromComponent !== void 0) { - detachedByDOMNode.set(node, void 0); - var componentToDestroy = componentByDOMNode.get(node); - if (componentToDestroy) { - componentToDestroy.destroy(); - } else if (node.parentNode) { - destroyNodeRecursive$1(node, detachedFromComponent !== true && detachedFromComponent); - if (eventDelegation$2.___(node) != false) { - removeChild(node); - } - } - } - }); +}; +var VNode_1 = VNode$6; +var VNode$5 = VNode_1; +var inherit$6 = inherit_1; +var extend2 = extend$4; +function VDocumentFragmentClone(other) { + extend2(this, other); + this.bB_ = null; + this.bC_ = null; } -var morphdom_1 = morphdom$2; -var classValue = function classHelper(arg) { - switch (typeof arg) { - case "string": - return arg || null; - case "object": - var result = ""; - var sep = ""; - if (Array.isArray(arg)) { - for (var i = 0, len = arg.length; i < len; i++) { - var value = classHelper(arg[i]); - if (value) { - result += sep + value; - sep = " "; - } - } - } else { - for (var key in arg) { - if (arg[key]) { - result += sep + key; - sep = " "; - } - } - } - return result || null; - default: - return null; +function VDocumentFragment$1(out) { + this.by_(null); + this.y_ = out; +} +VDocumentFragment$1.prototype = { + bA_: 11, + bD_: true, + br_: function() { + return new VDocumentFragmentClone(this); + }, + bx_: function(host) { + return (host.ownerDocument || host).createDocumentFragment(); } }; -var _changeCase = {}; -var camelToDashLookup = Object.create(null); -var dashToCamelLookup = Object.create(null); -_changeCase.aI_ = function camelToDashCase(name) { - var nameDashed = camelToDashLookup[name]; - if (!nameDashed) { - nameDashed = camelToDashLookup[name] = name.replace(/([A-Z])/g, "-$1").toLowerCase(); - if (nameDashed !== name) { - dashToCamelLookup[nameDashed] = name; - } - } - return nameDashed; +inherit$6(VDocumentFragment$1, VNode$5); +VDocumentFragmentClone.prototype = VDocumentFragment$1.prototype; +var VDocumentFragment_1 = VDocumentFragment$1; +var domData$4 = domData$6; +var componentsUtil$3 = indexBrowser$2; +var vElementByDOMNode$2 = domData$4.ae_; +var VNode$4 = VNode_1; +var inherit$5 = inherit_1; +var ATTR_XLINK_HREF = "xlink:href"; +var xmlnsRegExp = /^xmlns(:|$)/; +var hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var NS_XLINK = "http://www.w3.org/1999/xlink"; +var NS_HTML = "http://www.w3.org/1999/xhtml"; +var NS_MATH = "http://www.w3.org/1998/Math/MathML"; +var NS_SVG = "http://www.w3.org/2000/svg"; +var DEFAULT_NS = { + svg: NS_SVG, + math: NS_MATH }; -_changeCase.aJ_ = function dashToCamelCase(name) { - var nameCamel = dashToCamelLookup[name]; - if (!nameCamel) { - nameCamel = dashToCamelLookup[name] = name.replace(/-([a-z])/g, matchToUpperCase); - if (nameCamel !== name) { - camelToDashLookup[nameCamel] = name; +var FLAG_SIMPLE_ATTRS = 1; +var FLAG_CUSTOM_ELEMENT = 2; +var FLAG_SPREAD_ATTRS = 4; +var defineProperty = Object.defineProperty; +var ATTR_HREF = "href"; +var EMPTY_OBJECT = Object.freeze({}); +function convertAttrValue(type, value) { + if (value === true) { + return ""; + } else if (type == "object") { + if (value instanceof RegExp) { + return value.source; } } - return nameCamel; -}; -function matchToUpperCase(_, char) { - return char.toUpperCase(); + return value + ""; } -var changeCase = _changeCase; -var styleValue = function styleHelper(style) { - if (!style) { - return null; - } - var type = typeof style; - if (type !== "string") { - var styles = ""; - if (Array.isArray(style)) { - for (var i = 0, len = style.length; i < len; i++) { - var next = styleHelper(style[i]); - if (next) - styles += next + (next[next.length - 1] !== ";" ? ";" : ""); - } - } else if (type === "object") { - for (var name in style) { - var value = style[name]; - if (value != null && value !== false) { - if (typeof value === "number" && value) { - value += "px"; - } - styles += changeCase.aI_(name) + ":" + value + ";"; - } - } +function assign(a, b) { + for (var key in b) { + if (hasOwnProperty$1.call(b, key)) { + a[key] = b[key]; } - return styles || null; } - return style; -}; -var classHelper2 = classValue; -var styleHelper2 = styleValue; -var attrs = function(attributes) { - if (attributes != null) { - var newAttributes = {}; - for (var attrName in attributes) { - var val = attributes[attrName]; - if (attrName === "renderBody") { - continue; - } - if (attrName === "class") { - val = classHelper2(val); - } else if (attrName === "style") { - val = styleHelper2(val); - } - newAttributes[attrName] = val; - } - return newAttributes; +} +function setAttribute(el, namespaceURI, name, value) { + if (namespaceURI === null) { + el.setAttribute(name, value); + } else { + el.setAttributeNS(namespaceURI, name, value); } - return attributes; -}; -var EventEmitter$1 = src; -var vdom = vdom$1; -var VElement$1 = vdom.b__; -var VDocumentFragment = vdom.ba_; -var VText = vdom.bb_; -var VComponent = vdom.bc_; -var VFragment = vdom.bd_; -var virtualizeHTML = vdom.be_; -var RenderResult$1 = RenderResult_1; -var defaultDocument$1 = vdom.bf_; -var morphdom$1 = morphdom_1; -var attrsHelper = attrs; -var EVENT_UPDATE = "update"; -var EVENT_FINISH = "finish"; -function State$1(tree) { - this.bg_ = new EventEmitter$1(); - this.bh_ = tree; - this.bi_ = false; -} -function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { - if (!parentNode) { - parentNode = new VDocumentFragment(); - } - var state; - if (parentOut) { - state = parentOut.J_; +} +function removeAttribute(el, namespaceURI, name) { + if (namespaceURI === null) { + el.removeAttribute(name); } else { - state = new State$1(parentNode); - } - this.bj_ = 1; - this.bk_ = 0; - this.bl_ = null; - this.bm_ = parentOut; - this.data = {}; - this.J_ = state; - this.l_ = parentNode; - this.global = globalData || {}; - this.bn_ = [parentNode]; - this.bo_ = false; - this.bp_ = void 0; - this.b_ = null; - this.g_ = null; - this.i_ = null; - this.ax_ = null; -} -var proto = AsyncVDOMBuilder$1.prototype = { - aP_: true, - X_: defaultDocument$1, - bc: function(component, key, ownerComponent) { - var vComponent = new VComponent(component, key, ownerComponent); - return this.bq_(vComponent, 0, true); - }, - ay_: function(component, key, ownerComponent) { - var vComponent = new VComponent(component, key, ownerComponent, true); - this.bq_(vComponent, 0); - }, - bq_: function(child, childCount, pushToStack) { - this.l_.br_(child); - if (pushToStack === true) { - this.bn_.push(child); - this.l_ = child; - } - return childCount === 0 ? this : child; - }, - element: function(tagName, attrs2, key, component, childCount, flags, props) { - var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - return this.bq_(element, childCount); - }, - aM_: function(tagName, attrs2, key, componentDef, props) { - return this.element(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); - }, - n: function(node, component) { - var clone = node.bs_(); - this.node(clone); - clone.aA_ = component; - return this; - }, - node: function(node) { - this.l_.br_(node); - return this; - }, - text: function(text, ownerComponent) { - var type = typeof text; - if (type != "string") { - if (text == null) { - return; - } else if (type === "object") { - if (text.toHTML) { - return this.h(text.toHTML(), ownerComponent); - } - } - text = text.toString(); - } - this.l_.br_(new VText(text, ownerComponent)); - return this; - }, - html: function(html, ownerComponent) { - if (html != null) { - var vdomNode = virtualizeHTML(html, this.X_ || document, ownerComponent); - this.node(vdomNode); - } - return this; - }, - beginElement: function(tagName, attrs2, key, component, childCount, flags, props) { - var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - this.bq_(element, childCount, true); - return this; - }, - aK_: function(tagName, attrs2, key, componentDef, props) { - return this.beginElement(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); - }, - bf: function(key, component, preserve) { - var fragment2 = new VFragment(key, component, preserve); - this.bq_(fragment2, null, true); - return this; - }, - ef: function() { - this.endElement(); - }, - endElement: function() { - var stack = this.bn_; - stack.pop(); - this.l_ = stack[stack.length - 1]; - }, - end: function() { - this.l_ = void 0; - var remaining = --this.bj_; - var parentOut = this.bm_; - if (remaining === 0) { - if (parentOut) { - parentOut.bt_(); - } else { - this.bu_(); - } - } else if (remaining - this.bk_ === 0) { - this.bv_(); - } - return this; - }, - bt_: function() { - var remaining = --this.bj_; - if (remaining === 0) { - var parentOut = this.bm_; - if (parentOut) { - parentOut.bt_(); - } else { - this.bu_(); - } - } else if (remaining - this.bk_ === 0) { - this.bv_(); - } - }, - bu_: function() { - var state = this.J_; - state.bi_ = true; - state.bg_.emit(EVENT_FINISH, this.aQ_()); - }, - bv_: function() { - var lastArray = this._last; - var i = 0; - function next() { - if (i === lastArray.length) { - return; - } - var lastCallback = lastArray[i++]; - lastCallback(next); - if (!lastCallback.length) { - next(); - } - } - next(); - }, - error: function(e) { - try { - this.emit("error", e); - } finally { - this.end(); - } - return this; - }, - beginAsync: function(options) { - if (this.bo_) { - throw Error("Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."); - } - var state = this.J_; - if (options) { - if (options.last) { - this.bk_++; - } - } - this.bj_++; - var documentFragment = this.l_.bw_(); - var asyncOut = new AsyncVDOMBuilder$1(this.global, documentFragment, this); - state.bg_.emit("beginAsync", { - out: asyncOut, - parentOut: this - }); - return asyncOut; - }, - createOut: function() { - return new AsyncVDOMBuilder$1(this.global); - }, - flush: function() { - var events = this.J_.bg_; - if (events.listenerCount(EVENT_UPDATE)) { - events.emit(EVENT_UPDATE, new RenderResult$1(this)); - } - }, - B_: function() { - return this.J_.bh_; - }, - aQ_: function() { - return this.bx_ || (this.bx_ = new RenderResult$1(this)); - }, - on: function(event, callback) { - var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { - callback(this.aQ_()); - } else if (event === "last") { - this.onLast(callback); - } else { - state.bg_.on(event, callback); - } - return this; + el.removeAttributeNS(namespaceURI, name); + } +} +function VElementClone(other) { + this.bE_ = other.bE_; + this.bB_ = null; + this.bC_ = null; + this.bz_ = other.bz_; + this.bF_ = other.bF_; + this.aB_ = other.aB_; + this.bG_ = other.bG_; + this._I_ = other._I_; + this.bH_ = other.bH_; + this.bI_ = other.bI_; +} +function VElement$2(tagName, attrs, key, ownerComponent, childCount, flags, props) { + this.by_(childCount, ownerComponent); + var constId; + if (props) { + constId = props.i; + } + this.bz_ = key; + this._I_ = flags || 0; + this.bF_ = attrs || EMPTY_OBJECT; + this.aB_ = props || EMPTY_OBJECT; + this.bG_ = tagName; + this.bH_ = null; + this.bI_ = constId; + this.n_ = false; + this.m_ = false; +} +VElement$2.prototype = { + bA_: 1, + br_: function() { + return new VElementClone(this); }, - once: function(event, callback) { - var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { - callback(this.aQ_()); - } else if (event === "last") { - this.onLast(callback); + e: function(tagName, attrs, key, ownerComponent, childCount, flags, props) { + var child = this.bq_(new VElement$2(tagName, attrs, key, ownerComponent, childCount, flags, props)); + if (childCount === 0) { + return this.bJ_(); } else { - state.bg_.once(event, callback); + return child; } - return this; }, - emit: function(type, arg) { - var events = this.J_.bg_; - switch (arguments.length) { - case 1: - events.emit(type); - break; - case 2: - events.emit(type, arg); - break; - default: - events.emit.apply(events, arguments); - break; - } - return this; - }, - removeListener: function() { - var events = this.J_.bg_; - events.removeListener.apply(events, arguments); - return this; - }, - sync: function() { - this.bo_ = true; - }, - isSync: function() { - return this.bo_; + n: function(node, ownerComponent) { + node = node.br_(); + node.aA_ = ownerComponent; + this.bq_(node); + return this.bJ_(); }, - onLast: function(callback) { - var lastArray = this._last; - if (lastArray === void 0) { - this._last = [callback]; + bx_: function(host, parentNamespaceURI) { + var tagName = this.bG_; + var attributes = this.bF_; + var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; + var flags = this._I_; + var el = (host.ownerDocument || host).createElementNS(namespaceURI, tagName); + if (flags & FLAG_CUSTOM_ELEMENT) { + assign(el, attributes); } else { - lastArray.push(callback); - } - return this; - }, - A_: function(doc) { - var node = this.bp_; - if (!node) { - var vdomTree = this.B_(); - doc = doc || this.X_ || document; - this.bp_ = node = vdomTree.by_(doc, null); - morphdom$1(node, vdomTree, doc, this.b_); - } - return node; - }, - toString: function(doc) { - var docFragment = this.A_(doc); - var html = ""; - var child = docFragment.firstChild; - while (child) { - var nextSibling2 = child.nextSibling; - if (child.nodeType != 1) { - var container = docFragment.ownerDocument.createElement("div"); - container.appendChild(child.cloneNode()); - html += container.innerHTML; - } else { - html += child.outerHTML; + for (var attrName in attributes) { + var attrValue = attributes[attrName]; + if (attrValue !== false && attrValue != null) { + var type = typeof attrValue; + if (type !== "string") { + attrValue = convertAttrValue(type, attrValue); + } + if (attrName == ATTR_XLINK_HREF) { + setAttribute(el, NS_XLINK, ATTR_HREF, attrValue); + } else { + el.setAttribute(attrName, attrValue); + } + } + } + if (tagName === "textarea") { + el.defaultValue = el.value = this.q_; } - child = nextSibling2; } - return html; - }, - then: function(fn, fnErr) { - var out = this; - var promise2 = new Promise(function(resolve2, reject) { - out.on("error", reject).on(EVENT_FINISH, function(result) { - resolve2(result); - }); - }); - return Promise.resolve(promise2).then(fn, fnErr); - }, - catch: function(fnErr) { - return this.then(void 0, fnErr); + vElementByDOMNode$2.set(el, this); + return el; }, - isVDOM: true, - c: function(componentDef, key, customEvents) { - this.g_ = componentDef; - this.i_ = key; - this.ax_ = customEvents; + bK_: function(name) { + var value = this.bF_[name]; + return value != null && value !== false; } }; -proto.e = proto.element; -proto.be = proto.beginElement; -proto.ee = proto.aL_ = proto.endElement; -proto.t = proto.text; -proto.h = proto.w = proto.write = proto.html; -var AsyncVDOMBuilder_1 = AsyncVDOMBuilder$1; -var actualCreateOut; -function setCreateOut(createOutFunc) { - actualCreateOut = createOutFunc; -} -function createOut(globalData) { - return actualCreateOut(globalData); -} -createOut.aE_ = setCreateOut; -var createOut_1 = createOut; -var queue = []; -var msg = "" + Math.random(); -window.addEventListener("message", function(ev) { - if (ev.data === msg) { - var callbacks = queue; - queue = []; - for (var i = 0; i < callbacks.length; i++) { - callbacks[i](); +inherit$5(VElement$2, VNode$4); +var proto = VElementClone.prototype = VElement$2.prototype; +["checked", "selected", "disabled"].forEach(function(name) { + defineProperty(proto, name, { + get: function() { + var value = this.bF_[name]; + return value !== false && value != null; } - } + }); }); -var indexBrowser$4 = function(callback) { - if (queue.push(callback) === 1) { - window.postMessage(msg, "*"); +defineProperty(proto, "q_", { + get: function() { + var value = this.bH_; + if (value == null) { + value = this.bF_.value; + } + return value != null && value !== false ? value + "" : this.bF_.type === "checkbox" || this.bF_.type === "radio" ? "on" : ""; } +}); +VElement$2.bL_ = function(attrs) { + return attrs; }; -var defaultCreateOut$1 = createOut_1; -var setImmediate$1 = indexBrowser$4; -var extend$2 = extend$5; -function safeRender(renderFunc, finalData, finalOut, shouldEnd) { - try { - renderFunc(finalData, finalOut); - if (shouldEnd) { - finalOut.end(); +function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { + var attributes = node.attributes; + var attrCount = attributes.length; + var attrs = null; + var props = null; + if (attrCount) { + attrs = {}; + for (var i = 0; i < attrCount; i++) { + var attr = attributes[i]; + var attrName = attr.name; + if (!xmlnsRegExp.test(attrName)) { + if (attrName === "data-marko") { + props = componentsUtil$3.am_(node); + } else if (attr.namespaceURI === NS_XLINK) { + attrs[ATTR_XLINK_HREF] = attr.value; + } else { + attrs[attrName] = attr.value; + } + } } - } catch (err) { - var actualEnd = finalOut.end; - finalOut.end = function() { - }; - setImmediate$1(function() { - finalOut.end = actualEnd; - finalOut.error(err); - }); } - return finalOut; -} -var renderable = function(target, renderer2) { - var renderFunc = renderer2 && (renderer2.renderer || renderer2.render || renderer2); - var createOut3 = target.createOut || renderer2.createOut || defaultCreateOut$1; - return extend$2(target, { - createOut: createOut3, - renderToString: function(data, callback) { - var localData = data || {}; - var render = renderFunc || this._; - var globalData = localData.$global; - var out = createOut3(globalData); - out.global.template = this; - if (globalData) { - localData.$global = void 0; - } - if (callback) { - out.on("finish", function() { - callback(null, out.toString(), out); - }).once("error", callback); - return safeRender(render, localData, out, true); - } else { - out.sync(); - render(localData, out); - return out.toString(); - } - }, - renderSync: function(data) { - var localData = data || {}; - var render = renderFunc || this._; - var globalData = localData.$global; - var out = createOut3(globalData); - out.sync(); - out.global.template = this; - if (globalData) { - localData.$global = void 0; + var tagName = node.nodeName; + if (node.namespaceURI === NS_HTML) { + tagName = tagName.toLowerCase(); + } + var vdomEl = new VElement$2(tagName, attrs, null, ownerComponent, 0, 0, props); + if (vdomEl.bG_ === "textarea") { + vdomEl.bH_ = node.value; + } else if (virtualizeChildNodes2) { + virtualizeChildNodes2(node, vdomEl, ownerComponent); + } + return vdomEl; +} +VElement$2.bM_ = virtualizeElement$1; +VElement$2.bN_ = function(fromEl, vFromEl, toEl) { + var removePreservedAttributes = VElement$2.bL_; + var fromFlags = vFromEl._I_; + var toFlags = toEl._I_; + vElementByDOMNode$2.set(fromEl, toEl); + var attrs = toEl.bF_; + var props = toEl.aB_; + if (toFlags & FLAG_CUSTOM_ELEMENT) { + return assign(fromEl, attrs); + } + var attrName; + var oldAttrs = vFromEl.bF_; + if (oldAttrs) { + if (oldAttrs === attrs) { + return; + } else { + oldAttrs = removePreservedAttributes(oldAttrs, props); + } + } + var attrValue; + if (toFlags & FLAG_SIMPLE_ATTRS && fromFlags & FLAG_SIMPLE_ATTRS) { + if (oldAttrs["class"] !== (attrValue = attrs["class"])) { + fromEl.className = attrValue; + } + if (oldAttrs.id !== (attrValue = attrs.id)) { + fromEl.id = attrValue; + } + if (oldAttrs.style !== (attrValue = attrs.style)) { + fromEl.cssText = attrValue; + } + return; + } + attrs = removePreservedAttributes(attrs, props, true); + var namespaceURI; + for (attrName in attrs) { + attrValue = attrs[attrName]; + namespaceURI = null; + if (attrName === ATTR_XLINK_HREF) { + namespaceURI = NS_XLINK; + attrName = ATTR_HREF; + } + if (attrValue == null || attrValue === false) { + removeAttribute(fromEl, namespaceURI, attrName); + } else if (oldAttrs[attrName] !== attrValue) { + var type = typeof attrValue; + if (type !== "string") { + attrValue = convertAttrValue(type, attrValue); } - render(localData, out); - return out.aQ_(); - }, - render: function(data, out) { - var callback; - var finalOut; - var finalData; - var globalData; - var render = renderFunc || this._; - var shouldBuffer = this.aS_; - var shouldEnd = true; - if (data) { - finalData = data; - if (globalData = data.$global) { - finalData.$global = void 0; + setAttribute(fromEl, namespaceURI, attrName, attrValue); + } + } + if (toEl.bz_ === null || fromFlags & FLAG_SPREAD_ATTRS) { + for (attrName in oldAttrs) { + if (!(attrName in attrs)) { + if (attrName === ATTR_XLINK_HREF) { + fromEl.removeAttributeNS(ATTR_XLINK_HREF, ATTR_HREF); + } else { + fromEl.removeAttribute(attrName); } - } else { - finalData = {}; - } - if (out && out.aP_) { - finalOut = out; - shouldEnd = false; - extend$2(out.global, globalData); - } else if (typeof out == "function") { - finalOut = createOut3(globalData); - callback = out; - } else { - finalOut = createOut3(globalData, out, void 0, shouldBuffer); } - if (callback) { - finalOut.on("finish", function() { - callback(null, finalOut.aQ_()); - }).once("error", callback); - } - globalData = finalOut.global; - globalData.template = globalData.template || this; - return safeRender(render, finalData, finalOut, shouldEnd); } - }); + } }; -var t = function createTemplate(typeName) { - return new Template(typeName); +var VElement_1 = VElement$2; +var VNode$3 = VNode_1; +var inherit$4 = inherit_1; +function VText$1(value, ownerComponent) { + this.by_(-1, ownerComponent); + this.bT_ = value; +} +VText$1.prototype = { + bS_: true, + bA_: 3, + bx_: function(host) { + return (host.ownerDocument || host).createTextNode(this.bT_); + }, + br_: function() { + return new VText$1(this.bT_); + } }; -function Template(typeName) { - this.aZ_ = typeName; +inherit$4(VText$1, VNode$3); +var VText_1 = VText$1; +var VNode$2 = VNode_1; +var inherit$3 = inherit_1; +function VComponent$1(component, key, ownerComponent, preserve) { + this.by_(null, ownerComponent); + this.bz_ = key; + this.h_ = component; + this.n_ = preserve; } -var AsyncVDOMBuilder = AsyncVDOMBuilder_1; -createOut_1.aE_(Template.prototype.createOut = function createOut2(globalData, parent, parentOut) { - return new AsyncVDOMBuilder(globalData, parent, parentOut); -}); -renderable(Template.prototype); -var VElement = vdom$1.b__; -var vElement = function(tagName, attrs2, key, component, childCount, flags, props) { - return new VElement(tagName, attrs2, key, component, childCount, flags, props); +VComponent$1.prototype = { + bA_: 2 }; -var ComponentsContext$1 = { exports: {} }; -var nextComponentIdProvider = indexBrowser$5._T_; -function GlobalComponentsContext(out) { - this._U_ = {}; - this._q_ = void 0; - this._M_ = nextComponentIdProvider(out); +inherit$3(VComponent$1, VNode$2); +var VComponent_1 = VComponent$1; +var domData$3 = domData$6; +var keysByDOMNode$1 = domData$3.ag_; +var vElementByDOMNode$1 = domData$3.ae_; +var VNode$1 = VNode_1; +var inherit$2 = inherit_1; +var createFragmentNode$2 = fragment$1.ao_; +function VFragment$1(key, ownerComponent, preserve) { + this.by_(null, ownerComponent); + this.bz_ = key; + this.n_ = preserve; } -var GlobalComponentsContext_1 = GlobalComponentsContext; -(function(module, exports) { - var GlobalComponentsContext2 = GlobalComponentsContext_1; - function ComponentsContext2(out, parentComponentsContext) { - var globalComponentsContext; - var componentDef; - if (parentComponentsContext) { - globalComponentsContext = parentComponentsContext.e_; - componentDef = parentComponentsContext.j_; - var nestedContextsForParent; - if (!(nestedContextsForParent = parentComponentsContext._Q_)) { - nestedContextsForParent = parentComponentsContext._Q_ = []; - } - nestedContextsForParent.push(this); - } else { - globalComponentsContext = out.global.b_; - if (globalComponentsContext === void 0) { - out.global.b_ = globalComponentsContext = new GlobalComponentsContext2(out); - } - } - this.e_ = globalComponentsContext; - this.b_ = []; - this.y_ = out; - this.j_ = componentDef; - this._Q_ = void 0; - this.p_ = parentComponentsContext && parentComponentsContext.p_; +VFragment$1.prototype = { + bA_: 12, + bx_: function() { + var fragment2 = createFragmentNode$2(); + keysByDOMNode$1.set(fragment2, this.bz_); + vElementByDOMNode$1.set(fragment2, this); + return fragment2; } - ComponentsContext2.prototype = { - z_: function(doc) { - var componentDefs = this.b_; - ComponentsContext2._R_(componentDefs, doc); - this.y_.emit("_S_"); - this.y_.global.b_ = void 0; - return componentDefs; - } +}; +inherit$2(VFragment$1, VNode$1); +var VFragment_1 = VFragment$1; +var parseHTML$1 = function(html) { + var container = document.createElement("template"); + parseHTML$1 = container.content ? function(html2) { + container.innerHTML = html2; + return container.content; + } : function(html2) { + container.innerHTML = html2; + return container; }; - function getComponentsContext2(out) { - return out.b_ || (out.b_ = new ComponentsContext2(out)); + return parseHTML$1(html); +}; +var parseHtml = function(html) { + return parseHTML$1(html).firstChild; +}; +var VNode = VNode_1; +var VDocumentFragment = VDocumentFragment_1; +var VElement$1 = VElement_1; +var VText = VText_1; +var VComponent = VComponent_1; +var VFragment = VFragment_1; +var parseHTML = parseHtml; +var specialHtmlRegexp = /[&<]/; +function virtualizeChildNodes(node, vdomParent, ownerComponent) { + var curChild = node.firstChild; + while (curChild) { + vdomParent.bq_(virtualize(curChild, ownerComponent)); + curChild = curChild.nextSibling; } - module.exports = exports = ComponentsContext2; - exports.o_ = getComponentsContext2; -})(ComponentsContext$1, ComponentsContext$1.exports); -var indexBrowser$3 = {}; -var promise; -var queueMicrotask_1 = typeof queueMicrotask === "function" ? queueMicrotask : typeof Promise === "function" && (promise = Promise.resolve()) ? function(cb) { - promise.then(cb).catch(rethrow); -} : setTimeout; -function rethrow(err) { - setTimeout(function() { - throw err; - }); } -var extend$1 = extend$5; -function ensure(state, propertyName) { - var proto2 = state.constructor.prototype; - if (!(propertyName in proto2)) { - Object.defineProperty(proto2, propertyName, { - get: function() { - return this._u_[propertyName]; - }, - set: function(value) { - this._f_(propertyName, value, false); - } - }); +function virtualize(node, ownerComponent) { + switch (node.nodeType) { + case 1: + return VElement$1.bM_(node, virtualizeChildNodes, ownerComponent); + case 3: + return new VText(node.nodeValue, ownerComponent); + case 11: + var vdomDocFragment = new VDocumentFragment(); + virtualizeChildNodes(node, vdomDocFragment, ownerComponent); + return vdomDocFragment; } } -function State(component) { - this.h_ = component; - this._u_ = {}; - this.V_ = false; - this._l_ = null; - this._k_ = null; - this._Y_ = null; - Object.seal(this); -} -State.prototype = { - I_: function() { - var self2 = this; - self2.V_ = false; - self2._l_ = null; - self2._k_ = null; - self2._Y_ = null; - }, - _d_: function(newState) { - var state = this; - var key; - var rawState = this._u_; - for (key in rawState) { - if (!(key in newState)) { - state._f_(key, void 0, false, false); +function virtualizeHTML(html, ownerComponent) { + if (!specialHtmlRegexp.test(html)) { + return new VText(html, ownerComponent); + } + var vdomFragment = new VDocumentFragment(); + var curChild = parseHTML(html); + while (curChild) { + vdomFragment.bq_(virtualize(curChild, ownerComponent)); + curChild = curChild.nextSibling; + } + return vdomFragment; +} +var Node_prototype = VNode.prototype; +Node_prototype.t = function(value) { + var type = typeof value; + var vdomNode; + if (type !== "string") { + if (value == null) { + value = ""; + } else if (type === "object") { + if (value.toHTML) { + vdomNode = virtualizeHTML(value.toHTML()); } } - for (key in newState) { - state._f_(key, newState[key], true, false); - } - }, - _f_: function(name, value, shouldEnsure, forceDirty) { - var rawState = this._u_; - if (shouldEnsure) { - ensure(this, name); - } - if (forceDirty) { - var forcedDirtyState = this._Y_ || (this._Y_ = {}); - forcedDirtyState[name] = true; - } else if (rawState[name] === value) { - return; - } - if (!this.V_) { - this.V_ = true; - this._l_ = rawState; - this._u_ = rawState = extend$1({}, rawState); - this._k_ = {}; - this.h_._e_(); - } - this._k_[name] = value; - if (value === void 0) { - delete rawState[name]; - } else { - rawState[name] = value; - } - }, - toJSON: function() { - return this._u_; } + this.bq_(vdomNode || new VText(value.toString())); + return this.bJ_(); }; -var State_1 = State; -var listenerTracker = { exports: {} }; -(function(module, exports) { - var INDEX_EVENT = 0; - var INDEX_USER_LISTENER = 1; - var INDEX_WRAPPED_LISTENER = 2; - var DESTROY = "destroy"; - function isNonEventEmitter(target) { - return !target.once; +Node_prototype.bv_ = function() { + return this.bq_(new VDocumentFragment()); +}; +vdom.ba_ = VDocumentFragment; +vdom.b__ = VElement$1; +vdom.bb_ = VText; +vdom.bc_ = VComponent; +vdom.bd_ = VFragment; +vdom.bM_ = virtualize; +vdom.be_ = virtualizeHTML; +var specialElHandlers = specialElHandlers$1; +var KeySequence = KeySequence_1; +var componentsUtil$2 = indexBrowser$2; +var existingComponentLookup = componentsUtil$2.C_; +var destroyNodeRecursive$1 = componentsUtil$2.D_; +var addComponentRootToKeyedElements$1 = componentsUtil$2.ap_; +var normalizeComponentKey = componentsUtil$2.aD_; +var VElement = vdom.b__; +var virtualizeElement = VElement.bM_; +var morphAttrs = VElement.bN_; +var eventDelegation$2 = eventDelegation$3; +var fragment = fragment$1; +var helpers = helpers$3; +var domData$2 = domData$6; +var keysByDOMNode = domData$2.ag_; +var componentByDOMNode = domData$2.E_; +var vElementByDOMNode = domData$2.ae_; +var detachedByDOMNode = domData$2.af_; +var insertBefore = helpers.aF_; +var insertAfter = helpers.aG_; +var nextSibling = helpers.bR_; +var firstChild = helpers._r_; +var removeChild = helpers.aH_; +var createFragmentNode$1 = fragment.ao_; +var beginFragmentNode = fragment.bY_; +var ELEMENT_NODE$1 = 1; +var TEXT_NODE = 3; +var COMMENT_NODE = 8; +var COMPONENT_NODE = 2; +var FRAGMENT_NODE = 12; +var DOCTYPE_NODE = 10; +function isAutoKey(key) { + return key[0] !== "@"; +} +function compareNodeNames(fromEl, toEl) { + return fromEl.bG_ === toEl.bG_; +} +function caseInsensitiveCompare(a, b) { + return a.toLowerCase() === b.toLowerCase(); +} +function onNodeAdded(node, componentsContext) { + if (node.nodeType === ELEMENT_NODE$1) { + eventDelegation$2.ab_(node, componentsContext); } - function EventEmitterWrapper(target) { - this.$__target = target; - this.$__listeners = []; - this.$__subscribeTo = null; +} +function morphdom$1(fromNode, toNode, host, componentsContext) { + var globalComponentsContext; + var isHydrate = false; + var keySequences = Object.create(null); + if (componentsContext) { + globalComponentsContext = componentsContext.e_; + isHydrate = globalComponentsContext.f_; } - EventEmitterWrapper.prototype = { - $__remove: function(test, testWrapped) { - var target = this.$__target; - var listeners = this.$__listeners; - this.$__listeners = listeners.filter(function(curListener) { - var curEvent = curListener[INDEX_EVENT]; - var curListenerFunc = curListener[INDEX_USER_LISTENER]; - var curWrappedListenerFunc = curListener[INDEX_WRAPPED_LISTENER]; - if (testWrapped) { - if (curWrappedListenerFunc && test(curEvent, curWrappedListenerFunc)) { - target.removeListener(curEvent, curWrappedListenerFunc); - return false; - } - } else if (test(curEvent, curListenerFunc)) { - target.removeListener(curEvent, curWrappedListenerFunc || curListenerFunc); - return false; - } - return true; - }); - var subscribeTo = this.$__subscribeTo; - if (!this.$__listeners.length && subscribeTo) { - var self2 = this; - var subscribeToList = subscribeTo.$__subscribeToList; - subscribeTo.$__subscribeToList = subscribeToList.filter(function(cur) { - return cur !== self2; - }); - } - }, - on: function(event, listener) { - this.$__target.on(event, listener); - this.$__listeners.push([event, listener]); - return this; - }, - once: function(event, listener) { - var self2 = this; - var wrappedListener = function() { - self2.$__remove(function(event2, listenerFunc) { - return wrappedListener === listenerFunc; - }, true); - listener.apply(this, arguments); - }; - this.$__target.once(event, wrappedListener); - this.$__listeners.push([event, listener, wrappedListener]); - return this; - }, - removeListener: function(event, listener) { - if (typeof event === "function") { - listener = event; - event = null; - } - if (listener && event) { - this.$__remove(function(curEvent, curListener) { - return event === curEvent && listener === curListener; - }); - } else if (listener) { - this.$__remove(function(curEvent, curListener) { - return listener === curListener; - }); - } else if (event) { - this.removeAllListeners(event); + function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { + var realNode = vNode.bx_(host, parentEl.namespaceURI); + insertBefore(realNode, referenceEl, parentEl); + if (vNode.bA_ === ELEMENT_NODE$1 || vNode.bA_ === FRAGMENT_NODE) { + if (key) { + keysByDOMNode.set(realNode, key); + (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; } - return this; - }, - removeAllListeners: function(event) { - var listeners = this.$__listeners; - var target = this.$__target; - if (event) { - this.$__remove(function(curEvent, curListener) { - return event === curEvent; - }); - } else { - for (var i = listeners.length - 1; i >= 0; i--) { - var cur = listeners[i]; - target.removeListener(cur[INDEX_EVENT], cur[INDEX_USER_LISTENER]); - } - this.$__listeners.length = 0; + if (vNode.bG_ !== "textarea") { + morphChildren(realNode, vNode, parentComponent); } - return this; + onNodeAdded(realNode, componentsContext); } - }; - function EventEmitterAdapter(target) { - this.$__target = target; } - EventEmitterAdapter.prototype = { - on: function(event, listener) { - this.$__target.addEventListener(event, listener); - return this; - }, - once: function(event, listener) { - var self2 = this; - var onceListener = function() { - self2.$__target.removeEventListener(event, onceListener); - listener(); - }; - this.$__target.addEventListener(event, onceListener); - return this; - }, - removeListener: function(event, listener) { - this.$__target.removeEventListener(event, listener); - return this; + function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) { + var rootNode = component.K_ = insertBefore(createFragmentNode$1(), referenceNode, referenceNodeParentEl); + componentByDOMNode.set(rootNode, component); + if (key && ownerComponent) { + key = normalizeComponentKey(key, parentComponent.id); + addComponentRootToKeyedElements$1(ownerComponent.k_, key, rootNode, component.id); + keysByDOMNode.set(rootNode, key); } - }; - function SubscriptionTracker2() { - this.$__subscribeToList = []; + morphComponent(component, vComponent); } - SubscriptionTracker2.prototype = { - subscribeTo: function(target, options) { - var addDestroyListener = !options || options.addDestroyListener !== false; - var wrapper; - var nonEE; - var subscribeToList = this.$__subscribeToList; - for (var i = 0, len = subscribeToList.length; i < len; i++) { - var cur = subscribeToList[i]; - if (cur.$__target === target) { - wrapper = cur; - break; + function morphComponent(component, vComponent) { + morphChildren(component.K_, vComponent, component); + } + var detachedNodes = []; + function detachNode(node, parentNode, ownerComponent) { + if (node.nodeType === ELEMENT_NODE$1 || node.nodeType === FRAGMENT_NODE) { + detachedNodes.push(node); + detachedByDOMNode.set(node, ownerComponent || true); + } else { + destroyNodeRecursive$1(node); + removeChild(node); + } + } + function destroyComponent(component) { + component.destroy(); + } + function morphChildren(fromNode2, toNode2, parentComponent) { + var curFromNodeChild = firstChild(fromNode2); + var curToNodeChild = toNode2._r_; + var curToNodeKey; + var curFromNodeKey; + var curToNodeType; + var fromNextSibling; + var toNextSibling; + var matchingFromEl; + var matchingFromComponent; + var curVFromNodeChild; + var fromComponent; + outer: + while (curToNodeChild) { + toNextSibling = curToNodeChild.bR_; + curToNodeType = curToNodeChild.bA_; + curToNodeKey = curToNodeChild.bz_; + if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { + curFromNodeChild = nextSibling(curFromNodeChild); } - } - if (!wrapper) { - if (isNonEventEmitter(target)) { - nonEE = new EventEmitterAdapter(target); + var ownerComponent = curToNodeChild.aA_ || parentComponent; + var referenceComponent; + if (curToNodeType === COMPONENT_NODE) { + var component = curToNodeChild.h_; + if ((matchingFromComponent = existingComponentLookup[component.id]) === void 0) { + if (isHydrate === true) { + var rootNode = beginFragmentNode(curFromNodeChild, fromNode2); + component.K_ = rootNode; + componentByDOMNode.set(rootNode, component); + if (ownerComponent && curToNodeKey) { + curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id); + addComponentRootToKeyedElements$1(ownerComponent.k_, curToNodeKey, rootNode, component.id); + keysByDOMNode.set(rootNode, curToNodeKey); + } + morphComponent(component, curToNodeChild); + curFromNodeChild = nextSibling(rootNode); + } else { + insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode2, component, curToNodeKey, ownerComponent, parentComponent); + } + } else { + if (matchingFromComponent.K_ !== curFromNodeChild) { + if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext._U_[fromComponent.id] === void 0) { + curFromNodeChild = nextSibling(fromComponent.K_); + destroyComponent(fromComponent); + continue; + } + insertBefore(matchingFromComponent.K_, curFromNodeChild, fromNode2); + } else { + curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild); + } + if (!curToNodeChild.n_) { + morphComponent(component, curToNodeChild); + } + } + curToNodeChild = toNextSibling; + continue; + } else if (curToNodeKey) { + curVFromNodeChild = void 0; + curFromNodeKey = void 0; + var curToNodeKeyOriginal = curToNodeKey; + if (isAutoKey(curToNodeKey)) { + if (ownerComponent !== parentComponent) { + curToNodeKey += ":" + ownerComponent.id; + } + referenceComponent = parentComponent; + } else { + referenceComponent = ownerComponent; + } + curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence()))._L_(curToNodeKey); + if (curFromNodeChild) { + curFromNodeKey = keysByDOMNode.get(curFromNodeChild); + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + fromNextSibling = nextSibling(curFromNodeChild); + } + if (curFromNodeKey === curToNodeKey) { + if (!curToNodeChild.n_) { + if (compareNodeNames(curToNodeChild, curVFromNodeChild)) { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } else { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + } + } + } else { + matchingFromEl = referenceComponent.k_[curToNodeKey]; + if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { + if (isHydrate === true && curFromNodeChild) { + if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bG_ || ""))) { + curVFromNodeChild = virtualizeElement(curFromNodeChild); + curVFromNodeChild.bG_ = curToNodeChild.bG_; + keysByDOMNode.set(curFromNodeChild, curToNodeKey); + referenceComponent.k_[curToNodeKey] = curFromNodeChild; + if (curToNodeChild.n_) { + vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild); + } else { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue; + } else if (curToNodeChild.bA_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { + var content = curFromNodeChild.nodeValue; + if (content == "F#" + curToNodeKeyOriginal) { + var endNode = curFromNodeChild.nextSibling; + var depth = 0; + var nodeValue; + while (true) { + if (endNode.nodeType === COMMENT_NODE) { + nodeValue = endNode.nodeValue; + if (nodeValue === "F/") { + if (depth === 0) { + break; + } else { + depth--; + } + } else if (nodeValue.indexOf("F#") === 0) { + depth++; + } + } + endNode = endNode.nextSibling; + } + var fragment2 = createFragmentNode$1(curFromNodeChild, endNode.nextSibling, fromNode2); + keysByDOMNode.set(fragment2, curToNodeKey); + vElementByDOMNode.set(fragment2, curToNodeChild); + referenceComponent.k_[curToNodeKey] = fragment2; + removeChild(curFromNodeChild); + removeChild(endNode); + if (!curToNodeChild.n_) { + morphChildren(fragment2, curToNodeChild, parentComponent); + } + curToNodeChild = toNextSibling; + curFromNodeChild = fragment2.nextSibling; + continue; + } + } + } + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + fromNextSibling = curFromNodeChild; + } else { + if (detachedByDOMNode.get(matchingFromEl) !== void 0) { + detachedByDOMNode.set(matchingFromEl, void 0); + } + if (!curToNodeChild.n_) { + curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); + if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { + if (fromNextSibling === matchingFromEl) { + if (toNextSibling && toNextSibling.bz_ === curFromNodeKey) { + fromNextSibling = curFromNodeChild; + insertBefore(matchingFromEl, curFromNodeChild, fromNode2); + } else { + fromNextSibling = nextSibling(fromNextSibling); + if (curFromNodeChild) { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + } + } + } else { + insertAfter(matchingFromEl, curFromNodeChild, fromNode2); + if (curFromNodeChild) { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + } + } + morphEl(matchingFromEl, curVFromNodeChild, curToNodeChild, parentComponent); + } else { + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + detachNode(matchingFromEl, fromNode2, ownerComponent); + } + } else { + insertBefore(matchingFromEl, curFromNodeChild, fromNode2); + fromNextSibling = curFromNodeChild; + } + } + } + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue; } - wrapper = new EventEmitterWrapper(nonEE || target); - if (addDestroyListener && !nonEE) { - wrapper.once(DESTROY, function() { - wrapper.removeAllListeners(); - for (var i2 = subscribeToList.length - 1; i2 >= 0; i2--) { - if (subscribeToList[i2].$__target === target) { - subscribeToList.splice(i2, 1); - break; + while (curFromNodeChild) { + fromNextSibling = nextSibling(curFromNodeChild); + if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { + curFromNodeChild = fromNextSibling; + if (!globalComponentsContext._U_[fromComponent.id]) { + destroyComponent(fromComponent); + } + continue; + } + var curFromNodeType = curFromNodeChild.nodeType; + var isCompatible = void 0; + if (curFromNodeType === curToNodeType) { + if (curFromNodeType === ELEMENT_NODE$1) { + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + if (curVFromNodeChild === void 0) { + if (isHydrate === true) { + curVFromNodeChild = virtualizeElement(curFromNodeChild); + if (caseInsensitiveCompare(curVFromNodeChild.bG_, curToNodeChild.bG_)) { + curVFromNodeChild.bG_ = curToNodeChild.bG_; + } + } else { + curFromNodeChild = fromNextSibling; + continue; + } + } else if (curFromNodeKey = curVFromNodeChild.bz_) { + isCompatible = false; + } + isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; + if (isCompatible === true) { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } + } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { + isCompatible = true; + if (isHydrate === true && toNextSibling && curFromNodeType === TEXT_NODE && toNextSibling.bA_ === TEXT_NODE) { + fromNextSibling = curFromNodeChild.splitText(curToNodeChild.bT_.length); + } + if (curFromNodeChild.nodeValue !== curToNodeChild.bT_) { + curFromNodeChild.nodeValue = curToNodeChild.bT_; } } - }); + } + if (isCompatible === true) { + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue outer; + } + detachNode(curFromNodeChild, fromNode2, ownerComponent); + curFromNodeChild = fromNextSibling; } - wrapper.$__subscribeTo = this; - subscribeToList.push(wrapper); + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; } - return wrapper; - }, - removeAllListeners: function(target, event) { - var subscribeToList = this.$__subscribeToList; - var i; - if (target) { - for (i = subscribeToList.length - 1; i >= 0; i--) { - var cur = subscribeToList[i]; - if (cur.$__target === target) { - cur.removeAllListeners(event); - if (!cur.$__listeners.length) { - subscribeToList.splice(i, 1); - } - break; + if (fromNode2.bX_) { + fromNode2.bX_(curFromNodeChild); + } else { + var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; + while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { + fromNextSibling = nextSibling(curFromNodeChild); + if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { + curFromNodeChild = fromNextSibling; + if (!globalComponentsContext._U_[fromComponent.id]) { + destroyComponent(fromComponent); } + continue; } - } else { - for (i = subscribeToList.length - 1; i >= 0; i--) { - subscribeToList[i].removeAllListeners(); + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + curFromNodeKey = keysByDOMNode.get(fromNode2); + if (!curFromNodeKey || isAutoKey(curFromNodeKey)) { + referenceComponent = parentComponent; + } else { + referenceComponent = curVFromNodeChild && curVFromNodeChild.aA_; } - subscribeToList.length = 0; + detachNode(curFromNodeChild, fromNode2, referenceComponent); + curFromNodeChild = fromNextSibling; } } - }; - exports = module.exports = SubscriptionTracker2; - exports.wrap = function(targetEventEmitter) { - var nonEE; - var wrapper; - if (isNonEventEmitter(targetEventEmitter)) { - nonEE = new EventEmitterAdapter(targetEventEmitter); + } + function morphEl(fromEl, vFromEl, toEl, parentComponent) { + var nodeName = toEl.bG_; + var constId = toEl.bI_; + if (constId !== void 0 && vFromEl.bI_ === constId) { + return; } - wrapper = new EventEmitterWrapper(nonEE || targetEventEmitter); - if (!nonEE) { - targetEventEmitter.once(DESTROY, function() { - wrapper.$__listeners.length = 0; - }); + morphAttrs(fromEl, vFromEl, toEl); + if (toEl.m_) { + return; } - return wrapper; - }; - exports.createTracker = function() { - return new SubscriptionTracker2(); - }; -})(listenerTracker, listenerTracker.exports); -var updateManager$1 = {}; -var updatesScheduled = false; -var batchStack = []; -var unbatchedQueue = []; -var setImmediate = indexBrowser$4; -function updateUnbatchedComponents() { - if (unbatchedQueue.length) { - try { - updateComponents(unbatchedQueue); - } finally { - updatesScheduled = false; + if (nodeName !== "textarea") { + morphChildren(fromEl, toEl, parentComponent); } - } -} -function scheduleUpdates() { - if (updatesScheduled) { - return; - } - updatesScheduled = true; - setImmediate(updateUnbatchedComponents); -} -function updateComponents(queue2) { - for (var i = 0; i < queue2.length; i++) { - var component = queue2[i]; - component._A_(); - } - queue2.length = 0; -} -function batchUpdate(func) { - var batch = { - az_: null - }; - batchStack.push(batch); - try { - func(); - } finally { - try { - if (batch.az_) { - updateComponents(batch.az_); - } - } finally { - batchStack.length--; + var specialElHandler = specialElHandlers[nodeName]; + if (specialElHandler !== void 0) { + specialElHandler(fromEl, toEl); } } -} -function queueComponentUpdate(component) { - var batchStackLen = batchStack.length; - if (batchStackLen) { - var batch = batchStack[batchStackLen - 1]; - if (batch.az_) { - batch.az_.push(component); - } else { - batch.az_ = [component]; + morphChildren(fromNode, toNode, toNode.h_); + detachedNodes.forEach(function(node) { + var detachedFromComponent = detachedByDOMNode.get(node); + if (detachedFromComponent !== void 0) { + detachedByDOMNode.set(node, void 0); + var componentToDestroy = componentByDOMNode.get(node); + if (componentToDestroy) { + componentToDestroy.destroy(); + } else if (node.parentNode) { + destroyNodeRecursive$1(node, detachedFromComponent !== true && detachedFromComponent); + if (eventDelegation$2.___(node) != false) { + removeChild(node); + } + } } - } else { - scheduleUpdates(); - unbatchedQueue.push(component); - } + }); } -updateManager$1._i_ = queueComponentUpdate; -updateManager$1._o_ = batchUpdate; +var morphdom_1 = morphdom$1; var domInsert = domInsert$2; var defaultCreateOut = createOut_1; -var getComponentsContext$1 = ComponentsContext$1.exports.o_; -var componentsUtil$2 = indexBrowser$5; -var componentLookup$2 = componentsUtil$2.C_; -var destroyNodeRecursive = componentsUtil$2.D_; +var getComponentsContext = ComponentsContext.exports.o_; +var componentsUtil$1 = indexBrowser$2; +var componentLookup$1 = componentsUtil$1.C_; +var destroyNodeRecursive = componentsUtil$1.D_; var EventEmitter = src; var RenderResult = RenderResult_1; var SubscriptionTracker = listenerTracker.exports; @@ -2568,7 +2199,7 @@ function handleCustomEventWithMethodListener(component, targetMethodName, args, if (extraArgs) { args = extraArgs.concat(args); } - var targetComponent = componentLookup$2[component.G_]; + var targetComponent = componentLookup$1[component.G_]; var targetMethod = typeof targetMethodName === "function" ? targetMethodName : targetComponent[targetMethodName]; if (!targetMethod) { throw Error("Method not found: " + targetMethodName); @@ -2730,7 +2361,7 @@ Component.prototype = componentProto = { } }); root.detached = true; - delete componentLookup$2[this.id]; + delete componentLookup$1[this.id]; this.k_ = {}; }, Z_: function() { @@ -2874,8 +2505,8 @@ Component.prototype = componentProto = { }, _m_: function() { var self2 = this; - var renderer2 = self2._n_; - if (!renderer2) { + var renderer = self2._n_; + if (!renderer) { throw TypeError(); } var input = this.P_ || this.Q_; @@ -2885,23 +2516,23 @@ Component.prototype = componentProto = { this.I_(); }, _p_: function(input, isHydrate) { - var doc = this.X_; + var host = this.X_; var globalData = this.S_; var rootNode = this.K_; - var renderer2 = this._n_; - var createOut3 = renderer2.createOut || defaultCreateOut; - var out = createOut3(globalData); + var renderer = this._n_; + var createOut2 = renderer.createOut || defaultCreateOut; + var out = createOut2(globalData); out.sync(); out.X_ = this.X_; out[CONTEXT_KEY] = this._h_; - var componentsContext = getComponentsContext$1(out); + var componentsContext = getComponentsContext(out); var globalComponentsContext = componentsContext.e_; globalComponentsContext._q_ = this; globalComponentsContext.f_ = isHydrate; - renderer2(input, out); + renderer(input, out); var result = new RenderResult(out); var targetNode = out.B_()._r_; - morphdom(rootNode, targetNode, doc, componentsContext); + morphdom(rootNode, targetNode, host, componentsContext); return result; }, _s_: function() { @@ -2952,235 +2583,147 @@ Component.prototype = componentProto = { }, H_() { this.onUpdate && this.onUpdate(); - this._w_("update"); - }, - _z_() { - this.onMount && this.onMount(); - this._w_("mount"); - }, - _a_() { - this.onDestroy && this.onDestroy(); - this._w_("destroy"); - } -}; -componentProto.elId = componentProto.getElId; -componentProto._A_ = componentProto.update; -componentProto._B_ = componentProto.destroy; -domInsert(componentProto, function getEl2(component) { - return component._s_(); -}, function afterInsert2(component) { - return component; -}); -inherit$1(Component, EventEmitter); -var Component_1 = Component; -var BaseState = State_1; -var BaseComponent = Component_1; -var inherit = inherit_1; -var defineComponent$1 = function defineComponent(def, renderer2) { - if (def.Y_) { - return def; - } - var ComponentClass = function() { - }; - var proto2; - var type = typeof def; - if (type == "function") { - proto2 = def.prototype; - } else if (type == "object") { - proto2 = def; - } else { - throw TypeError(); - } - ComponentClass.prototype = proto2; - function Component2(id) { - BaseComponent.call(this, id); - } - if (!proto2.Y_) { - inherit(ComponentClass, BaseComponent); - } - proto2 = Component2.prototype = ComponentClass.prototype; - Component2.Y_ = true; - function State2(component) { - BaseState.call(this, component); - } - inherit(State2, BaseState); - proto2._c_ = State2; - proto2._n_ = renderer2; - return Component2; -}; -var indexBrowser$2 = {}; -var constants$2 = {}; -var win$1 = typeof window !== "undefined" ? window : commonjsGlobal; -constants$2.NOOP = win$1.$W10NOOP = win$1.$W10NOOP || function() { -}; -var constants$1 = constants$2; -var isArray = Array.isArray; -function resolve(object, path, len) { - var current = object; - for (var i = 0; i < len; i++) { - current = current[path[i]]; - } - return current; -} -function resolveType(info) { - if (info.type === "Date") { - return new Date(info.value); - } else if (info.type === "NOOP") { - return constants$1.NOOP; - } else { - throw new Error("Bad type"); - } -} -var finalize$1 = function finalize(outer) { - if (!outer) { - return outer; - } - var assignments = outer.$$; - if (assignments) { - var object = outer.o; - var len; - if (assignments && (len = assignments.length)) { - for (var i = 0; i < len; i++) { - var assignment = assignments[i]; - var rhs = assignment.r; - var rhsValue; - if (isArray(rhs)) { - rhsValue = resolve(object, rhs, rhs.length); - } else { - rhsValue = resolveType(rhs); - } - var lhs = assignment.l; - var lhsLast = lhs.length - 1; - if (lhsLast === -1) { - object = outer.o = rhsValue; - break; - } else { - var lhsParent = resolve(object, lhs, lhsLast); - lhsParent[lhs[lhsLast]] = rhsValue; - } - } - } - assignments.length = 0; - return object == null ? null : object; - } else { - return outer; - } -}; -var finalize2 = finalize$1; -var constants = constants$2; -var w10Noop = constants.NOOP; -var componentUtil = indexBrowser$5; -var attachBubblingEvent = componentUtil._C_; -var addDelegatedEventHandler = eventDelegation$3._D_; -var extend2 = extend$5; -var KeySequence = KeySequence_1; -var EMPTY_OBJECT = {}; -var FLAG_WILL_RERENDER_IN_BROWSER$1 = 1; -var FLAG_HAS_RENDER_BODY = 2; -function ComponentDef$2(component, componentId, componentsContext) { - this._E_ = componentsContext; - this.h_ = component; - this.id = componentId; - this._F_ = void 0; - this._G_ = false; - this._H_ = false; - this._I_ = 0; - this._J_ = 0; - this._K_ = null; -} -ComponentDef$2.prototype = { - _L_: function(key) { - return (this._K_ || (this._K_ = new KeySequence()))._L_(key); - }, - elId: function(nestedId) { - var id = this.id; - if (nestedId == null) { - return id; - } else { - if (typeof nestedId !== "string") { - nestedId = String(nestedId); - } - if (nestedId.indexOf("#") === 0) { - id = "#" + id; - nestedId = nestedId.substring(1); - } - return id + "-" + nestedId; - } - }, - _M_: function() { - return this.id + "-c" + this._J_++; - }, - d: function(eventName, handlerMethodName, isOnce, extraArgs) { - addDelegatedEventHandler(eventName); - return attachBubblingEvent(this, handlerMethodName, isOnce, extraArgs); + this._w_("update"); }, - get _N_() { - return this.h_._N_; + _z_() { + this.onMount && this.onMount(); + this._w_("mount"); + }, + _a_() { + this.onDestroy && this.onDestroy(); + this._w_("destroy"); } }; -ComponentDef$2.prototype.nk = ComponentDef$2.prototype._L_; -ComponentDef$2._O_ = function(o, types, global2, registry2) { - var id = o[0]; - var typeName = types[o[1]]; - var input = o[2] || null; - var extra = o[3] || EMPTY_OBJECT; - var state = extra.s; - var componentProps = extra.w; - var flags = extra.f; - var component = registry2._P_(typeName, id); - component.U_ = true; - if (flags & FLAG_HAS_RENDER_BODY) { - (input || (input = {})).renderBody = w10Noop; +componentProto.elId = componentProto.getElId; +componentProto._A_ = componentProto.update; +componentProto._B_ = componentProto.destroy; +domInsert(componentProto, function getEl2(component) { + return component._s_(); +}, function afterInsert2(component) { + return component; +}); +inherit$1(Component, EventEmitter); +var Component_1 = Component; +var BaseState = State_1; +var BaseComponent = Component_1; +var inherit = inherit_1; +var defineComponent$1 = function defineComponent(def, renderer) { + if (def.Y_) { + return def; } - if (flags & FLAG_WILL_RERENDER_IN_BROWSER$1) { - if (component.onCreate) { - component.onCreate(input, { global: global2 }); - } - if (component.onInput) { - input = component.onInput(input, { global: global2 }) || input; - } + var ComponentClass = function() { + }; + var proto2; + var type = typeof def; + if (type == "function") { + proto2 = def.prototype; + } else if (type == "object") { + proto2 = def; } else { - if (state) { - var undefinedPropNames = extra.u; - if (undefinedPropNames) { - undefinedPropNames.forEach(function(undefinedPropName) { - state[undefinedPropName] = void 0; - }); - } - component.state = state; + throw TypeError(); + } + ComponentClass.prototype = proto2; + function Component2(id) { + BaseComponent.call(this, id); + } + if (!proto2.Y_) { + inherit(ComponentClass, BaseComponent); + } + proto2 = Component2.prototype = ComponentClass.prototype; + Component2.Y_ = true; + function State2(component) { + BaseState.call(this, component); + } + inherit(State2, BaseState); + proto2._c_ = State2; + proto2._n_ = renderer; + return Component2; +}; +var queueMicrotask$1 = queueMicrotask_1; +var defineComponent2 = defineComponent$1; +var initComponents$1 = indexBrowser$3; +var registered = {}; +var loaded = {}; +var componentTypes = {}; +var pendingDefs; +function register(type, def) { + var pendingForType; + if (pendingDefs) { + pendingForType = pendingDefs[type]; + } + registered[type] = def; + delete loaded[type]; + delete componentTypes[type]; + if (pendingForType) { + delete pendingDefs[type]; + queueMicrotask$1(function() { + pendingForType.forEach(function(args) { + initComponents$1.au_(args[0], args[1], args[2], args[3])(); + }); + }); + } + return type; +} +function addPendingDef(def, type, meta, host, runtimeId2) { + if (!pendingDefs) { + pendingDefs = {}; + } + (pendingDefs[type] = pendingDefs[type] || []).push([ + def, + meta, + host, + runtimeId2 + ]); +} +function isRegistered(type) { + return Boolean(registered[type]); +} +function load(typeName) { + var target = loaded[typeName]; + if (!target) { + target = registered[typeName]; + if (target) { + target = target(); } - if (componentProps) { - extend2(component, componentProps); + if (!target) { + throw Error("Component not found: " + typeName); } + loaded[typeName] = target; } - component.Q_ = input; - if (extra.b) { - component.N_ = extra.b; + return target; +} +function getComponentClass(typeName) { + var ComponentClass = componentTypes[typeName]; + if (ComponentClass) { + return ComponentClass; } - var scope = extra.p; - var customEvents = extra.e; - if (customEvents) { - component._v_(customEvents, scope); + ComponentClass = load(typeName); + ComponentClass = ComponentClass.Component || ComponentClass; + if (!ComponentClass.Y_) { + ComponentClass = defineComponent2(ComponentClass, ComponentClass.renderer); } - component.S_ = global2; - return { - id, - h_: component, - _F_: extra.d, - _I_: extra.f || 0 - }; -}; -var ComponentDef_1 = ComponentDef$2; + ComponentClass.prototype._N_ = typeName; + componentTypes[typeName] = ComponentClass; + return ComponentClass; +} +function createComponent(typeName, id) { + var ComponentClass = getComponentClass(typeName); + return new ComponentClass(id); +} +indexBrowser$1.r = register; +indexBrowser$1.av_ = getComponentClass; +indexBrowser$1._P_ = createComponent; +indexBrowser$1.as_ = isRegistered; +indexBrowser$1.at_ = addPendingDef; var warp10Finalize = finalize2; var eventDelegation = eventDelegation$3; var win = window; -var defaultDocument = document; var createFragmentNode = fragment$1.ao_; -var componentsUtil$1 = indexBrowser$5; -var componentLookup$1 = componentsUtil$1.C_; -var addComponentRootToKeyedElements = componentsUtil$1.ap_; -var ComponentDef$1 = ComponentDef_1; -var registry$1 = indexBrowser$3; +var componentsUtil = indexBrowser$2; +var componentLookup = componentsUtil.C_; +var addComponentRootToKeyedElements = componentsUtil.ap_; +var ComponentDef = ComponentDef_1; +var registry$1 = indexBrowser$1; var domData = domData$6; var keyedElementsByComponentId = domData.F_; var componentsByDOMNode = domData.E_; @@ -3222,7 +2765,7 @@ function indexServerComponentBoundaries(node, runtimeId2, stack) { var key = parts[2]; ownerId = parts[1]; componentId = parts[0]; - if (ownerComponent = componentLookup$1[ownerId]) { + if (ownerComponent = componentLookup[ownerId]) { keyedElements = ownerComponent.k_; } else { keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); @@ -3236,12 +2779,12 @@ function indexServerComponentBoundaries(node, runtimeId2, stack) { } } else if (node.nodeType === 1) { var markoKey = node.getAttribute("data-marko-key"); - var markoProps = componentsUtil$1.am_(node); + var markoProps = componentsUtil.am_(node); if (markoKey) { var separatorIndex = markoKey.indexOf(" "); ownerId = markoKey.substring(separatorIndex + 1); markoKey = markoKey.substring(0, separatorIndex); - if (ownerComponent = componentLookup$1[ownerId]) { + if (ownerComponent = componentLookup[ownerId]) { keyedElements = ownerComponent.k_; } else { keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); @@ -3290,10 +2833,10 @@ function addDOMEventListeners(component, el, eventType, targetMethodName, isOnce }); handles.push(removeListener2); } -function initComponent(componentDef, doc) { +function initComponent(componentDef, host) { var component = componentDef.h_; component.I_(); - component.X_ = doc; + component.X_ = host; var isExisting = componentDef._G_; if (isExisting) { component._b_(); @@ -3320,9 +2863,10 @@ function initComponent(componentDef, doc) { component._z_(); } } -function initClientRendered(componentDefs, doc) { - eventDelegation.an_(doc); - doc = doc || defaultDocument; +function initClientRendered(componentDefs, host) { + if (!host) + host = document; + eventDelegation.an_(host); var len = componentDefs.length; var componentDef; var i; @@ -3332,10 +2876,10 @@ function initClientRendered(componentDefs, doc) { } for (i = len; i--; ) { componentDef = componentDefs[i]; - initComponent(componentDef, doc); + initComponent(componentDef, host); } } -function initServerRendered(renderedComponents, doc) { +function initServerRendered(renderedComponents, host) { var type = typeof renderedComponents; var globalKey = "$"; var runtimeId2; @@ -3362,10 +2906,11 @@ function initServerRendered(renderedComponents, doc) { renderedComponents = warp10Finalize(renderedComponents); if (isFromSerializedGlobals) { runtimeId2 = this.r; - doc = defaultDocument; + host = document; } else { runtimeId2 = renderedComponents.r || DEFAULT_RUNTIME_ID; - doc = doc || defaultDocument; + if (!host) + host = document; } var prefix = renderedComponents.p || ""; var meta = serverRenderedMeta[prefix]; @@ -3380,8 +2925,8 @@ function initServerRendered(renderedComponents, doc) { serverRenderedMeta[prefix] = meta; } } - indexServerComponentBoundaries(doc, runtimeId2); - eventDelegation.an_(doc); + indexServerComponentBoundaries(host, runtimeId2); + eventDelegation.an_(host); if (renderedComponents.g) { meta.aq_ = renderedComponents.g; } @@ -3390,22 +2935,22 @@ function initServerRendered(renderedComponents, doc) { } (renderedComponents.w || []).map(function(componentDef) { var typeName = meta.ar_[componentDef[1]]; - return registry$1.as_(typeName) ? tryHydrateComponent(componentDef, meta, doc, runtimeId2) : registry$1.at_(componentDef, typeName, meta, doc, runtimeId2); + return registry$1.as_(typeName) ? tryHydrateComponent(componentDef, meta, host, runtimeId2) : registry$1.at_(componentDef, typeName, meta, host, runtimeId2); }).reverse().forEach(tryInvoke); return this; } -function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { - var componentDef = ComponentDef$1._O_(rawDef, meta.ar_, meta.aq_, registry$1); - var mount = hydrateComponentAndGetMount(componentDef, doc); +function tryHydrateComponent(rawDef, meta, host, runtimeId2) { + var componentDef = ComponentDef._O_(rawDef, meta.ar_, meta.aq_, registry$1); + var mount = hydrateComponentAndGetMount(componentDef, host); if (!mount) { if (deferredDefs) { deferredDefs.push(componentDef); } else { deferredDefs = [componentDef]; - doc.addEventListener("DOMContentLoaded", function() { - indexServerComponentBoundaries(doc, runtimeId2); + document.addEventListener("DOMContentLoaded", function() { + indexServerComponentBoundaries(host, runtimeId2); deferredDefs.map(function(componentDef2) { - return hydrateComponentAndGetMount(componentDef2, doc); + return hydrateComponentAndGetMount(componentDef2, host); }).reverse().forEach(tryInvoke); deferredDefs = void 0; }); @@ -3413,7 +2958,7 @@ function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { } return mount; } -function hydrateComponentAndGetMount(componentDef, doc) { +function hydrateComponentAndGetMount(componentDef, host) { var componentId = componentDef.id; var component = componentDef.h_; var rootNode = serverComponentRootNodes[componentId]; @@ -3423,254 +2968,42 @@ function hydrateComponentAndGetMount(componentDef, doc) { component.K_ = rootNode; componentsByDOMNode.set(rootNode, component); if (componentDef._I_ & FLAG_WILL_RERENDER_IN_BROWSER) { - component.X_ = doc; + component.X_ = host; renderResult = component._p_(component.Q_, true); trackComponent(componentDef); return function mount() { - renderResult.afterInsert(doc); + renderResult.afterInsert(host); }; } else { trackComponent(componentDef); } return function mount() { - initComponent(componentDef, doc); + initComponent(componentDef, host); }; } } function trackComponent(componentDef) { var component = componentDef.h_; if (component) { - componentLookup$1[component.id] = component; + componentLookup[component.id] = component; } } function tryInvoke(fn) { if (fn) fn(); } -indexBrowser$2._R_ = initClientRendered; -indexBrowser$2.ai_ = initServerRendered; -indexBrowser$2.au_ = tryHydrateComponent; -var initComponents$1 = indexBrowser$2; -ComponentsContext$1.exports._R_ = initComponents$1._R_; -window.$initComponents = initComponents$1.ai_; -var queueMicrotask$1 = queueMicrotask_1; -var defineComponent2 = defineComponent$1; -var initComponents = indexBrowser$2; -var registered = {}; -var loaded = {}; -var componentTypes = {}; -var pendingDefs; -function register(type, def) { - var pendingForType; - if (pendingDefs) { - pendingForType = pendingDefs[type]; - } - registered[type] = def; - delete loaded[type]; - delete componentTypes[type]; - if (pendingForType) { - delete pendingDefs[type]; - queueMicrotask$1(function() { - pendingForType.forEach(function(args) { - initComponents.au_(args[0], args[1], args[2], args[3])(); - }); - }); - } - return type; -} -function addPendingDef(def, type, meta, doc, runtimeId2) { - if (!pendingDefs) { - pendingDefs = {}; - } - (pendingDefs[type] = pendingDefs[type] || []).push([ - def, - meta, - doc, - runtimeId2 - ]); -} -function isRegistered(type) { - return Boolean(registered[type]); -} -function load(typeName) { - var target = loaded[typeName]; - if (!target) { - target = registered[typeName]; - if (target) { - target = target(); - } - if (!target) { - throw Error("Component not found: " + typeName); - } - loaded[typeName] = target; - } - return target; -} -function getComponentClass(typeName) { - var ComponentClass = componentTypes[typeName]; - if (ComponentClass) { - return ComponentClass; - } - ComponentClass = load(typeName); - ComponentClass = ComponentClass.Component || ComponentClass; - if (!ComponentClass.Y_) { - ComponentClass = defineComponent2(ComponentClass, ComponentClass.renderer); - } - ComponentClass.prototype._N_ = typeName; - componentTypes[typeName] = ComponentClass; - return ComponentClass; -} -function createComponent(typeName, id) { - var ComponentClass = getComponentClass(typeName); - return new ComponentClass(id); -} -var r = indexBrowser$3.r = register; -indexBrowser$3.av_ = getComponentClass; -indexBrowser$3._P_ = createComponent; -indexBrowser$3.as_ = isRegistered; -indexBrowser$3.at_ = addPendingDef; -var ComponentDef = ComponentDef_1; -var indexBrowser$1 = function beginComponent(componentsContext, component, key, ownerComponentDef) { - var componentId = component.id; - var componentDef = componentsContext.j_ = new ComponentDef(component, componentId, componentsContext); - componentsContext.e_._U_[componentId] = true; - componentsContext.b_.push(componentDef); - var out = componentsContext.y_; - out.bc(component, key, ownerComponentDef && ownerComponentDef.h_); - return componentDef; -}; -var indexBrowser = function endComponent(out) { - out.ee(); -}; -var componentsUtil = indexBrowser$5; -var componentLookup = componentsUtil.C_; -var ComponentsContext = ComponentsContext$1.exports; -var getComponentsContext = ComponentsContext.o_; -var registry = indexBrowser$3; -var copyProps2 = copyProps$2; -var isServer = componentsUtil.aw_ === true; -var beginComponent2 = indexBrowser$1; -var endComponent2 = indexBrowser; -var COMPONENT_BEGIN_ASYNC_ADDED_KEY = "$wa"; -function resolveComponentKey(key, parentComponentDef) { - if (key[0] === "#") { - return key.substring(1); - } else { - return parentComponentDef.id + "-" + parentComponentDef._L_(key); - } -} -function trackAsyncComponents(out) { - if (out.isSync() || out.global[COMPONENT_BEGIN_ASYNC_ADDED_KEY]) { - return; - } - out.on("beginAsync", handleBeginAsync); - out.on("beginDetachedAsync", handleBeginDetachedAsync); - out.global[COMPONENT_BEGIN_ASYNC_ADDED_KEY] = true; -} -function handleBeginAsync(event) { - var parentOut = event.parentOut; - var asyncOut = event.out; - var componentsContext = parentOut.b_; - if (componentsContext !== void 0) { - asyncOut.b_ = new ComponentsContext(asyncOut, componentsContext); - } - asyncOut.c(parentOut.g_, parentOut.i_, parentOut.ax_); -} -function handleBeginDetachedAsync(event) { - var asyncOut = event.out; - handleBeginAsync(event); - asyncOut.on("beginAsync", handleBeginAsync); - asyncOut.on("beginDetachedAsync", handleBeginDetachedAsync); -} -function createRendererFunc(templateRenderFunc, componentProps, renderingLogic) { - var onInput = renderingLogic && renderingLogic.onInput; - var typeName = componentProps.t; - var isSplit = componentProps.s === true; - componentProps.i === true; - var shouldApplySplitMixins = renderingLogic && isSplit; - if (componentProps.d) { - throw new Error("Runtime/NODE_ENV Mismatch"); - } - return function renderer2(input, out) { - trackAsyncComponents(out); - var componentsContext = getComponentsContext(out); - var globalComponentsContext = componentsContext.e_; - var component = globalComponentsContext._q_; - var isRerender = component !== void 0; - var id; - var isExisting; - var customEvents; - var parentComponentDef = componentsContext.j_; - var ownerComponentDef = out.g_; - var ownerComponentId = ownerComponentDef && ownerComponentDef.id; - var key = out.i_; - if (component) { - id = component.id; - isExisting = true; - globalComponentsContext._q_ = null; - } else { - if (parentComponentDef) { - customEvents = out.ax_; - if (key != null) { - id = resolveComponentKey(key.toString(), parentComponentDef); - } else { - id = parentComponentDef._M_(); - } - } else { - id = globalComponentsContext._M_(); - } - } - if (isServer) { - component = registry._P_(renderingLogic, id, input, out, typeName, customEvents, ownerComponentId); - input = component._X_; - } else { - if (!component) { - if (isRerender && (component = componentLookup[id]) && component._N_ !== typeName) { - component.destroy(); - component = void 0; - } - if (component) { - isExisting = true; - } else { - isExisting = false; - component = registry._P_(typeName, id); - if (shouldApplySplitMixins === true) { - shouldApplySplitMixins = false; - var renderingLogicProps = typeof renderingLogic == "function" ? renderingLogic.prototype : renderingLogic; - copyProps2(renderingLogicProps, component.constructor.prototype); - } - } - component.U_ = true; - if (customEvents !== void 0) { - component._v_(customEvents, ownerComponentId); - } - if (isExisting === false) { - component._x_(input, out); - } - input = component._g_(input, onInput, out); - if (isExisting === true) { - if (component._j_ === false || component.shouldUpdate(input, component.J_) === false) { - out.ay_(component); - globalComponentsContext._U_[id] = true; - component.I_(); - return; - } - } - } - component.S_ = out.global; - component._y_(out); - } - var componentDef = beginComponent2(componentsContext, component, key, ownerComponentDef); - componentDef._G_ = isExisting; - templateRenderFunc(input, out, componentDef, component, component._t_); - endComponent2(out); - componentsContext.j_ = parentComponentDef; - }; -} -var renderer = createRendererFunc; -var renderTag = function renderTagHelper(handler, input, out, componentDef, key, customEvents) { - out.c(componentDef, key, customEvents); - (handler._ || (handler._ = handler.render || handler.renderer || handler))(input, out); - out.g_ = null; +indexBrowser$3._R_ = initClientRendered; +indexBrowser$3.ai_ = initServerRendered; +indexBrowser$3.au_ = tryHydrateComponent; +var initComponents = indexBrowser$3; +ComponentsContext.exports._R_ = initComponents._R_; +indexBrowser$4.getComponentForEl = indexBrowser$2.ah_; +indexBrowser$4.init = window.$initComponents = initComponents.ai_; +var registry = indexBrowser$1; +indexBrowser$4.register = function(id, component) { + registry.r(id, function() { + return component; + }); }; -export { renderer as a, renderTag as b, defineComponent$1 as d, r, t, vElement as v }; +var components = indexBrowser$4; +export { components as c }; diff --git a/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/index.html b/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/index.html similarity index 58% rename from src/__tests__/__snapshots__/browser-hydrate-split-component.expected/index.html rename to src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/index.html index 4df3f36..370ea31 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-split-component.expected/index.html +++ b/src/__tests__/fixtures/browser-hydrate-split-component/__snapshots__/browser-hydrate-split-component.expected/index.html @@ -5,9 +5,9 @@ Vite App - - - + + +
diff --git a/src/__tests__/__snapshots__/isomorphic-basic.expected/assets/template.marko.15c33f46.css b/src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/template.marko.css similarity index 100% rename from src/__tests__/__snapshots__/isomorphic-basic.expected/assets/template.marko.15c33f46.css rename to src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/template.marko.css diff --git a/src/__tests__/__snapshots__/isomorphic-basic.expected/assets/template.marko.afaf349f.js b/src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/template.marko.js similarity index 95% rename from src/__tests__/__snapshots__/isomorphic-basic.expected/assets/template.marko.afaf349f.js rename to src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/template.marko.js index 1f15acf..fff9c76 100644 --- a/src/__tests__/__snapshots__/isomorphic-basic.expected/assets/template.marko.afaf349f.js +++ b/src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/template.marko.js @@ -1,4 +1,4 @@ -import { t, v as vElement, r, a as renderer, d as defineComponent, c as components } from "./vendor.6f686af0.js"; +import { t, v as vElement, r, a as renderer, d as defineComponent, c as components } from "./vendor.js"; const p = function polyfill() { const relList = document.createElement("link").relList; if (relList && relList.supports && relList.supports("modulepreload")) { @@ -41,7 +41,7 @@ const p = function polyfill() { } }; p(); -var template_marko = "\n div { color: green }\n"; +var template_marko = ""; const _marko_componentType = "1BSUdNzk", _marko_template = t(_marko_componentType); const _marko_node = vElement("div", { "id": "class" diff --git a/src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/vendor.d0fc20d1.js b/src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/vendor.js similarity index 89% rename from src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/vendor.d0fc20d1.js rename to src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/vendor.js index 01f3ca7..60924a9 100644 --- a/src/__tests__/__snapshots__/browser-hydrate-entry.expected/assets/vendor.d0fc20d1.js +++ b/src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/assets/vendor.js @@ -1,344 +1,144 @@ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -var slice$1 = Array.prototype.slice; -function isFunction(arg) { - return typeof arg === "function"; -} -function checkListener(listener) { - if (!isFunction(listener)) { - throw TypeError("Invalid listener"); - } -} -function invokeListener(ee, listener, args) { - switch (args.length) { - case 1: - listener.call(ee); - break; - case 2: - listener.call(ee, args[1]); - break; - case 3: - listener.call(ee, args[1], args[2]); - break; - default: - listener.apply(ee, slice$1.call(args, 1)); +var indexBrowser$6 = {}; +var indexBrowser$5 = {}; +var constants$2 = {}; +var win$1 = typeof window !== "undefined" ? window : commonjsGlobal; +constants$2.NOOP = win$1.$W10NOOP = win$1.$W10NOOP || function() { +}; +var constants$1 = constants$2; +var isArray = Array.isArray; +function resolve(object, path, len) { + var current = object; + for (var i = 0; i < len; i++) { + current = current[path[i]]; } + return current; } -function addListener(eventEmitter, type, listener, prepend) { - checkListener(listener); - var events = eventEmitter.$e || (eventEmitter.$e = {}); - var listeners = events[type]; - if (listeners) { - if (isFunction(listeners)) { - events[type] = prepend ? [listener, listeners] : [listeners, listener]; - } else { - if (prepend) { - listeners.unshift(listener); - } else { - listeners.push(listener); - } - } +function resolveType(info) { + if (info.type === "Date") { + return new Date(info.value); + } else if (info.type === "NOOP") { + return constants$1.NOOP; } else { - events[type] = listener; + throw new Error("Bad type"); } - return eventEmitter; } -function EventEmitter$2() { - this.$e = this.$e || {}; -} -EventEmitter$2.EventEmitter = EventEmitter$2; -EventEmitter$2.prototype = { - $e: null, - emit: function(type) { - var args = arguments; - var events = this.$e; - if (!events) { - return; - } - var listeners = events && events[type]; - if (!listeners) { - if (type === "error") { - var error = args[1]; - if (!(error instanceof Error)) { - var context = error; - error = new Error("Error: " + context); - error.context = context; +var finalize$1 = function finalize(outer) { + if (!outer) { + return outer; + } + var assignments = outer.$$; + if (assignments) { + var object = outer.o; + var len; + if (assignments && (len = assignments.length)) { + for (var i = 0; i < len; i++) { + var assignment = assignments[i]; + var rhs = assignment.r; + var rhsValue; + if (isArray(rhs)) { + rhsValue = resolve(object, rhs, rhs.length); + } else { + rhsValue = resolveType(rhs); + } + var lhs = assignment.l; + var lhsLast = lhs.length - 1; + if (lhsLast === -1) { + object = outer.o = rhsValue; + break; + } else { + var lhsParent = resolve(object, lhs, lhsLast); + lhsParent[lhs[lhsLast]] = rhsValue; } - throw error; } - return false; } - if (isFunction(listeners)) { - invokeListener(this, listeners, args); - } else { - listeners = slice$1.call(listeners); - for (var i = 0, len = listeners.length; i < len; i++) { - var listener = listeners[i]; - invokeListener(this, listener, args); + assignments.length = 0; + return object == null ? null : object; + } else { + return outer; + } +}; +var finalize2 = finalize$1; +var eventDelegation$3 = {}; +var indexBrowser$4 = {}; +var domData$6 = { + ad_: new WeakMap(), + ae_: new WeakMap(), + E_: new WeakMap(), + af_: new WeakMap(), + ag_: new WeakMap(), + F_: {} +}; +var domData$5 = domData$6; +var componentsByDOMNode$2 = domData$5.E_; +var keysByDOMNode$2 = domData$5.ag_; +var vElementsByDOMNode = domData$5.ae_; +var vPropsByDOMNode = domData$5.ad_; +var markoUID = window.$MUID || (window.$MUID = { i: 0 }); +var runtimeId$1 = markoUID.i++; +var componentLookup$4 = {}; +var EMPTY_OBJECT$2 = {}; +function getComponentForEl(el, host) { + var node = typeof el == "string" ? ((host ? host.ownerDocument : host) || document).getElementById(el) : el; + var component; + var vElement2; + while (node) { + if (node.fragment) { + if (node.fragment.endNode === node) { + node = node.fragment.startNode; + } else { + node = node.fragment; + component = componentsByDOMNode$2.get(node); } + } else if (vElement2 = vElementsByDOMNode.get(node)) { + component = vElement2.aA_; } - return true; - }, - on: function(type, listener) { - return addListener(this, type, listener, false); - }, - prependListener: function(type, listener) { - return addListener(this, type, listener, true); - }, - once: function(type, listener) { - checkListener(listener); - function g() { - this.removeListener(type, g); - if (listener) { - listener.apply(this, arguments); - listener = null; - } + if (component) { + return component; } - this.on(type, g); - return this; - }, - removeListener: function(type, listener) { - checkListener(listener); - var events = this.$e; - var listeners; - if (events && (listeners = events[type])) { - if (isFunction(listeners)) { - if (listeners === listener) { - delete events[type]; - } - } else { - for (var i = listeners.length - 1; i >= 0; i--) { - if (listeners[i] === listener) { - listeners.splice(i, 1); - } + node = node.previousSibling || node.parentNode; + } +} +function destroyComponentForNode$1(node) { + var componentToDestroy = componentsByDOMNode$2.get(node.fragment || node); + if (componentToDestroy) { + componentToDestroy.Z_(); + delete componentLookup$4[componentToDestroy.id]; + } +} +function destroyNodeRecursive$3(node, component) { + destroyComponentForNode$1(node); + if (node.nodeType === 1 || node.nodeType === 12) { + var key; + if (component && (key = keysByDOMNode$2.get(node))) { + if (node === component.k_[key]) { + if (componentsByDOMNode$2.get(node) && /\[\]$/.test(key)) { + delete component.k_[key][componentsByDOMNode$2.get(node).id]; + } else { + delete component.k_[key]; } } } - return this; - }, - removeAllListeners: function(type) { - var events = this.$e; - if (events) { - delete events[type]; + var curChild = node.firstChild; + while (curChild && curChild !== node.endNode) { + destroyNodeRecursive$3(curChild, component); + curChild = curChild.nextSibling; } - }, - listenerCount: function(type) { - var events = this.$e; - var listeners = events && events[type]; - return listeners ? isFunction(listeners) ? 1 : listeners.length : 0; } -}; -var src = EventEmitter$2; -var vdom$1 = {}; -function VNode$6() { } -VNode$6.prototype = { - bz_: function(finalChildCount, ownerComponent) { - this.bP_ = finalChildCount; - this.bQ_ = 0; - this.bF_ = null; - this.bR_ = null; - this.bC_ = null; - this.bD_ = null; - this.aA_ = ownerComponent; - }, - get _r_() { - var firstChild2 = this.bF_; - if (firstChild2 && firstChild2.bE_) { - var nestedFirstChild = firstChild2._r_; - return nestedFirstChild || firstChild2.bS_; - } - return firstChild2; - }, - get bS_() { - var nextSibling2 = this.bD_; - if (nextSibling2) { - if (nextSibling2.bE_) { - var firstChild2 = nextSibling2._r_; - return firstChild2 || nextSibling2.bS_; - } +function nextComponentId() { + return "c" + markoUID.i++; +} +function nextComponentIdProvider$1() { + return nextComponentId; +} +function attachBubblingEvent$1(componentDef, handlerMethodName, isOnce, extraArgs) { + if (handlerMethodName) { + var componentId = componentDef.id; + if (extraArgs) { + return [handlerMethodName, componentId, isOnce, extraArgs]; } else { - var parentNode = this.bC_; - if (parentNode && parentNode.bE_) { - return parentNode.bS_; - } - } - return nextSibling2; - }, - br_: function(child) { - this.bQ_++; - if (this.bH_ === "textarea") { - if (child.bT_) { - var childValue = child.bU_; - this.bI_ = (this.bI_ || "") + childValue; - } else if (child.n_ || child.m_) { - this.bV_ = true; - } else { - throw TypeError(); - } - } else { - var lastChild = this.bR_; - child.bC_ = this; - if (lastChild) { - lastChild.bD_ = child; - } else { - this.bF_ = child; - } - this.bR_ = child; - } - return child; - }, - bK_: function finishChild() { - if (this.bQ_ === this.bP_ && this.bC_) { - return this.bC_.bK_(); - } else { - return this; - } - } -}; -var VNode_1 = VNode$6; -var copyProps$2 = function copyProps(from, to) { - Object.getOwnPropertyNames(from).forEach(function(name) { - var descriptor = Object.getOwnPropertyDescriptor(from, name); - Object.defineProperty(to, name, descriptor); - }); -}; -var copyProps$1 = copyProps$2; -function inherit$7(ctor, superCtor, shouldCopyProps) { - var oldProto = ctor.prototype; - var newProto = ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - writable: true, - configurable: true - } - }); - if (oldProto && shouldCopyProps !== false) { - copyProps$1(oldProto, newProto); - } - ctor.$super = superCtor; - ctor.prototype = newProto; - return ctor; -} -var inherit_1 = inherit$7; -inherit$7._inherit = inherit$7; -var extend$5 = function extend(target, source) { - if (!target) { - target = {}; - } - if (source) { - for (var propName in source) { - if (source.hasOwnProperty(propName)) { - target[propName] = source[propName]; - } - } - } - return target; -}; -var VNode$5 = VNode_1; -var inherit$6 = inherit_1; -var extend$4 = extend$5; -function VDocumentFragmentClone(other) { - extend$4(this, other); - this.bC_ = null; - this.bD_ = null; -} -function VDocumentFragment$2(out) { - this.bz_(null); - this.y_ = out; -} -VDocumentFragment$2.prototype = { - bB_: 11, - bE_: true, - bs_: function() { - return new VDocumentFragmentClone(this); - }, - by_: function(doc) { - return doc.createDocumentFragment(); - } -}; -inherit$6(VDocumentFragment$2, VNode$5); -VDocumentFragmentClone.prototype = VDocumentFragment$2.prototype; -var VDocumentFragment_1 = VDocumentFragment$2; -var domData$6 = { - ad_: new WeakMap(), - ae_: new WeakMap(), - E_: new WeakMap(), - af_: new WeakMap(), - ag_: new WeakMap(), - F_: {} -}; -var indexBrowser$5 = {}; -var domData$5 = domData$6; -var componentsByDOMNode$2 = domData$5.E_; -var keysByDOMNode$2 = domData$5.ag_; -var vElementsByDOMNode = domData$5.ae_; -var vPropsByDOMNode = domData$5.ad_; -var markoUID = window.$MUID || (window.$MUID = { i: 0 }); -var runtimeId$1 = markoUID.i++; -var componentLookup$4 = {}; -var defaultDocument$3 = document; -var EMPTY_OBJECT$2 = {}; -function getComponentForEl(el, doc) { - var node = typeof el == "string" ? (doc || defaultDocument$3).getElementById(el) : el; - var component; - var vElement2; - while (node) { - if (node.fragment) { - if (node.fragment.endNode === node) { - node = node.fragment.startNode; - } else { - node = node.fragment; - component = componentsByDOMNode$2.get(node); - } - } else if (vElement2 = vElementsByDOMNode.get(node)) { - component = vElement2.aA_; - } - if (component) { - return component; - } - node = node.previousSibling || node.parentNode; - } -} -function destroyComponentForNode$1(node) { - var componentToDestroy = componentsByDOMNode$2.get(node.fragment || node); - if (componentToDestroy) { - componentToDestroy.Z_(); - delete componentLookup$4[componentToDestroy.id]; - } -} -function destroyNodeRecursive$3(node, component) { - destroyComponentForNode$1(node); - if (node.nodeType === 1 || node.nodeType === 12) { - var key; - if (component && (key = keysByDOMNode$2.get(node))) { - if (node === component.k_[key]) { - if (componentsByDOMNode$2.get(node) && /\[\]$/.test(key)) { - delete component.k_[key][componentsByDOMNode$2.get(node).id]; - } else { - delete component.k_[key]; - } - } - } - var curChild = node.firstChild; - while (curChild && curChild !== node.endNode) { - destroyNodeRecursive$3(curChild, component); - curChild = curChild.nextSibling; - } - } -} -function nextComponentId() { - return "c" + markoUID.i++; -} -function nextComponentIdProvider$1() { - return nextComponentId; -} -function attachBubblingEvent$1(componentDef, handlerMethodName, isOnce, extraArgs) { - if (handlerMethodName) { - var componentId = componentDef.id; - if (extraArgs) { - return [handlerMethodName, componentId, isOnce, extraArgs]; - } else { - return [handlerMethodName, componentId, isOnce]; + return [handlerMethodName, componentId, isOnce]; } } } @@ -370,302 +170,110 @@ function addComponentRootToKeyedElements$2(keyedElements, key, rootNode, compone keyedElements[key] = rootNode; } } -indexBrowser$5.al_ = runtimeId$1; -indexBrowser$5.C_ = componentLookup$4; -indexBrowser$5.ah_ = getComponentForEl; -indexBrowser$5.aC_ = destroyComponentForNode$1; -indexBrowser$5.D_ = destroyNodeRecursive$3; -indexBrowser$5._T_ = nextComponentIdProvider$1; -indexBrowser$5._C_ = attachBubblingEvent$1; -indexBrowser$5.am_ = getMarkoPropsFromEl$1; -indexBrowser$5.ap_ = addComponentRootToKeyedElements$2; -indexBrowser$5.aD_ = normalizeComponentKey$1; -var domData$4 = domData$6; -var componentsUtil$6 = indexBrowser$5; -var vElementByDOMNode$2 = domData$4.ae_; -var VNode$4 = VNode_1; -var inherit$5 = inherit_1; -var ATTR_XLINK_HREF = "xlink:href"; -var xmlnsRegExp = /^xmlns(:|$)/; -var hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var NS_XLINK = "http://www.w3.org/1999/xlink"; -var NS_HTML = "http://www.w3.org/1999/xhtml"; -var NS_MATH = "http://www.w3.org/1998/Math/MathML"; -var NS_SVG = "http://www.w3.org/2000/svg"; -var DEFAULT_NS = { - svg: NS_SVG, - math: NS_MATH -}; -var FLAG_SIMPLE_ATTRS = 1; -var FLAG_CUSTOM_ELEMENT = 2; -var FLAG_SPREAD_ATTRS = 4; -var defineProperty = Object.defineProperty; -var ATTR_HREF = "href"; -var EMPTY_OBJECT$1 = Object.freeze({}); -function convertAttrValue(type, value) { - if (value === true) { - return ""; - } else if (type == "object") { - if (value instanceof RegExp) { - return value.source; +indexBrowser$4.al_ = runtimeId$1; +indexBrowser$4.C_ = componentLookup$4; +indexBrowser$4.ah_ = getComponentForEl; +indexBrowser$4.aC_ = destroyComponentForNode$1; +indexBrowser$4.D_ = destroyNodeRecursive$3; +indexBrowser$4._T_ = nextComponentIdProvider$1; +indexBrowser$4._C_ = attachBubblingEvent$1; +indexBrowser$4.am_ = getMarkoPropsFromEl$1; +indexBrowser$4.ap_ = addComponentRootToKeyedElements$2; +indexBrowser$4.aD_ = normalizeComponentKey$1; +var componentsUtil$6 = indexBrowser$4; +var runtimeId = componentsUtil$6.al_; +var componentLookup$3 = componentsUtil$6.C_; +var getMarkoPropsFromEl = componentsUtil$6.am_; +var TEXT_NODE$1 = 3; +var listenersAttachedKey = "$MDE" + runtimeId; +var delegatedEvents = {}; +function getEventFromEl(el, eventName) { + var virtualProps = getMarkoPropsFromEl(el); + var eventInfo = virtualProps[eventName]; + if (typeof eventInfo === "string") { + eventInfo = eventInfo.split(" "); + if (eventInfo[2]) { + eventInfo[2] = eventInfo[2] === "true"; + } + if (eventInfo.length == 4) { + eventInfo[3] = parseInt(eventInfo[3], 10); } } - return value + ""; + return eventInfo; } -function assign(a, b) { - for (var key in b) { - if (hasOwnProperty$1.call(b, key)) { - a[key] = b[key]; +function delegateEvent(node, eventName, target, event) { + var targetMethod = target[0]; + var targetComponentId = target[1]; + var isOnce = target[2]; + var extraArgs = target[3]; + if (isOnce) { + var virtualProps = getMarkoPropsFromEl(node); + delete virtualProps[eventName]; + } + var targetComponent = componentLookup$3[targetComponentId]; + if (!targetComponent) { + return; + } + var targetFunc = typeof targetMethod === "function" ? targetMethod : targetComponent[targetMethod]; + if (!targetFunc) { + throw Error("Method not found: " + targetMethod); + } + if (extraArgs != null) { + if (typeof extraArgs === "number") { + extraArgs = targetComponent.N_[extraArgs]; } } -} -function setAttribute(el, namespaceURI, name, value) { - if (namespaceURI === null) { - el.setAttribute(name, value); + if (extraArgs) { + targetFunc.apply(targetComponent, extraArgs.concat(event, node)); } else { - el.setAttributeNS(namespaceURI, name, value); + targetFunc.call(targetComponent, event, node); } } -function removeAttribute(el, namespaceURI, name) { - if (namespaceURI === null) { - el.removeAttribute(name); - } else { - el.removeAttributeNS(namespaceURI, name); +function addDelegatedEventHandler$1(eventType) { + if (!delegatedEvents[eventType]) { + delegatedEvents[eventType] = true; } } -function VElementClone(other) { - this.bF_ = other.bF_; - this.bC_ = null; - this.bD_ = null; - this.bA_ = other.bA_; - this.bG_ = other.bG_; - this.aB_ = other.aB_; - this.bH_ = other.bH_; - this._I_ = other._I_; - this.bI_ = other.bI_; - this.bJ_ = other.bJ_; +function addDelegatedEventHandlerToHost(eventType, host) { + var listeners = host[listenersAttachedKey] = host[listenersAttachedKey] || {}; + if (!listeners[eventType]) { + (host.body || host).addEventListener(eventType, listeners[eventType] = function(event) { + var propagationStopped = false; + var oldStopPropagation = event.stopPropagation; + event.stopPropagation = function() { + oldStopPropagation.call(event); + propagationStopped = true; + }; + var curNode = event.target; + if (!curNode) { + return; + } + curNode = curNode.correspondingUseElement || (curNode.nodeType === TEXT_NODE$1 ? curNode.parentNode : curNode); + var propName = "on" + eventType; + var target; + do { + if (target = getEventFromEl(curNode, propName)) { + delegateEvent(curNode, propName, target, event); + if (propagationStopped) { + break; + } + } + } while ((curNode = curNode.parentNode) && curNode.getAttribute); + }, true); + } } -function VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - this.bz_(childCount, ownerComponent); - var constId; - if (props) { - constId = props.i; - } - this.bA_ = key; - this._I_ = flags || 0; - this.bG_ = attrs2 || EMPTY_OBJECT$1; - this.aB_ = props || EMPTY_OBJECT$1; - this.bH_ = tagName; - this.bI_ = null; - this.bJ_ = constId; - this.n_ = false; - this.m_ = false; +function noop() { } -VElement$4.prototype = { - bB_: 1, - bs_: function() { - return new VElementClone(this); - }, - e: function(tagName, attrs2, key, ownerComponent, childCount, flags, props) { - var child = this.br_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); - if (childCount === 0) { - return this.bK_(); - } else { - return child; - } - }, - n: function(node, ownerComponent) { - node = node.bs_(); - node.aA_ = ownerComponent; - this.br_(node); - return this.bK_(); - }, - by_: function(doc, parentNamespaceURI) { - var tagName = this.bH_; - var attributes = this.bG_; - var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; - var flags = this._I_; - var el = doc.createElementNS(namespaceURI, tagName); - if (flags & FLAG_CUSTOM_ELEMENT) { - assign(el, attributes); - } else { - for (var attrName in attributes) { - var attrValue = attributes[attrName]; - if (attrValue !== false && attrValue != null) { - var type = typeof attrValue; - if (type !== "string") { - attrValue = convertAttrValue(type, attrValue); - } - if (attrName == ATTR_XLINK_HREF) { - setAttribute(el, NS_XLINK, ATTR_HREF, attrValue); - } else { - el.setAttribute(attrName, attrValue); - } - } - } - if (tagName === "textarea") { - el.defaultValue = el.value = this.q_; - } - } - vElementByDOMNode$2.set(el, this); - return el; - }, - bL_: function(name) { - var value = this.bG_[name]; - return value != null && value !== false; - } -}; -inherit$5(VElement$4, VNode$4); -var proto$2 = VElementClone.prototype = VElement$4.prototype; -["checked", "selected", "disabled"].forEach(function(name) { - defineProperty(proto$2, name, { - get: function() { - var value = this.bG_[name]; - return value !== false && value != null; - } +eventDelegation$3.ab_ = noop; +eventDelegation$3.___ = noop; +eventDelegation$3._Z_ = delegateEvent; +eventDelegation$3.a__ = getEventFromEl; +eventDelegation$3._D_ = addDelegatedEventHandler$1; +eventDelegation$3.an_ = function(host) { + Object.keys(delegatedEvents).forEach(function(eventType) { + addDelegatedEventHandlerToHost(eventType, host); }); -}); -defineProperty(proto$2, "q_", { - get: function() { - var value = this.bI_; - if (value == null) { - value = this.bG_.value; - } - return value != null && value !== false ? value + "" : this.bG_.type === "checkbox" || this.bG_.type === "radio" ? "on" : ""; - } -}); -VElement$4.bM_ = function(attrs2) { - return attrs2; -}; -function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { - var attributes = node.attributes; - var attrCount = attributes.length; - var attrs2 = null; - var props = null; - if (attrCount) { - attrs2 = {}; - for (var i = 0; i < attrCount; i++) { - var attr = attributes[i]; - var attrName = attr.name; - if (!xmlnsRegExp.test(attrName)) { - if (attrName === "data-marko") { - props = componentsUtil$6.am_(node); - } else if (attr.namespaceURI === NS_XLINK) { - attrs2[ATTR_XLINK_HREF] = attr.value; - } else { - attrs2[attrName] = attr.value; - } - } - } - } - var tagName = node.nodeName; - if (node.namespaceURI === NS_HTML) { - tagName = tagName.toLowerCase(); - } - var vdomEl = new VElement$4(tagName, attrs2, null, ownerComponent, 0, 0, props); - if (vdomEl.bH_ === "textarea") { - vdomEl.bI_ = node.value; - } else if (virtualizeChildNodes2) { - virtualizeChildNodes2(node, vdomEl, ownerComponent); - } - return vdomEl; -} -VElement$4.bN_ = virtualizeElement$1; -VElement$4.bO_ = function(fromEl, vFromEl, toEl) { - var removePreservedAttributes = VElement$4.bM_; - var fromFlags = vFromEl._I_; - var toFlags = toEl._I_; - vElementByDOMNode$2.set(fromEl, toEl); - var attrs2 = toEl.bG_; - var props = toEl.aB_; - if (toFlags & FLAG_CUSTOM_ELEMENT) { - return assign(fromEl, attrs2); - } - var attrName; - var oldAttrs = vFromEl.bG_; - if (oldAttrs) { - if (oldAttrs === attrs2) { - return; - } else { - oldAttrs = removePreservedAttributes(oldAttrs, props); - } - } - var attrValue; - if (toFlags & FLAG_SIMPLE_ATTRS && fromFlags & FLAG_SIMPLE_ATTRS) { - if (oldAttrs["class"] !== (attrValue = attrs2["class"])) { - fromEl.className = attrValue; - } - if (oldAttrs.id !== (attrValue = attrs2.id)) { - fromEl.id = attrValue; - } - if (oldAttrs.style !== (attrValue = attrs2.style)) { - fromEl.style.cssText = attrValue; - } - return; - } - attrs2 = removePreservedAttributes(attrs2, props, true); - var namespaceURI; - for (attrName in attrs2) { - attrValue = attrs2[attrName]; - namespaceURI = null; - if (attrName === ATTR_XLINK_HREF) { - namespaceURI = NS_XLINK; - attrName = ATTR_HREF; - } - if (attrValue == null || attrValue === false) { - removeAttribute(fromEl, namespaceURI, attrName); - } else if (oldAttrs[attrName] !== attrValue) { - var type = typeof attrValue; - if (type !== "string") { - attrValue = convertAttrValue(type, attrValue); - } - setAttribute(fromEl, namespaceURI, attrName, attrValue); - } - } - if (toEl.bA_ === null || fromFlags & FLAG_SPREAD_ATTRS) { - for (attrName in oldAttrs) { - if (!(attrName in attrs2)) { - if (attrName === ATTR_XLINK_HREF) { - fromEl.removeAttributeNS(ATTR_XLINK_HREF, ATTR_HREF); - } else { - fromEl.removeAttribute(attrName); - } - } - } - } -}; -var VElement_1 = VElement$4; -var VNode$3 = VNode_1; -var inherit$4 = inherit_1; -function VText$2(value, ownerComponent) { - this.bz_(-1, ownerComponent); - this.bU_ = value; -} -VText$2.prototype = { - bT_: true, - bB_: 3, - by_: function(doc) { - return doc.createTextNode(this.bU_); - }, - bs_: function() { - return new VText$2(this.bU_); - } -}; -inherit$4(VText$2, VNode$3); -var VText_1 = VText$2; -var VNode$2 = VNode_1; -var inherit$3 = inherit_1; -function VComponent$2(component, key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; - this.h_ = component; - this.n_ = preserve; -} -VComponent$2.prototype = { - bB_: 2 }; -inherit$3(VComponent$2, VNode$2); -var VComponent_1 = VComponent$2; var fragment$1 = {}; var helpers$3 = {}; function insertBefore$3(node, referenceNode, parentNode) { @@ -697,7 +305,7 @@ function removeChild$2(node) { } helpers$3.aF_ = insertBefore$3; helpers$3.aG_ = insertAfter$2; -helpers$3.bS_ = nextSibling$1; +helpers$3.bR_ = nextSibling$1; helpers$3._r_ = firstChild$1; helpers$3.aH_ = removeChild$2; var helpers$2 = helpers$3; @@ -763,119 +371,229 @@ function createFragmentNode$3(startNode, nextNode, parentNode) { } function beginFragmentNode$1(startNode, parentNode) { var fragment2 = createFragmentNode$3(startNode, null, parentNode); - fragment2.bY_ = function(nextNode) { - fragment2.bY_ = null; + fragment2.bX_ = function(nextNode) { + fragment2.bX_ = null; insertBefore$2(fragment2.endNode, nextNode, parentNode || startNode.parentNode); }; return fragment2; } fragment$1.ao_ = createFragmentNode$3; -fragment$1.bZ_ = beginFragmentNode$1; -var domData$3 = domData$6; -var keysByDOMNode$1 = domData$3.ag_; -var vElementByDOMNode$1 = domData$3.ae_; -var VNode$1 = VNode_1; -var inherit$2 = inherit_1; -var createFragmentNode$2 = fragment$1.ao_; -function VFragment$2(key, ownerComponent, preserve) { - this.bz_(null, ownerComponent); - this.bA_ = key; - this.n_ = preserve; -} -VFragment$2.prototype = { - bB_: 12, - by_: function() { - var fragment2 = createFragmentNode$2(); - keysByDOMNode$1.set(fragment2, this.bA_); - vElementByDOMNode$1.set(fragment2, this); - return fragment2; - } -}; -inherit$2(VFragment$2, VNode$1); -var VFragment_1 = VFragment$2; -var parseHTML$1 = function(html) { - var container = document.createElement("template"); - parseHTML$1 = container.content ? function(html2) { - container.innerHTML = html2; - return container.content; - } : function(html2) { - container.innerHTML = html2; - return container; - }; - return parseHTML$1(html); -}; -var parseHtml = function(html) { - return parseHTML$1(html).firstChild; -}; -var VNode = VNode_1; -var VDocumentFragment$1 = VDocumentFragment_1; -var VElement$3 = VElement_1; -var VText$1 = VText_1; -var VComponent$1 = VComponent_1; -var VFragment$1 = VFragment_1; -var parseHTML = parseHtml; -var defaultDocument$2 = typeof document != "undefined" && document; -var specialHtmlRegexp = /[&<]/; -function virtualizeChildNodes(node, vdomParent, ownerComponent) { - var curChild = node.firstChild; - while (curChild) { - vdomParent.br_(virtualize(curChild, ownerComponent)); - curChild = curChild.nextSibling; +fragment$1.bY_ = beginFragmentNode$1; +var constants = constants$2; +var extend$5 = function extend(target, source) { + if (!target) { + target = {}; } -} -function virtualize(node, ownerComponent) { - switch (node.nodeType) { - case 1: - return VElement$3.bN_(node, virtualizeChildNodes, ownerComponent); - case 3: - return new VText$1(node.nodeValue, ownerComponent); - case 11: - var vdomDocFragment = new VDocumentFragment$1(); - virtualizeChildNodes(node, vdomDocFragment, ownerComponent); - return vdomDocFragment; + if (source) { + for (var propName in source) { + if (source.hasOwnProperty(propName)) { + target[propName] = source[propName]; + } + } } + return target; +}; +function KeySequence$2() { + this._V_ = Object.create(null); } -function virtualizeHTML$1(html, doc, ownerComponent) { - if (!specialHtmlRegexp.test(html)) { - return new VText$1(html, ownerComponent); - } - var vdomFragment = new VDocumentFragment$1(); - var curChild = parseHTML(html); - while (curChild) { - vdomFragment.br_(virtualize(curChild, ownerComponent)); - curChild = curChild.nextSibling; +KeySequence$2.prototype._L_ = function(key) { + var lookup = this._V_; + if (lookup[key]) { + return key + "_" + lookup[key]++; } - return vdomFragment; + lookup[key] = 1; + return key; +}; +var KeySequence_1 = KeySequence$2; +var w10Noop = constants.NOOP; +var componentUtil = indexBrowser$4; +var attachBubblingEvent = componentUtil._C_; +var addDelegatedEventHandler = eventDelegation$3._D_; +var extend$4 = extend$5; +var KeySequence$1 = KeySequence_1; +var EMPTY_OBJECT$1 = {}; +var FLAG_WILL_RERENDER_IN_BROWSER$1 = 1; +var FLAG_HAS_RENDER_BODY = 2; +function ComponentDef$2(component, componentId, componentsContext) { + this._E_ = componentsContext; + this.h_ = component; + this.id = componentId; + this._F_ = void 0; + this._G_ = false; + this._H_ = false; + this._I_ = 0; + this._J_ = 0; + this._K_ = null; } -var Node_prototype = VNode.prototype; -Node_prototype.t = function(value) { - var type = typeof value; - var vdomNode; - if (type !== "string") { - if (value == null) { - value = ""; - } else if (type === "object") { - if (value.toHTML) { - vdomNode = virtualizeHTML$1(value.toHTML()); +ComponentDef$2.prototype = { + _L_: function(key) { + return (this._K_ || (this._K_ = new KeySequence$1()))._L_(key); + }, + elId: function(nestedId) { + var id = this.id; + if (nestedId == null) { + return id; + } else { + if (typeof nestedId !== "string") { + nestedId = String(nestedId); + } + if (nestedId.indexOf("#") === 0) { + id = "#" + id; + nestedId = nestedId.substring(1); } + return id + "-" + nestedId; } + }, + _M_: function() { + return this.id + "-c" + this._J_++; + }, + d: function(eventName, handlerMethodName, isOnce, extraArgs) { + addDelegatedEventHandler(eventName); + return attachBubblingEvent(this, handlerMethodName, isOnce, extraArgs); + }, + get _N_() { + return this.h_._N_; } - this.br_(vdomNode || new VText$1(value.toString())); - return this.bK_(); }; -Node_prototype.bw_ = function() { - return this.br_(new VDocumentFragment$1()); +ComponentDef$2.prototype.nk = ComponentDef$2.prototype._L_; +ComponentDef$2._O_ = function(o, types, global2, registry2) { + var id = o[0]; + var typeName = types[o[1]]; + var input = o[2] || null; + var extra = o[3] || EMPTY_OBJECT$1; + var state = extra.s; + var componentProps = extra.w; + var flags = extra.f; + var component = registry2._P_(typeName, id); + component.U_ = true; + if (flags & FLAG_HAS_RENDER_BODY) { + (input || (input = {})).renderBody = w10Noop; + } + if (flags & FLAG_WILL_RERENDER_IN_BROWSER$1) { + if (component.onCreate) { + component.onCreate(input, { global: global2 }); + } + if (component.onInput) { + input = component.onInput(input, { global: global2 }) || input; + } + } else { + if (state) { + var undefinedPropNames = extra.u; + if (undefinedPropNames) { + undefinedPropNames.forEach(function(undefinedPropName) { + state[undefinedPropName] = void 0; + }); + } + component.state = state; + } + if (componentProps) { + extend$4(component, componentProps); + } + } + component.Q_ = input; + if (extra.b) { + component.N_ = extra.b; + } + var scope = extra.p; + var customEvents = extra.e; + if (customEvents) { + component._v_(customEvents, scope); + } + component.S_ = global2; + return { + id, + h_: component, + _F_: extra.d, + _I_: extra.f || 0 + }; }; -vdom$1.ba_ = VDocumentFragment$1; -vdom$1.b__ = VElement$3; -vdom$1.bb_ = VText$1; -vdom$1.bc_ = VComponent$1; -vdom$1.bd_ = VFragment$1; -vdom$1.bN_ = virtualize; -vdom$1.be_ = virtualizeHTML$1; -vdom$1.bf_ = defaultDocument$2; +var ComponentDef_1 = ComponentDef$2; +var indexBrowser$3 = {}; +var promise; +var queueMicrotask_1 = typeof queueMicrotask === "function" ? queueMicrotask : typeof Promise === "function" && (promise = Promise.resolve()) ? function(cb) { + promise.then(cb).catch(rethrow); +} : setTimeout; +function rethrow(err) { + setTimeout(function() { + throw err; + }); +} var extend$3 = extend$5; -var componentsUtil$5 = indexBrowser$5; +function ensure(state, propertyName) { + var proto2 = state.constructor.prototype; + if (!(propertyName in proto2)) { + Object.defineProperty(proto2, propertyName, { + get: function() { + return this._u_[propertyName]; + }, + set: function(value) { + this._f_(propertyName, value, false); + } + }); + } +} +function State$1(component) { + this.h_ = component; + this._u_ = {}; + this.V_ = false; + this._l_ = null; + this._k_ = null; + this._Y_ = null; + Object.seal(this); +} +State$1.prototype = { + I_: function() { + var self2 = this; + self2.V_ = false; + self2._l_ = null; + self2._k_ = null; + self2._Y_ = null; + }, + _d_: function(newState) { + var state = this; + var key; + var rawState = this._u_; + for (key in rawState) { + if (!(key in newState)) { + state._f_(key, void 0, false, false); + } + } + for (key in newState) { + state._f_(key, newState[key], true, false); + } + }, + _f_: function(name, value, shouldEnsure, forceDirty) { + var rawState = this._u_; + if (shouldEnsure) { + ensure(this, name); + } + if (forceDirty) { + var forcedDirtyState = this._Y_ || (this._Y_ = {}); + forcedDirtyState[name] = true; + } else if (rawState[name] === value) { + return; + } + if (!this.V_) { + this.V_ = true; + this._l_ = rawState; + this._u_ = rawState = extend$3({}, rawState); + this._k_ = {}; + this.h_._e_(); + } + this._k_[name] = value; + if (value === void 0) { + delete rawState[name]; + } else { + rawState[name] = value; + } + }, + toJSON: function() { + return this._u_; + } +}; +var State_1 = State$1; +var extend$2 = extend$5; +var componentsUtil$5 = indexBrowser$4; var destroyComponentForNode = componentsUtil$5.aC_; var destroyNodeRecursive$2 = componentsUtil$5.D_; var helpers$1 = helpers$3; @@ -897,7 +615,7 @@ function beforeRemove(referenceEl) { destroyComponentForNode(referenceEl); } var domInsert$2 = function(target, getEl3, afterInsert3) { - extend$3(target, { + extend$2(target, { appendTo: function(referenceEl) { referenceEl = resolveEl(referenceEl); var el = getEl3(this, referenceEl); @@ -945,1597 +663,1510 @@ var domInsert$2 = function(target, getEl3, afterInsert3) { } }); }; -var domInsert$1 = domInsert$2; -function getComponentDefs(result) { - var componentDefs = result.b_; - if (!componentDefs) { - throw Error("No component"); - } - return componentDefs; +var actualCreateOut; +function setCreateOut(createOutFunc) { + actualCreateOut = createOutFunc; } -function RenderResult$2(out) { - this.out = this.y_ = out; - this.b_ = void 0; +function createOut(globalData) { + return actualCreateOut(globalData); } -var RenderResult_1 = RenderResult$2; -var proto$1 = RenderResult$2.prototype = { - getComponent: function() { - return this.getComponents()[0]; - }, - getComponents: function(selector) { - if (this.b_ === void 0) { - throw Error("Not added to DOM"); - } - var componentDefs = getComponentDefs(this); - var components = []; - componentDefs.forEach(function(componentDef) { - var component = componentDef.h_; - if (!selector || selector(component)) { - components.push(component); +createOut.aE_ = setCreateOut; +var createOut_1 = createOut; +var ComponentsContext$1 = { exports: {} }; +var nextComponentIdProvider = indexBrowser$4._T_; +function GlobalComponentsContext(out) { + this._U_ = {}; + this._q_ = void 0; + this._M_ = nextComponentIdProvider(out); +} +var GlobalComponentsContext_1 = GlobalComponentsContext; +(function(module, exports) { + var GlobalComponentsContext2 = GlobalComponentsContext_1; + function ComponentsContext2(out, parentComponentsContext) { + var globalComponentsContext; + var componentDef; + if (parentComponentsContext) { + globalComponentsContext = parentComponentsContext.e_; + componentDef = parentComponentsContext.j_; + var nestedContextsForParent; + if (!(nestedContextsForParent = parentComponentsContext._Q_)) { + nestedContextsForParent = parentComponentsContext._Q_ = []; } - }); - return components; - }, - afterInsert: function(doc) { - var out = this.y_; - var componentsContext = out.b_; - if (componentsContext) { - this.b_ = componentsContext.z_(doc); + nestedContextsForParent.push(this); } else { - this.b_ = null; + globalComponentsContext = out.global.b_; + if (globalComponentsContext === void 0) { + out.global.b_ = globalComponentsContext = new GlobalComponentsContext2(out); + } } - return this; - }, - getNode: function(doc) { - return this.y_.A_(doc); - }, - getOutput: function() { - return this.y_.B_(); - }, - toString: function() { - return this.y_.toString(); - }, - document: typeof document != "undefined" && document -}; -Object.defineProperty(proto$1, "html", { - get: function() { - return this.toString(); - } -}); -Object.defineProperty(proto$1, "context", { - get: function() { - return this.y_; + this.e_ = globalComponentsContext; + this.b_ = []; + this.y_ = out; + this.j_ = componentDef; + this._Q_ = void 0; + this.p_ = parentComponentsContext && parentComponentsContext.p_; } -}); -domInsert$1(proto$1, function getEl(renderResult, referenceEl) { - return renderResult.getNode(referenceEl.ownerDocument); -}, function afterInsert(renderResult, referenceEl) { - var isShadow = typeof ShadowRoot === "function" && referenceEl instanceof ShadowRoot; - return renderResult.afterInsert(isShadow ? referenceEl : referenceEl.ownerDocument); -}); -function syncBooleanAttrProp(fromEl, toEl, name) { - if (fromEl[name] !== toEl[name]) { - fromEl[name] = toEl[name]; - if (fromEl[name]) { - fromEl.setAttribute(name, ""); - } else { - fromEl.removeAttribute(name, ""); + ComponentsContext2.prototype = { + z_: function(host) { + var componentDefs = this.b_; + ComponentsContext2._R_(componentDefs, host); + this.y_.emit("_S_"); + this.y_.global.b_ = void 0; + return componentDefs; } + }; + function getComponentsContext2(out) { + return out.b_ || (out.b_ = new ComponentsContext2(out)); } + module.exports = exports = ComponentsContext2; + exports.o_ = getComponentsContext2; +})(ComponentsContext$1, ComponentsContext$1.exports); +var slice$1 = Array.prototype.slice; +function isFunction(arg) { + return typeof arg === "function"; } -function forEachOption(el, fn, i) { - var curChild = el._r_; - while (curChild) { - if (curChild.bH_ === "option") { - fn(curChild, ++i); +function checkListener(listener) { + if (!isFunction(listener)) { + throw TypeError("Invalid listener"); + } +} +function invokeListener(ee, listener, args) { + switch (args.length) { + case 1: + listener.call(ee); + break; + case 2: + listener.call(ee, args[1]); + break; + case 3: + listener.call(ee, args[1], args[2]); + break; + default: + listener.apply(ee, slice$1.call(args, 1)); + } +} +function addListener(eventEmitter, type, listener, prepend) { + checkListener(listener); + var events = eventEmitter.$e || (eventEmitter.$e = {}); + var listeners = events[type]; + if (listeners) { + if (isFunction(listeners)) { + events[type] = prepend ? [listener, listeners] : [listeners, listener]; } else { - i = forEachOption(curChild, fn, i); + if (prepend) { + listeners.unshift(listener); + } else { + listeners.push(listener); + } } - curChild = curChild.bS_; + } else { + events[type] = listener; } - return i; + return eventEmitter; } -function SpecialElHandlers() { +function EventEmitter$2() { + this.$e = this.$e || {}; } -SpecialElHandlers.prototype = { - option: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "selected"); - }, - button: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "disabled"); - }, - input: function(fromEl, toEl) { - syncBooleanAttrProp(fromEl, toEl, "checked"); - syncBooleanAttrProp(fromEl, toEl, "disabled"); - if (fromEl.value != toEl.q_) { - fromEl.value = toEl.q_; - } - if (fromEl.hasAttribute("value") && !toEl.bL_("value")) { - fromEl.removeAttribute("value"); - } - }, - textarea: function(fromEl, toEl) { - if (toEl.bV_) { +EventEmitter$2.EventEmitter = EventEmitter$2; +EventEmitter$2.prototype = { + $e: null, + emit: function(type) { + var args = arguments; + var events = this.$e; + if (!events) { return; } - var newValue = toEl.q_; - if (fromEl.value != newValue) { - fromEl.value = newValue; + var listeners = events && events[type]; + if (!listeners) { + if (type === "error") { + var error = args[1]; + if (!(error instanceof Error)) { + var context = error; + error = new Error("Error: " + context); + error.context = context; + } + throw error; + } + return false; } - var firstChild2 = fromEl.firstChild; - if (firstChild2) { - var oldValue = firstChild2.nodeValue; - if (oldValue == newValue || !newValue && oldValue == fromEl.placeholder) { - return; + if (isFunction(listeners)) { + invokeListener(this, listeners, args); + } else { + listeners = slice$1.call(listeners); + for (var i = 0, len = listeners.length; i < len; i++) { + var listener = listeners[i]; + invokeListener(this, listener, args); } - firstChild2.nodeValue = newValue; } + return true; }, - select: function(fromEl, toEl) { - if (!toEl.bL_("multiple")) { - var selected = 0; - forEachOption(toEl, function(option, i) { - if (option.bL_("selected")) { - selected = i; + on: function(type, listener) { + return addListener(this, type, listener, false); + }, + prependListener: function(type, listener) { + return addListener(this, type, listener, true); + }, + once: function(type, listener) { + checkListener(listener); + function g() { + this.removeListener(type, g); + if (listener) { + listener.apply(this, arguments); + listener = null; + } + } + this.on(type, g); + return this; + }, + removeListener: function(type, listener) { + checkListener(listener); + var events = this.$e; + var listeners; + if (events && (listeners = events[type])) { + if (isFunction(listeners)) { + if (listeners === listener) { + delete events[type]; + } + } else { + for (var i = listeners.length - 1; i >= 0; i--) { + if (listeners[i] === listener) { + listeners.splice(i, 1); + } } - }, -1); - if (fromEl.selectedIndex !== selected) { - fromEl.selectedIndex = selected; } } + return this; + }, + removeAllListeners: function(type) { + var events = this.$e; + if (events) { + delete events[type]; + } + }, + listenerCount: function(type) { + var events = this.$e; + var listeners = events && events[type]; + return listeners ? isFunction(listeners) ? 1 : listeners.length : 0; } }; -var specialElHandlers$1 = new SpecialElHandlers(); -function KeySequence$2() { - this._V_ = Object.create(null); +var src = EventEmitter$2; +var domInsert$1 = domInsert$2; +function getRootNode(el) { + var cur = el; + while (cur.parentNode) + cur = cur.parentNode; + return cur; } -KeySequence$2.prototype._L_ = function(key) { - var lookup = this._V_; - if (lookup[key]) { - return key + "_" + lookup[key]++; +function getComponentDefs(result) { + var componentDefs = result.b_; + if (!componentDefs) { + throw Error("No component"); } - lookup[key] = 1; - return key; -}; -var KeySequence_1 = KeySequence$2; -var eventDelegation$3 = {}; -var componentsUtil$4 = indexBrowser$5; -var runtimeId = componentsUtil$4.al_; -var componentLookup$3 = componentsUtil$4.C_; -var getMarkoPropsFromEl = componentsUtil$4.am_; -var TEXT_NODE$1 = 3; -var listenersAttachedKey = "$MDE" + runtimeId; -var delegatedEvents = {}; -function getEventFromEl(el, eventName) { - var virtualProps = getMarkoPropsFromEl(el); - var eventInfo = virtualProps[eventName]; - if (typeof eventInfo === "string") { - eventInfo = eventInfo.split(" "); - if (eventInfo[2]) { - eventInfo[2] = eventInfo[2] === "true"; + return componentDefs; +} +function RenderResult$2(out) { + this.out = this.y_ = out; + this.b_ = void 0; +} +var RenderResult_1 = RenderResult$2; +var proto$2 = RenderResult$2.prototype = { + getComponent: function() { + return this.getComponents()[0]; + }, + getComponents: function(selector) { + if (this.b_ === void 0) { + throw Error("Not added to DOM"); } - if (eventInfo.length == 4) { - eventInfo[3] = parseInt(eventInfo[3], 10); + var componentDefs = getComponentDefs(this); + var components2 = []; + componentDefs.forEach(function(componentDef) { + var component = componentDef.h_; + if (!selector || selector(component)) { + components2.push(component); + } + }); + return components2; + }, + afterInsert: function(host) { + var out = this.y_; + var componentsContext = out.b_; + if (componentsContext) { + this.b_ = componentsContext.z_(host); + } else { + this.b_ = null; } + return this; + }, + getNode: function(host) { + return this.y_.A_(host); + }, + getOutput: function() { + return this.y_.B_(); + }, + toString: function() { + return this.y_.toString(); + }, + document: typeof window === "object" && document +}; +Object.defineProperty(proto$2, "html", { + get: function() { + return this.toString(); } - return eventInfo; -} -function delegateEvent(node, eventName, target, event) { - var targetMethod = target[0]; - var targetComponentId = target[1]; - var isOnce = target[2]; - var extraArgs = target[3]; - if (isOnce) { - var virtualProps = getMarkoPropsFromEl(node); - delete virtualProps[eventName]; +}); +Object.defineProperty(proto$2, "context", { + get: function() { + return this.y_; } - var targetComponent = componentLookup$3[targetComponentId]; - if (!targetComponent) { - return; +}); +domInsert$1(proto$2, function getEl(renderResult, referenceEl) { + return renderResult.getNode(getRootNode(referenceEl)); +}, function afterInsert(renderResult, referenceEl) { + return renderResult.afterInsert(getRootNode(referenceEl)); +}); +var listenerTracker = { exports: {} }; +(function(module, exports) { + var INDEX_EVENT = 0; + var INDEX_USER_LISTENER = 1; + var INDEX_WRAPPED_LISTENER = 2; + var DESTROY = "destroy"; + function isNonEventEmitter(target) { + return !target.once; } - var targetFunc = typeof targetMethod === "function" ? targetMethod : targetComponent[targetMethod]; - if (!targetFunc) { - throw Error("Method not found: " + targetMethod); + function EventEmitterWrapper(target) { + this.$__target = target; + this.$__listeners = []; + this.$__subscribeTo = null; } - if (extraArgs != null) { - if (typeof extraArgs === "number") { - extraArgs = targetComponent.N_[extraArgs]; + EventEmitterWrapper.prototype = { + $__remove: function(test, testWrapped) { + var target = this.$__target; + var listeners = this.$__listeners; + this.$__listeners = listeners.filter(function(curListener) { + var curEvent = curListener[INDEX_EVENT]; + var curListenerFunc = curListener[INDEX_USER_LISTENER]; + var curWrappedListenerFunc = curListener[INDEX_WRAPPED_LISTENER]; + if (testWrapped) { + if (curWrappedListenerFunc && test(curEvent, curWrappedListenerFunc)) { + target.removeListener(curEvent, curWrappedListenerFunc); + return false; + } + } else if (test(curEvent, curListenerFunc)) { + target.removeListener(curEvent, curWrappedListenerFunc || curListenerFunc); + return false; + } + return true; + }); + var subscribeTo = this.$__subscribeTo; + if (!this.$__listeners.length && subscribeTo) { + var self2 = this; + var subscribeToList = subscribeTo.$__subscribeToList; + subscribeTo.$__subscribeToList = subscribeToList.filter(function(cur) { + return cur !== self2; + }); + } + }, + on: function(event, listener) { + this.$__target.on(event, listener); + this.$__listeners.push([event, listener]); + return this; + }, + once: function(event, listener) { + var self2 = this; + var wrappedListener = function() { + self2.$__remove(function(event2, listenerFunc) { + return wrappedListener === listenerFunc; + }, true); + listener.apply(this, arguments); + }; + this.$__target.once(event, wrappedListener); + this.$__listeners.push([event, listener, wrappedListener]); + return this; + }, + removeListener: function(event, listener) { + if (typeof event === "function") { + listener = event; + event = null; + } + if (listener && event) { + this.$__remove(function(curEvent, curListener) { + return event === curEvent && listener === curListener; + }); + } else if (listener) { + this.$__remove(function(curEvent, curListener) { + return listener === curListener; + }); + } else if (event) { + this.removeAllListeners(event); + } + return this; + }, + removeAllListeners: function(event) { + var listeners = this.$__listeners; + var target = this.$__target; + if (event) { + this.$__remove(function(curEvent, curListener) { + return event === curEvent; + }); + } else { + for (var i = listeners.length - 1; i >= 0; i--) { + var cur = listeners[i]; + target.removeListener(cur[INDEX_EVENT], cur[INDEX_USER_LISTENER]); + } + this.$__listeners.length = 0; + } + return this; } + }; + function EventEmitterAdapter(target) { + this.$__target = target; } - if (extraArgs) { - targetFunc.apply(targetComponent, extraArgs.concat(event, node)); - } else { - targetFunc.call(targetComponent, event, node); - } -} -function addDelegatedEventHandler$1(eventType) { - if (!delegatedEvents[eventType]) { - delegatedEvents[eventType] = true; - } -} -function addDelegatedEventHandlerToDoc(eventType, doc) { - var body = doc.body || doc; - var listeners = doc[listenersAttachedKey] = doc[listenersAttachedKey] || {}; - if (!listeners[eventType]) { - body.addEventListener(eventType, listeners[eventType] = function(event) { - var propagationStopped = false; - var oldStopPropagation = event.stopPropagation; - event.stopPropagation = function() { - oldStopPropagation.call(event); - propagationStopped = true; + EventEmitterAdapter.prototype = { + on: function(event, listener) { + this.$__target.addEventListener(event, listener); + return this; + }, + once: function(event, listener) { + var self2 = this; + var onceListener = function() { + self2.$__target.removeEventListener(event, onceListener); + listener(); }; - var curNode = event.target; - if (!curNode) { - return; + this.$__target.addEventListener(event, onceListener); + return this; + }, + removeListener: function(event, listener) { + this.$__target.removeEventListener(event, listener); + return this; + } + }; + function SubscriptionTracker2() { + this.$__subscribeToList = []; + } + SubscriptionTracker2.prototype = { + subscribeTo: function(target, options) { + var addDestroyListener = !options || options.addDestroyListener !== false; + var wrapper; + var nonEE; + var subscribeToList = this.$__subscribeToList; + for (var i = 0, len = subscribeToList.length; i < len; i++) { + var cur = subscribeToList[i]; + if (cur.$__target === target) { + wrapper = cur; + break; + } } - curNode = curNode.correspondingUseElement || (curNode.nodeType === TEXT_NODE$1 ? curNode.parentNode : curNode); - var propName = "on" + eventType; - var target; - do { - if (target = getEventFromEl(curNode, propName)) { - delegateEvent(curNode, propName, target, event); - if (propagationStopped) { + if (!wrapper) { + if (isNonEventEmitter(target)) { + nonEE = new EventEmitterAdapter(target); + } + wrapper = new EventEmitterWrapper(nonEE || target); + if (addDestroyListener && !nonEE) { + wrapper.once(DESTROY, function() { + wrapper.removeAllListeners(); + for (var i2 = subscribeToList.length - 1; i2 >= 0; i2--) { + if (subscribeToList[i2].$__target === target) { + subscribeToList.splice(i2, 1); + break; + } + } + }); + } + wrapper.$__subscribeTo = this; + subscribeToList.push(wrapper); + } + return wrapper; + }, + removeAllListeners: function(target, event) { + var subscribeToList = this.$__subscribeToList; + var i; + if (target) { + for (i = subscribeToList.length - 1; i >= 0; i--) { + var cur = subscribeToList[i]; + if (cur.$__target === target) { + cur.removeAllListeners(event); + if (!cur.$__listeners.length) { + subscribeToList.splice(i, 1); + } break; } } - } while ((curNode = curNode.parentNode) && curNode.getAttribute); - }, true); - } -} -function noop() { -} -eventDelegation$3.ab_ = noop; -eventDelegation$3.___ = noop; -eventDelegation$3._Z_ = delegateEvent; -eventDelegation$3.a__ = getEventFromEl; -eventDelegation$3._D_ = addDelegatedEventHandler$1; -eventDelegation$3.an_ = function(doc) { - Object.keys(delegatedEvents).forEach(function(eventType) { - addDelegatedEventHandlerToDoc(eventType, doc); + } else { + for (i = subscribeToList.length - 1; i >= 0; i--) { + subscribeToList[i].removeAllListeners(); + } + subscribeToList.length = 0; + } + } + }; + exports = module.exports = SubscriptionTracker2; + exports.wrap = function(targetEventEmitter) { + var nonEE; + var wrapper; + if (isNonEventEmitter(targetEventEmitter)) { + nonEE = new EventEmitterAdapter(targetEventEmitter); + } + wrapper = new EventEmitterWrapper(nonEE || targetEventEmitter); + if (!nonEE) { + targetEventEmitter.once(DESTROY, function() { + wrapper.$__listeners.length = 0; + }); + } + return wrapper; + }; + exports.createTracker = function() { + return new SubscriptionTracker2(); + }; +})(listenerTracker, listenerTracker.exports); +var copyProps$2 = function copyProps(from, to) { + Object.getOwnPropertyNames(from).forEach(function(name) { + var descriptor = Object.getOwnPropertyDescriptor(from, name); + Object.defineProperty(to, name, descriptor); }); }; -var specialElHandlers = specialElHandlers$1; -var KeySequence$1 = KeySequence_1; -var componentsUtil$3 = indexBrowser$5; -var existingComponentLookup = componentsUtil$3.C_; -var destroyNodeRecursive$1 = componentsUtil$3.D_; -var addComponentRootToKeyedElements$1 = componentsUtil$3.ap_; -var normalizeComponentKey = componentsUtil$3.aD_; -var VElement$2 = vdom$1.b__; -var virtualizeElement = VElement$2.bN_; -var morphAttrs = VElement$2.bO_; -var eventDelegation$2 = eventDelegation$3; -var fragment = fragment$1; -var helpers = helpers$3; -var domData$2 = domData$6; -var keysByDOMNode = domData$2.ag_; -var componentByDOMNode = domData$2.E_; -var vElementByDOMNode = domData$2.ae_; -var detachedByDOMNode = domData$2.af_; -var insertBefore = helpers.aF_; -var insertAfter = helpers.aG_; -var nextSibling = helpers.bS_; -var firstChild = helpers._r_; -var removeChild = helpers.aH_; -var createFragmentNode$1 = fragment.ao_; -var beginFragmentNode = fragment.bZ_; -var ELEMENT_NODE$1 = 1; -var TEXT_NODE = 3; -var COMMENT_NODE = 8; -var COMPONENT_NODE = 2; -var FRAGMENT_NODE = 12; -var DOCTYPE_NODE = 10; -function isAutoKey(key) { - return key[0] !== "@"; -} -function compareNodeNames(fromEl, toEl) { - return fromEl.bH_ === toEl.bH_; +var copyProps$1 = copyProps$2; +function inherit$7(ctor, superCtor, shouldCopyProps) { + var oldProto = ctor.prototype; + var newProto = ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + writable: true, + configurable: true + } + }); + if (oldProto && shouldCopyProps !== false) { + copyProps$1(oldProto, newProto); + } + ctor.$super = superCtor; + ctor.prototype = newProto; + return ctor; } -function caseInsensitiveCompare(a, b) { - return a.toLowerCase() === b.toLowerCase(); +var inherit_1 = inherit$7; +inherit$7._inherit = inherit$7; +var updateManager$1 = {}; +var queue = []; +var msg = "" + Math.random(); +window.addEventListener("message", function(ev) { + if (ev.data === msg) { + var callbacks = queue; + queue = []; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](); + } + } +}); +var indexBrowser$2 = function(callback) { + if (queue.push(callback) === 1) { + window.postMessage(msg, "*"); + } +}; +var updatesScheduled = false; +var batchStack = []; +var unbatchedQueue = []; +var setImmediate$1 = indexBrowser$2; +function updateUnbatchedComponents() { + if (unbatchedQueue.length) { + try { + updateComponents(unbatchedQueue); + } finally { + updatesScheduled = false; + } + } } -function onNodeAdded(node, componentsContext) { - if (node.nodeType === ELEMENT_NODE$1) { - eventDelegation$2.ab_(node, componentsContext); +function scheduleUpdates() { + if (updatesScheduled) { + return; } + updatesScheduled = true; + setImmediate$1(updateUnbatchedComponents); } -function morphdom$2(fromNode, toNode, doc, componentsContext) { - var globalComponentsContext; - var isHydrate = false; - var keySequences = Object.create(null); - if (componentsContext) { - globalComponentsContext = componentsContext.e_; - isHydrate = globalComponentsContext.f_; +function updateComponents(queue2) { + for (var i = 0; i < queue2.length; i++) { + var component = queue2[i]; + component._A_(); } - function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { - var realNode = vNode.by_(doc, parentEl.namespaceURI); - insertBefore(realNode, referenceEl, parentEl); - if (vNode.bB_ === ELEMENT_NODE$1 || vNode.bB_ === FRAGMENT_NODE) { - if (key) { - keysByDOMNode.set(realNode, key); - (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; - } - if (vNode.bH_ !== "textarea") { - morphChildren(realNode, vNode, parentComponent); + queue2.length = 0; +} +function batchUpdate(func) { + var batch = { + az_: null + }; + batchStack.push(batch); + try { + func(); + } finally { + try { + if (batch.az_) { + updateComponents(batch.az_); } - onNodeAdded(realNode, componentsContext); + } finally { + batchStack.length--; } } - function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) { - var rootNode = component.K_ = insertBefore(createFragmentNode$1(), referenceNode, referenceNodeParentEl); - componentByDOMNode.set(rootNode, component); - if (key && ownerComponent) { - key = normalizeComponentKey(key, parentComponent.id); - addComponentRootToKeyedElements$1(ownerComponent.k_, key, rootNode, component.id); - keysByDOMNode.set(rootNode, key); +} +function queueComponentUpdate(component) { + var batchStackLen = batchStack.length; + if (batchStackLen) { + var batch = batchStack[batchStackLen - 1]; + if (batch.az_) { + batch.az_.push(component); + } else { + batch.az_ = [component]; } - morphComponent(component, vComponent); - } - function morphComponent(component, vComponent) { - morphChildren(component.K_, vComponent, component); + } else { + scheduleUpdates(); + unbatchedQueue.push(component); } - var detachedNodes = []; - function detachNode(node, parentNode, ownerComponent) { - if (node.nodeType === ELEMENT_NODE$1 || node.nodeType === FRAGMENT_NODE) { - detachedNodes.push(node); - detachedByDOMNode.set(node, ownerComponent || true); +} +updateManager$1._i_ = queueComponentUpdate; +updateManager$1._o_ = batchUpdate; +function syncBooleanAttrProp(fromEl, toEl, name) { + if (fromEl[name] !== toEl[name]) { + fromEl[name] = toEl[name]; + if (fromEl[name]) { + fromEl.setAttribute(name, ""); } else { - destroyNodeRecursive$1(node); - removeChild(node); + fromEl.removeAttribute(name, ""); } } - function destroyComponent(component) { - component.destroy(); +} +function forEachOption(el, fn, i) { + var curChild = el._r_; + while (curChild) { + if (curChild.bG_ === "option") { + fn(curChild, ++i); + } else { + i = forEachOption(curChild, fn, i); + } + curChild = curChild.bR_; } - function morphChildren(fromNode2, toNode2, parentComponent) { - var curFromNodeChild = firstChild(fromNode2); - var curToNodeChild = toNode2._r_; - var curToNodeKey; - var curFromNodeKey; - var curToNodeType; - var fromNextSibling; - var toNextSibling; - var matchingFromEl; - var matchingFromComponent; - var curVFromNodeChild; - var fromComponent; - outer: - while (curToNodeChild) { - toNextSibling = curToNodeChild.bS_; - curToNodeType = curToNodeChild.bB_; - curToNodeKey = curToNodeChild.bA_; - if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { - curFromNodeChild = nextSibling(curFromNodeChild); + return i; +} +function SpecialElHandlers() { +} +SpecialElHandlers.prototype = { + option: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "selected"); + }, + button: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "disabled"); + }, + input: function(fromEl, toEl) { + syncBooleanAttrProp(fromEl, toEl, "checked"); + syncBooleanAttrProp(fromEl, toEl, "disabled"); + if (fromEl.value != toEl.q_) { + fromEl.value = toEl.q_; + } + if (fromEl.hasAttribute("value") && !toEl.bK_("value")) { + fromEl.removeAttribute("value"); + } + }, + textarea: function(fromEl, toEl) { + if (toEl.bU_) { + return; + } + var newValue = toEl.q_; + if (fromEl.value != newValue) { + fromEl.value = newValue; + } + var firstChild2 = fromEl.firstChild; + if (firstChild2) { + var oldValue = firstChild2.nodeValue; + if (oldValue == newValue || !newValue && oldValue == fromEl.placeholder) { + return; + } + firstChild2.nodeValue = newValue; + } + }, + select: function(fromEl, toEl) { + if (!toEl.bK_("multiple")) { + var selected = 0; + forEachOption(toEl, function(option, i) { + if (option.bK_("selected")) { + selected = i; } - var ownerComponent = curToNodeChild.aA_ || parentComponent; - var referenceComponent; - if (curToNodeType === COMPONENT_NODE) { - var component = curToNodeChild.h_; - if ((matchingFromComponent = existingComponentLookup[component.id]) === void 0) { - if (isHydrate === true) { - var rootNode = beginFragmentNode(curFromNodeChild, fromNode2); - component.K_ = rootNode; - componentByDOMNode.set(rootNode, component); - if (ownerComponent && curToNodeKey) { - curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id); - addComponentRootToKeyedElements$1(ownerComponent.k_, curToNodeKey, rootNode, component.id); - keysByDOMNode.set(rootNode, curToNodeKey); - } - morphComponent(component, curToNodeChild); - curFromNodeChild = nextSibling(rootNode); - } else { - insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode2, component, curToNodeKey, ownerComponent, parentComponent); - } - } else { - if (matchingFromComponent.K_ !== curFromNodeChild) { - if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext._U_[fromComponent.id] === void 0) { - curFromNodeChild = nextSibling(fromComponent.K_); - destroyComponent(fromComponent); - continue; - } - insertBefore(matchingFromComponent.K_, curFromNodeChild, fromNode2); - } else { - curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild); - } - if (!curToNodeChild.n_) { - morphComponent(component, curToNodeChild); - } - } - curToNodeChild = toNextSibling; - continue; - } else if (curToNodeKey) { - curVFromNodeChild = void 0; - curFromNodeKey = void 0; - var curToNodeKeyOriginal = curToNodeKey; - if (isAutoKey(curToNodeKey)) { - if (ownerComponent !== parentComponent) { - curToNodeKey += ":" + ownerComponent.id; - } - referenceComponent = parentComponent; - } else { - referenceComponent = ownerComponent; - } - curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence$1()))._L_(curToNodeKey); - if (curFromNodeChild) { - curFromNodeKey = keysByDOMNode.get(curFromNodeChild); - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - fromNextSibling = nextSibling(curFromNodeChild); - } - if (curFromNodeKey === curToNodeKey) { - if (!curToNodeChild.n_) { - if (compareNodeNames(curToNodeChild, curVFromNodeChild)) { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } else { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - } - } - } else { - matchingFromEl = referenceComponent.k_[curToNodeKey]; - if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { - if (isHydrate === true && curFromNodeChild) { - if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bH_ || ""))) { - curVFromNodeChild = virtualizeElement(curFromNodeChild); - curVFromNodeChild.bH_ = curToNodeChild.bH_; - keysByDOMNode.set(curFromNodeChild, curToNodeKey); - referenceComponent.k_[curToNodeKey] = curFromNodeChild; - if (curToNodeChild.n_) { - vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild); - } else { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue; - } else if (curToNodeChild.bB_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { - var content = curFromNodeChild.nodeValue; - if (content == "F#" + curToNodeKeyOriginal) { - var endNode = curFromNodeChild.nextSibling; - var depth = 0; - var nodeValue; - while (true) { - if (endNode.nodeType === COMMENT_NODE) { - nodeValue = endNode.nodeValue; - if (nodeValue === "F/") { - if (depth === 0) { - break; - } else { - depth--; - } - } else if (nodeValue.indexOf("F#") === 0) { - depth++; - } - } - endNode = endNode.nextSibling; - } - var fragment2 = createFragmentNode$1(curFromNodeChild, endNode.nextSibling, fromNode2); - keysByDOMNode.set(fragment2, curToNodeKey); - vElementByDOMNode.set(fragment2, curToNodeChild); - referenceComponent.k_[curToNodeKey] = fragment2; - removeChild(curFromNodeChild); - removeChild(endNode); - if (!curToNodeChild.n_) { - morphChildren(fragment2, curToNodeChild, parentComponent); - } - curToNodeChild = toNextSibling; - curFromNodeChild = fragment2.nextSibling; - continue; - } - } - } - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - fromNextSibling = curFromNodeChild; - } else { - if (detachedByDOMNode.get(matchingFromEl) !== void 0) { - detachedByDOMNode.set(matchingFromEl, void 0); - } - if (!curToNodeChild.n_) { - curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); - if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { - if (fromNextSibling === matchingFromEl) { - if (toNextSibling && toNextSibling.bA_ === curFromNodeKey) { - fromNextSibling = curFromNodeChild; - insertBefore(matchingFromEl, curFromNodeChild, fromNode2); - } else { - fromNextSibling = nextSibling(fromNextSibling); - if (curFromNodeChild) { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - } - } - } else { - insertAfter(matchingFromEl, curFromNodeChild, fromNode2); - if (curFromNodeChild) { - detachNode(curFromNodeChild, fromNode2, ownerComponent); - } - } - morphEl(matchingFromEl, curVFromNodeChild, curToNodeChild, parentComponent); - } else { - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - detachNode(matchingFromEl, fromNode2, ownerComponent); - } - } else { - insertBefore(matchingFromEl, curFromNodeChild, fromNode2); - fromNextSibling = curFromNodeChild; - } - } - } - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue; - } - while (curFromNodeChild) { - fromNextSibling = nextSibling(curFromNodeChild); - if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { - curFromNodeChild = fromNextSibling; - if (!globalComponentsContext._U_[fromComponent.id]) { - destroyComponent(fromComponent); - } - continue; - } - var curFromNodeType = curFromNodeChild.nodeType; - var isCompatible = void 0; - if (curFromNodeType === curToNodeType) { - if (curFromNodeType === ELEMENT_NODE$1) { - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - if (curVFromNodeChild === void 0) { - if (isHydrate === true) { - curVFromNodeChild = virtualizeElement(curFromNodeChild); - if (caseInsensitiveCompare(curVFromNodeChild.bH_, curToNodeChild.bH_)) { - curVFromNodeChild.bH_ = curToNodeChild.bH_; - } - } else { - curFromNodeChild = fromNextSibling; - continue; - } - } else if (curFromNodeKey = curVFromNodeChild.bA_) { - isCompatible = false; - } - isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; - if (isCompatible === true) { - morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); - } - } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { - isCompatible = true; - if (curFromNodeChild.nodeValue !== curToNodeChild.bU_) { - curFromNodeChild.nodeValue = curToNodeChild.bU_; - } - } - } - if (isCompatible === true) { - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - continue outer; - } - detachNode(curFromNodeChild, fromNode2, ownerComponent); - curFromNodeChild = fromNextSibling; - } - insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); - curToNodeChild = toNextSibling; - curFromNodeChild = fromNextSibling; - } - if (fromNode2.bY_) { - fromNode2.bY_(curFromNodeChild); - } else { - var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; - while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { - fromNextSibling = nextSibling(curFromNodeChild); - if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { - curFromNodeChild = fromNextSibling; - if (!globalComponentsContext._U_[fromComponent.id]) { - destroyComponent(fromComponent); - } - continue; - } - curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); - curFromNodeKey = keysByDOMNode.get(fromNode2); - if (!curFromNodeKey || isAutoKey(curFromNodeKey)) { - referenceComponent = parentComponent; - } else { - referenceComponent = curVFromNodeChild && curVFromNodeChild.aA_; - } - detachNode(curFromNodeChild, fromNode2, referenceComponent); - curFromNodeChild = fromNextSibling; - } - } - } - function morphEl(fromEl, vFromEl, toEl, parentComponent) { - var nodeName = toEl.bH_; - var constId = toEl.bJ_; - if (constId !== void 0 && vFromEl.bJ_ === constId) { - return; - } - morphAttrs(fromEl, vFromEl, toEl); - if (toEl.m_) { - return; - } - if (nodeName !== "textarea") { - morphChildren(fromEl, toEl, parentComponent); - } - var specialElHandler = specialElHandlers[nodeName]; - if (specialElHandler !== void 0) { - specialElHandler(fromEl, toEl); - } - } - morphChildren(fromNode, toNode, toNode.h_); - detachedNodes.forEach(function(node) { - var detachedFromComponent = detachedByDOMNode.get(node); - if (detachedFromComponent !== void 0) { - detachedByDOMNode.set(node, void 0); - var componentToDestroy = componentByDOMNode.get(node); - if (componentToDestroy) { - componentToDestroy.destroy(); - } else if (node.parentNode) { - destroyNodeRecursive$1(node, detachedFromComponent !== true && detachedFromComponent); - if (eventDelegation$2.___(node) != false) { - removeChild(node); - } - } - } - }); -} -var morphdom_1 = morphdom$2; -var classValue = function classHelper(arg) { - switch (typeof arg) { - case "string": - return arg || null; - case "object": - var result = ""; - var sep = ""; - if (Array.isArray(arg)) { - for (var i = 0, len = arg.length; i < len; i++) { - var value = classHelper(arg[i]); - if (value) { - result += sep + value; - sep = " "; - } - } - } else { - for (var key in arg) { - if (arg[key]) { - result += sep + key; - sep = " "; - } - } - } - return result || null; - default: - return null; - } -}; -var _changeCase = {}; -var camelToDashLookup = Object.create(null); -var dashToCamelLookup = Object.create(null); -_changeCase.aI_ = function camelToDashCase(name) { - var nameDashed = camelToDashLookup[name]; - if (!nameDashed) { - nameDashed = camelToDashLookup[name] = name.replace(/([A-Z])/g, "-$1").toLowerCase(); - if (nameDashed !== name) { - dashToCamelLookup[nameDashed] = name; - } - } - return nameDashed; -}; -_changeCase.aJ_ = function dashToCamelCase(name) { - var nameCamel = dashToCamelLookup[name]; - if (!nameCamel) { - nameCamel = dashToCamelLookup[name] = name.replace(/-([a-z])/g, matchToUpperCase); - if (nameCamel !== name) { - camelToDashLookup[nameCamel] = name; - } - } - return nameCamel; -}; -function matchToUpperCase(_, char) { - return char.toUpperCase(); -} -var changeCase = _changeCase; -var styleValue = function styleHelper(style) { - if (!style) { - return null; - } - var type = typeof style; - if (type !== "string") { - var styles = ""; - if (Array.isArray(style)) { - for (var i = 0, len = style.length; i < len; i++) { - var next = styleHelper(style[i]); - if (next) - styles += next + (next[next.length - 1] !== ";" ? ";" : ""); - } - } else if (type === "object") { - for (var name in style) { - var value = style[name]; - if (value != null && value !== false) { - if (typeof value === "number" && value) { - value += "px"; - } - styles += changeCase.aI_(name) + ":" + value + ";"; - } - } - } - return styles || null; - } - return style; -}; -var classHelper2 = classValue; -var styleHelper2 = styleValue; -var attrs = function(attributes) { - if (attributes != null) { - var newAttributes = {}; - for (var attrName in attributes) { - var val = attributes[attrName]; - if (attrName === "renderBody") { - continue; - } - if (attrName === "class") { - val = classHelper2(val); - } else if (attrName === "style") { - val = styleHelper2(val); - } - newAttributes[attrName] = val; - } - return newAttributes; - } - return attributes; -}; -var EventEmitter$1 = src; -var vdom = vdom$1; -var VElement$1 = vdom.b__; -var VDocumentFragment = vdom.ba_; -var VText = vdom.bb_; -var VComponent = vdom.bc_; -var VFragment = vdom.bd_; -var virtualizeHTML = vdom.be_; -var RenderResult$1 = RenderResult_1; -var defaultDocument$1 = vdom.bf_; -var morphdom$1 = morphdom_1; -var attrsHelper = attrs; -var EVENT_UPDATE = "update"; -var EVENT_FINISH = "finish"; -function State$1(tree) { - this.bg_ = new EventEmitter$1(); - this.bh_ = tree; - this.bi_ = false; -} -function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { - if (!parentNode) { - parentNode = new VDocumentFragment(); - } - var state; - if (parentOut) { - state = parentOut.J_; - } else { - state = new State$1(parentNode); - } - this.bj_ = 1; - this.bk_ = 0; - this.bl_ = null; - this.bm_ = parentOut; - this.data = {}; - this.J_ = state; - this.l_ = parentNode; - this.global = globalData || {}; - this.bn_ = [parentNode]; - this.bo_ = false; - this.bp_ = void 0; - this.b_ = null; - this.g_ = null; - this.i_ = null; - this.ax_ = null; -} -var proto = AsyncVDOMBuilder$1.prototype = { - aP_: true, - X_: defaultDocument$1, - bc: function(component, key, ownerComponent) { - var vComponent = new VComponent(component, key, ownerComponent); - return this.bq_(vComponent, 0, true); - }, - ay_: function(component, key, ownerComponent) { - var vComponent = new VComponent(component, key, ownerComponent, true); - this.bq_(vComponent, 0); - }, - bq_: function(child, childCount, pushToStack) { - this.l_.br_(child); - if (pushToStack === true) { - this.bn_.push(child); - this.l_ = child; - } - return childCount === 0 ? this : child; - }, - element: function(tagName, attrs2, key, component, childCount, flags, props) { - var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - return this.bq_(element, childCount); - }, - aM_: function(tagName, attrs2, key, componentDef, props) { - return this.element(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); - }, - n: function(node, component) { - var clone = node.bs_(); - this.node(clone); - clone.aA_ = component; - return this; - }, - node: function(node) { - this.l_.br_(node); - return this; - }, - text: function(text, ownerComponent) { - var type = typeof text; - if (type != "string") { - if (text == null) { - return; - } else if (type === "object") { - if (text.toHTML) { - return this.h(text.toHTML(), ownerComponent); - } - } - text = text.toString(); - } - this.l_.br_(new VText(text, ownerComponent)); - return this; - }, - html: function(html, ownerComponent) { - if (html != null) { - var vdomNode = virtualizeHTML(html, this.X_ || document, ownerComponent); - this.node(vdomNode); - } - return this; - }, - beginElement: function(tagName, attrs2, key, component, childCount, flags, props) { - var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); - this.bq_(element, childCount, true); - return this; - }, - aK_: function(tagName, attrs2, key, componentDef, props) { - return this.beginElement(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); - }, - bf: function(key, component, preserve) { - var fragment2 = new VFragment(key, component, preserve); - this.bq_(fragment2, null, true); - return this; - }, - ef: function() { - this.endElement(); - }, - endElement: function() { - var stack = this.bn_; - stack.pop(); - this.l_ = stack[stack.length - 1]; - }, - end: function() { - this.l_ = void 0; - var remaining = --this.bj_; - var parentOut = this.bm_; - if (remaining === 0) { - if (parentOut) { - parentOut.bt_(); - } else { - this.bu_(); + }, -1); + if (fromEl.selectedIndex !== selected) { + fromEl.selectedIndex = selected; } - } else if (remaining - this.bk_ === 0) { - this.bv_(); } - return this; + } +}; +var specialElHandlers$1 = new SpecialElHandlers(); +var vdom$1 = {}; +function VNode$6() { +} +VNode$6.prototype = { + by_: function(finalChildCount, ownerComponent) { + this.bO_ = finalChildCount; + this.bP_ = 0; + this.bE_ = null; + this.bQ_ = null; + this.bB_ = null; + this.bC_ = null; + this.aA_ = ownerComponent; }, - bt_: function() { - var remaining = --this.bj_; - if (remaining === 0) { - var parentOut = this.bm_; - if (parentOut) { - parentOut.bt_(); - } else { - this.bu_(); - } - } else if (remaining - this.bk_ === 0) { - this.bv_(); + get _r_() { + var firstChild2 = this.bE_; + if (firstChild2 && firstChild2.bD_) { + var nestedFirstChild = firstChild2._r_; + return nestedFirstChild || firstChild2.bR_; } + return firstChild2; }, - bu_: function() { - var state = this.J_; - state.bi_ = true; - state.bg_.emit(EVENT_FINISH, this.aQ_()); - }, - bv_: function() { - var lastArray = this._last; - var i = 0; - function next() { - if (i === lastArray.length) { - return; + get bR_() { + var nextSibling2 = this.bC_; + if (nextSibling2) { + if (nextSibling2.bD_) { + var firstChild2 = nextSibling2._r_; + return firstChild2 || nextSibling2.bR_; } - var lastCallback = lastArray[i++]; - lastCallback(next); - if (!lastCallback.length) { - next(); + } else { + var parentNode = this.bB_; + if (parentNode && parentNode.bD_) { + return parentNode.bR_; } } - next(); - }, - error: function(e) { - try { - this.emit("error", e); - } finally { - this.end(); - } - return this; + return nextSibling2; }, - beginAsync: function(options) { - if (this.bo_) { - throw Error("Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."); - } - var state = this.J_; - if (options) { - if (options.last) { - this.bk_++; + bq_: function(child) { + this.bP_++; + if (this.bG_ === "textarea") { + if (child.bS_) { + var childValue = child.bT_; + this.bH_ = (this.bH_ || "") + childValue; + } else if (child.n_ || child.m_) { + this.bU_ = true; + } else { + throw TypeError(); } - } - this.bj_++; - var documentFragment = this.l_.bw_(); - var asyncOut = new AsyncVDOMBuilder$1(this.global, documentFragment, this); - state.bg_.emit("beginAsync", { - out: asyncOut, - parentOut: this - }); - return asyncOut; - }, - createOut: function() { - return new AsyncVDOMBuilder$1(this.global); - }, - flush: function() { - var events = this.J_.bg_; - if (events.listenerCount(EVENT_UPDATE)) { - events.emit(EVENT_UPDATE, new RenderResult$1(this)); - } - }, - B_: function() { - return this.J_.bh_; - }, - aQ_: function() { - return this.bx_ || (this.bx_ = new RenderResult$1(this)); - }, - on: function(event, callback) { - var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { - callback(this.aQ_()); - } else if (event === "last") { - this.onLast(callback); } else { - state.bg_.on(event, callback); + var lastChild = this.bQ_; + child.bB_ = this; + if (lastChild) { + lastChild.bC_ = child; + } else { + this.bE_ = child; + } + this.bQ_ = child; } - return this; + return child; }, - once: function(event, callback) { - var state = this.J_; - if (event === EVENT_FINISH && state.bi_) { - callback(this.aQ_()); - } else if (event === "last") { - this.onLast(callback); + bJ_: function finishChild() { + if (this.bP_ === this.bO_ && this.bB_) { + return this.bB_.bJ_(); } else { - state.bg_.once(event, callback); - } - return this; - }, - emit: function(type, arg) { - var events = this.J_.bg_; - switch (arguments.length) { - case 1: - events.emit(type); - break; - case 2: - events.emit(type, arg); - break; - default: - events.emit.apply(events, arguments); - break; + return this; } - return this; - }, - removeListener: function() { - var events = this.J_.bg_; - events.removeListener.apply(events, arguments); - return this; - }, - sync: function() { - this.bo_ = true; - }, - isSync: function() { - return this.bo_; + } +}; +var VNode_1 = VNode$6; +var VNode$5 = VNode_1; +var inherit$6 = inherit_1; +var extend$1 = extend$5; +function VDocumentFragmentClone(other) { + extend$1(this, other); + this.bB_ = null; + this.bC_ = null; +} +function VDocumentFragment$2(out) { + this.by_(null); + this.y_ = out; +} +VDocumentFragment$2.prototype = { + bA_: 11, + bD_: true, + br_: function() { + return new VDocumentFragmentClone(this); }, - onLast: function(callback) { - var lastArray = this._last; - if (lastArray === void 0) { - this._last = [callback]; - } else { - lastArray.push(callback); + bx_: function(host) { + return (host.ownerDocument || host).createDocumentFragment(); + } +}; +inherit$6(VDocumentFragment$2, VNode$5); +VDocumentFragmentClone.prototype = VDocumentFragment$2.prototype; +var VDocumentFragment_1 = VDocumentFragment$2; +var domData$4 = domData$6; +var componentsUtil$4 = indexBrowser$4; +var vElementByDOMNode$2 = domData$4.ae_; +var VNode$4 = VNode_1; +var inherit$5 = inherit_1; +var ATTR_XLINK_HREF = "xlink:href"; +var xmlnsRegExp = /^xmlns(:|$)/; +var hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var NS_XLINK = "http://www.w3.org/1999/xlink"; +var NS_HTML = "http://www.w3.org/1999/xhtml"; +var NS_MATH = "http://www.w3.org/1998/Math/MathML"; +var NS_SVG = "http://www.w3.org/2000/svg"; +var DEFAULT_NS = { + svg: NS_SVG, + math: NS_MATH +}; +var FLAG_SIMPLE_ATTRS = 1; +var FLAG_CUSTOM_ELEMENT = 2; +var FLAG_SPREAD_ATTRS = 4; +var defineProperty = Object.defineProperty; +var ATTR_HREF = "href"; +var EMPTY_OBJECT = Object.freeze({}); +function convertAttrValue(type, value) { + if (value === true) { + return ""; + } else if (type == "object") { + if (value instanceof RegExp) { + return value.source; } - return this; - }, - A_: function(doc) { - var node = this.bp_; - if (!node) { - var vdomTree = this.B_(); - doc = doc || this.X_ || document; - this.bp_ = node = vdomTree.by_(doc, null); - morphdom$1(node, vdomTree, doc, this.b_); + } + return value + ""; +} +function assign(a, b) { + for (var key in b) { + if (hasOwnProperty$1.call(b, key)) { + a[key] = b[key]; } - return node; - }, - toString: function(doc) { - var docFragment = this.A_(doc); - var html = ""; - var child = docFragment.firstChild; - while (child) { - var nextSibling2 = child.nextSibling; - if (child.nodeType != 1) { - var container = docFragment.ownerDocument.createElement("div"); - container.appendChild(child.cloneNode()); - html += container.innerHTML; - } else { - html += child.outerHTML; - } - child = nextSibling2; + } +} +function setAttribute(el, namespaceURI, name, value) { + if (namespaceURI === null) { + el.setAttribute(name, value); + } else { + el.setAttributeNS(namespaceURI, name, value); + } +} +function removeAttribute(el, namespaceURI, name) { + if (namespaceURI === null) { + el.removeAttribute(name); + } else { + el.removeAttributeNS(namespaceURI, name); + } +} +function VElementClone(other) { + this.bE_ = other.bE_; + this.bB_ = null; + this.bC_ = null; + this.bz_ = other.bz_; + this.bF_ = other.bF_; + this.aB_ = other.aB_; + this.bG_ = other.bG_; + this._I_ = other._I_; + this.bH_ = other.bH_; + this.bI_ = other.bI_; +} +function VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props) { + this.by_(childCount, ownerComponent); + var constId; + if (props) { + constId = props.i; + } + this.bz_ = key; + this._I_ = flags || 0; + this.bF_ = attrs2 || EMPTY_OBJECT; + this.aB_ = props || EMPTY_OBJECT; + this.bG_ = tagName; + this.bH_ = null; + this.bI_ = constId; + this.n_ = false; + this.m_ = false; +} +VElement$4.prototype = { + bA_: 1, + br_: function() { + return new VElementClone(this); + }, + e: function(tagName, attrs2, key, ownerComponent, childCount, flags, props) { + var child = this.bq_(new VElement$4(tagName, attrs2, key, ownerComponent, childCount, flags, props)); + if (childCount === 0) { + return this.bJ_(); + } else { + return child; } - return html; }, - then: function(fn, fnErr) { - var out = this; - var promise2 = new Promise(function(resolve2, reject) { - out.on("error", reject).on(EVENT_FINISH, function(result) { - resolve2(result); - }); - }); - return Promise.resolve(promise2).then(fn, fnErr); + n: function(node, ownerComponent) { + node = node.br_(); + node.aA_ = ownerComponent; + this.bq_(node); + return this.bJ_(); }, - catch: function(fnErr) { - return this.then(void 0, fnErr); + bx_: function(host, parentNamespaceURI) { + var tagName = this.bG_; + var attributes = this.bF_; + var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML; + var flags = this._I_; + var el = (host.ownerDocument || host).createElementNS(namespaceURI, tagName); + if (flags & FLAG_CUSTOM_ELEMENT) { + assign(el, attributes); + } else { + for (var attrName in attributes) { + var attrValue = attributes[attrName]; + if (attrValue !== false && attrValue != null) { + var type = typeof attrValue; + if (type !== "string") { + attrValue = convertAttrValue(type, attrValue); + } + if (attrName == ATTR_XLINK_HREF) { + setAttribute(el, NS_XLINK, ATTR_HREF, attrValue); + } else { + el.setAttribute(attrName, attrValue); + } + } + } + if (tagName === "textarea") { + el.defaultValue = el.value = this.q_; + } + } + vElementByDOMNode$2.set(el, this); + return el; }, - isVDOM: true, - c: function(componentDef, key, customEvents) { - this.g_ = componentDef; - this.i_ = key; - this.ax_ = customEvents; + bK_: function(name) { + var value = this.bF_[name]; + return value != null && value !== false; } }; -proto.e = proto.element; -proto.be = proto.beginElement; -proto.ee = proto.aL_ = proto.endElement; -proto.t = proto.text; -proto.h = proto.w = proto.write = proto.html; -var AsyncVDOMBuilder_1 = AsyncVDOMBuilder$1; -var actualCreateOut; -function setCreateOut(createOutFunc) { - actualCreateOut = createOutFunc; -} -function createOut(globalData) { - return actualCreateOut(globalData); -} -createOut.aE_ = setCreateOut; -var createOut_1 = createOut; -var queue = []; -var msg = "" + Math.random(); -window.addEventListener("message", function(ev) { - if (ev.data === msg) { - var callbacks = queue; - queue = []; - for (var i = 0; i < callbacks.length; i++) { - callbacks[i](); +inherit$5(VElement$4, VNode$4); +var proto$1 = VElementClone.prototype = VElement$4.prototype; +["checked", "selected", "disabled"].forEach(function(name) { + defineProperty(proto$1, name, { + get: function() { + var value = this.bF_[name]; + return value !== false && value != null; } - } + }); }); -var indexBrowser$4 = function(callback) { - if (queue.push(callback) === 1) { - window.postMessage(msg, "*"); +defineProperty(proto$1, "q_", { + get: function() { + var value = this.bH_; + if (value == null) { + value = this.bF_.value; + } + return value != null && value !== false ? value + "" : this.bF_.type === "checkbox" || this.bF_.type === "radio" ? "on" : ""; } +}); +VElement$4.bL_ = function(attrs2) { + return attrs2; }; -var defaultCreateOut$1 = createOut_1; -var setImmediate$1 = indexBrowser$4; -var extend$2 = extend$5; -function safeRender(renderFunc, finalData, finalOut, shouldEnd) { - try { - renderFunc(finalData, finalOut); - if (shouldEnd) { - finalOut.end(); +function virtualizeElement$1(node, virtualizeChildNodes2, ownerComponent) { + var attributes = node.attributes; + var attrCount = attributes.length; + var attrs2 = null; + var props = null; + if (attrCount) { + attrs2 = {}; + for (var i = 0; i < attrCount; i++) { + var attr = attributes[i]; + var attrName = attr.name; + if (!xmlnsRegExp.test(attrName)) { + if (attrName === "data-marko") { + props = componentsUtil$4.am_(node); + } else if (attr.namespaceURI === NS_XLINK) { + attrs2[ATTR_XLINK_HREF] = attr.value; + } else { + attrs2[attrName] = attr.value; + } + } } - } catch (err) { - var actualEnd = finalOut.end; - finalOut.end = function() { - }; - setImmediate$1(function() { - finalOut.end = actualEnd; - finalOut.error(err); - }); } - return finalOut; + var tagName = node.nodeName; + if (node.namespaceURI === NS_HTML) { + tagName = tagName.toLowerCase(); + } + var vdomEl = new VElement$4(tagName, attrs2, null, ownerComponent, 0, 0, props); + if (vdomEl.bG_ === "textarea") { + vdomEl.bH_ = node.value; + } else if (virtualizeChildNodes2) { + virtualizeChildNodes2(node, vdomEl, ownerComponent); + } + return vdomEl; } -var renderable = function(target, renderer2) { - var renderFunc = renderer2 && (renderer2.renderer || renderer2.render || renderer2); - var createOut3 = target.createOut || renderer2.createOut || defaultCreateOut$1; - return extend$2(target, { - createOut: createOut3, - renderToString: function(data, callback) { - var localData = data || {}; - var render = renderFunc || this._; - var globalData = localData.$global; - var out = createOut3(globalData); - out.global.template = this; - if (globalData) { - localData.$global = void 0; - } - if (callback) { - out.on("finish", function() { - callback(null, out.toString(), out); - }).once("error", callback); - return safeRender(render, localData, out, true); - } else { - out.sync(); - render(localData, out); - return out.toString(); - } - }, - renderSync: function(data) { - var localData = data || {}; - var render = renderFunc || this._; - var globalData = localData.$global; - var out = createOut3(globalData); - out.sync(); - out.global.template = this; - if (globalData) { - localData.$global = void 0; +VElement$4.bM_ = virtualizeElement$1; +VElement$4.bN_ = function(fromEl, vFromEl, toEl) { + var removePreservedAttributes = VElement$4.bL_; + var fromFlags = vFromEl._I_; + var toFlags = toEl._I_; + vElementByDOMNode$2.set(fromEl, toEl); + var attrs2 = toEl.bF_; + var props = toEl.aB_; + if (toFlags & FLAG_CUSTOM_ELEMENT) { + return assign(fromEl, attrs2); + } + var attrName; + var oldAttrs = vFromEl.bF_; + if (oldAttrs) { + if (oldAttrs === attrs2) { + return; + } else { + oldAttrs = removePreservedAttributes(oldAttrs, props); + } + } + var attrValue; + if (toFlags & FLAG_SIMPLE_ATTRS && fromFlags & FLAG_SIMPLE_ATTRS) { + if (oldAttrs["class"] !== (attrValue = attrs2["class"])) { + fromEl.className = attrValue; + } + if (oldAttrs.id !== (attrValue = attrs2.id)) { + fromEl.id = attrValue; + } + if (oldAttrs.style !== (attrValue = attrs2.style)) { + fromEl.cssText = attrValue; + } + return; + } + attrs2 = removePreservedAttributes(attrs2, props, true); + var namespaceURI; + for (attrName in attrs2) { + attrValue = attrs2[attrName]; + namespaceURI = null; + if (attrName === ATTR_XLINK_HREF) { + namespaceURI = NS_XLINK; + attrName = ATTR_HREF; + } + if (attrValue == null || attrValue === false) { + removeAttribute(fromEl, namespaceURI, attrName); + } else if (oldAttrs[attrName] !== attrValue) { + var type = typeof attrValue; + if (type !== "string") { + attrValue = convertAttrValue(type, attrValue); } - render(localData, out); - return out.aQ_(); - }, - render: function(data, out) { - var callback; - var finalOut; - var finalData; - var globalData; - var render = renderFunc || this._; - var shouldBuffer = this.aS_; - var shouldEnd = true; - if (data) { - finalData = data; - if (globalData = data.$global) { - finalData.$global = void 0; + setAttribute(fromEl, namespaceURI, attrName, attrValue); + } + } + if (toEl.bz_ === null || fromFlags & FLAG_SPREAD_ATTRS) { + for (attrName in oldAttrs) { + if (!(attrName in attrs2)) { + if (attrName === ATTR_XLINK_HREF) { + fromEl.removeAttributeNS(ATTR_XLINK_HREF, ATTR_HREF); + } else { + fromEl.removeAttribute(attrName); } - } else { - finalData = {}; - } - if (out && out.aP_) { - finalOut = out; - shouldEnd = false; - extend$2(out.global, globalData); - } else if (typeof out == "function") { - finalOut = createOut3(globalData); - callback = out; - } else { - finalOut = createOut3(globalData, out, void 0, shouldBuffer); } - if (callback) { - finalOut.on("finish", function() { - callback(null, finalOut.aQ_()); - }).once("error", callback); - } - globalData = finalOut.global; - globalData.template = globalData.template || this; - return safeRender(render, finalData, finalOut, shouldEnd); } - }); + } }; -var t = function createTemplate(typeName) { - return new Template(typeName); +var VElement_1 = VElement$4; +var VNode$3 = VNode_1; +var inherit$4 = inherit_1; +function VText$2(value, ownerComponent) { + this.by_(-1, ownerComponent); + this.bT_ = value; +} +VText$2.prototype = { + bS_: true, + bA_: 3, + bx_: function(host) { + return (host.ownerDocument || host).createTextNode(this.bT_); + }, + br_: function() { + return new VText$2(this.bT_); + } }; -function Template(typeName) { - this.aZ_ = typeName; +inherit$4(VText$2, VNode$3); +var VText_1 = VText$2; +var VNode$2 = VNode_1; +var inherit$3 = inherit_1; +function VComponent$2(component, key, ownerComponent, preserve) { + this.by_(null, ownerComponent); + this.bz_ = key; + this.h_ = component; + this.n_ = preserve; } -var AsyncVDOMBuilder = AsyncVDOMBuilder_1; -createOut_1.aE_(Template.prototype.createOut = function createOut2(globalData, parent, parentOut) { - return new AsyncVDOMBuilder(globalData, parent, parentOut); -}); -renderable(Template.prototype); -var VElement = vdom$1.b__; -var vElement = function(tagName, attrs2, key, component, childCount, flags, props) { - return new VElement(tagName, attrs2, key, component, childCount, flags, props); +VComponent$2.prototype = { + bA_: 2 }; -var ComponentsContext$1 = { exports: {} }; -var nextComponentIdProvider = indexBrowser$5._T_; -function GlobalComponentsContext(out) { - this._U_ = {}; - this._q_ = void 0; - this._M_ = nextComponentIdProvider(out); +inherit$3(VComponent$2, VNode$2); +var VComponent_1 = VComponent$2; +var domData$3 = domData$6; +var keysByDOMNode$1 = domData$3.ag_; +var vElementByDOMNode$1 = domData$3.ae_; +var VNode$1 = VNode_1; +var inherit$2 = inherit_1; +var createFragmentNode$2 = fragment$1.ao_; +function VFragment$2(key, ownerComponent, preserve) { + this.by_(null, ownerComponent); + this.bz_ = key; + this.n_ = preserve; } -var GlobalComponentsContext_1 = GlobalComponentsContext; -(function(module, exports) { - var GlobalComponentsContext2 = GlobalComponentsContext_1; - function ComponentsContext2(out, parentComponentsContext) { - var globalComponentsContext; - var componentDef; - if (parentComponentsContext) { - globalComponentsContext = parentComponentsContext.e_; - componentDef = parentComponentsContext.j_; - var nestedContextsForParent; - if (!(nestedContextsForParent = parentComponentsContext._Q_)) { - nestedContextsForParent = parentComponentsContext._Q_ = []; - } - nestedContextsForParent.push(this); - } else { - globalComponentsContext = out.global.b_; - if (globalComponentsContext === void 0) { - out.global.b_ = globalComponentsContext = new GlobalComponentsContext2(out); - } - } - this.e_ = globalComponentsContext; - this.b_ = []; - this.y_ = out; - this.j_ = componentDef; - this._Q_ = void 0; - this.p_ = parentComponentsContext && parentComponentsContext.p_; +VFragment$2.prototype = { + bA_: 12, + bx_: function() { + var fragment2 = createFragmentNode$2(); + keysByDOMNode$1.set(fragment2, this.bz_); + vElementByDOMNode$1.set(fragment2, this); + return fragment2; } - ComponentsContext2.prototype = { - z_: function(doc) { - var componentDefs = this.b_; - ComponentsContext2._R_(componentDefs, doc); - this.y_.emit("_S_"); - this.y_.global.b_ = void 0; - return componentDefs; - } +}; +inherit$2(VFragment$2, VNode$1); +var VFragment_1 = VFragment$2; +var parseHTML$1 = function(html) { + var container = document.createElement("template"); + parseHTML$1 = container.content ? function(html2) { + container.innerHTML = html2; + return container.content; + } : function(html2) { + container.innerHTML = html2; + return container; }; - function getComponentsContext2(out) { - return out.b_ || (out.b_ = new ComponentsContext2(out)); + return parseHTML$1(html); +}; +var parseHtml = function(html) { + return parseHTML$1(html).firstChild; +}; +var VNode = VNode_1; +var VDocumentFragment$1 = VDocumentFragment_1; +var VElement$3 = VElement_1; +var VText$1 = VText_1; +var VComponent$1 = VComponent_1; +var VFragment$1 = VFragment_1; +var parseHTML = parseHtml; +var specialHtmlRegexp = /[&<]/; +function virtualizeChildNodes(node, vdomParent, ownerComponent) { + var curChild = node.firstChild; + while (curChild) { + vdomParent.bq_(virtualize(curChild, ownerComponent)); + curChild = curChild.nextSibling; } - module.exports = exports = ComponentsContext2; - exports.o_ = getComponentsContext2; -})(ComponentsContext$1, ComponentsContext$1.exports); -var indexBrowser$3 = {}; -var promise; -var queueMicrotask_1 = typeof queueMicrotask === "function" ? queueMicrotask : typeof Promise === "function" && (promise = Promise.resolve()) ? function(cb) { - promise.then(cb).catch(rethrow); -} : setTimeout; -function rethrow(err) { - setTimeout(function() { - throw err; - }); } -var extend$1 = extend$5; -function ensure(state, propertyName) { - var proto2 = state.constructor.prototype; - if (!(propertyName in proto2)) { - Object.defineProperty(proto2, propertyName, { - get: function() { - return this._u_[propertyName]; - }, - set: function(value) { - this._f_(propertyName, value, false); - } - }); +function virtualize(node, ownerComponent) { + switch (node.nodeType) { + case 1: + return VElement$3.bM_(node, virtualizeChildNodes, ownerComponent); + case 3: + return new VText$1(node.nodeValue, ownerComponent); + case 11: + var vdomDocFragment = new VDocumentFragment$1(); + virtualizeChildNodes(node, vdomDocFragment, ownerComponent); + return vdomDocFragment; } } -function State(component) { - this.h_ = component; - this._u_ = {}; - this.V_ = false; - this._l_ = null; - this._k_ = null; - this._Y_ = null; - Object.seal(this); +function virtualizeHTML$1(html, ownerComponent) { + if (!specialHtmlRegexp.test(html)) { + return new VText$1(html, ownerComponent); + } + var vdomFragment = new VDocumentFragment$1(); + var curChild = parseHTML(html); + while (curChild) { + vdomFragment.bq_(virtualize(curChild, ownerComponent)); + curChild = curChild.nextSibling; + } + return vdomFragment; } -State.prototype = { - I_: function() { - var self2 = this; - self2.V_ = false; - self2._l_ = null; - self2._k_ = null; - self2._Y_ = null; - }, - _d_: function(newState) { - var state = this; - var key; - var rawState = this._u_; - for (key in rawState) { - if (!(key in newState)) { - state._f_(key, void 0, false, false); +var Node_prototype = VNode.prototype; +Node_prototype.t = function(value) { + var type = typeof value; + var vdomNode; + if (type !== "string") { + if (value == null) { + value = ""; + } else if (type === "object") { + if (value.toHTML) { + vdomNode = virtualizeHTML$1(value.toHTML()); } } - for (key in newState) { - state._f_(key, newState[key], true, false); - } - }, - _f_: function(name, value, shouldEnsure, forceDirty) { - var rawState = this._u_; - if (shouldEnsure) { - ensure(this, name); - } - if (forceDirty) { - var forcedDirtyState = this._Y_ || (this._Y_ = {}); - forcedDirtyState[name] = true; - } else if (rawState[name] === value) { - return; - } - if (!this.V_) { - this.V_ = true; - this._l_ = rawState; - this._u_ = rawState = extend$1({}, rawState); - this._k_ = {}; - this.h_._e_(); - } - this._k_[name] = value; - if (value === void 0) { - delete rawState[name]; - } else { - rawState[name] = value; - } - }, - toJSON: function() { - return this._u_; } + this.bq_(vdomNode || new VText$1(value.toString())); + return this.bJ_(); }; -var State_1 = State; -var listenerTracker = { exports: {} }; -(function(module, exports) { - var INDEX_EVENT = 0; - var INDEX_USER_LISTENER = 1; - var INDEX_WRAPPED_LISTENER = 2; - var DESTROY = "destroy"; - function isNonEventEmitter(target) { - return !target.once; +Node_prototype.bv_ = function() { + return this.bq_(new VDocumentFragment$1()); +}; +vdom$1.ba_ = VDocumentFragment$1; +vdom$1.b__ = VElement$3; +vdom$1.bb_ = VText$1; +vdom$1.bc_ = VComponent$1; +vdom$1.bd_ = VFragment$1; +vdom$1.bM_ = virtualize; +vdom$1.be_ = virtualizeHTML$1; +var specialElHandlers = specialElHandlers$1; +var KeySequence = KeySequence_1; +var componentsUtil$3 = indexBrowser$4; +var existingComponentLookup = componentsUtil$3.C_; +var destroyNodeRecursive$1 = componentsUtil$3.D_; +var addComponentRootToKeyedElements$1 = componentsUtil$3.ap_; +var normalizeComponentKey = componentsUtil$3.aD_; +var VElement$2 = vdom$1.b__; +var virtualizeElement = VElement$2.bM_; +var morphAttrs = VElement$2.bN_; +var eventDelegation$2 = eventDelegation$3; +var fragment = fragment$1; +var helpers = helpers$3; +var domData$2 = domData$6; +var keysByDOMNode = domData$2.ag_; +var componentByDOMNode = domData$2.E_; +var vElementByDOMNode = domData$2.ae_; +var detachedByDOMNode = domData$2.af_; +var insertBefore = helpers.aF_; +var insertAfter = helpers.aG_; +var nextSibling = helpers.bR_; +var firstChild = helpers._r_; +var removeChild = helpers.aH_; +var createFragmentNode$1 = fragment.ao_; +var beginFragmentNode = fragment.bY_; +var ELEMENT_NODE$1 = 1; +var TEXT_NODE = 3; +var COMMENT_NODE = 8; +var COMPONENT_NODE = 2; +var FRAGMENT_NODE = 12; +var DOCTYPE_NODE = 10; +function isAutoKey(key) { + return key[0] !== "@"; +} +function compareNodeNames(fromEl, toEl) { + return fromEl.bG_ === toEl.bG_; +} +function caseInsensitiveCompare(a, b) { + return a.toLowerCase() === b.toLowerCase(); +} +function onNodeAdded(node, componentsContext) { + if (node.nodeType === ELEMENT_NODE$1) { + eventDelegation$2.ab_(node, componentsContext); } - function EventEmitterWrapper(target) { - this.$__target = target; - this.$__listeners = []; - this.$__subscribeTo = null; +} +function morphdom$2(fromNode, toNode, host, componentsContext) { + var globalComponentsContext; + var isHydrate = false; + var keySequences = Object.create(null); + if (componentsContext) { + globalComponentsContext = componentsContext.e_; + isHydrate = globalComponentsContext.f_; } - EventEmitterWrapper.prototype = { - $__remove: function(test, testWrapped) { - var target = this.$__target; - var listeners = this.$__listeners; - this.$__listeners = listeners.filter(function(curListener) { - var curEvent = curListener[INDEX_EVENT]; - var curListenerFunc = curListener[INDEX_USER_LISTENER]; - var curWrappedListenerFunc = curListener[INDEX_WRAPPED_LISTENER]; - if (testWrapped) { - if (curWrappedListenerFunc && test(curEvent, curWrappedListenerFunc)) { - target.removeListener(curEvent, curWrappedListenerFunc); - return false; - } - } else if (test(curEvent, curListenerFunc)) { - target.removeListener(curEvent, curWrappedListenerFunc || curListenerFunc); - return false; - } - return true; - }); - var subscribeTo = this.$__subscribeTo; - if (!this.$__listeners.length && subscribeTo) { - var self2 = this; - var subscribeToList = subscribeTo.$__subscribeToList; - subscribeTo.$__subscribeToList = subscribeToList.filter(function(cur) { - return cur !== self2; - }); - } - }, - on: function(event, listener) { - this.$__target.on(event, listener); - this.$__listeners.push([event, listener]); - return this; - }, - once: function(event, listener) { - var self2 = this; - var wrappedListener = function() { - self2.$__remove(function(event2, listenerFunc) { - return wrappedListener === listenerFunc; - }, true); - listener.apply(this, arguments); - }; - this.$__target.once(event, wrappedListener); - this.$__listeners.push([event, listener, wrappedListener]); - return this; - }, - removeListener: function(event, listener) { - if (typeof event === "function") { - listener = event; - event = null; - } - if (listener && event) { - this.$__remove(function(curEvent, curListener) { - return event === curEvent && listener === curListener; - }); - } else if (listener) { - this.$__remove(function(curEvent, curListener) { - return listener === curListener; - }); - } else if (event) { - this.removeAllListeners(event); + function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) { + var realNode = vNode.bx_(host, parentEl.namespaceURI); + insertBefore(realNode, referenceEl, parentEl); + if (vNode.bA_ === ELEMENT_NODE$1 || vNode.bA_ === FRAGMENT_NODE) { + if (key) { + keysByDOMNode.set(realNode, key); + (isAutoKey(key) ? parentComponent : ownerComponent).k_[key] = realNode; } - return this; - }, - removeAllListeners: function(event) { - var listeners = this.$__listeners; - var target = this.$__target; - if (event) { - this.$__remove(function(curEvent, curListener) { - return event === curEvent; - }); - } else { - for (var i = listeners.length - 1; i >= 0; i--) { - var cur = listeners[i]; - target.removeListener(cur[INDEX_EVENT], cur[INDEX_USER_LISTENER]); - } - this.$__listeners.length = 0; + if (vNode.bG_ !== "textarea") { + morphChildren(realNode, vNode, parentComponent); } - return this; + onNodeAdded(realNode, componentsContext); } - }; - function EventEmitterAdapter(target) { - this.$__target = target; } - EventEmitterAdapter.prototype = { - on: function(event, listener) { - this.$__target.addEventListener(event, listener); - return this; - }, - once: function(event, listener) { - var self2 = this; - var onceListener = function() { - self2.$__target.removeEventListener(event, onceListener); - listener(); - }; - this.$__target.addEventListener(event, onceListener); - return this; - }, - removeListener: function(event, listener) { - this.$__target.removeEventListener(event, listener); - return this; + function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) { + var rootNode = component.K_ = insertBefore(createFragmentNode$1(), referenceNode, referenceNodeParentEl); + componentByDOMNode.set(rootNode, component); + if (key && ownerComponent) { + key = normalizeComponentKey(key, parentComponent.id); + addComponentRootToKeyedElements$1(ownerComponent.k_, key, rootNode, component.id); + keysByDOMNode.set(rootNode, key); } - }; - function SubscriptionTracker2() { - this.$__subscribeToList = []; + morphComponent(component, vComponent); } - SubscriptionTracker2.prototype = { - subscribeTo: function(target, options) { - var addDestroyListener = !options || options.addDestroyListener !== false; - var wrapper; - var nonEE; - var subscribeToList = this.$__subscribeToList; - for (var i = 0, len = subscribeToList.length; i < len; i++) { - var cur = subscribeToList[i]; - if (cur.$__target === target) { - wrapper = cur; - break; + function morphComponent(component, vComponent) { + morphChildren(component.K_, vComponent, component); + } + var detachedNodes = []; + function detachNode(node, parentNode, ownerComponent) { + if (node.nodeType === ELEMENT_NODE$1 || node.nodeType === FRAGMENT_NODE) { + detachedNodes.push(node); + detachedByDOMNode.set(node, ownerComponent || true); + } else { + destroyNodeRecursive$1(node); + removeChild(node); + } + } + function destroyComponent(component) { + component.destroy(); + } + function morphChildren(fromNode2, toNode2, parentComponent) { + var curFromNodeChild = firstChild(fromNode2); + var curToNodeChild = toNode2._r_; + var curToNodeKey; + var curFromNodeKey; + var curToNodeType; + var fromNextSibling; + var toNextSibling; + var matchingFromEl; + var matchingFromComponent; + var curVFromNodeChild; + var fromComponent; + outer: + while (curToNodeChild) { + toNextSibling = curToNodeChild.bR_; + curToNodeType = curToNodeChild.bA_; + curToNodeKey = curToNodeChild.bz_; + if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) { + curFromNodeChild = nextSibling(curFromNodeChild); } - } - if (!wrapper) { - if (isNonEventEmitter(target)) { - nonEE = new EventEmitterAdapter(target); + var ownerComponent = curToNodeChild.aA_ || parentComponent; + var referenceComponent; + if (curToNodeType === COMPONENT_NODE) { + var component = curToNodeChild.h_; + if ((matchingFromComponent = existingComponentLookup[component.id]) === void 0) { + if (isHydrate === true) { + var rootNode = beginFragmentNode(curFromNodeChild, fromNode2); + component.K_ = rootNode; + componentByDOMNode.set(rootNode, component); + if (ownerComponent && curToNodeKey) { + curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id); + addComponentRootToKeyedElements$1(ownerComponent.k_, curToNodeKey, rootNode, component.id); + keysByDOMNode.set(rootNode, curToNodeKey); + } + morphComponent(component, curToNodeChild); + curFromNodeChild = nextSibling(rootNode); + } else { + insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode2, component, curToNodeKey, ownerComponent, parentComponent); + } + } else { + if (matchingFromComponent.K_ !== curFromNodeChild) { + if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext._U_[fromComponent.id] === void 0) { + curFromNodeChild = nextSibling(fromComponent.K_); + destroyComponent(fromComponent); + continue; + } + insertBefore(matchingFromComponent.K_, curFromNodeChild, fromNode2); + } else { + curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild); + } + if (!curToNodeChild.n_) { + morphComponent(component, curToNodeChild); + } + } + curToNodeChild = toNextSibling; + continue; + } else if (curToNodeKey) { + curVFromNodeChild = void 0; + curFromNodeKey = void 0; + var curToNodeKeyOriginal = curToNodeKey; + if (isAutoKey(curToNodeKey)) { + if (ownerComponent !== parentComponent) { + curToNodeKey += ":" + ownerComponent.id; + } + referenceComponent = parentComponent; + } else { + referenceComponent = ownerComponent; + } + curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence()))._L_(curToNodeKey); + if (curFromNodeChild) { + curFromNodeKey = keysByDOMNode.get(curFromNodeChild); + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + fromNextSibling = nextSibling(curFromNodeChild); + } + if (curFromNodeKey === curToNodeKey) { + if (!curToNodeChild.n_) { + if (compareNodeNames(curToNodeChild, curVFromNodeChild)) { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } else { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + } + } + } else { + matchingFromEl = referenceComponent.k_[curToNodeKey]; + if (matchingFromEl === void 0 || matchingFromEl === curFromNodeChild) { + if (isHydrate === true && curFromNodeChild) { + if (curFromNodeChild.nodeType === ELEMENT_NODE$1 && (curToNodeChild.n_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.bG_ || ""))) { + curVFromNodeChild = virtualizeElement(curFromNodeChild); + curVFromNodeChild.bG_ = curToNodeChild.bG_; + keysByDOMNode.set(curFromNodeChild, curToNodeKey); + referenceComponent.k_[curToNodeKey] = curFromNodeChild; + if (curToNodeChild.n_) { + vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild); + } else { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue; + } else if (curToNodeChild.bA_ === FRAGMENT_NODE && curFromNodeChild.nodeType === COMMENT_NODE) { + var content = curFromNodeChild.nodeValue; + if (content == "F#" + curToNodeKeyOriginal) { + var endNode = curFromNodeChild.nextSibling; + var depth = 0; + var nodeValue; + while (true) { + if (endNode.nodeType === COMMENT_NODE) { + nodeValue = endNode.nodeValue; + if (nodeValue === "F/") { + if (depth === 0) { + break; + } else { + depth--; + } + } else if (nodeValue.indexOf("F#") === 0) { + depth++; + } + } + endNode = endNode.nextSibling; + } + var fragment2 = createFragmentNode$1(curFromNodeChild, endNode.nextSibling, fromNode2); + keysByDOMNode.set(fragment2, curToNodeKey); + vElementByDOMNode.set(fragment2, curToNodeChild); + referenceComponent.k_[curToNodeKey] = fragment2; + removeChild(curFromNodeChild); + removeChild(endNode); + if (!curToNodeChild.n_) { + morphChildren(fragment2, curToNodeChild, parentComponent); + } + curToNodeChild = toNextSibling; + curFromNodeChild = fragment2.nextSibling; + continue; + } + } + } + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + fromNextSibling = curFromNodeChild; + } else { + if (detachedByDOMNode.get(matchingFromEl) !== void 0) { + detachedByDOMNode.set(matchingFromEl, void 0); + } + if (!curToNodeChild.n_) { + curVFromNodeChild = vElementByDOMNode.get(matchingFromEl); + if (compareNodeNames(curVFromNodeChild, curToNodeChild)) { + if (fromNextSibling === matchingFromEl) { + if (toNextSibling && toNextSibling.bz_ === curFromNodeKey) { + fromNextSibling = curFromNodeChild; + insertBefore(matchingFromEl, curFromNodeChild, fromNode2); + } else { + fromNextSibling = nextSibling(fromNextSibling); + if (curFromNodeChild) { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + } + } + } else { + insertAfter(matchingFromEl, curFromNodeChild, fromNode2); + if (curFromNodeChild) { + detachNode(curFromNodeChild, fromNode2, ownerComponent); + } + } + morphEl(matchingFromEl, curVFromNodeChild, curToNodeChild, parentComponent); + } else { + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + detachNode(matchingFromEl, fromNode2, ownerComponent); + } + } else { + insertBefore(matchingFromEl, curFromNodeChild, fromNode2); + fromNextSibling = curFromNodeChild; + } + } + } + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue; } - wrapper = new EventEmitterWrapper(nonEE || target); - if (addDestroyListener && !nonEE) { - wrapper.once(DESTROY, function() { - wrapper.removeAllListeners(); - for (var i2 = subscribeToList.length - 1; i2 >= 0; i2--) { - if (subscribeToList[i2].$__target === target) { - subscribeToList.splice(i2, 1); - break; + while (curFromNodeChild) { + fromNextSibling = nextSibling(curFromNodeChild); + if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { + curFromNodeChild = fromNextSibling; + if (!globalComponentsContext._U_[fromComponent.id]) { + destroyComponent(fromComponent); + } + continue; + } + var curFromNodeType = curFromNodeChild.nodeType; + var isCompatible = void 0; + if (curFromNodeType === curToNodeType) { + if (curFromNodeType === ELEMENT_NODE$1) { + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + if (curVFromNodeChild === void 0) { + if (isHydrate === true) { + curVFromNodeChild = virtualizeElement(curFromNodeChild); + if (caseInsensitiveCompare(curVFromNodeChild.bG_, curToNodeChild.bG_)) { + curVFromNodeChild.bG_ = curToNodeChild.bG_; + } + } else { + curFromNodeChild = fromNextSibling; + continue; + } + } else if (curFromNodeKey = curVFromNodeChild.bz_) { + isCompatible = false; + } + isCompatible = isCompatible !== false && compareNodeNames(curVFromNodeChild, curToNodeChild) === true; + if (isCompatible === true) { + morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent); + } + } else if (curFromNodeType === TEXT_NODE || curFromNodeType === COMMENT_NODE) { + isCompatible = true; + if (isHydrate === true && toNextSibling && curFromNodeType === TEXT_NODE && toNextSibling.bA_ === TEXT_NODE) { + fromNextSibling = curFromNodeChild.splitText(curToNodeChild.bT_.length); + } + if (curFromNodeChild.nodeValue !== curToNodeChild.bT_) { + curFromNodeChild.nodeValue = curToNodeChild.bT_; } } - }); + } + if (isCompatible === true) { + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; + continue outer; + } + detachNode(curFromNodeChild, fromNode2, ownerComponent); + curFromNodeChild = fromNextSibling; } - wrapper.$__subscribeTo = this; - subscribeToList.push(wrapper); + insertVirtualNodeBefore(curToNodeChild, curToNodeKey, curFromNodeChild, fromNode2, ownerComponent, parentComponent); + curToNodeChild = toNextSibling; + curFromNodeChild = fromNextSibling; } - return wrapper; - }, - removeAllListeners: function(target, event) { - var subscribeToList = this.$__subscribeToList; - var i; - if (target) { - for (i = subscribeToList.length - 1; i >= 0; i--) { - var cur = subscribeToList[i]; - if (cur.$__target === target) { - cur.removeAllListeners(event); - if (!cur.$__listeners.length) { - subscribeToList.splice(i, 1); - } - break; + if (fromNode2.bX_) { + fromNode2.bX_(curFromNodeChild); + } else { + var fragmentBoundary = fromNode2.nodeType === FRAGMENT_NODE ? fromNode2.endNode : null; + while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) { + fromNextSibling = nextSibling(curFromNodeChild); + if (fromComponent = componentByDOMNode.get(curFromNodeChild)) { + curFromNodeChild = fromNextSibling; + if (!globalComponentsContext._U_[fromComponent.id]) { + destroyComponent(fromComponent); } + continue; } - } else { - for (i = subscribeToList.length - 1; i >= 0; i--) { - subscribeToList[i].removeAllListeners(); + curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild); + curFromNodeKey = keysByDOMNode.get(fromNode2); + if (!curFromNodeKey || isAutoKey(curFromNodeKey)) { + referenceComponent = parentComponent; + } else { + referenceComponent = curVFromNodeChild && curVFromNodeChild.aA_; } - subscribeToList.length = 0; + detachNode(curFromNodeChild, fromNode2, referenceComponent); + curFromNodeChild = fromNextSibling; } } - }; - exports = module.exports = SubscriptionTracker2; - exports.wrap = function(targetEventEmitter) { - var nonEE; - var wrapper; - if (isNonEventEmitter(targetEventEmitter)) { - nonEE = new EventEmitterAdapter(targetEventEmitter); + } + function morphEl(fromEl, vFromEl, toEl, parentComponent) { + var nodeName = toEl.bG_; + var constId = toEl.bI_; + if (constId !== void 0 && vFromEl.bI_ === constId) { + return; } - wrapper = new EventEmitterWrapper(nonEE || targetEventEmitter); - if (!nonEE) { - targetEventEmitter.once(DESTROY, function() { - wrapper.$__listeners.length = 0; - }); + morphAttrs(fromEl, vFromEl, toEl); + if (toEl.m_) { + return; } - return wrapper; - }; - exports.createTracker = function() { - return new SubscriptionTracker2(); - }; -})(listenerTracker, listenerTracker.exports); -var updateManager$1 = {}; -var updatesScheduled = false; -var batchStack = []; -var unbatchedQueue = []; -var setImmediate = indexBrowser$4; -function updateUnbatchedComponents() { - if (unbatchedQueue.length) { - try { - updateComponents(unbatchedQueue); - } finally { - updatesScheduled = false; + if (nodeName !== "textarea") { + morphChildren(fromEl, toEl, parentComponent); } - } -} -function scheduleUpdates() { - if (updatesScheduled) { - return; - } - updatesScheduled = true; - setImmediate(updateUnbatchedComponents); -} -function updateComponents(queue2) { - for (var i = 0; i < queue2.length; i++) { - var component = queue2[i]; - component._A_(); - } - queue2.length = 0; -} -function batchUpdate(func) { - var batch = { - az_: null - }; - batchStack.push(batch); - try { - func(); - } finally { - try { - if (batch.az_) { - updateComponents(batch.az_); - } - } finally { - batchStack.length--; + var specialElHandler = specialElHandlers[nodeName]; + if (specialElHandler !== void 0) { + specialElHandler(fromEl, toEl); } } -} -function queueComponentUpdate(component) { - var batchStackLen = batchStack.length; - if (batchStackLen) { - var batch = batchStack[batchStackLen - 1]; - if (batch.az_) { - batch.az_.push(component); - } else { - batch.az_ = [component]; + morphChildren(fromNode, toNode, toNode.h_); + detachedNodes.forEach(function(node) { + var detachedFromComponent = detachedByDOMNode.get(node); + if (detachedFromComponent !== void 0) { + detachedByDOMNode.set(node, void 0); + var componentToDestroy = componentByDOMNode.get(node); + if (componentToDestroy) { + componentToDestroy.destroy(); + } else if (node.parentNode) { + destroyNodeRecursive$1(node, detachedFromComponent !== true && detachedFromComponent); + if (eventDelegation$2.___(node) != false) { + removeChild(node); + } + } } - } else { - scheduleUpdates(); - unbatchedQueue.push(component); - } + }); } -updateManager$1._i_ = queueComponentUpdate; -updateManager$1._o_ = batchUpdate; +var morphdom_1 = morphdom$2; var domInsert = domInsert$2; -var defaultCreateOut = createOut_1; +var defaultCreateOut$1 = createOut_1; var getComponentsContext$1 = ComponentsContext$1.exports.o_; -var componentsUtil$2 = indexBrowser$5; +var componentsUtil$2 = indexBrowser$4; var componentLookup$2 = componentsUtil$2.C_; var destroyNodeRecursive = componentsUtil$2.D_; -var EventEmitter = src; -var RenderResult = RenderResult_1; +var EventEmitter$1 = src; +var RenderResult$1 = RenderResult_1; var SubscriptionTracker = listenerTracker.exports; var inherit$1 = inherit_1; var updateManager = updateManager$1; -var morphdom = morphdom_1; +var morphdom$1 = morphdom_1; var eventDelegation$1 = eventDelegation$3; var domData$1 = domData$6; var componentsByDOMNode$1 = domData$1.E_; @@ -2547,7 +2178,7 @@ var COMPONENT_SUBSCRIBE_TO_OPTIONS; var NON_COMPONENT_SUBSCRIBE_TO_OPTIONS = { addDestroyListener: false }; -var emit = EventEmitter.prototype.emit; +var emit = EventEmitter$1.prototype.emit; var ELEMENT_NODE = 1; function removeListener(removeEventListenerHandle) { removeEventListenerHandle(); @@ -2630,7 +2261,7 @@ function checkInputChanged(existingComponent, oldInput, newInput) { } var componentProto; function Component(id) { - EventEmitter.call(this); + EventEmitter$1.call(this); this.id = id; this.J_ = null; this.K_ = null; @@ -2885,11 +2516,11 @@ Component.prototype = componentProto = { this.I_(); }, _p_: function(input, isHydrate) { - var doc = this.X_; + var host = this.X_; var globalData = this.S_; var rootNode = this.K_; var renderer2 = this._n_; - var createOut3 = renderer2.createOut || defaultCreateOut; + var createOut3 = renderer2.createOut || defaultCreateOut$1; var out = createOut3(globalData); out.sync(); out.X_ = this.X_; @@ -2899,9 +2530,9 @@ Component.prototype = componentProto = { globalComponentsContext._q_ = this; globalComponentsContext.f_ = isHydrate; renderer2(input, out); - var result = new RenderResult(out); + var result = new RenderResult$1(out); var targetNode = out.B_()._r_; - morphdom(rootNode, targetNode, doc, componentsContext); + morphdom$1(rootNode, targetNode, host, componentsContext); return result; }, _s_: function() { @@ -2962,573 +2593,956 @@ Component.prototype = componentProto = { this.onDestroy && this.onDestroy(); this._w_("destroy"); } -}; -componentProto.elId = componentProto.getElId; -componentProto._A_ = componentProto.update; -componentProto._B_ = componentProto.destroy; -domInsert(componentProto, function getEl2(component) { - return component._s_(); -}, function afterInsert2(component) { - return component; -}); -inherit$1(Component, EventEmitter); -var Component_1 = Component; -var BaseState = State_1; -var BaseComponent = Component_1; -var inherit = inherit_1; -var defineComponent$1 = function defineComponent(def, renderer2) { - if (def.Y_) { - return def; +}; +componentProto.elId = componentProto.getElId; +componentProto._A_ = componentProto.update; +componentProto._B_ = componentProto.destroy; +domInsert(componentProto, function getEl2(component) { + return component._s_(); +}, function afterInsert2(component) { + return component; +}); +inherit$1(Component, EventEmitter$1); +var Component_1 = Component; +var BaseState = State_1; +var BaseComponent = Component_1; +var inherit = inherit_1; +var defineComponent$1 = function defineComponent(def, renderer2) { + if (def.Y_) { + return def; + } + var ComponentClass = function() { + }; + var proto2; + var type = typeof def; + if (type == "function") { + proto2 = def.prototype; + } else if (type == "object") { + proto2 = def; + } else { + throw TypeError(); + } + ComponentClass.prototype = proto2; + function Component2(id) { + BaseComponent.call(this, id); + } + if (!proto2.Y_) { + inherit(ComponentClass, BaseComponent); + } + proto2 = Component2.prototype = ComponentClass.prototype; + Component2.Y_ = true; + function State2(component) { + BaseState.call(this, component); + } + inherit(State2, BaseState); + proto2._c_ = State2; + proto2._n_ = renderer2; + return Component2; +}; +var queueMicrotask$1 = queueMicrotask_1; +var defineComponent2 = defineComponent$1; +var initComponents$1 = indexBrowser$5; +var registered = {}; +var loaded = {}; +var componentTypes = {}; +var pendingDefs; +function register(type, def) { + var pendingForType; + if (pendingDefs) { + pendingForType = pendingDefs[type]; + } + registered[type] = def; + delete loaded[type]; + delete componentTypes[type]; + if (pendingForType) { + delete pendingDefs[type]; + queueMicrotask$1(function() { + pendingForType.forEach(function(args) { + initComponents$1.au_(args[0], args[1], args[2], args[3])(); + }); + }); + } + return type; +} +function addPendingDef(def, type, meta, host, runtimeId2) { + if (!pendingDefs) { + pendingDefs = {}; + } + (pendingDefs[type] = pendingDefs[type] || []).push([ + def, + meta, + host, + runtimeId2 + ]); +} +function isRegistered(type) { + return Boolean(registered[type]); +} +function load(typeName) { + var target = loaded[typeName]; + if (!target) { + target = registered[typeName]; + if (target) { + target = target(); + } + if (!target) { + throw Error("Component not found: " + typeName); + } + loaded[typeName] = target; + } + return target; +} +function getComponentClass(typeName) { + var ComponentClass = componentTypes[typeName]; + if (ComponentClass) { + return ComponentClass; + } + ComponentClass = load(typeName); + ComponentClass = ComponentClass.Component || ComponentClass; + if (!ComponentClass.Y_) { + ComponentClass = defineComponent2(ComponentClass, ComponentClass.renderer); + } + ComponentClass.prototype._N_ = typeName; + componentTypes[typeName] = ComponentClass; + return ComponentClass; +} +function createComponent(typeName, id) { + var ComponentClass = getComponentClass(typeName); + return new ComponentClass(id); +} +var r = indexBrowser$3.r = register; +indexBrowser$3.av_ = getComponentClass; +indexBrowser$3._P_ = createComponent; +indexBrowser$3.as_ = isRegistered; +indexBrowser$3.at_ = addPendingDef; +var warp10Finalize = finalize2; +var eventDelegation = eventDelegation$3; +var win = window; +var createFragmentNode = fragment$1.ao_; +var componentsUtil$1 = indexBrowser$4; +var componentLookup$1 = componentsUtil$1.C_; +var addComponentRootToKeyedElements = componentsUtil$1.ap_; +var ComponentDef$1 = ComponentDef_1; +var registry$2 = indexBrowser$3; +var domData = domData$6; +var keyedElementsByComponentId = domData.F_; +var componentsByDOMNode = domData.E_; +var serverComponentRootNodes = {}; +var serverRenderedMeta = {}; +var DEFAULT_RUNTIME_ID = "M"; +var FLAG_WILL_RERENDER_IN_BROWSER = 1; +var deferredDefs; +function indexServerComponentBoundaries(node, runtimeId2, stack) { + var componentId; + var ownerId; + var ownerComponent; + var keyedElements; + var nextSibling2; + var runtimeLength = runtimeId2.length; + stack = stack || []; + node = node.firstChild; + while (node) { + nextSibling2 = node.nextSibling; + if (node.nodeType === 8) { + var commentValue = node.nodeValue; + if (commentValue.slice(0, runtimeLength) === runtimeId2) { + var firstChar = commentValue[runtimeLength]; + if (firstChar === "^" || firstChar === "#") { + stack.push(node); + } else if (firstChar === "/") { + var endNode = node; + var startNode = stack.pop(); + var rootNode; + if (startNode.parentNode === endNode.parentNode) { + rootNode = createFragmentNode(startNode.nextSibling, endNode); + } else { + rootNode = createFragmentNode(endNode.parentNode.firstChild, endNode); + } + componentId = startNode.nodeValue.substring(runtimeLength + 1); + firstChar = startNode.nodeValue[runtimeLength]; + if (firstChar === "^") { + var parts = componentId.split(/ /g); + var key = parts[2]; + ownerId = parts[1]; + componentId = parts[0]; + if (ownerComponent = componentLookup$1[ownerId]) { + keyedElements = ownerComponent.k_; + } else { + keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); + } + addComponentRootToKeyedElements(keyedElements, key, rootNode, componentId); + } + serverComponentRootNodes[componentId] = rootNode; + startNode.parentNode.removeChild(startNode); + endNode.parentNode.removeChild(endNode); + } + } + } else if (node.nodeType === 1) { + var markoKey = node.getAttribute("data-marko-key"); + var markoProps = componentsUtil$1.am_(node); + if (markoKey) { + var separatorIndex = markoKey.indexOf(" "); + ownerId = markoKey.substring(separatorIndex + 1); + markoKey = markoKey.substring(0, separatorIndex); + if (ownerComponent = componentLookup$1[ownerId]) { + keyedElements = ownerComponent.k_; + } else { + keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); + } + keyedElements[markoKey] = node; + } + if (markoProps) { + Object.keys(markoProps).forEach(function(key2) { + if (key2.slice(0, 2) === "on") { + eventDelegation._D_(key2.slice(2)); + } + }); + } + indexServerComponentBoundaries(node, runtimeId2, stack); + } + node = nextSibling2; + } +} +function invokeComponentEventHandler(component, targetMethodName, args) { + var method = component[targetMethodName]; + if (!method) { + throw Error("Method not found: " + targetMethodName); + } + method.apply(component, args); +} +function addEventListenerHelper(el, eventType, isOnce, listener) { + var eventListener = listener; + if (isOnce) { + eventListener = function(event) { + listener(event); + el.removeEventListener(eventType, eventListener); + }; + } + el.addEventListener(eventType, eventListener, false); + return function remove() { + el.removeEventListener(eventType, eventListener); + }; +} +function addDOMEventListeners(component, el, eventType, targetMethodName, isOnce, extraArgs, handles) { + var removeListener2 = addEventListenerHelper(el, eventType, isOnce, function(event) { + var args = [event, el]; + if (extraArgs) { + args = extraArgs.concat(args); + } + invokeComponentEventHandler(component, targetMethodName, args); + }); + handles.push(removeListener2); +} +function initComponent(componentDef, host) { + var component = componentDef.h_; + component.I_(); + component.X_ = host; + var isExisting = componentDef._G_; + if (isExisting) { + component._b_(); + } + var domEvents = componentDef._F_; + if (domEvents) { + var eventListenerHandles = []; + domEvents.forEach(function(domEventArgs) { + var eventType = domEventArgs[0]; + var targetMethodName = domEventArgs[1]; + var eventEl = component.k_[domEventArgs[2]]; + var isOnce = domEventArgs[3]; + var extraArgs = domEventArgs[4]; + addDOMEventListeners(component, eventEl, eventType, targetMethodName, isOnce, extraArgs, eventListenerHandles); + }); + if (eventListenerHandles.length) { + component.M_ = eventListenerHandles; + } + } + if (component.R_) { + component.H_(); + } else { + component.R_ = true; + component._z_(); } - var ComponentClass = function() { - }; - var proto2; - var type = typeof def; - if (type == "function") { - proto2 = def.prototype; - } else if (type == "object") { - proto2 = def; +} +function initClientRendered(componentDefs, host) { + if (!host) + host = document; + eventDelegation.an_(host); + var len = componentDefs.length; + var componentDef; + var i; + for (i = len; i--; ) { + componentDef = componentDefs[i]; + trackComponent(componentDef); + } + for (i = len; i--; ) { + componentDef = componentDefs[i]; + initComponent(componentDef, host); + } +} +function initServerRendered(renderedComponents, host) { + var type = typeof renderedComponents; + var globalKey = "$"; + var runtimeId2; + if (type !== "object") { + if (type === "string") { + runtimeId2 = renderedComponents; + globalKey += runtimeId2 + "_C"; + } else { + globalKey += (runtimeId2 = DEFAULT_RUNTIME_ID) + "C"; + } + renderedComponents = win[globalKey]; + var fakeArray = win[globalKey] = { + r: runtimeId2, + concat: initServerRendered + }; + if (renderedComponents && renderedComponents.forEach) { + renderedComponents.forEach(function(renderedComponent) { + fakeArray.concat(renderedComponent); + }); + } + return fakeArray; + } + var isFromSerializedGlobals = this.concat === initServerRendered; + renderedComponents = warp10Finalize(renderedComponents); + if (isFromSerializedGlobals) { + runtimeId2 = this.r; + host = document; } else { - throw TypeError(); + runtimeId2 = renderedComponents.r || DEFAULT_RUNTIME_ID; + if (!host) + host = document; } - ComponentClass.prototype = proto2; - function Component2(id) { - BaseComponent.call(this, id); + var prefix = renderedComponents.p || ""; + var meta = serverRenderedMeta[prefix]; + var isLast = renderedComponents.l; + if (meta) { + if (isLast) { + delete serverRenderedMeta[prefix]; + } + } else { + meta = {}; + if (!isLast) { + serverRenderedMeta[prefix] = meta; + } } - if (!proto2.Y_) { - inherit(ComponentClass, BaseComponent); + indexServerComponentBoundaries(host, runtimeId2); + eventDelegation.an_(host); + if (renderedComponents.g) { + meta.aq_ = renderedComponents.g; } - proto2 = Component2.prototype = ComponentClass.prototype; - Component2.Y_ = true; - function State2(component) { - BaseState.call(this, component); + if (renderedComponents.t) { + meta.ar_ = meta.ar_ ? meta.ar_.concat(renderedComponents.t) : renderedComponents.t; } - inherit(State2, BaseState); - proto2._c_ = State2; - proto2._n_ = renderer2; - return Component2; -}; -var indexBrowser$2 = {}; -var constants$2 = {}; -var win$1 = typeof window !== "undefined" ? window : commonjsGlobal; -constants$2.NOOP = win$1.$W10NOOP = win$1.$W10NOOP || function() { -}; -var constants$1 = constants$2; -var isArray = Array.isArray; -function resolve(object, path, len) { - var current = object; - for (var i = 0; i < len; i++) { - current = current[path[i]]; + (renderedComponents.w || []).map(function(componentDef) { + var typeName = meta.ar_[componentDef[1]]; + return registry$2.as_(typeName) ? tryHydrateComponent(componentDef, meta, host, runtimeId2) : registry$2.at_(componentDef, typeName, meta, host, runtimeId2); + }).reverse().forEach(tryInvoke); + return this; +} +function tryHydrateComponent(rawDef, meta, host, runtimeId2) { + var componentDef = ComponentDef$1._O_(rawDef, meta.ar_, meta.aq_, registry$2); + var mount = hydrateComponentAndGetMount(componentDef, host); + if (!mount) { + if (deferredDefs) { + deferredDefs.push(componentDef); + } else { + deferredDefs = [componentDef]; + document.addEventListener("DOMContentLoaded", function() { + indexServerComponentBoundaries(host, runtimeId2); + deferredDefs.map(function(componentDef2) { + return hydrateComponentAndGetMount(componentDef2, host); + }).reverse().forEach(tryInvoke); + deferredDefs = void 0; + }); + } } - return current; + return mount; } -function resolveType(info) { - if (info.type === "Date") { - return new Date(info.value); - } else if (info.type === "NOOP") { - return constants$1.NOOP; - } else { - throw new Error("Bad type"); +function hydrateComponentAndGetMount(componentDef, host) { + var componentId = componentDef.id; + var component = componentDef.h_; + var rootNode = serverComponentRootNodes[componentId]; + var renderResult; + if (rootNode) { + delete serverComponentRootNodes[componentId]; + component.K_ = rootNode; + componentsByDOMNode.set(rootNode, component); + if (componentDef._I_ & FLAG_WILL_RERENDER_IN_BROWSER) { + component.X_ = host; + renderResult = component._p_(component.Q_, true); + trackComponent(componentDef); + return function mount() { + renderResult.afterInsert(host); + }; + } else { + trackComponent(componentDef); + } + return function mount() { + initComponent(componentDef, host); + }; } } -var finalize$1 = function finalize(outer) { - if (!outer) { - return outer; +function trackComponent(componentDef) { + var component = componentDef.h_; + if (component) { + componentLookup$1[component.id] = component; } - var assignments = outer.$$; - if (assignments) { - var object = outer.o; - var len; - if (assignments && (len = assignments.length)) { - for (var i = 0; i < len; i++) { - var assignment = assignments[i]; - var rhs = assignment.r; - var rhsValue; - if (isArray(rhs)) { - rhsValue = resolve(object, rhs, rhs.length); - } else { - rhsValue = resolveType(rhs); +} +function tryInvoke(fn) { + if (fn) + fn(); +} +indexBrowser$5._R_ = initClientRendered; +indexBrowser$5.ai_ = initServerRendered; +indexBrowser$5.au_ = tryHydrateComponent; +var initComponents = indexBrowser$5; +ComponentsContext$1.exports._R_ = initComponents._R_; +indexBrowser$6.getComponentForEl = indexBrowser$4.ah_; +indexBrowser$6.init = window.$initComponents = initComponents.ai_; +var registry$1 = indexBrowser$3; +indexBrowser$6.register = function(id, component) { + registry$1.r(id, function() { + return component; + }); +}; +var components = indexBrowser$6; +var classValue = function classHelper(arg) { + switch (typeof arg) { + case "string": + return arg || null; + case "object": + var result = ""; + var sep = ""; + if (Array.isArray(arg)) { + for (var i = 0, len = arg.length; i < len; i++) { + var value = classHelper(arg[i]); + if (value) { + result += sep + value; + sep = " "; + } } - var lhs = assignment.l; - var lhsLast = lhs.length - 1; - if (lhsLast === -1) { - object = outer.o = rhsValue; - break; - } else { - var lhsParent = resolve(object, lhs, lhsLast); - lhsParent[lhs[lhsLast]] = rhsValue; + } else { + for (var key in arg) { + if (arg[key]) { + result += sep + key; + sep = " "; + } + } + } + return result || null; + default: + return null; + } +}; +var _changeCase = {}; +var camelToDashLookup = Object.create(null); +var dashToCamelLookup = Object.create(null); +_changeCase.aI_ = function camelToDashCase(name) { + var nameDashed = camelToDashLookup[name]; + if (!nameDashed) { + nameDashed = camelToDashLookup[name] = name.replace(/([A-Z])/g, "-$1").toLowerCase(); + if (nameDashed !== name) { + dashToCamelLookup[nameDashed] = name; + } + } + return nameDashed; +}; +_changeCase.aJ_ = function dashToCamelCase(name) { + var nameCamel = dashToCamelLookup[name]; + if (!nameCamel) { + nameCamel = dashToCamelLookup[name] = name.replace(/-([a-z])/g, matchToUpperCase); + if (nameCamel !== name) { + camelToDashLookup[nameCamel] = name; + } + } + return nameCamel; +}; +function matchToUpperCase(_, char) { + return char.toUpperCase(); +} +var changeCase = _changeCase; +var styleValue = function styleHelper(style) { + if (!style) { + return null; + } + var type = typeof style; + if (type !== "string") { + var styles = ""; + if (Array.isArray(style)) { + for (var i = 0, len = style.length; i < len; i++) { + var next = styleHelper(style[i]); + if (next) + styles += next + (next[next.length - 1] !== ";" ? ";" : ""); + } + } else if (type === "object") { + for (var name in style) { + var value = style[name]; + if (value != null && value !== false) { + if (typeof value === "number" && value) { + value += "px"; + } + styles += changeCase.aI_(name) + ":" + value + ";"; } } } - assignments.length = 0; - return object == null ? null : object; - } else { - return outer; + return styles || null; } + return style; }; -var finalize2 = finalize$1; -var constants = constants$2; -var w10Noop = constants.NOOP; -var componentUtil = indexBrowser$5; -var attachBubblingEvent = componentUtil._C_; -var addDelegatedEventHandler = eventDelegation$3._D_; -var extend2 = extend$5; -var KeySequence = KeySequence_1; -var EMPTY_OBJECT = {}; -var FLAG_WILL_RERENDER_IN_BROWSER$1 = 1; -var FLAG_HAS_RENDER_BODY = 2; -function ComponentDef$2(component, componentId, componentsContext) { - this._E_ = componentsContext; - this.h_ = component; - this.id = componentId; - this._F_ = void 0; - this._G_ = false; - this._H_ = false; - this._I_ = 0; - this._J_ = 0; - this._K_ = null; -} -ComponentDef$2.prototype = { - _L_: function(key) { - return (this._K_ || (this._K_ = new KeySequence()))._L_(key); - }, - elId: function(nestedId) { - var id = this.id; - if (nestedId == null) { - return id; - } else { - if (typeof nestedId !== "string") { - nestedId = String(nestedId); +var classHelper2 = classValue; +var styleHelper2 = styleValue; +var attrs = function(attributes) { + if (attributes != null) { + var newAttributes = {}; + for (var attrName in attributes) { + var val = attributes[attrName]; + if (attrName === "renderBody") { + continue; } - if (nestedId.indexOf("#") === 0) { - id = "#" + id; - nestedId = nestedId.substring(1); + if (attrName === "class") { + val = classHelper2(val); + } else if (attrName === "style") { + val = styleHelper2(val); } - return id + "-" + nestedId; + newAttributes[attrName] = val; } - }, - _M_: function() { - return this.id + "-c" + this._J_++; - }, - d: function(eventName, handlerMethodName, isOnce, extraArgs) { - addDelegatedEventHandler(eventName); - return attachBubblingEvent(this, handlerMethodName, isOnce, extraArgs); - }, - get _N_() { - return this.h_._N_; + return newAttributes; } + return attributes; }; -ComponentDef$2.prototype.nk = ComponentDef$2.prototype._L_; -ComponentDef$2._O_ = function(o, types, global2, registry2) { - var id = o[0]; - var typeName = types[o[1]]; - var input = o[2] || null; - var extra = o[3] || EMPTY_OBJECT; - var state = extra.s; - var componentProps = extra.w; - var flags = extra.f; - var component = registry2._P_(typeName, id); - component.U_ = true; - if (flags & FLAG_HAS_RENDER_BODY) { - (input || (input = {})).renderBody = w10Noop; +var EventEmitter = src; +var vdom = vdom$1; +var VElement$1 = vdom.b__; +var VDocumentFragment = vdom.ba_; +var VText = vdom.bb_; +var VComponent = vdom.bc_; +var VFragment = vdom.bd_; +var virtualizeHTML = vdom.be_; +var RenderResult = RenderResult_1; +var morphdom = morphdom_1; +var attrsHelper = attrs; +var EVENT_UPDATE = "update"; +var EVENT_FINISH = "finish"; +function State(tree) { + this.bf_ = new EventEmitter(); + this.bg_ = tree; + this.bh_ = false; +} +function AsyncVDOMBuilder$1(globalData, parentNode, parentOut) { + if (!parentNode) { + parentNode = new VDocumentFragment(); } - if (flags & FLAG_WILL_RERENDER_IN_BROWSER$1) { - if (component.onCreate) { - component.onCreate(input, { global: global2 }); - } - if (component.onInput) { - input = component.onInput(input, { global: global2 }) || input; - } + var state; + if (parentOut) { + state = parentOut.J_; } else { - if (state) { - var undefinedPropNames = extra.u; - if (undefinedPropNames) { - undefinedPropNames.forEach(function(undefinedPropName) { - state[undefinedPropName] = void 0; - }); - } - component.state = state; - } - if (componentProps) { - extend2(component, componentProps); - } - } - component.Q_ = input; - if (extra.b) { - component.N_ = extra.b; - } - var scope = extra.p; - var customEvents = extra.e; - if (customEvents) { - component._v_(customEvents, scope); + state = new State(parentNode); } - component.S_ = global2; - return { - id, - h_: component, - _F_: extra.d, - _I_: extra.f || 0 - }; -}; -var ComponentDef_1 = ComponentDef$2; -var warp10Finalize = finalize2; -var eventDelegation = eventDelegation$3; -var win = window; -var defaultDocument = document; -var createFragmentNode = fragment$1.ao_; -var componentsUtil$1 = indexBrowser$5; -var componentLookup$1 = componentsUtil$1.C_; -var addComponentRootToKeyedElements = componentsUtil$1.ap_; -var ComponentDef$1 = ComponentDef_1; -var registry$1 = indexBrowser$3; -var domData = domData$6; -var keyedElementsByComponentId = domData.F_; -var componentsByDOMNode = domData.E_; -var serverComponentRootNodes = {}; -var serverRenderedMeta = {}; -var DEFAULT_RUNTIME_ID = "M"; -var FLAG_WILL_RERENDER_IN_BROWSER = 1; -var deferredDefs; -function indexServerComponentBoundaries(node, runtimeId2, stack) { - var componentId; - var ownerId; - var ownerComponent; - var keyedElements; - var nextSibling2; - var runtimeLength = runtimeId2.length; - stack = stack || []; - node = node.firstChild; - while (node) { - nextSibling2 = node.nextSibling; - if (node.nodeType === 8) { - var commentValue = node.nodeValue; - if (commentValue.slice(0, runtimeLength) === runtimeId2) { - var firstChar = commentValue[runtimeLength]; - if (firstChar === "^" || firstChar === "#") { - stack.push(node); - } else if (firstChar === "/") { - var endNode = node; - var startNode = stack.pop(); - var rootNode; - if (startNode.parentNode === endNode.parentNode) { - rootNode = createFragmentNode(startNode.nextSibling, endNode); - } else { - rootNode = createFragmentNode(endNode.parentNode.firstChild, endNode); - } - componentId = startNode.nodeValue.substring(runtimeLength + 1); - firstChar = startNode.nodeValue[runtimeLength]; - if (firstChar === "^") { - var parts = componentId.split(/ /g); - var key = parts[2]; - ownerId = parts[1]; - componentId = parts[0]; - if (ownerComponent = componentLookup$1[ownerId]) { - keyedElements = ownerComponent.k_; - } else { - keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); - } - addComponentRootToKeyedElements(keyedElements, key, rootNode, componentId); - } - serverComponentRootNodes[componentId] = rootNode; - startNode.parentNode.removeChild(startNode); - endNode.parentNode.removeChild(endNode); - } - } - } else if (node.nodeType === 1) { - var markoKey = node.getAttribute("data-marko-key"); - var markoProps = componentsUtil$1.am_(node); - if (markoKey) { - var separatorIndex = markoKey.indexOf(" "); - ownerId = markoKey.substring(separatorIndex + 1); - markoKey = markoKey.substring(0, separatorIndex); - if (ownerComponent = componentLookup$1[ownerId]) { - keyedElements = ownerComponent.k_; - } else { - keyedElements = keyedElementsByComponentId[ownerId] || (keyedElementsByComponentId[ownerId] = {}); + this.bi_ = 1; + this.bj_ = 0; + this.bk_ = null; + this.bl_ = parentOut; + this.data = {}; + this.J_ = state; + this.l_ = parentNode; + this.global = globalData || {}; + this.bm_ = [parentNode]; + this.bn_ = false; + this.bo_ = void 0; + this.b_ = null; + this.g_ = null; + this.i_ = null; + this.ax_ = null; +} +var proto = AsyncVDOMBuilder$1.prototype = { + aP_: true, + X_: typeof window === "object" && document, + bc: function(component, key, ownerComponent) { + var vComponent = new VComponent(component, key, ownerComponent); + return this.bp_(vComponent, 0, true); + }, + ay_: function(component, key, ownerComponent) { + var vComponent = new VComponent(component, key, ownerComponent, true); + this.bp_(vComponent, 0); + }, + bp_: function(child, childCount, pushToStack) { + this.l_.bq_(child); + if (pushToStack === true) { + this.bm_.push(child); + this.l_ = child; + } + return childCount === 0 ? this : child; + }, + element: function(tagName, attrs2, key, component, childCount, flags, props) { + var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); + return this.bp_(element, childCount); + }, + aM_: function(tagName, attrs2, key, componentDef, props) { + return this.element(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); + }, + n: function(node, component) { + var clone = node.br_(); + this.node(clone); + clone.aA_ = component; + return this; + }, + node: function(node) { + this.l_.bq_(node); + return this; + }, + text: function(text, ownerComponent) { + var type = typeof text; + if (type != "string") { + if (text == null) { + return; + } else if (type === "object") { + if (text.toHTML) { + return this.h(text.toHTML(), ownerComponent); } - keyedElements[markoKey] = node; } - if (markoProps) { - Object.keys(markoProps).forEach(function(key2) { - if (key2.slice(0, 2) === "on") { - eventDelegation._D_(key2.slice(2)); - } - }); + text = text.toString(); + } + this.l_.bq_(new VText(text, ownerComponent)); + return this; + }, + html: function(html, ownerComponent) { + if (html != null) { + var vdomNode = virtualizeHTML(html, ownerComponent); + this.node(vdomNode); + } + return this; + }, + beginElement: function(tagName, attrs2, key, component, childCount, flags, props) { + var element = new VElement$1(tagName, attrs2, key, component, childCount, flags, props); + this.bp_(element, childCount, true); + return this; + }, + aK_: function(tagName, attrs2, key, componentDef, props) { + return this.beginElement(tagName, attrsHelper(attrs2), key, componentDef.h_, 0, 0, props); + }, + bf: function(key, component, preserve) { + var fragment2 = new VFragment(key, component, preserve); + this.bp_(fragment2, null, true); + return this; + }, + ef: function() { + this.endElement(); + }, + endElement: function() { + var stack = this.bm_; + stack.pop(); + this.l_ = stack[stack.length - 1]; + }, + end: function() { + this.l_ = void 0; + var remaining = --this.bi_; + var parentOut = this.bl_; + if (remaining === 0) { + if (parentOut) { + parentOut.bs_(); + } else { + this.bt_(); } - indexServerComponentBoundaries(node, runtimeId2, stack); + } else if (remaining - this.bj_ === 0) { + this.bu_(); } - node = nextSibling2; - } -} -function invokeComponentEventHandler(component, targetMethodName, args) { - var method = component[targetMethodName]; - if (!method) { - throw Error("Method not found: " + targetMethodName); - } - method.apply(component, args); -} -function addEventListenerHelper(el, eventType, isOnce, listener) { - var eventListener = listener; - if (isOnce) { - eventListener = function(event) { - listener(event); - el.removeEventListener(eventType, eventListener); - }; - } - el.addEventListener(eventType, eventListener, false); - return function remove() { - el.removeEventListener(eventType, eventListener); - }; -} -function addDOMEventListeners(component, el, eventType, targetMethodName, isOnce, extraArgs, handles) { - var removeListener2 = addEventListenerHelper(el, eventType, isOnce, function(event) { - var args = [event, el]; - if (extraArgs) { - args = extraArgs.concat(args); + return this; + }, + bs_: function() { + var remaining = --this.bi_; + if (remaining === 0) { + var parentOut = this.bl_; + if (parentOut) { + parentOut.bs_(); + } else { + this.bt_(); + } + } else if (remaining - this.bj_ === 0) { + this.bu_(); } - invokeComponentEventHandler(component, targetMethodName, args); - }); - handles.push(removeListener2); -} -function initComponent(componentDef, doc) { - var component = componentDef.h_; - component.I_(); - component.X_ = doc; - var isExisting = componentDef._G_; - if (isExisting) { - component._b_(); - } - var domEvents = componentDef._F_; - if (domEvents) { - var eventListenerHandles = []; - domEvents.forEach(function(domEventArgs) { - var eventType = domEventArgs[0]; - var targetMethodName = domEventArgs[1]; - var eventEl = component.k_[domEventArgs[2]]; - var isOnce = domEventArgs[3]; - var extraArgs = domEventArgs[4]; - addDOMEventListeners(component, eventEl, eventType, targetMethodName, isOnce, extraArgs, eventListenerHandles); + }, + bt_: function() { + var state = this.J_; + state.bh_ = true; + state.bf_.emit(EVENT_FINISH, this.aQ_()); + }, + bu_: function() { + var lastArray = this._last; + var i = 0; + function next() { + if (i === lastArray.length) { + return; + } + var lastCallback = lastArray[i++]; + lastCallback(next); + if (!lastCallback.length) { + next(); + } + } + next(); + }, + error: function(e) { + try { + this.emit("error", e); + } finally { + this.end(); + } + return this; + }, + beginAsync: function(options) { + if (this.bn_) { + throw Error("Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."); + } + var state = this.J_; + if (options) { + if (options.last) { + this.bj_++; + } + } + this.bi_++; + var documentFragment = this.l_.bv_(); + var asyncOut = new AsyncVDOMBuilder$1(this.global, documentFragment, this); + state.bf_.emit("beginAsync", { + out: asyncOut, + parentOut: this }); - if (eventListenerHandles.length) { - component.M_ = eventListenerHandles; + return asyncOut; + }, + createOut: function() { + return new AsyncVDOMBuilder$1(this.global); + }, + flush: function() { + var events = this.J_.bf_; + if (events.listenerCount(EVENT_UPDATE)) { + events.emit(EVENT_UPDATE, new RenderResult(this)); } - } - if (component.R_) { - component.H_(); - } else { - component.R_ = true; - component._z_(); - } -} -function initClientRendered(componentDefs, doc) { - eventDelegation.an_(doc); - doc = doc || defaultDocument; - var len = componentDefs.length; - var componentDef; - var i; - for (i = len; i--; ) { - componentDef = componentDefs[i]; - trackComponent(componentDef); - } - for (i = len; i--; ) { - componentDef = componentDefs[i]; - initComponent(componentDef, doc); - } -} -function initServerRendered(renderedComponents, doc) { - var type = typeof renderedComponents; - var globalKey = "$"; - var runtimeId2; - if (type !== "object") { - if (type === "string") { - runtimeId2 = renderedComponents; - globalKey += runtimeId2 + "_C"; + }, + B_: function() { + return this.J_.bg_; + }, + aQ_: function() { + return this.bw_ || (this.bw_ = new RenderResult(this)); + }, + on: function(event, callback) { + var state = this.J_; + if (event === EVENT_FINISH && state.bh_) { + callback(this.aQ_()); + } else if (event === "last") { + this.onLast(callback); } else { - globalKey += (runtimeId2 = DEFAULT_RUNTIME_ID) + "C"; - } - renderedComponents = win[globalKey]; - var fakeArray = win[globalKey] = { - r: runtimeId2, - concat: initServerRendered - }; - if (renderedComponents && renderedComponents.forEach) { - renderedComponents.forEach(function(renderedComponent) { - fakeArray.concat(renderedComponent); - }); + state.bf_.on(event, callback); } - return fakeArray; - } - var isFromSerializedGlobals = this.concat === initServerRendered; - renderedComponents = warp10Finalize(renderedComponents); - if (isFromSerializedGlobals) { - runtimeId2 = this.r; - doc = defaultDocument; - } else { - runtimeId2 = renderedComponents.r || DEFAULT_RUNTIME_ID; - doc = doc || defaultDocument; - } - var prefix = renderedComponents.p || ""; - var meta = serverRenderedMeta[prefix]; - var isLast = renderedComponents.l; - if (meta) { - if (isLast) { - delete serverRenderedMeta[prefix]; + return this; + }, + once: function(event, callback) { + var state = this.J_; + if (event === EVENT_FINISH && state.bh_) { + callback(this.aQ_()); + } else if (event === "last") { + this.onLast(callback); + } else { + state.bf_.once(event, callback); } - } else { - meta = {}; - if (!isLast) { - serverRenderedMeta[prefix] = meta; + return this; + }, + emit: function(type, arg) { + var events = this.J_.bf_; + switch (arguments.length) { + case 1: + events.emit(type); + break; + case 2: + events.emit(type, arg); + break; + default: + events.emit.apply(events, arguments); + break; } - } - indexServerComponentBoundaries(doc, runtimeId2); - eventDelegation.an_(doc); - if (renderedComponents.g) { - meta.aq_ = renderedComponents.g; - } - if (renderedComponents.t) { - meta.ar_ = meta.ar_ ? meta.ar_.concat(renderedComponents.t) : renderedComponents.t; - } - (renderedComponents.w || []).map(function(componentDef) { - var typeName = meta.ar_[componentDef[1]]; - return registry$1.as_(typeName) ? tryHydrateComponent(componentDef, meta, doc, runtimeId2) : registry$1.at_(componentDef, typeName, meta, doc, runtimeId2); - }).reverse().forEach(tryInvoke); - return this; -} -function tryHydrateComponent(rawDef, meta, doc, runtimeId2) { - var componentDef = ComponentDef$1._O_(rawDef, meta.ar_, meta.aq_, registry$1); - var mount = hydrateComponentAndGetMount(componentDef, doc); - if (!mount) { - if (deferredDefs) { - deferredDefs.push(componentDef); + return this; + }, + removeListener: function() { + var events = this.J_.bf_; + events.removeListener.apply(events, arguments); + return this; + }, + sync: function() { + this.bn_ = true; + }, + isSync: function() { + return this.bn_; + }, + onLast: function(callback) { + var lastArray = this._last; + if (lastArray === void 0) { + this._last = [callback]; } else { - deferredDefs = [componentDef]; - doc.addEventListener("DOMContentLoaded", function() { - indexServerComponentBoundaries(doc, runtimeId2); - deferredDefs.map(function(componentDef2) { - return hydrateComponentAndGetMount(componentDef2, doc); - }).reverse().forEach(tryInvoke); - deferredDefs = void 0; - }); + lastArray.push(callback); } - } - return mount; -} -function hydrateComponentAndGetMount(componentDef, doc) { - var componentId = componentDef.id; - var component = componentDef.h_; - var rootNode = serverComponentRootNodes[componentId]; - var renderResult; - if (rootNode) { - delete serverComponentRootNodes[componentId]; - component.K_ = rootNode; - componentsByDOMNode.set(rootNode, component); - if (componentDef._I_ & FLAG_WILL_RERENDER_IN_BROWSER) { - component.X_ = doc; - renderResult = component._p_(component.Q_, true); - trackComponent(componentDef); - return function mount() { - renderResult.afterInsert(doc); - }; - } else { - trackComponent(componentDef); + return this; + }, + A_: function(host) { + var node = this.bo_; + if (!node) { + var vdomTree = this.B_(); + if (!host) + host = this.X_; + this.bo_ = node = vdomTree.bx_(host, null); + morphdom(node, vdomTree, host, this.b_); } - return function mount() { - initComponent(componentDef, doc); - }; - } -} -function trackComponent(componentDef) { - var component = componentDef.h_; - if (component) { - componentLookup$1[component.id] = component; - } -} -function tryInvoke(fn) { - if (fn) - fn(); -} -indexBrowser$2._R_ = initClientRendered; -indexBrowser$2.ai_ = initServerRendered; -indexBrowser$2.au_ = tryHydrateComponent; -var initComponents$1 = indexBrowser$2; -ComponentsContext$1.exports._R_ = initComponents$1._R_; -window.$initComponents = initComponents$1.ai_; -var queueMicrotask$1 = queueMicrotask_1; -var defineComponent2 = defineComponent$1; -var initComponents = indexBrowser$2; -var registered = {}; -var loaded = {}; -var componentTypes = {}; -var pendingDefs; -function register(type, def) { - var pendingForType; - if (pendingDefs) { - pendingForType = pendingDefs[type]; - } - registered[type] = def; - delete loaded[type]; - delete componentTypes[type]; - if (pendingForType) { - delete pendingDefs[type]; - queueMicrotask$1(function() { - pendingForType.forEach(function(args) { - initComponents.au_(args[0], args[1], args[2], args[3])(); + return node; + }, + toString: function(host) { + var docFragment = this.A_(host); + var html = ""; + var child = docFragment.firstChild; + while (child) { + var nextSibling2 = child.nextSibling; + if (child.nodeType != 1) { + var container = docFragment.ownerDocument.createElement("div"); + container.appendChild(child.cloneNode()); + html += container.innerHTML; + } else { + html += child.outerHTML; + } + child = nextSibling2; + } + return html; + }, + then: function(fn, fnErr) { + var out = this; + var promise2 = new Promise(function(resolve2, reject) { + out.on("error", reject).on(EVENT_FINISH, function(result) { + resolve2(result); }); }); + return Promise.resolve(promise2).then(fn, fnErr); + }, + catch: function(fnErr) { + return this.then(void 0, fnErr); + }, + isVDOM: true, + c: function(componentDef, key, customEvents) { + this.g_ = componentDef; + this.i_ = key; + this.ax_ = customEvents; } - return type; -} -function addPendingDef(def, type, meta, doc, runtimeId2) { - if (!pendingDefs) { - pendingDefs = {}; - } - (pendingDefs[type] = pendingDefs[type] || []).push([ - def, - meta, - doc, - runtimeId2 - ]); -} -function isRegistered(type) { - return Boolean(registered[type]); -} -function load(typeName) { - var target = loaded[typeName]; - if (!target) { - target = registered[typeName]; - if (target) { - target = target(); - } - if (!target) { - throw Error("Component not found: " + typeName); +}; +proto.e = proto.element; +proto.be = proto.beginElement; +proto.ee = proto.aL_ = proto.endElement; +proto.t = proto.text; +proto.h = proto.w = proto.write = proto.html; +var AsyncVDOMBuilder_1 = AsyncVDOMBuilder$1; +var defaultCreateOut = createOut_1; +var setImmediate = indexBrowser$2; +var extend2 = extend$5; +function safeRender(renderFunc, finalData, finalOut, shouldEnd) { + try { + renderFunc(finalData, finalOut); + if (shouldEnd) { + finalOut.end(); } - loaded[typeName] = target; - } - return target; -} -function getComponentClass(typeName) { - var ComponentClass = componentTypes[typeName]; - if (ComponentClass) { - return ComponentClass; - } - ComponentClass = load(typeName); - ComponentClass = ComponentClass.Component || ComponentClass; - if (!ComponentClass.Y_) { - ComponentClass = defineComponent2(ComponentClass, ComponentClass.renderer); + } catch (err) { + var actualEnd = finalOut.end; + finalOut.end = function() { + }; + setImmediate(function() { + finalOut.end = actualEnd; + finalOut.error(err); + }); } - ComponentClass.prototype._N_ = typeName; - componentTypes[typeName] = ComponentClass; - return ComponentClass; + return finalOut; } -function createComponent(typeName, id) { - var ComponentClass = getComponentClass(typeName); - return new ComponentClass(id); +var renderable = function(target, renderer2) { + var renderFunc = renderer2 && (renderer2.renderer || renderer2.render || renderer2); + var createOut3 = target.createOut || renderer2.createOut || defaultCreateOut; + return extend2(target, { + createOut: createOut3, + renderToString: function(data, callback) { + var localData = data || {}; + var render = renderFunc || this._; + var globalData = localData.$global; + var out = createOut3(globalData); + out.global.template = this; + if (globalData) { + localData.$global = void 0; + } + if (callback) { + out.on("finish", function() { + callback(null, out.toString(), out); + }).once("error", callback); + return safeRender(render, localData, out, true); + } else { + out.sync(); + render(localData, out); + return out.toString(); + } + }, + renderSync: function(data) { + var localData = data || {}; + var render = renderFunc || this._; + var globalData = localData.$global; + var out = createOut3(globalData); + out.sync(); + out.global.template = this; + if (globalData) { + localData.$global = void 0; + } + render(localData, out); + return out.aQ_(); + }, + render: function(data, out) { + var callback; + var finalOut; + var finalData; + var globalData; + var render = renderFunc || this._; + var shouldBuffer = this.aS_; + var shouldEnd = true; + if (data) { + finalData = data; + if (globalData = data.$global) { + finalData.$global = void 0; + } + } else { + finalData = {}; + } + if (out && out.aP_) { + finalOut = out; + shouldEnd = false; + extend2(out.global, globalData); + } else if (typeof out == "function") { + finalOut = createOut3(globalData); + callback = out; + } else { + finalOut = createOut3(globalData, out, void 0, shouldBuffer); + } + if (callback) { + finalOut.on("finish", function() { + callback(null, finalOut.aQ_()); + }).once("error", callback); + } + globalData = finalOut.global; + globalData.template = globalData.template || this; + return safeRender(render, finalData, finalOut, shouldEnd); + } + }); +}; +var t = function createTemplate(typeName) { + return new Template(typeName); +}; +function Template(typeName) { + this.aZ_ = typeName; } -var r = indexBrowser$3.r = register; -indexBrowser$3.av_ = getComponentClass; -indexBrowser$3._P_ = createComponent; -indexBrowser$3.as_ = isRegistered; -indexBrowser$3.at_ = addPendingDef; +var AsyncVDOMBuilder = AsyncVDOMBuilder_1; +createOut_1.aE_(Template.prototype.createOut = function createOut2(globalData, parent, parentOut) { + return new AsyncVDOMBuilder(globalData, parent, parentOut); +}); +renderable(Template.prototype); +var VElement = vdom$1.b__; +var vElement = function(tagName, attrs2, key, component, childCount, flags, props) { + return new VElement(tagName, attrs2, key, component, childCount, flags, props); +}; var ComponentDef = ComponentDef_1; var indexBrowser$1 = function beginComponent(componentsContext, component, key, ownerComponentDef) { var componentId = component.id; @@ -3542,7 +3556,7 @@ var indexBrowser$1 = function beginComponent(componentsContext, component, key, var indexBrowser = function endComponent(out) { out.ee(); }; -var componentsUtil = indexBrowser$5; +var componentsUtil = indexBrowser$4; var componentLookup = componentsUtil.C_; var ComponentsContext = ComponentsContext$1.exports; var getComponentsContext = ComponentsContext.o_; @@ -3668,9 +3682,4 @@ function createRendererFunc(templateRenderFunc, componentProps, renderingLogic) }; } var renderer = createRendererFunc; -var renderTag = function renderTagHelper(handler, input, out, componentDef, key, customEvents) { - out.c(componentDef, key, customEvents); - (handler._ || (handler._ = handler.render || handler.renderer || handler))(input, out); - out.g_ = null; -}; -export { renderer as a, renderTag as b, defineComponent$1 as d, r, t, vElement as v }; +export { renderer as a, components as c, defineComponent$1 as d, r, t, vElement as v }; diff --git a/src/__tests__/__snapshots__/isomorphic-basic.expected/index.js b/src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/index.js similarity index 100% rename from src/__tests__/__snapshots__/isomorphic-basic.expected/index.js rename to src/__tests__/fixtures/isomorphic-basic/__snapshots__/isomorphic-basic.expected/index.js diff --git a/src/__tests__/__snapshots__/server-basic.expected/index.js b/src/__tests__/fixtures/server-basic/__snapshots__/server-basic.expected/index.js similarity index 100% rename from src/__tests__/__snapshots__/server-basic.expected/index.js rename to src/__tests__/fixtures/server-basic/__snapshots__/server-basic.expected/index.js diff --git a/src/__tests__/main.test.ts b/src/__tests__/main.test.ts index d74fe2f..cbde8c3 100644 --- a/src/__tests__/main.test.ts +++ b/src/__tests__/main.test.ts @@ -54,8 +54,13 @@ fs.readdirSync(FIXTURES).forEach((fixture) => { for (const chunk of (bundle as RollupOutput).output) { const source = (chunk.type === "chunk" ? chunk.code : chunk.source) .toString() - .replace(/@marko\/vite\$\d\.\d\.\d/g, "@marko/vite$latest"); - await snap(source, chunk.fileName); + .replace(/@marko\/vite\$\d\.\d\.\d/g, "@marko/vite$latest") + .replace(/\.[a-z0-9]+(?=\.(?:js|css))/gi, ""); + await snap( + source, + chunk.fileName.replace(/\.[a-z0-9]+(?=\.(?:js|css))/gi, ""), + dir + ); } } }); diff --git a/src/index.ts b/src/index.ts index bf724ae..053eaec 100644 --- a/src/index.ts +++ b/src/index.ts @@ -247,40 +247,46 @@ export default function markoPlugin(opts: Options = {}): vite.Plugin[] { }, async resolveId(importee, importer, _importOpts, ssr) { const importeeIsAbsolute = path.isAbsolute(importee); - if (!importeeIsAbsolute || importee.startsWith(root)) { - let importeeQuery = getMarkoQuery(importee); - - if (importeeQuery) { - importee = importee.slice(0, -importeeQuery.length); - } else if ( - ssr && - linked && - importer && - isMarkoFile(importee) && - !isMarkoFile(importer.replace(queryReg, "")) - ) { - importeeQuery = serverEntryQuery; - } else if (virtualFiles.has(importee)) { - return importee; - } + let importeeQuery = getMarkoQuery(importee); - if (importeeQuery) { - const resolved = importeeIsAbsolute - ? { id: importee } - : importee[0] === "." - ? { - id: importer - ? path.resolve(importer, "..", importee) - : path.resolve(root, importee), - } - : await this.resolve(importee, importer, resolveOpts); + if (importeeIsAbsolute && !importee.startsWith(root)) { + importee = (await this.resolve(importee, importer, resolveOpts))!.id; + } - if (resolved) { - resolved.id += importeeQuery; + if (importeeQuery) { + importee = importee.slice(0, -importeeQuery.length); + } else if (virtualFiles.has(importee)) { + return importee; + } else if (isMarkoFile(importee)) { + if (ssr) { + if ( + linked && + importer && + !isMarkoFile(importer.replace(queryReg, "")) + ) { + importeeQuery = serverEntryQuery; } + } else if (!importer || this.getModuleInfo(importer)?.isEntry) { + importeeQuery = browserEntryQuery; + } + } + + if (importeeQuery) { + const resolved = importeeIsAbsolute + ? { id: importee } + : importee[0] === "." + ? { + id: importer + ? path.resolve(importer, "..", importee) + : path.resolve(root, importee), + } + : await this.resolve(importee, importer, resolveOpts); - return resolved; + if (resolved) { + resolved.id += importeeQuery; } + + return resolved; } return null; @@ -312,9 +318,7 @@ export default function markoPlugin(opts: Options = {}): vite.Plugin[] { await generateDocManifest( await devServer.transformIndexHtml( "/", - generateInputDoc( - fileNameToURL(fileName, root) + browserEntryQuery - ) + generateInputDoc(fileNameToURL(fileName, root)) ) ) ); @@ -486,7 +490,7 @@ function toHTMLEntries(root: string, serverEntries: ServerManifest["entries"]) { const markoFile = path.join(root, serverEntries[id]); const htmlFile = markoFile + htmlExt; virtualFiles.set(htmlFile, { - code: generateInputDoc(markoFile + browserEntryQuery), + code: generateInputDoc(markoFile), }); result.push(htmlFile); }