diff --git a/frameworks/keyed/million/index.html b/frameworks/keyed/million/index.html new file mode 100644 index 000000000..a24dfac9c --- /dev/null +++ b/frameworks/keyed/million/index.html @@ -0,0 +1,12 @@ + + + + + Million.js + + + +
+ + + diff --git a/frameworks/keyed/million/package-lock.json b/frameworks/keyed/million/package-lock.json new file mode 100644 index 000000000..657f56735 --- /dev/null +++ b/frameworks/keyed/million/package-lock.json @@ -0,0 +1,2189 @@ +{ + "name": "million", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "million": "2.0.0" + }, + "devDependencies": { + "@babel/core": "^7.21.0", + "@babel/plugin-transform-react-jsx": "^7.21.0", + "@babel/types": "^7.21.2", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-terser": "^0.4.0", + "unplugin": "^1.2.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz", + "integrity": "sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.0", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.0.tgz", + "integrity": "sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.0", + "smob": "^0.0.6", + "terser": "^5.15.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.x || ^3.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/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 + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001464", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz", + "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "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/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/million": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/million/-/million-2.0.0.tgz", + "integrity": "sha512-tseZ6i6LwyLv0MeUbxLiLAcFBGgxMmIuF0wHGmCZpkePWzVRqUDQdzrs0Zh6OjHsTvC2cae/ksUeL++mdFk80g==", + "funding": { + "url": "https://github.com/sponsors/aidenybai" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "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.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.19.1.tgz", + "integrity": "sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/smob": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/smob/-/smob-0.0.6.tgz", + "integrity": "sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "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, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/terser": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", + "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/unplugin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.2.0.tgz", + "integrity": "sha512-7lJXQY4CxOK4jZyVskZuuNBqBSOlxezKqBpfQEpH+Odk2Ban3moKAlvzs9rZuZoZp6/1FEhvY9TZXav2FRhaBg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.5.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "dev": true + }, + "@babel/core": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "dev": true, + "requires": { + "@babel/types": "^7.21.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true + }, + "@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.21.0" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@rollup/plugin-babel": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz", + "integrity": "sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + } + }, + "@rollup/plugin-node-resolve": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.0", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + } + }, + "@rollup/plugin-terser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.0.tgz", + "integrity": "sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==", + "dev": true, + "requires": { + "serialize-javascript": "^6.0.0", + "smob": "^0.0.6", + "terser": "^5.15.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "dependencies": { + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + } + } + }, + "@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "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 + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001464", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz", + "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "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" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "million": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/million/-/million-2.0.0.tgz", + "integrity": "sha512-tseZ6i6LwyLv0MeUbxLiLAcFBGgxMmIuF0wHGmCZpkePWzVRqUDQdzrs0Zh6OjHsTvC2cae/ksUeL++mdFk80g==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "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.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.19.1.tgz", + "integrity": "sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "smob": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/smob/-/smob-0.0.6.tgz", + "integrity": "sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "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, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "terser": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", + "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "unplugin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.2.0.tgz", + "integrity": "sha512-7lJXQY4CxOK4jZyVskZuuNBqBSOlxezKqBpfQEpH+Odk2Ban3moKAlvzs9rZuZoZp6/1FEhvY9TZXav2FRhaBg==", + "dev": true, + "requires": { + "acorn": "^8.8.2", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.5.0" + } + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } +} diff --git a/frameworks/keyed/million/package.json b/frameworks/keyed/million/package.json new file mode 100644 index 000000000..48dbdfde2 --- /dev/null +++ b/frameworks/keyed/million/package.json @@ -0,0 +1,26 @@ +{ + "private": true, + "scripts": { + "build-dev": "rollup -cw", + "build-prod": "rollup -c" + }, + "dependencies": { + "million": "2.0.0" + }, + "devDependencies": { + "@babel/core": "^7.21.0", + "@babel/plugin-transform-react-jsx": "^7.21.0", + "@babel/types": "^7.21.2", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-terser": "^0.4.0", + "unplugin": "^1.2.0" + }, + "js-framework-benchmark": { + "frameworkVersionFromPackage": "million", + "frameworkHomeURL": "https://github.com/aidenybai/million", + "issues": [ + 801 + ] + } +} diff --git a/frameworks/keyed/million/rollup.config.mjs b/frameworks/keyed/million/rollup.config.mjs new file mode 100644 index 000000000..3749ee6a6 --- /dev/null +++ b/frameworks/keyed/million/rollup.config.mjs @@ -0,0 +1,52 @@ +import resolve from '@rollup/plugin-node-resolve'; +import terser from '@rollup/plugin-terser'; +import { babel } from '@rollup/plugin-babel'; +import { URL } from 'url'; + +const plugins = [ + resolve({ + preferBuiltins: false, + extensions: ['.js', '.jsx'], + }), + babel({ + plugins: [ + [ + '@babel/plugin-transform-react-jsx', + { + runtime: 'classic', + pragma: 'h', + }, + ], + ], + }), + terser({ + parse: { + ecma: 8, + }, + compress: { + ecma: 5, + inline: true, + if_return: false, + reduce_funcs: false, + passes: 5, + comparisons: false, + }, + output: { + ecma: 5, + comments: false, + }, + toplevel: true, + module: true, + }), +]; + +export default { + input: new URL('src/main.jsx', import.meta.url).pathname, + output: { + name: 'million', + format: 'iife', + file: new URL('dist/main.js', import.meta.url).pathname, + sourcemap: false, + }, + plugins, +}; diff --git a/frameworks/keyed/million/src/main.js b/frameworks/keyed/million/src/main.js new file mode 100644 index 000000000..cbfe29df4 --- /dev/null +++ b/frameworks/keyed/million/src/main.js @@ -0,0 +1,336 @@ +import { Block, fragment, stringToDOM } from 'million'; + +const adjectives = [ + 'pretty', + 'large', + 'big', + 'small', + 'tall', + 'short', + 'long', + 'handsome', + 'plain', + 'quaint', + 'clean', + 'elegant', + 'easy', + 'angry', + 'crazy', + 'helpful', + 'mushy', + 'odd', + 'unsightly', + 'adorable', + 'important', + 'inexpensive', + 'cheap', + 'expensive', + 'fancy', +]; +const colors = [ + 'red', + 'yellow', + 'blue', + 'green', + 'pink', + 'brown', + 'purple', + 'brown', + 'white', + 'black', + 'orange', +]; +const nouns = [ + 'table', + 'chair', + 'house', + 'bbq', + 'desk', + 'car', + 'pony', + 'cookie', + 'sandwich', + 'burger', + 'pizza', + 'mouse', + 'keyboard', +]; + +const random = (max) => Math.round(Math.random() * 1000) % max; + +let nextId = 1; +let list = []; +let selected = 0; +let main; + +const clear = () => { + list = []; + main.remove(); +}; + +const buildData = (count) => { + const data = new Array(count); + for (let i = 0; i < count; ++i) { + data[i] = { + id: nextId++, + label: `${adjectives[random(adjectives.length)]} ${ + colors[random(colors.length)] + } ${nouns[random(nouns.length)]}`, + }; + } + return data; +}; + +const create1k = () => { + if (list.length) clear(); + list = buildData(1000); + update(); + return false; +}; + +const create10k = () => { + if (list.length) clear(); + list = buildData(10000); + update(); + return false; +}; + +const append1k = () => { + list = list.concat(buildData(1000)); + update(); + return false; +}; + +const updateEvery10 = () => { + let i = 0; + while (i < list.length) { + list[i].label = `${list[i].label} !!!`; + i += 10; + } + update(); + return false; +}; + +const swapRows = () => { + if (list.length > 998) { + const item = list[1]; + list[1] = list[998]; + list[998] = item; + } + update(); + return false; +}; + +let prevBlock; + +const select = (id) => { + if (prevBlock) { + if (prevBlock.props.id === id) return; + const { id: prevId, label } = prevBlock.props; + prevBlock.patch( + Row( + { + id: prevId, + label, + className: '', + }, + String(id) + ) + ); + } + const block = main.children.find((block) => block.props.id === id); + const { label } = block.props; + block.patch( + Row( + { + id, + label, + className: 'danger', + }, + String(id) + ) + ); + + prevBlock = block; +}; + +const remove = (id) => { + const index = list.findIndex((item) => item.id === id); + list.splice(index, 1); + main.children[index].remove(); + main.children.splice(index, 1); +}; + +const Row = (() => { + const root = stringToDOM( + '' + ); + const edits = [ + { + path: [0], + edits: [ + { + type: 'child', + hole: 'id', + index: 0, + }, + ], + inits: [], + }, + { + path: [1, 0], + edits: [ + { + type: 'child', + hole: 'label', + index: 0, + }, + ], + inits: [], + }, + { + path: [], + edits: [ + { + type: 'attribute', + hole: 'className', + name: 'class', + }, + ], + inits: [], + }, + ]; + const shouldUpdate = (oldProps, newProps) => { + return ( + oldProps.label !== newProps.label || + oldProps.className !== newProps.className + ); + }; + return (props, key) => { + return new Block(root, edits, props, key, shouldUpdate); + }; +})(); + +(() => { + new Block( + stringToDOM( + '

Million

' + ), + [ + { + path: [0, 0, 1, 0, 0, 0], + edits: [ + { + type: 'event', + name: 'onClick', + listener: create1k, + }, + ], + inits: [], + }, + { + path: [0, 0, 1, 0, 1, 0], + edits: [ + { + type: 'event', + name: 'onClick', + listener: create10k, + }, + ], + inits: [], + }, + { + path: [0, 0, 1, 0, 2, 0], + edits: [ + { + type: 'event', + name: 'onClick', + listener: append1k, + }, + ], + inits: [], + }, + { + path: [0, 0, 1, 0, 3, 0], + edits: [ + { + type: 'event', + name: 'onClick', + listener: updateEvery10, + }, + ], + inits: [], + }, + { + path: [0, 0, 1, 0, 4, 0], + edits: [ + { + type: 'event', + name: 'onClick', + listener: () => { + clear(); + return false; + }, + }, + ], + inits: [], + }, + { + path: [0, 0, 1, 0, 5, 0], + edits: [ + { + type: 'event', + name: 'onClick', + listener: swapRows, + }, + ], + inits: [], + }, + { + path: [1, 0], + edits: [ + { + type: 'event', + name: 'onClick', + listener: (event) => { + const el = event.target; + const id = Number(el.closest('tr').firstChild.textContent); + if (el.matches('.glyphicon-remove')) { + remove(id); + } else { + select(id); + } + return false; + }, + }, + { + type: 'child', + hole: 'rows', + index: 0, + }, + ], + inits: [], + }, + ], + { rows: (main = fragment([])) }, + undefined, + undefined + ).mount(document.getElementById('main')); +})(); + +function update() { + main.patch( + fragment( + list.map((item) => + Row( + { + id: item.id, + label: item.label, + className: selected === item.id ? 'danger' : '', + }, + String(item.id) + ) + ) + ) + ); +} diff --git a/frameworks/keyed/million/src/main.jsx b/frameworks/keyed/million/src/main.jsx new file mode 100644 index 000000000..36888ecc3 --- /dev/null +++ b/frameworks/keyed/million/src/main.jsx @@ -0,0 +1,258 @@ +import { block, fragment } from 'million'; +import { h } from 'million/jsx-runtime'; + +// prettier-ignore +const adjectives = ['pretty', 'large', 'big', 'small', 'tall', 'short', 'long', 'handsome', 'plain', 'quaint', 'clean', 'elegant', 'easy', 'angry', 'crazy', 'helpful', 'mushy', 'odd', 'unsightly', 'adorable', 'important', 'inexpensive', 'cheap', 'expensive', 'fancy']; +// prettier-ignore +const colors = ['red', 'yellow', 'blue', 'green', 'pink', 'brown', 'purple', 'brown', 'white', 'black', 'orange']; +// prettier-ignore +const nouns = ['table', 'chair', 'house', 'bbq', 'desk', 'car', 'pony', 'cookie', 'sandwich', 'burger', 'pizza', 'mouse', 'keyboard']; + +const random = (max) => Math.round(Math.random() * 1000) % max; + +let nextId = 1; +let list = []; +let selected = 0; +let main; + +const clear = () => { + list = []; + main.remove(); +}; + +const buildData = (count) => { + const data = new Array(count); + for (let i = 0; i < count; ++i) { + data[i] = { + id: nextId++, + label: `${adjectives[random(adjectives.length)]} ${ + colors[random(colors.length)] + } ${nouns[random(nouns.length)]}`, + }; + } + return data; +}; + +const create1k = () => { + if (list.length) clear(); + list = buildData(1000); + update(); + return false; +}; + +const create10k = () => { + if (list.length) clear(); + list = buildData(10000); + update(); + return false; +}; + +const append1k = () => { + list = list.concat(buildData(1000)); + update(); + return false; +}; + +const updateEvery10 = () => { + let i = 0; + while (i < list.length) { + list[i].label = `${list[i].label} !!!`; + i += 10; + } + update(); + return false; +}; + +const swapRows = () => { + if (list.length > 998) { + const item = list[1]; + list[1] = list[998]; + list[998] = item; + } + update(); + return false; +}; + +let prevBlock; + +const select = (id) => { + if (prevBlock) { + if (prevBlock.props.id === id) return; + const { id: prevId, label } = prevBlock.props; + prevBlock.patch( + Row( + { + id: prevId, + label, + className: '', + }, + String(id) + ) + ); + } + const block = main.children.find((block) => block.props.id === id); + const { label } = block.props; + block.patch( + Row( + { + id, + label, + className: 'danger', + }, + String(id) + ) + ); + + prevBlock = block; +}; + +const remove = (id) => { + const index = list.findIndex((item) => item.id === id); + list.splice(index, 1); + main.children[index].remove(); + main.children.splice(index, 1); +}; + +const Main = block(({ rows }) => ( +
+
+
+
+

Million

+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+ + { + const el = event.target; + const id = Number(el.closest('tr').firstChild.textContent); + if (el.matches('.glyphicon-remove')) { + remove(id); + } else { + select(id); + } + return false; + }} + > + {rows} + +
+ +
+)); + +const Row = block(({ className, id, label }) => ( + + {id} + + {label} + + + + + + + + +)); + +Main({ rows: (main = fragment([])) }, undefined, undefined).mount( + document.getElementById('main') +); + +const shouldUpdate = (oldProps, newProps) => { + return ( + oldProps.label !== newProps.label || + oldProps.className !== newProps.className + ); +}; + +function update() { + main.patch( + fragment( + list.map((item) => + Row( + { + id: item.id, + label: item.label, + className: selected === item.id ? 'danger' : '', + }, + String(item.id), + shouldUpdate + ) + ) + ) + ); +} diff --git a/frameworks/non-keyed/million-react/index.html b/frameworks/non-keyed/million-react/index.html deleted file mode 100644 index 6fa6f8ab4..000000000 --- a/frameworks/non-keyed/million-react/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Million.js React - - -
- - - \ No newline at end of file diff --git a/frameworks/non-keyed/million-react/package-lock.json b/frameworks/non-keyed/million-react/package-lock.json deleted file mode 100644 index d073b37a2..000000000 --- a/frameworks/non-keyed/million-react/package-lock.json +++ /dev/null @@ -1,869 +0,0 @@ -{ - "name": "million-react", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "million": "^1.12.3-beta.7" - }, - "devDependencies": { - "vite": "3.0.2" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", - "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", - "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", - "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", - "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", - "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", - "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", - "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", - "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", - "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", - "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", - "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", - "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", - "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", - "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", - "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", - "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", - "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", - "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", - "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", - "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", - "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/million": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/million/-/million-1.12.5.tgz", - "integrity": "sha512-faOnk3o1/SRgpfjAL54M7HCACNTim5Wo6yaEEC7qjy1j3h1Wdv7cie/Iw+fYt9tJn5SXs0W8+DX4MHzfMdguzw==", - "funding": { - "url": "https://github.com/sponsors/aidenybai" - } - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "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/postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/vite": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.2.tgz", - "integrity": "sha512-TAqydxW/w0U5AoL5AsD9DApTvGb2iNbGs3sN4u2VdT1GFkQVUfgUldt+t08TZgi23uIauh1TUOQJALduo9GXqw==", - "dev": true, - "dependencies": { - "esbuild": "^0.14.47", - "postcss": "^8.4.14", - "resolve": "^1.22.1", - "rollup": "^2.75.6" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "less": "*", - "sass": "*", - "stylus": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "terser": { - "optional": true - } - } - } - }, - "dependencies": { - "@esbuild/linux-loong64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", - "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", - "dev": true, - "optional": true - }, - "esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", - "dev": true, - "requires": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" - } - }, - "esbuild-android-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", - "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", - "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", - "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", - "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", - "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", - "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", - "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", - "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", - "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", - "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", - "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", - "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", - "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", - "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", - "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", - "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", - "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", - "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", - "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", - "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", - "dev": true, - "optional": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "million": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/million/-/million-1.12.5.tgz", - "integrity": "sha512-faOnk3o1/SRgpfjAL54M7HCACNTim5Wo6yaEEC7qjy1j3h1Wdv7cie/Iw+fYt9tJn5SXs0W8+DX4MHzfMdguzw==" - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "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 - }, - "postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "vite": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.2.tgz", - "integrity": "sha512-TAqydxW/w0U5AoL5AsD9DApTvGb2iNbGs3sN4u2VdT1GFkQVUfgUldt+t08TZgi23uIauh1TUOQJALduo9GXqw==", - "dev": true, - "requires": { - "esbuild": "^0.14.47", - "fsevents": "~2.3.2", - "postcss": "^8.4.14", - "resolve": "^1.22.1", - "rollup": "^2.75.6" - } - } - } -} diff --git a/frameworks/non-keyed/million-react/package.json b/frameworks/non-keyed/million-react/package.json deleted file mode 100644 index 88226ee0d..000000000 --- a/frameworks/non-keyed/million-react/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build-dev": "npm run dev", - "build": "vite build --base '/frameworks/non-keyed/million-react/dist/'", - "build-prod": "npm run build", - "preview": "vite preview" - }, - "dependencies": { - "million": "^1.12.3-beta.7" - }, - "devDependencies": { - "vite": "3.0.2" - }, - "js-framework-benchmark": { - "frameworkVersionFromPackage": "million", - "frameworkHomeURL": "https://millionjs.org/", - "customURL": "/dist" - } -} diff --git a/frameworks/non-keyed/million-react/src/App.jsx b/frameworks/non-keyed/million-react/src/App.jsx deleted file mode 100644 index c90c4f688..000000000 --- a/frameworks/non-keyed/million-react/src/App.jsx +++ /dev/null @@ -1,228 +0,0 @@ -import { useList, useState } from 'million/react'; - -const random = (max) => Math.round(Math.random() * 1000) % max; - -const A = [ - 'pretty', - 'large', - 'big', - 'small', - 'tall', - 'short', - 'long', - 'handsome', - 'plain', - 'quaint', - 'clean', - 'elegant', - 'easy', - 'angry', - 'crazy', - 'helpful', - 'mushy', - 'odd', - 'unsightly', - 'adorable', - 'important', - 'inexpensive', - 'cheap', - 'expensive', - 'fancy', -]; -const C = [ - 'red', - 'yellow', - 'blue', - 'green', - 'pink', - 'brown', - 'purple', - 'brown', - 'white', - 'black', - 'orange', -]; -const N = [ - 'table', - 'chair', - 'house', - 'bbq', - 'desk', - 'car', - 'pony', - 'cookie', - 'sandwich', - 'burger', - 'pizza', - 'mouse', - 'keyboard', -]; - -let nextId = 1; -const generate = () => { - return { - id: nextId++, - label: `${A[random(A.length)]} ${C[random(C.length)]} ${ - N[random(N.length)] - }`, - }; -}; - -export default function App() { - const [list, delta] = useList([]); - const [selected, setSelected] = useState(0); - - const clear = () => { - setSelected(0); - list.splice(0, list.length); - }; - - const append = (count) => { - for (let i = 0; i < count; i++) { - list.push(generate()); - } - }; - - const create1k = () => { - clear(); - append(1000); - }; - - const create10k = () => { - clear(); - append(10000); - }; - - const append1k = () => { - append(1000); - }; - - const updateEvery10 = () => { - for (let i = 0; i < list.length; i += 10) { - const item = list[i]; - list[i] = { id: item.id, label: item.label + ' !!!' }; - } - }; - - const swapRows = () => { - if (list.length >= 999) { - list.splice(1, 1, list.splice(998, 1, list[1])[0]); - } - }; - - const remove = (id) => - list.splice( - list.findIndex((z) => z.id === id), - 1 - ); - - return ( -
-
-
-
-

Million React

-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
- - - {list.map((item) => ( - - ))} - -
- -
- ); -} - -function Row({ item, selected, remove, setSelected }) { - return ( - - {item.id} - - setSelected(item.id)}>{item.label} - - - remove(item.id)}> - - - - - - ); -} diff --git a/frameworks/non-keyed/million-react/src/main.jsx b/frameworks/non-keyed/million-react/src/main.jsx deleted file mode 100644 index da1723098..000000000 --- a/frameworks/non-keyed/million-react/src/main.jsx +++ /dev/null @@ -1,5 +0,0 @@ -import { createRoot } from 'million/react'; - -import App from './App'; - -createRoot(document.getElementById('main')).render(); diff --git a/frameworks/non-keyed/million-react/vite.config.js b/frameworks/non-keyed/million-react/vite.config.js deleted file mode 100644 index 9976dfcfc..000000000 --- a/frameworks/non-keyed/million-react/vite.config.js +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite'; -import { million } from 'million/vite-plugin-million'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [million({ react: true })], -}); \ No newline at end of file diff --git a/frameworks/non-keyed/million/index.html b/frameworks/non-keyed/million/index.html deleted file mode 100644 index f86c3d861..000000000 --- a/frameworks/non-keyed/million/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Million.js - - -
- - - \ No newline at end of file diff --git a/frameworks/non-keyed/million/package-lock.json b/frameworks/non-keyed/million/package-lock.json deleted file mode 100644 index 32e85a31c..000000000 --- a/frameworks/non-keyed/million/package-lock.json +++ /dev/null @@ -1,869 +0,0 @@ -{ - "name": "million", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "million": "^1.12.3-beta.7" - }, - "devDependencies": { - "vite": "3.0.2" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", - "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", - "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", - "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", - "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", - "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", - "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", - "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", - "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", - "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", - "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", - "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", - "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", - "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", - "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", - "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", - "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", - "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", - "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", - "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", - "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", - "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/million": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/million/-/million-1.12.5.tgz", - "integrity": "sha512-faOnk3o1/SRgpfjAL54M7HCACNTim5Wo6yaEEC7qjy1j3h1Wdv7cie/Iw+fYt9tJn5SXs0W8+DX4MHzfMdguzw==", - "funding": { - "url": "https://github.com/sponsors/aidenybai" - } - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "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/postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/vite": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.2.tgz", - "integrity": "sha512-TAqydxW/w0U5AoL5AsD9DApTvGb2iNbGs3sN4u2VdT1GFkQVUfgUldt+t08TZgi23uIauh1TUOQJALduo9GXqw==", - "dev": true, - "dependencies": { - "esbuild": "^0.14.47", - "postcss": "^8.4.14", - "resolve": "^1.22.1", - "rollup": "^2.75.6" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "less": "*", - "sass": "*", - "stylus": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "terser": { - "optional": true - } - } - } - }, - "dependencies": { - "@esbuild/linux-loong64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", - "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", - "dev": true, - "optional": true - }, - "esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", - "dev": true, - "requires": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" - } - }, - "esbuild-android-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", - "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", - "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", - "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", - "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", - "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", - "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", - "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", - "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", - "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", - "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", - "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", - "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", - "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", - "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", - "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", - "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", - "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", - "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", - "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", - "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", - "dev": true, - "optional": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "million": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/million/-/million-1.12.5.tgz", - "integrity": "sha512-faOnk3o1/SRgpfjAL54M7HCACNTim5Wo6yaEEC7qjy1j3h1Wdv7cie/Iw+fYt9tJn5SXs0W8+DX4MHzfMdguzw==" - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "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 - }, - "postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "vite": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.2.tgz", - "integrity": "sha512-TAqydxW/w0U5AoL5AsD9DApTvGb2iNbGs3sN4u2VdT1GFkQVUfgUldt+t08TZgi23uIauh1TUOQJALduo9GXqw==", - "dev": true, - "requires": { - "esbuild": "^0.14.47", - "fsevents": "~2.3.2", - "postcss": "^8.4.14", - "resolve": "^1.22.1", - "rollup": "^2.75.6" - } - } - } -} diff --git a/frameworks/non-keyed/million/package.json b/frameworks/non-keyed/million/package.json deleted file mode 100644 index 080825865..000000000 --- a/frameworks/non-keyed/million/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build-dev": "npm run dev", - "build": "vite build --base '/frameworks/non-keyed/million/dist/'", - "build-prod": "npm run build", - "preview": "vite preview" - }, - "dependencies": { - "million": "^1.12.3-beta.7" - }, - "devDependencies": { - "vite": "3.0.2" - }, - "js-framework-benchmark": { - "frameworkVersionFromPackage": "million", - "frameworkHomeURL": "https://millionjs.org/", - "customURL": "/dist" - } -} diff --git a/frameworks/non-keyed/million/src/main.jsx b/frameworks/non-keyed/million/src/main.jsx deleted file mode 100644 index d97f8c656..000000000 --- a/frameworks/non-keyed/million/src/main.jsx +++ /dev/null @@ -1,245 +0,0 @@ -import { render } from 'million'; - -const random = (max) => Math.round(Math.random() * 1000) % max; - -const A = [ - 'pretty', - 'large', - 'big', - 'small', - 'tall', - 'short', - 'long', - 'handsome', - 'plain', - 'quaint', - 'clean', - 'elegant', - 'easy', - 'angry', - 'crazy', - 'helpful', - 'mushy', - 'odd', - 'unsightly', - 'adorable', - 'important', - 'inexpensive', - 'cheap', - 'expensive', - 'fancy', -]; -const C = [ - 'red', - 'yellow', - 'blue', - 'green', - 'pink', - 'brown', - 'purple', - 'brown', - 'white', - 'black', - 'orange', -]; -const N = [ - 'table', - 'chair', - 'house', - 'bbq', - 'desk', - 'car', - 'pony', - 'cookie', - 'sandwich', - 'burger', - 'pizza', - 'mouse', - 'keyboard', -]; - -let nextId = 1; -const generate = () => { - return { - id: nextId++, - label: `${A[random(A.length)]} ${C[random(C.length)]} ${ - N[random(N.length)] - }`, - }; -}; - -const list = []; -let selected = 0; - -const clear = () => { - selected = 0; - list.splice(0, list.length); - rerender(); -}; - -const append = (count) => { - for (let i = 0; i < count; i++) { - list.push(generate()); - } - rerender(); -}; - -const create1k = () => { - clear(); - append(1000); - rerender(); -}; - -const create10k = () => { - clear(); - append(10000); - rerender(); -}; - -const append1k = () => { - append(1000); - rerender(); -}; - -const updateEvery10 = () => { - for (let i = 0; i < list.length; i += 10) { - const item = list[i]; - list[i] = { id: item.id, label: item.label + ' !!!' }; - } - rerender(); -}; - -const swapRows = () => { - if (list.length >= 999) { - list.splice(1, 1, list.splice(998, 1, list[1])[0]); - } - rerender(); -}; - -const remove = (id) => { - list.splice( - list.findIndex((z) => z.id === id), - 1 - ); - rerender(); -}; - -function rerender() { - render( - document.getElementById('main'), -
-
-
-
-

Million

-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
- - - {list.map((item) => ( - - ))} - -
- -
- ); -} - -function Row({ item, remove }) { - return ( - - {item.id} - - { - selected = item.id; - rerender(); - }} - > - {item.label} - - - - { - remove(item.id); - }} - > - - - - - - ); -} - -rerender(); diff --git a/frameworks/non-keyed/million/vite.config.js b/frameworks/non-keyed/million/vite.config.js deleted file mode 100644 index e4db78fc5..000000000 --- a/frameworks/non-keyed/million/vite.config.js +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite'; -import { million } from 'million/vite-plugin-million'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [million()], -}); \ No newline at end of file diff --git a/webdriver-ts-results/src/results.ts b/webdriver-ts-results/src/results.ts index 354576470..3a454331b 100644 --- a/webdriver-ts-results/src/results.ts +++ b/webdriver-ts-results/src/results.ts @@ -3331,23 +3331,23 @@ export const results: RawResult[]=[ {"f":"vanillajs-1-non-keyed","b":"32_startup-bt","v":[9.864,9.94,10.032]}, {"f":"vanillajs-1-non-keyed","b":"33_startup-mainthreadcost","v":[124.25199999999994,124.432,123.58399999999995]}, {"f":"vanillajs-1-non-keyed","b":"34_startup-totalbytes","v":[148.4248046875,148.4248046875,148.4248046875]}, -{"f":"vue-v3.2.47-non-keyed","b":"01_run1k","v":[44.252,44.91,45.128,45.283,45.374,45.446,45.72,45.816,45.926,45.951]}, -{"f":"vue-v3.2.47-non-keyed","b":"02_replace1k","v":[21.235,21.643,21.797,22.011,22.046,22.224,22.256,22.563,23.044,23.258]}, -{"f":"vue-v3.2.47-non-keyed","b":"03_update10th1k_x16","v":[113.216,117.584,118.843,119.985,121.104,123.198,124.552,128.318,129.167,129.362]}, -{"f":"vue-v3.2.47-non-keyed","b":"04_select1k","v":[16.553,16.933,17.187,19.182,19.366,20.031,20.41,20.667,20.933,21.032]}, -{"f":"vue-v3.2.47-non-keyed","b":"05_swap1k","v":[18.455,18.686,19.324,19.639,20.139,20.163,20.248,20.883,21.428,22.488]}, -{"f":"vue-v3.2.47-non-keyed","b":"06_remove-one-1k","v":[84.412,84.49,84.615,85.355,85.863,86.121,86.264,86.424,86.44,86.482]}, -{"f":"vue-v3.2.47-non-keyed","b":"07_create10k","v":[490.561,492.814,493.8,496.011,497.367,497.739,498.34,499.246,499.319,499.394]}, -{"f":"vue-v3.2.47-non-keyed","b":"08_create1k-after1k_x2","v":[99.325,99.4,99.768,100.468,100.91,100.975,101.026,101.079,101.128,101.275]}, -{"f":"vue-v3.2.47-non-keyed","b":"09_clear1k_x8","v":[35.244,35.933,36.663,37.993,38.777,38.797,39.783,39.975,40.549,40.827]}, -{"f":"vue-v3.2.47-non-keyed","b":"21_ready-memory","v":[0.8888015747070312]}, -{"f":"vue-v3.2.47-non-keyed","b":"22_run-memory","v":[3.6821508407592773]}, -{"f":"vue-v3.2.47-non-keyed","b":"23_update5-memory","v":[3.723036766052246]}, -{"f":"vue-v3.2.47-non-keyed","b":"25_run-clear-memory","v":[1.2220630645751953]}, -{"f":"vue-v3.2.47-non-keyed","b":"26_run-10k-memory","v":[26.842195510864258]}, -{"f":"vue-v3.2.47-non-keyed","b":"31_startup-ci","v":[2101.5499999999997,2101.115,2101.17]}, -{"f":"vue-v3.2.47-non-keyed","b":"32_startup-bt","v":[9.888,9.744,9.403999999999998]}, -{"f":"vue-v3.2.47-non-keyed","b":"33_startup-mainthreadcost","v":[133.53199999999998,142.49999999999997,138.13599999999997]}, -{"f":"vue-v3.2.47-non-keyed","b":"34_startup-totalbytes","v":[196.9951171875,196.9951171875,196.9951171875]},]; -export const frameworks = [{"name":"1more-v0.1.18-keyed","dir":"keyed/1more","keyed":true,"frameworkHomeURL":"https://github.com/Freak613/1more"},{"name":"alpine-v3.10.2-keyed","dir":"keyed/alpine","keyed":true,"issues":[1139],"frameworkHomeURL":"https://alpinejs.dev/"},{"name":"angular-v15.0.1-keyed","dir":"keyed/angular","keyed":true,"frameworkHomeURL":"https://angular.io/"},{"name":"angular-nozone-v15.0.1-keyed","dir":"keyed/angular-nozone","keyed":true,"frameworkHomeURL":"https://angular.io/"},{"name":"apprun-v2.28.3-keyed","dir":"keyed/apprun","keyed":true,"issues":[801],"frameworkHomeURL":"https://apprun.js.org/"},{"name":"art-v0.1.7-keyed","dir":"keyed/art","keyed":true,"frameworkHomeURL":"https://github.com/sullay/Art-js"},{"name":"bdc-v1.0.0-keyed","dir":"keyed/bdc","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/bwhmather/bdc-js"},{"name":"blazor-wasm-v6.0.1-keyed","dir":"keyed/blazor-wasm","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor"},{"name":"blazor-wasm-aot-v6.0.1-keyed","dir":"keyed/blazor-wasm-aot","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor"},{"name":"blockdom-v0.9.26-keyed","dir":"keyed/blockdom","keyed":true,"frameworkHomeURL":"https://github.com/ged-odoo/blockdom"},{"name":"bobril-v20.4.1-keyed","dir":"keyed/bobril","keyed":true,"frameworkHomeURL":"https://bobril.com/"},{"name":"choo-v6.13.0-keyed","dir":"keyed/choo","keyed":true,"frameworkHomeURL":"https://www.choo.io/"},{"name":"crank-v0.4.1-keyed","dir":"keyed/crank","keyed":true,"frameworkHomeURL":"https://crank.js.org/"},{"name":"dioxus-v0.3.0-keyed","dir":"keyed/dioxus","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dioxuslabs.com/"},{"name":"dojo-v8.0.0-keyed","dir":"keyed/dojo","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dojo.io/"},{"name":"domdiff-v2.2.2-keyed","dir":"keyed/domdiff","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/domdiff"},{"name":"dominator-v0.5.0-keyed","dir":"keyed/dominator","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/Pauan/rust-dominator"},{"name":"domvm-v3.4.12-keyed","dir":"keyed/domvm","keyed":true,"frameworkHomeURL":"https://domvm.github.io/domvm/"},{"name":"doohtml-keyed","dir":"keyed/doohtml","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://doohtml.com"},{"name":"doz-v5-preview-keyed","dir":"keyed/doz","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://github.com/dozjs/doz"},{"name":"ef-js-v0.16.2-keyed","dir":"keyed/ef-js","keyed":true,"frameworkHomeURL":"https://ef.js.org/#!home"},{"name":"elm-v0.19.1-3-keyed","dir":"keyed/elm","keyed":true,"issues":[1139],"frameworkHomeURL":"https://elm-lang.org/"},{"name":"ember-v4.10.0-keyed","dir":"keyed/ember","keyed":true,"frameworkHomeURL":"https://emberjs.com/"},{"name":"endorphin-v0.5.2-keyed","dir":"keyed/endorphin","keyed":true,"frameworkHomeURL":"https://github.com/endorphinjs/endorphin"},{"name":"fntags-v0.3.3-keyed","dir":"keyed/fntags","keyed":true,"frameworkHomeURL":"https://srfnstack.github.io/fntags/"},{"name":"forgo-v2.2.3-keyed","dir":"keyed/forgo","keyed":true,"frameworkHomeURL":"https://github.com/forgojs/forgo#readme"},{"name":"fre-v2.5.5-keyed","dir":"keyed/fre","keyed":true,"frameworkHomeURL":"https://fre.js.org/"},{"name":"fullweb-helpers-v0.1.0-keyed","dir":"keyed/fullweb-helpers","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/fullwebdev/fullwebdev#readme"},{"name":"fullweb-template-v0.1.0-keyed","dir":"keyed/fullweb-template","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/fullwebdev/fullwebdev#readme"},{"name":"glimmer-v0.14.0-alpha.13-keyed","dir":"keyed/glimmer","keyed":true,"issues":[800],"frameworkHomeURL":"https://glimmerjs.com/"},{"name":"glimmer-2-v2.0.0-beta.20-keyed","dir":"keyed/glimmer-2","keyed":true,"frameworkHomeURL":"https://glimmerjs.com/"},{"name":"gyron-v0.0.16-keyed","dir":"keyed/gyron","keyed":true,"frameworkHomeURL":"https://www.npmjs.com/package/gyron"},{"name":"helix-v0.0.10-keyed","dir":"keyed/helix","keyed":true,"frameworkHomeURL":"https://github.com/thheller/shadow-cljs#readme"},{"name":"heresy-v0.26.1-keyed","dir":"keyed/heresy","keyed":true,"issues":[801],"frameworkHomeURL":"https://github.com/WebReflection/heresy"},{"name":"hullo-v0.8.2-keyed","dir":"keyed/hullo","keyed":true,"frameworkHomeURL":"https://hullo.dev/hullo-dom/intro"},{"name":"hydro-js-v1.5.13-keyed","dir":"keyed/hydro-js","keyed":true,"frameworkHomeURL":"https://github.com/Krutsch/hydro-js"},{"name":"hyperapp-v2.0.22-keyed","dir":"keyed/hyperapp","keyed":true,"frameworkHomeURL":"https://github.com/jorgebucaran/hyperapp"},{"name":"imba-v1.5.2-keyed","dir":"keyed/imba","keyed":true,"frameworkHomeURL":"https://imba.io/"},{"name":"inferno-v7.4.8-keyed","dir":"keyed/inferno","keyed":true,"frameworkHomeURL":"https://github.com/infernojs/inferno"},{"name":"ivi-v0.27.1-keyed","dir":"keyed/ivi","keyed":true,"frameworkHomeURL":"https://github.com/localvoid/ivi"},{"name":"jotai-v17.0.1 + 1.7.2-keyed","dir":"keyed/jotai","keyed":true,"frameworkHomeURL":"https://github.com/pmndrs/jotai"},{"name":"karyon-v1.5.1-keyed","dir":"keyed/karyon","keyed":true,"issues":[801],"frameworkHomeURL":"https://karyon.dev"},{"name":"knockout-v3.5.0-keyed","dir":"keyed/knockout","keyed":true,"issues":[1139],"frameworkHomeURL":"https://knockoutjs.com/"},{"name":"ko-jsx-v0.16.1-keyed","dir":"keyed/ko-jsx","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/ryansolid/ko-jsx"},{"name":"leptos-v0.2.1-keyed","dir":"keyed/leptos","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/leptos-rs/leptos"},{"name":"lighterhtml-v2.5.0-keyed","dir":"keyed/lighterhtml","keyed":true,"issues":[801],"frameworkHomeURL":"https://github.com/WebReflection/lighterhtml"},{"name":"lit-v2.6.1-keyed","dir":"keyed/lit","keyed":true,"issues":[801],"frameworkHomeURL":"https://lit.dev/"},{"name":"lit-html-v1.1.0-keyed","dir":"keyed/lit-html","keyed":true,"issues":[800,801],"frameworkHomeURL":"https://lit.dev/docs/libraries/standalone-templates/"},{"name":"lui-v1.2.3-keyed","dir":"keyed/lui","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/L3P3/lui"},{"name":"lwc-v2.7.3-keyed","dir":"keyed/lwc","keyed":true,"frameworkHomeURL":"https://lwc.dev/"},{"name":"mahal-v1.4.3-keyed","dir":"keyed/mahal","keyed":true,"frameworkHomeURL":"https://mahaljs.com/"},{"name":"malina-v0.7.0-alpha-keyed","dir":"keyed/malina","keyed":true,"frameworkHomeURL":"https://www.npmjs.com/package/malinajs"},{"name":"marionette-v5.0.0-alpha.2-keyed","dir":"keyed/marionette","keyed":true,"frameworkHomeURL":"https://marionettejs.com/"},{"name":"marionette-backbone-v5.0.0-alpha.2-keyed","dir":"keyed/marionette-backbone","keyed":true,"issues":[772],"frameworkHomeURL":"https://marionettejs.com/"},{"name":"marko-v4.12.3-keyed","dir":"keyed/marko","keyed":true,"frameworkHomeURL":"https://markojs.com/"},{"name":"maverick-v0.23.1-keyed","dir":"keyed/maverick","keyed":true,"frameworkHomeURL":"https://github.com/maverick-js/maverick"},{"name":"michijs-v1.0.4-keyed","dir":"keyed/michijs","keyed":true,"frameworkHomeURL":"https://github.com/michijs/michijs"},{"name":"michijs-map-v1.0.4-keyed","dir":"keyed/michijs-map","keyed":true,"frameworkHomeURL":"https://github.com/michijs/michijs"},{"name":"mikado-v0.7.64-keyed","dir":"keyed/mikado","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/nextapps-de/mikado/"},{"name":"mimbl-v0.10.4-keyed","dir":"keyed/mimbl","keyed":true,"frameworkHomeURL":"https://mimjs.com/"},{"name":"miso-v1.4.0-keyed","dir":"keyed/miso","keyed":true,"issues":[1139],"frameworkHomeURL":"https://haskell-miso.org/"},{"name":"misojs-v1.1.0.0-keyed","dir":"keyed/misojs","keyed":true,"issues":[1139],"frameworkHomeURL":"https://haskell-miso.org/"},{"name":"mithril-v2.0.4-keyed","dir":"keyed/mithril","keyed":true,"frameworkHomeURL":"https://mithril.js.org/"},{"name":"mobx-jsx-v0.14.0-keyed","dir":"keyed/mobx-jsx","keyed":true,"frameworkHomeURL":"https://github.com/ryansolid/mobx-jsx"},{"name":"mogwai-v0.6.5-keyed","dir":"keyed/mogwai","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/schell/mogwai"},{"name":"neverland-v3.3.2-keyed","dir":"keyed/neverland","keyed":true,"frameworkHomeURL":"https://github.com/WebReflection/neverland"},{"name":"oldskull-v2.0.0-keyed","dir":"keyed/oldskull","keyed":true,"frameworkHomeURL":"https://github.com/alexeyoganezov/oldskull"},{"name":"petite-vue-v0.4.1-keyed","dir":"keyed/petite-vue","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/vuejs/petite-vue"},{"name":"preact-v10.13.1-keyed","dir":"keyed/preact","keyed":true,"frameworkHomeURL":"https://preactjs.com/"},{"name":"ractive-v1.3.6-keyed","dir":"keyed/ractive","keyed":true,"frameworkHomeURL":"https://ractive.js.org/"},{"name":"rax-v0.6.7-keyed","dir":"keyed/rax","keyed":true,"frameworkHomeURL":"https://github.com/alibaba/rax"},{"name":"react-v18.2.0-keyed","dir":"keyed/react","keyed":true,"frameworkHomeURL":"https://www.reactjs.org"},{"name":"react-diagon-v18.2.0 + 0.14.3-keyed","dir":"keyed/react-diagon","keyed":true,"frameworkHomeURL":"https://www.diagon.dev/"},{"name":"react-focal-v18.2.0 + 0.9.0-keyed","dir":"keyed/react-focal","keyed":true,"frameworkHomeURL":"https://github.com/grammarly/focal"},{"name":"react-hooks-v18.2.0-keyed","dir":"keyed/react-hooks","keyed":true,"frameworkHomeURL":"https://reactjs.org/"},{"name":"react-hooks-use-transition-v18.2.0-keyed","dir":"keyed/react-hooks-use-transition","keyed":true,"frameworkHomeURL":"https://reactjs.org/"},{"name":"react-mlyn-v0.5.16-keyed","dir":"keyed/react-mlyn","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/vaukalak/mlyn"},{"name":"react-mobX-v17.0.1 + 5.15.4-keyed","dir":"keyed/react-mobX","keyed":true,"frameworkHomeURL":"https://mobx.js.org/"},{"name":"react-recoil-v18.2.0 + 0.7.7-keyed","dir":"keyed/react-recoil","keyed":true,"frameworkHomeURL":"https://recoiljs.org/"},{"name":"react-redux-v18.2.0 + 8.0.5-keyed","dir":"keyed/react-redux","keyed":true,"frameworkHomeURL":"https://react-redux.js.org/"},{"name":"react-redux-hooks-v18.2.0 + 8.0.5-keyed","dir":"keyed/react-redux-hooks","keyed":true,"frameworkHomeURL":"https://react-redux.js.org/"},{"name":"react-redux-hooks-immutable-v18.2.0 + 8.0.5-keyed","dir":"keyed/react-redux-hooks-immutable","keyed":true,"frameworkHomeURL":"https://react-redux.js.org/"},{"name":"react-redux-rematch-v18.2.0 + 8.0.5 + 2.2.0-keyed","dir":"keyed/react-redux-rematch","keyed":true,"frameworkHomeURL":"https://rematchjs.org/"},{"name":"react-rxjs-v18.2.0 + 0.10.4-keyed","dir":"keyed/react-rxjs","keyed":true,"frameworkHomeURL":"https://react-rxjs.org/"},{"name":"react-signalis-v18.2.0 + 0.0.8-keyed","dir":"keyed/react-signalis","keyed":true,"frameworkHomeURL":"https://github.com/cafreeman/signalis"},{"name":"react-starbeam-v18.2.0 + 0.6.0-keyed","dir":"keyed/react-starbeam","keyed":true,"frameworkHomeURL":"https://www.starbeamjs.com/"},{"name":"react-tagged-state-v18.2.0 + 1.22.0-keyed","dir":"keyed/react-tagged-state","keyed":true,"frameworkHomeURL":"https://github.com/oleggrishechkin/react-tagged-state"},{"name":"react-tracked-v18.2.0 + 1.7.11-keyed","dir":"keyed/react-tracked","keyed":true,"frameworkHomeURL":"https://react-tracked.js.org/"},{"name":"react-zustand-v18.2.0 + 4.3.6-keyed","dir":"keyed/react-zustand","keyed":true,"frameworkHomeURL":"https://github.com/pmndrs/zustand"},{"name":"reagent-v0.10-keyed","dir":"keyed/reagent","keyed":true,"frameworkHomeURL":"https://reagent-project.github.io/"},{"name":"redom-v3.29.0-keyed","dir":"keyed/redom","keyed":true,"issues":[772],"frameworkHomeURL":"https://redom.js.org/"},{"name":"reflex-v0.8.4-keyed","dir":"keyed/reflex","keyed":true,"frameworkHomeURL":"https://zouloux.github.io/reflex/"},{"name":"rescript-react-v0.10.3-keyed","dir":"keyed/rescript-react","keyed":true,"frameworkHomeURL":"https://rescript-lang.org/"},{"name":"resonatejs-keyed","dir":"keyed/resonatejs","keyed":true,"issues":[1139],"frameworkHomeURL":""},{"name":"riot-v7.1.0-keyed","dir":"keyed/riot","keyed":true,"issues":[1139],"frameworkHomeURL":"https://riot.js.org/"},{"name":"s2-v1.0.0-keyed","dir":"keyed/s2","keyed":true,"issues":[800],"frameworkHomeURL":""},{"name":"san-v3.12.2-keyed","dir":"keyed/san","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"san-composition-v3.12.2 + 1.3.0-keyed","dir":"keyed/san-composition","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"san-store-v3.12.2 + 2.2.1-keyed","dir":"keyed/san-store","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"scarlets-frame-v0.34.6-keyed","dir":"keyed/scarlets-frame","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/ScarletsFiction/ScarletsFrame"},{"name":"sifrr-v0.0.5-keyed","dir":"keyed/sifrr","keyed":true,"issues":[800,801,1139],"frameworkHomeURL":"https://sifrr.github.io/sifrr/#/"},{"name":"silkenweb-v0.4.0-keyed","dir":"keyed/silkenweb","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/silkenweb/silkenweb"},{"name":"sinuous-v0.28.1-keyed","dir":"keyed/sinuous","keyed":true,"issues":[800,801],"frameworkHomeURL":"https://sinuous.dev/"},{"name":"skruv-v0.1.0-keyed","dir":"keyed/skruv","keyed":true,"frameworkHomeURL":"https://github.com/skruv/skruv"},{"name":"sledgehammer-v1.0.0-keyed","dir":"keyed/sledgehammer","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://github.com/demonthos/sledgehammer/"},{"name":"solid-v1.5.4-keyed","dir":"keyed/solid","keyed":true,"frameworkHomeURL":"https://www.solidjs.com/"},{"name":"solid-store-v1.5.4-keyed","dir":"keyed/solid-store","keyed":true,"frameworkHomeURL":"https://www.solidjs.com/"},{"name":"spair-v0.0.8-keyed","dir":"keyed/spair","keyed":true,"issues":[1139],"frameworkHomeURL":"https://docs.rs/spair/latest/spair/"},{"name":"spair-qr-v0.0.8-keyed","dir":"keyed/spair-qr","keyed":true,"issues":[1139],"frameworkHomeURL":"https://docs.rs/spair/latest/spair/"},{"name":"stdweb-v0.4.17-keyed","dir":"keyed/stdweb","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://docs.rs/stdweb/latest/stdweb/"},{"name":"stencil-v2.17.0-keyed","dir":"keyed/stencil","keyed":true,"issues":[1139],"frameworkHomeURL":"https://stenciljs.com/"},{"name":"svelte-v3.50.1-keyed","dir":"keyed/svelte","keyed":true,"frameworkHomeURL":"https://svelte.dev/"},{"name":"sycamore-v0.8.0-keyed","dir":"keyed/sycamore","keyed":true,"issues":[1139],"frameworkHomeURL":"https://sycamore-rs.netlify.app/"},{"name":"udomsay-esx-v0.4.9-keyed","dir":"keyed/udomsay-esx","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/udomsay"},{"name":"udomsay-tpl-v0.4.9-keyed","dir":"keyed/udomsay-tpl","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://github.com/WebReflection/udomsay"},{"name":"uhtml-v3.0.1-keyed","dir":"keyed/uhtml","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/uhtml"},{"name":"uhydro-v1.0.7-keyed","dir":"keyed/uhydro","keyed":true,"frameworkHomeURL":"https://github.com/Krutsch/uhydro"},{"name":"ui5-webcomponents-v1.3.1-keyed","dir":"keyed/ui5-webcomponents","keyed":true,"issues":[1139],"frameworkHomeURL":"https://sap.github.io/ui5-webcomponents/"},{"name":"valtio-v18.2.0 + 1.10.3-keyed","dir":"keyed/valtio","keyed":true,"frameworkHomeURL":"https://valtio.pmnd.rs/"},{"name":"vanillajs-keyed","dir":"keyed/vanillajs","keyed":true,"issues":[772],"frameworkHomeURL":""},{"name":"vanillajs-1-keyed","dir":"keyed/vanillajs-1","keyed":true,"issues":[772],"frameworkHomeURL":""},{"name":"vanillajs-wc-keyed","dir":"keyed/vanillajs-wc","keyed":true,"issues":[772],"frameworkHomeURL":""},{"name":"voby-v0.45.0-keyed","dir":"keyed/voby","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/vobyjs/voby"},{"name":"vue-v3.2.47-keyed","dir":"keyed/vue","keyed":true,"frameworkHomeURL":"https://vue.js.org/"},{"name":"vuerx-jsx-v0.2.0-keyed","dir":"keyed/vuerx-jsx","keyed":true,"frameworkHomeURL":"https://github.com/ryansolid/vuerx-jsx"},{"name":"wasm-bindgen-v0.2.47-keyed","dir":"keyed/wasm-bindgen","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://rustwasm.github.io/docs/wasm-bindgen/"},{"name":"whatsup-v2.5.0-keyed","dir":"keyed/whatsup","keyed":true,"frameworkHomeURL":"https://github.com/whatsup/whatsup"},{"name":"xania-v0.4.8-keyed","dir":"keyed/xania","keyed":true,"frameworkHomeURL":"https://github.com/xania/view"},{"name":"yew-v0.20.0-keyed","dir":"keyed/yew","keyed":true,"issues":[1139],"frameworkHomeURL":"https://yew.rs/"},{"name":"yew-hooks-v0.19.3-keyed","dir":"keyed/yew-hooks","keyed":true,"issues":[1139],"frameworkHomeURL":"https://yew.rs/"},{"name":"apprun-v2.28.3-non-keyed","dir":"non-keyed/apprun","keyed":false,"issues":[772],"frameworkHomeURL":"https://apprun.js.org/"},{"name":"art-v0.1.7-non-keyed","dir":"non-keyed/art","keyed":false,"frameworkHomeURL":"https://github.com/sullay/Art-js"},{"name":"aurelia-v1.3.0-non-keyed","dir":"non-keyed/aurelia","keyed":false,"issues":[1139],"frameworkHomeURL":"https://aurelia.io/"},{"name":"bdc-v1.0.0-non-keyed","dir":"non-keyed/bdc","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/bwhmather/bdc-js"},{"name":"binding.scala-v10.0.1-non-keyed","dir":"non-keyed/binding.scala","keyed":false,"frameworkHomeURL":"https://github.com/ThoughtWorksInc/Binding.scala"},{"name":"delorean-v0.1.0-non-keyed","dir":"non-keyed/delorean","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/delorean-rs/delorean"},{"name":"dojo-v8.0.0-non-keyed","dir":"non-keyed/dojo","keyed":false,"issues":[1139],"frameworkHomeURL":"https://dojo.io/"},{"name":"domdiff-v2.2.2-non-keyed","dir":"non-keyed/domdiff","keyed":false,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/domdiff"},{"name":"domvm-v3.4.12-non-keyed","dir":"non-keyed/domvm","keyed":false,"frameworkHomeURL":"https://domvm.github.io/domvm/"},{"name":"doohtml-non-keyed","dir":"non-keyed/doohtml","keyed":false,"issues":[772,1139],"frameworkHomeURL":"https://doohtml.com"},{"name":"doz-v4.0.3-non-keyed","dir":"non-keyed/doz","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://github.com/dozjs/doz"},{"name":"ef-js-v0.16.2-non-keyed","dir":"non-keyed/ef-js","keyed":false,"frameworkHomeURL":"https://ef.js.org/#!home"},{"name":"elm-v0.19.1-3-non-keyed","dir":"non-keyed/elm","keyed":false,"issues":[1139],"frameworkHomeURL":"https://elm-lang.org/"},{"name":"endorphin-v0.5.2-non-keyed","dir":"non-keyed/endorphin","keyed":false,"frameworkHomeURL":"https://github.com/endorphinjs/endorphin"},{"name":"fre-v2.5.1-non-keyed","dir":"non-keyed/fre","keyed":false,"frameworkHomeURL":"https://fre.js.org/"},{"name":"gyron-v0.0.16-non-keyed","dir":"non-keyed/gyron","keyed":false,"frameworkHomeURL":"https://www.npmjs.com/package/gyron"},{"name":"halogen-v6.1.3-non-keyed","dir":"non-keyed/halogen","keyed":false,"frameworkHomeURL":"https://github.com/purescript-halogen/purescript-halogen"},{"name":"heresy-v0.26.1-non-keyed","dir":"non-keyed/heresy","keyed":false,"frameworkHomeURL":"https://github.com/WebReflection/heresy"},{"name":"hullo-v0.8.2-non-keyed","dir":"non-keyed/hullo","keyed":false,"frameworkHomeURL":"https://hullo.dev/hullo-dom/intro"},{"name":"hydro-js-v1.5.13-non-keyed","dir":"non-keyed/hydro-js","keyed":false,"frameworkHomeURL":"https://github.com/Krutsch/hydro-js"},{"name":"imba-v1.5.2-non-keyed","dir":"non-keyed/imba","keyed":false,"frameworkHomeURL":"https://imba.io/"},{"name":"incr_dom-v0.15.0-non-keyed","dir":"non-keyed/incr_dom","keyed":false,"frameworkHomeURL":"https://opensource.janestreet.com/incr_dom/"},{"name":"inferno-v7.4.8-non-keyed","dir":"non-keyed/inferno","keyed":false,"frameworkHomeURL":"https://github.com/infernojs/inferno"},{"name":"lighterhtml-v2.5.0-non-keyed","dir":"non-keyed/lighterhtml","keyed":false,"frameworkHomeURL":"https://github.com/WebReflection/lighterhtml"},{"name":"lit-v2.6.1-non-keyed","dir":"non-keyed/lit","keyed":false,"frameworkHomeURL":"https://lit.dev/"},{"name":"lit-html-v1.1.0-non-keyed","dir":"non-keyed/lit-html","keyed":false,"issues":[800],"frameworkHomeURL":"https://lit.dev/docs/libraries/standalone-templates/"},{"name":"literaljs-v7.0.2-non-keyed","dir":"non-keyed/literaljs","keyed":false,"frameworkHomeURL":"https://literaljs.com/"},{"name":"maquette-v3.3.0-non-keyed","dir":"non-keyed/maquette","keyed":false,"frameworkHomeURL":"https://maquettejs.org/"},{"name":"mikado-v0.7.64-non-keyed","dir":"non-keyed/mikado","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/nextapps-de/mikado/"},{"name":"million-v1.12.5-non-keyed","dir":"non-keyed/million","keyed":false,"frameworkHomeURL":"https://millionjs.org/"},{"name":"million-react-v1.12.5-non-keyed","dir":"non-keyed/million-react","keyed":false,"frameworkHomeURL":"https://millionjs.org/"},{"name":"mimbl-v0.10.4-non-keyed","dir":"non-keyed/mimbl","keyed":false,"frameworkHomeURL":"https://mimjs.com/"},{"name":"miso-v1.4.0-non-keyed","dir":"non-keyed/miso","keyed":false,"issues":[1139],"frameworkHomeURL":"https://haskell-miso.org/"},{"name":"mogwai-v0.6.5-non-keyed","dir":"non-keyed/mogwai","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/schell/mogwai"},{"name":"neverland-v3.3.2-non-keyed","dir":"non-keyed/neverland","keyed":false,"frameworkHomeURL":"https://github.com/WebReflection/neverland"},{"name":"petite-vue-v0.4.1-non-keyed","dir":"non-keyed/petite-vue","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/vuejs/petite-vue"},{"name":"ractive-v1.3.6-non-keyed","dir":"non-keyed/ractive","keyed":false,"frameworkHomeURL":"https://ractive.js.org/"},{"name":"react-v18.2.0-non-keyed","dir":"non-keyed/react","keyed":false,"frameworkHomeURL":"https://www.reactjs.org"},{"name":"redom-v3.29.0-non-keyed","dir":"non-keyed/redom","keyed":false,"issues":[772],"frameworkHomeURL":"https://redom.js.org/"},{"name":"reflex-dom-v0.4-non-keyed","dir":"non-keyed/reflex-dom","keyed":false,"frameworkHomeURL":"https://reflex-frp.org/"},{"name":"riot-v7.1.0-non-keyed","dir":"non-keyed/riot","keyed":false,"frameworkHomeURL":"https://riot.js.org/"},{"name":"san-v3.12.2-non-keyed","dir":"non-keyed/san","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"sauron-v0.50.3-non-keyed","dir":"non-keyed/sauron","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/ivanceras/sauron"},{"name":"scarlets-frame-v0.34.6-non-keyed","dir":"non-keyed/scarlets-frame","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://github.com/ScarletsFiction/ScarletsFrame"},{"name":"seed-v0.8.0-non-keyed","dir":"non-keyed/seed","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/seed-rs/seed"},{"name":"sifrr-v0.0.3-non-keyed","dir":"non-keyed/sifrr","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://sifrr.github.io/sifrr/#/"},{"name":"slim-js-v5.0.8-non-keyed","dir":"non-keyed/slim-js","keyed":false,"issues":[1139],"frameworkHomeURL":"https://slimjs.com/#/welcome"},{"name":"slingjs-v14.3.0-non-keyed","dir":"non-keyed/slingjs","keyed":false,"frameworkHomeURL":"https://github.com/puckowski/Sling.js"},{"name":"stdweb-v0.4.17-non-keyed","dir":"non-keyed/stdweb","keyed":false,"issues":[772,1139],"frameworkHomeURL":"https://docs.rs/stdweb/latest/stdweb/"},{"name":"svelte-v3.50.1-non-keyed","dir":"non-keyed/svelte","keyed":false,"frameworkHomeURL":"https://svelte.dev/"},{"name":"udomsay-esx-v0.4.9-non-keyed","dir":"non-keyed/udomsay-esx","keyed":false,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/udomsay"},{"name":"uhtml-v3.0.1-non-keyed","dir":"non-keyed/uhtml","keyed":false,"issues":[801],"frameworkHomeURL":"https://github.com/WebReflection/uhtml"},{"name":"ui5-webcomponents-v1.3.1-non-keyed","dir":"non-keyed/ui5-webcomponents","keyed":false,"issues":[1139],"frameworkHomeURL":"https://sap.github.io/ui5-webcomponents/"},{"name":"vanillajs-non-keyed","dir":"non-keyed/vanillajs","keyed":false,"issues":[772],"frameworkHomeURL":""},{"name":"vanillajs-1-non-keyed","dir":"non-keyed/vanillajs-1","keyed":false,"issues":[772],"frameworkHomeURL":""},{"name":"vue-v3.2.47-non-keyed","dir":"non-keyed/vue","keyed":false,"frameworkHomeURL":"https://vue.js.org/"}]; +{"f":"vue-v3.2.37-non-keyed","b":"01_run1k","v":[42.747,42.899,44.449,44.623,44.675,44.789,44.846,44.932,45.513,45.578]}, +{"f":"vue-v3.2.37-non-keyed","b":"02_replace1k","v":[20.807,21.173,21.239,21.25,21.505,21.884,22.045,22.111,22.111,22.452]}, +{"f":"vue-v3.2.37-non-keyed","b":"03_update10th1k_x16","v":[116.744,116.939,118.424,122.034,123.291,123.901,127.111,127.85,129.351,130.636]}, +{"f":"vue-v3.2.37-non-keyed","b":"04_select1k","v":[17.699,17.793,18.217,18.297,18.845,19.25,20.057,20.178,21.675,22.495]}, +{"f":"vue-v3.2.37-non-keyed","b":"05_swap1k","v":[18.606,19.82,20.756,20.852,21.438,21.823,22.032,23.358,23.381,23.683]}, +{"f":"vue-v3.2.37-non-keyed","b":"06_remove-one-1k","v":[83.503,84.675,84.976,85.273,86.255,87.505,87.77,88.145,88.241,88.855]}, +{"f":"vue-v3.2.37-non-keyed","b":"07_create10k","v":[478.156,478.717,483.03,483.331,485.051,487.498,487.826,488.596,489.219,492.645]}, +{"f":"vue-v3.2.37-non-keyed","b":"08_create1k-after1k_x2","v":[97.726,98.204,98.373,98.661,98.704,98.907,99.13,99.757,100.071,100.967]}, +{"f":"vue-v3.2.37-non-keyed","b":"09_clear1k_x8","v":[36.616,37.393,37.943,40.184,41.224,41.373,41.78,41.996,42.563,42.945]}, +{"f":"vue-v3.2.37-non-keyed","b":"21_ready-memory","v":[0.9011383056640625]}, +{"f":"vue-v3.2.37-non-keyed","b":"22_run-memory","v":[3.6614532470703125]}, +{"f":"vue-v3.2.37-non-keyed","b":"23_update5-memory","v":[3.698629379272461]}, +{"f":"vue-v3.2.37-non-keyed","b":"25_run-clear-memory","v":[1.231485366821289]}, +{"f":"vue-v3.2.37-non-keyed","b":"26_run-10k-memory","v":[26.54150390625]}, +{"f":"vue-v3.2.37-non-keyed","b":"31_startup-ci","v":[2102.705,2102.72,2027.435]}, +{"f":"vue-v3.2.37-non-keyed","b":"32_startup-bt","v":[9.128,9.74,9.644]}, +{"f":"vue-v3.2.37-non-keyed","b":"33_startup-mainthreadcost","v":[134.79999999999995,145.17600000000002,134.676]}, +{"f":"vue-v3.2.37-non-keyed","b":"34_startup-totalbytes","v":[196.501953125,196.501953125,196.501953125]},]; +export const frameworks = [{"name":"1more-v0.1.18-keyed","dir":"keyed/1more","keyed":true,"frameworkHomeURL":"https://github.com/Freak613/1more"},{"name":"alpine-v3.10.2-keyed","dir":"keyed/alpine","keyed":true,"issues":[1139],"frameworkHomeURL":"https://alpinejs.dev/"},{"name":"angular-v15.0.1-keyed","dir":"keyed/angular","keyed":true,"frameworkHomeURL":"https://angular.io/"},{"name":"angular-nozone-v15.0.1-keyed","dir":"keyed/angular-nozone","keyed":true,"frameworkHomeURL":"https://angular.io/"},{"name":"apprun-v2.28.3-keyed","dir":"keyed/apprun","keyed":true,"issues":[801],"frameworkHomeURL":"https://apprun.js.org/"},{"name":"art-v0.1.7-keyed","dir":"keyed/art","keyed":true,"frameworkHomeURL":"https://github.com/sullay/Art-js"},{"name":"bdc-v1.0.0-keyed","dir":"keyed/bdc","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/bwhmather/bdc-js"},{"name":"blazor-wasm-v6.0.1-keyed","dir":"keyed/blazor-wasm","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor"},{"name":"blazor-wasm-aot-v6.0.1-keyed","dir":"keyed/blazor-wasm-aot","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor"},{"name":"blockdom-v0.9.26-keyed","dir":"keyed/blockdom","keyed":true,"frameworkHomeURL":"https://github.com/ged-odoo/blockdom"},{"name":"bobril-v20.4.1-keyed","dir":"keyed/bobril","keyed":true,"frameworkHomeURL":"https://bobril.com/"},{"name":"choo-v6.13.0-keyed","dir":"keyed/choo","keyed":true,"frameworkHomeURL":"https://www.choo.io/"},{"name":"crank-v0.4.1-keyed","dir":"keyed/crank","keyed":true,"frameworkHomeURL":"https://crank.js.org/"},{"name":"dioxus-v0.3.0-keyed","dir":"keyed/dioxus","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dioxuslabs.com/"},{"name":"dojo-v8.0.0-keyed","dir":"keyed/dojo","keyed":true,"issues":[1139],"frameworkHomeURL":"https://dojo.io/"},{"name":"domdiff-v2.2.2-keyed","dir":"keyed/domdiff","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/domdiff"},{"name":"dominator-v0.5.0-keyed","dir":"keyed/dominator","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/Pauan/rust-dominator"},{"name":"domvm-v3.4.12-keyed","dir":"keyed/domvm","keyed":true,"frameworkHomeURL":"https://domvm.github.io/domvm/"},{"name":"doohtml-keyed","dir":"keyed/doohtml","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://doohtml.com"},{"name":"doz-v5-preview-keyed","dir":"keyed/doz","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://github.com/dozjs/doz"},{"name":"ef-js-v0.16.2-keyed","dir":"keyed/ef-js","keyed":true,"frameworkHomeURL":"https://ef.js.org/#!home"},{"name":"elm-v0.19.1-3-keyed","dir":"keyed/elm","keyed":true,"issues":[1139],"frameworkHomeURL":"https://elm-lang.org/"},{"name":"ember-v4.10.0-keyed","dir":"keyed/ember","keyed":true,"frameworkHomeURL":"https://emberjs.com/"},{"name":"endorphin-v0.5.2-keyed","dir":"keyed/endorphin","keyed":true,"frameworkHomeURL":"https://github.com/endorphinjs/endorphin"},{"name":"fntags-v0.3.3-keyed","dir":"keyed/fntags","keyed":true,"frameworkHomeURL":"https://srfnstack.github.io/fntags/"},{"name":"forgo-v2.2.3-keyed","dir":"keyed/forgo","keyed":true,"frameworkHomeURL":"https://github.com/forgojs/forgo#readme"},{"name":"fre-v2.5.5-keyed","dir":"keyed/fre","keyed":true,"frameworkHomeURL":"https://fre.js.org/"},{"name":"fullweb-helpers-v0.1.0-keyed","dir":"keyed/fullweb-helpers","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/fullwebdev/fullwebdev#readme"},{"name":"fullweb-template-v0.1.0-keyed","dir":"keyed/fullweb-template","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/fullwebdev/fullwebdev#readme"},{"name":"glimmer-v0.14.0-alpha.13-keyed","dir":"keyed/glimmer","keyed":true,"issues":[800],"frameworkHomeURL":"https://glimmerjs.com/"},{"name":"glimmer-2-v2.0.0-beta.20-keyed","dir":"keyed/glimmer-2","keyed":true,"frameworkHomeURL":"https://glimmerjs.com/"},{"name":"gyron-v0.0.16-keyed","dir":"keyed/gyron","keyed":true,"frameworkHomeURL":"https://www.npmjs.com/package/gyron"},{"name":"helix-v0.0.10-keyed","dir":"keyed/helix","keyed":true,"frameworkHomeURL":"https://github.com/thheller/shadow-cljs#readme"},{"name":"heresy-v0.26.1-keyed","dir":"keyed/heresy","keyed":true,"issues":[801],"frameworkHomeURL":"https://github.com/WebReflection/heresy"},{"name":"hullo-v0.8.2-keyed","dir":"keyed/hullo","keyed":true,"frameworkHomeURL":"https://hullo.dev/hullo-dom/intro"},{"name":"hydro-js-v1.5.13-keyed","dir":"keyed/hydro-js","keyed":true,"frameworkHomeURL":"https://github.com/Krutsch/hydro-js"},{"name":"hyperapp-v2.0.22-keyed","dir":"keyed/hyperapp","keyed":true,"frameworkHomeURL":"https://github.com/jorgebucaran/hyperapp"},{"name":"imba-v1.5.2-keyed","dir":"keyed/imba","keyed":true,"frameworkHomeURL":"https://imba.io/"},{"name":"inferno-v7.4.8-keyed","dir":"keyed/inferno","keyed":true,"frameworkHomeURL":"https://github.com/infernojs/inferno"},{"name":"ivi-v0.27.1-keyed","dir":"keyed/ivi","keyed":true,"frameworkHomeURL":"https://github.com/localvoid/ivi"},{"name":"jotai-v17.0.1 + 1.7.2-keyed","dir":"keyed/jotai","keyed":true,"frameworkHomeURL":"https://github.com/pmndrs/jotai"},{"name":"karyon-v1.5.1-keyed","dir":"keyed/karyon","keyed":true,"issues":[801],"frameworkHomeURL":"https://karyon.dev"},{"name":"knockout-v3.5.0-keyed","dir":"keyed/knockout","keyed":true,"issues":[1139],"frameworkHomeURL":"https://knockoutjs.com/"},{"name":"ko-jsx-v0.16.1-keyed","dir":"keyed/ko-jsx","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/ryansolid/ko-jsx"},{"name":"leptos-v0.2.1-keyed","dir":"keyed/leptos","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/leptos-rs/leptos"},{"name":"lighterhtml-v2.5.0-keyed","dir":"keyed/lighterhtml","keyed":true,"issues":[801],"frameworkHomeURL":"https://github.com/WebReflection/lighterhtml"},{"name":"lit-v2.2.6-keyed","dir":"keyed/lit","keyed":true,"issues":[801],"frameworkHomeURL":"https://lit.dev/"},{"name":"lit-html-v1.1.0-keyed","dir":"keyed/lit-html","keyed":true,"issues":[800,801],"frameworkHomeURL":"https://lit.dev/docs/libraries/standalone-templates/"},{"name":"lui-v1.2.3-keyed","dir":"keyed/lui","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/L3P3/lui"},{"name":"lwc-v2.7.3-keyed","dir":"keyed/lwc","keyed":true,"frameworkHomeURL":"https://lwc.dev/"},{"name":"mahal-v1.4.3-keyed","dir":"keyed/mahal","keyed":true,"frameworkHomeURL":"https://mahaljs.com/"},{"name":"malina-v0.7.0-alpha-keyed","dir":"keyed/malina","keyed":true,"frameworkHomeURL":"https://www.npmjs.com/package/malinajs"},{"name":"marionette-v5.0.0-alpha.2-keyed","dir":"keyed/marionette","keyed":true,"frameworkHomeURL":"https://marionettejs.com/"},{"name":"marionette-backbone-v5.0.0-alpha.2-keyed","dir":"keyed/marionette-backbone","keyed":true,"issues":[772],"frameworkHomeURL":"https://marionettejs.com/"},{"name":"marko-v4.12.3-keyed","dir":"keyed/marko","keyed":true,"frameworkHomeURL":"https://markojs.com/"},{"name":"maverick-v0.23.1-keyed","dir":"keyed/maverick","keyed":true,"frameworkHomeURL":"https://github.com/maverick-js/maverick"},{"name":"michijs-v1.0.4-keyed","dir":"keyed/michijs","keyed":true,"frameworkHomeURL":"https://github.com/michijs/michijs"},{"name":"michijs-map-v1.0.4-keyed","dir":"keyed/michijs-map","keyed":true,"frameworkHomeURL":"https://github.com/michijs/michijs"},{"name":"mikado-v0.7.64-keyed","dir":"keyed/mikado","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/nextapps-de/mikado/"},{"name":"mimbl-v0.10.4-keyed","dir":"keyed/mimbl","keyed":true,"frameworkHomeURL":"https://mimjs.com/"},{"name":"miso-v1.4.0-keyed","dir":"keyed/miso","keyed":true,"issues":[1139],"frameworkHomeURL":"https://haskell-miso.org/"},{"name":"misojs-v1.1.0.0-keyed","dir":"keyed/misojs","keyed":true,"issues":[1139],"frameworkHomeURL":"https://haskell-miso.org/"},{"name":"mithril-v2.0.4-keyed","dir":"keyed/mithril","keyed":true,"frameworkHomeURL":"https://mithril.js.org/"},{"name":"mobx-jsx-v0.14.0-keyed","dir":"keyed/mobx-jsx","keyed":true,"frameworkHomeURL":"https://github.com/ryansolid/mobx-jsx"},{"name":"mogwai-v0.6.5-keyed","dir":"keyed/mogwai","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/schell/mogwai"},{"name":"neverland-v3.3.2-keyed","dir":"keyed/neverland","keyed":true,"frameworkHomeURL":"https://github.com/WebReflection/neverland"},{"name":"oldskull-v0.1.2-keyed","dir":"keyed/oldskull","keyed":true,"frameworkHomeURL":"https://github.com/alexeyoganezov/oldskull"},{"name":"petite-vue-v0.4.1-keyed","dir":"keyed/petite-vue","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/vuejs/petite-vue"},{"name":"preact-v10.7.3-keyed","dir":"keyed/preact","keyed":true,"frameworkHomeURL":"https://preactjs.com/"},{"name":"ractive-v1.3.6-keyed","dir":"keyed/ractive","keyed":true,"frameworkHomeURL":"https://ractive.js.org/"},{"name":"rax-v0.6.7-keyed","dir":"keyed/rax","keyed":true,"frameworkHomeURL":"https://github.com/alibaba/rax"},{"name":"react-v17.0.2-keyed","dir":"keyed/react","keyed":true,"frameworkHomeURL":"https://www.reactjs.org"},{"name":"react-diagon-v18.2.0 + 0.13.0-keyed","dir":"keyed/react-diagon","keyed":true,"frameworkHomeURL":"https://www.diagon.dev/"},{"name":"react-focal-v17.0.1 + 0.8.5-keyed","dir":"keyed/react-focal","keyed":true,"frameworkHomeURL":"https://github.com/grammarly/focal"},{"name":"react-hooks-v18.2.0-keyed","dir":"keyed/react-hooks","keyed":true,"frameworkHomeURL":"https://reactjs.org/"},{"name":"react-hooks-use-transition-v18.2.0-keyed","dir":"keyed/react-hooks-use-transition","keyed":true,"frameworkHomeURL":"https://reactjs.org/"},{"name":"react-mlyn-v0.5.11-keyed","dir":"keyed/react-mlyn","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/vaukalak/mlyn"},{"name":"react-mobX-v17.0.1 + 5.15.4-keyed","dir":"keyed/react-mobX","keyed":true,"frameworkHomeURL":"https://mobx.js.org/"},{"name":"react-recoil-v18.2.0 + 0.7.5-keyed","dir":"keyed/react-recoil","keyed":true,"frameworkHomeURL":"https://recoiljs.org/"},{"name":"react-redux-v17.0.1 + 7.2.1-keyed","dir":"keyed/react-redux","keyed":true,"frameworkHomeURL":"https://react-redux.js.org/"},{"name":"react-redux-hooks-v18.2.0 + 8.0.2-keyed","dir":"keyed/react-redux-hooks","keyed":true,"frameworkHomeURL":"https://react-redux.js.org/"},{"name":"react-redux-hooks-immutable-v17.0.1 + 7.2.1-keyed","dir":"keyed/react-redux-hooks-immutable","keyed":true,"frameworkHomeURL":"https://react-redux.js.org/"},{"name":"react-redux-rematch-v17.0.1 + 7.2.1 + 2.0.1-keyed","dir":"keyed/react-redux-rematch","keyed":true,"frameworkHomeURL":"https://rematchjs.org/"},{"name":"react-rxjs-v18.2.0 + 0.9.8-keyed","dir":"keyed/react-rxjs","keyed":true,"frameworkHomeURL":"https://react-rxjs.org/"},{"name":"react-signalis-v18.2.0 + 0.0.8-keyed","dir":"keyed/react-signalis","keyed":true,"frameworkHomeURL":"https://github.com/cafreeman/signalis"},{"name":"react-starbeam-v18.2.0 + 0.6.0-keyed","dir":"keyed/react-starbeam","keyed":true,"frameworkHomeURL":"https://www.starbeamjs.com/"},{"name":"react-tagged-state-v18.2.0 + 1.21.1-keyed","dir":"keyed/react-tagged-state","keyed":true,"frameworkHomeURL":"https://github.com/oleggrishechkin/react-tagged-state"},{"name":"react-tracked-v17.0.1 + 1.6.0-keyed","dir":"keyed/react-tracked","keyed":true,"frameworkHomeURL":"https://react-tracked.js.org/"},{"name":"react-zustand-v18.2.0 + 4.1.1-keyed","dir":"keyed/react-zustand","keyed":true,"frameworkHomeURL":"https://github.com/pmndrs/zustand"},{"name":"reagent-v0.10-keyed","dir":"keyed/reagent","keyed":true,"frameworkHomeURL":"https://reagent-project.github.io/"},{"name":"redom-v3.29.0-keyed","dir":"keyed/redom","keyed":true,"issues":[772],"frameworkHomeURL":"https://redom.js.org/"},{"name":"reflex-v0.8.4-keyed","dir":"keyed/reflex","keyed":true,"frameworkHomeURL":"https://zouloux.github.io/reflex/"},{"name":"rescript-react-v0.10.3-keyed","dir":"keyed/rescript-react","keyed":true,"frameworkHomeURL":"https://rescript-lang.org/"},{"name":"resonatejs-keyed","dir":"keyed/resonatejs","keyed":true,"issues":[1139],"frameworkHomeURL":""},{"name":"riot-v7.1.0-keyed","dir":"keyed/riot","keyed":true,"issues":[1139],"frameworkHomeURL":"https://riot.js.org/"},{"name":"s2-v1.0.0-keyed","dir":"keyed/s2","keyed":true,"issues":[800],"frameworkHomeURL":""},{"name":"san-v3.12.0-keyed","dir":"keyed/san","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"san-composition-v3.10.1 + 1.1.0-keyed","dir":"keyed/san-composition","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"san-store-v3.12.0 + 2.1.3-keyed","dir":"keyed/san-store","keyed":true,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"scarlets-frame-v0.34.6-keyed","dir":"keyed/scarlets-frame","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/ScarletsFiction/ScarletsFrame"},{"name":"sifrr-v0.0.5-keyed","dir":"keyed/sifrr","keyed":true,"issues":[800,801,1139],"frameworkHomeURL":"https://sifrr.github.io/sifrr/#/"},{"name":"silkenweb-v0.4.0-keyed","dir":"keyed/silkenweb","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/silkenweb/silkenweb"},{"name":"sinuous-v0.28.1-keyed","dir":"keyed/sinuous","keyed":true,"issues":[800,801],"frameworkHomeURL":"https://sinuous.dev/"},{"name":"skruv-v0.1.0-keyed","dir":"keyed/skruv","keyed":true,"frameworkHomeURL":"https://github.com/skruv/skruv"},{"name":"sledgehammer-v1.0.0-keyed","dir":"keyed/sledgehammer","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://github.com/demonthos/sledgehammer/"},{"name":"solid-v1.5.4-keyed","dir":"keyed/solid","keyed":true,"frameworkHomeURL":"https://www.solidjs.com/"},{"name":"solid-store-v1.5.4-keyed","dir":"keyed/solid-store","keyed":true,"frameworkHomeURL":"https://www.solidjs.com/"},{"name":"spair-v0.0.8-keyed","dir":"keyed/spair","keyed":true,"issues":[1139],"frameworkHomeURL":"https://docs.rs/spair/latest/spair/"},{"name":"spair-qr-v0.0.8-keyed","dir":"keyed/spair-qr","keyed":true,"issues":[1139],"frameworkHomeURL":"https://docs.rs/spair/latest/spair/"},{"name":"stdweb-v0.4.17-keyed","dir":"keyed/stdweb","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://docs.rs/stdweb/latest/stdweb/"},{"name":"stencil-v2.17.0-keyed","dir":"keyed/stencil","keyed":true,"issues":[1139],"frameworkHomeURL":"https://stenciljs.com/"},{"name":"svelte-v3.50.1-keyed","dir":"keyed/svelte","keyed":true,"frameworkHomeURL":"https://svelte.dev/"},{"name":"sycamore-v0.8.0-keyed","dir":"keyed/sycamore","keyed":true,"issues":[1139],"frameworkHomeURL":"https://sycamore-rs.netlify.app/"},{"name":"udomsay-esx-v0.4.9-keyed","dir":"keyed/udomsay-esx","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/udomsay"},{"name":"udomsay-tpl-v0.4.9-keyed","dir":"keyed/udomsay-tpl","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://github.com/WebReflection/udomsay"},{"name":"uhtml-v3.0.1-keyed","dir":"keyed/uhtml","keyed":true,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/uhtml"},{"name":"uhydro-v1.0.7-keyed","dir":"keyed/uhydro","keyed":true,"frameworkHomeURL":"https://github.com/Krutsch/uhydro"},{"name":"ui5-webcomponents-v1.3.1-keyed","dir":"keyed/ui5-webcomponents","keyed":true,"issues":[1139],"frameworkHomeURL":"https://sap.github.io/ui5-webcomponents/"},{"name":"valtio-v17.0.1 + 1.6.1-keyed","dir":"keyed/valtio","keyed":true,"frameworkHomeURL":"https://valtio.pmnd.rs/"},{"name":"vanillajs-keyed","dir":"keyed/vanillajs","keyed":true,"issues":[772],"frameworkHomeURL":""},{"name":"vanillajs-1-keyed","dir":"keyed/vanillajs-1","keyed":true,"issues":[772],"frameworkHomeURL":""},{"name":"vanillajs-wc-keyed","dir":"keyed/vanillajs-wc","keyed":true,"issues":[772],"frameworkHomeURL":""},{"name":"voby-v0.45.0-keyed","dir":"keyed/voby","keyed":true,"issues":[1139],"frameworkHomeURL":"https://github.com/vobyjs/voby"},{"name":"vue-v3.2.37-keyed","dir":"keyed/vue","keyed":true,"frameworkHomeURL":"https://vue.js.org/"},{"name":"vuerx-jsx-v0.2.0-keyed","dir":"keyed/vuerx-jsx","keyed":true,"frameworkHomeURL":"https://github.com/ryansolid/vuerx-jsx"},{"name":"wasm-bindgen-v0.2.47-keyed","dir":"keyed/wasm-bindgen","keyed":true,"issues":[772,1139],"frameworkHomeURL":"https://rustwasm.github.io/docs/wasm-bindgen/"},{"name":"whatsup-v2.5.0-keyed","dir":"keyed/whatsup","keyed":true,"frameworkHomeURL":"https://github.com/whatsup/whatsup"},{"name":"xania-v0.4.8-keyed","dir":"keyed/xania","keyed":true,"frameworkHomeURL":"https://github.com/xania/view"},{"name":"yew-v0.20.0-keyed","dir":"keyed/yew","keyed":true,"issues":[1139],"frameworkHomeURL":"https://yew.rs/"},{"name":"yew-hooks-v0.19.3-keyed","dir":"keyed/yew-hooks","keyed":true,"issues":[1139],"frameworkHomeURL":"https://yew.rs/"},{"name":"apprun-v2.28.3-non-keyed","dir":"non-keyed/apprun","keyed":false,"issues":[772],"frameworkHomeURL":"https://apprun.js.org/"},{"name":"art-v0.1.7-non-keyed","dir":"non-keyed/art","keyed":false,"frameworkHomeURL":"https://github.com/sullay/Art-js"},{"name":"aurelia-v1.3.0-non-keyed","dir":"non-keyed/aurelia","keyed":false,"issues":[1139],"frameworkHomeURL":"https://aurelia.io/"},{"name":"bdc-v1.0.0-non-keyed","dir":"non-keyed/bdc","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/bwhmather/bdc-js"},{"name":"binding.scala-v10.0.1-non-keyed","dir":"non-keyed/binding.scala","keyed":false,"frameworkHomeURL":"https://github.com/ThoughtWorksInc/Binding.scala"},{"name":"delorean-v0.1.0-non-keyed","dir":"non-keyed/delorean","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/delorean-rs/delorean"},{"name":"dojo-v8.0.0-non-keyed","dir":"non-keyed/dojo","keyed":false,"issues":[1139],"frameworkHomeURL":"https://dojo.io/"},{"name":"domdiff-v2.2.2-non-keyed","dir":"non-keyed/domdiff","keyed":false,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/domdiff"},{"name":"domvm-v3.4.12-non-keyed","dir":"non-keyed/domvm","keyed":false,"frameworkHomeURL":"https://domvm.github.io/domvm/"},{"name":"doohtml-non-keyed","dir":"non-keyed/doohtml","keyed":false,"issues":[772,1139],"frameworkHomeURL":"https://doohtml.com"},{"name":"doz-v3.4.1-non-keyed","dir":"non-keyed/doz","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://github.com/dozjs/doz"},{"name":"ef-js-v0.16.2-non-keyed","dir":"non-keyed/ef-js","keyed":false,"frameworkHomeURL":"https://ef.js.org/#!home"},{"name":"elm-v0.19.1-3-non-keyed","dir":"non-keyed/elm","keyed":false,"issues":[1139],"frameworkHomeURL":"https://elm-lang.org/"},{"name":"endorphin-v0.5.2-non-keyed","dir":"non-keyed/endorphin","keyed":false,"frameworkHomeURL":"https://github.com/endorphinjs/endorphin"},{"name":"fre-v2.5.1-non-keyed","dir":"non-keyed/fre","keyed":false,"frameworkHomeURL":"https://fre.js.org/"},{"name":"gyron-v0.0.16-non-keyed","dir":"non-keyed/gyron","keyed":false,"frameworkHomeURL":"https://www.npmjs.com/package/gyron"},{"name":"halogen-v6.1.3-non-keyed","dir":"non-keyed/halogen","keyed":false,"frameworkHomeURL":"https://github.com/purescript-halogen/purescript-halogen"},{"name":"heresy-v0.26.1-non-keyed","dir":"non-keyed/heresy","keyed":false,"frameworkHomeURL":"https://github.com/WebReflection/heresy"},{"name":"hullo-v0.8.2-non-keyed","dir":"non-keyed/hullo","keyed":false,"frameworkHomeURL":"https://hullo.dev/hullo-dom/intro"},{"name":"hydro-js-v1.5.13-non-keyed","dir":"non-keyed/hydro-js","keyed":false,"frameworkHomeURL":"https://github.com/Krutsch/hydro-js"},{"name":"imba-v1.5.2-non-keyed","dir":"non-keyed/imba","keyed":false,"frameworkHomeURL":"https://imba.io/"},{"name":"incr_dom-v0.15.0-non-keyed","dir":"non-keyed/incr_dom","keyed":false,"frameworkHomeURL":"https://opensource.janestreet.com/incr_dom/"},{"name":"inferno-v7.4.8-non-keyed","dir":"non-keyed/inferno","keyed":false,"frameworkHomeURL":"https://github.com/infernojs/inferno"},{"name":"legend-state-v17.0.2 + 0.14.0-non-keyed","dir":"non-keyed/legend-state","keyed":false,"frameworkHomeURL":"https://github.com/LegendApp/legend-state"},{"name":"lighterhtml-v2.5.0-non-keyed","dir":"non-keyed/lighterhtml","keyed":false,"frameworkHomeURL":"https://github.com/WebReflection/lighterhtml"},{"name":"lit-v2.1.1-non-keyed","dir":"non-keyed/lit","keyed":false,"frameworkHomeURL":"https://lit.dev/"},{"name":"lit-html-v1.1.0-non-keyed","dir":"non-keyed/lit-html","keyed":false,"issues":[800],"frameworkHomeURL":"https://lit.dev/docs/libraries/standalone-templates/"},{"name":"literaljs-v7.0.2-non-keyed","dir":"non-keyed/literaljs","keyed":false,"frameworkHomeURL":"https://literaljs.com/"},{"name":"maquette-v3.3.0-non-keyed","dir":"non-keyed/maquette","keyed":false,"frameworkHomeURL":"https://maquettejs.org/"},{"name":"mikado-v0.7.64-non-keyed","dir":"non-keyed/mikado","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/nextapps-de/mikado/"},{"name":"million-v1.12.5-non-keyed","dir":"non-keyed/million","keyed":false,"frameworkHomeURL":"https://millionjs.org/"},{"name":"million-react-v1.12.5-non-keyed","dir":"non-keyed/million-react","keyed":false,"frameworkHomeURL":"https://millionjs.org/"},{"name":"mimbl-v0.10.4-non-keyed","dir":"non-keyed/mimbl","keyed":false,"frameworkHomeURL":"https://mimjs.com/"},{"name":"miso-v1.4.0-non-keyed","dir":"non-keyed/miso","keyed":false,"issues":[1139],"frameworkHomeURL":"https://haskell-miso.org/"},{"name":"mogwai-v0.6.5-non-keyed","dir":"non-keyed/mogwai","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/schell/mogwai"},{"name":"neverland-v3.3.2-non-keyed","dir":"non-keyed/neverland","keyed":false,"frameworkHomeURL":"https://github.com/WebReflection/neverland"},{"name":"petite-vue-v0.4.1-non-keyed","dir":"non-keyed/petite-vue","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/vuejs/petite-vue"},{"name":"ractive-v1.3.6-non-keyed","dir":"non-keyed/ractive","keyed":false,"frameworkHomeURL":"https://ractive.js.org/"},{"name":"react-v16.8.6-non-keyed","dir":"non-keyed/react","keyed":false,"frameworkHomeURL":"https://www.reactjs.org"},{"name":"redom-v3.29.0-non-keyed","dir":"non-keyed/redom","keyed":false,"issues":[772],"frameworkHomeURL":"https://redom.js.org/"},{"name":"reflex-dom-v0.4-non-keyed","dir":"non-keyed/reflex-dom","keyed":false,"frameworkHomeURL":"https://reflex-frp.org/"},{"name":"riot-v7.1.0-non-keyed","dir":"non-keyed/riot","keyed":false,"frameworkHomeURL":"https://riot.js.org/"},{"name":"san-v3.12.0-non-keyed","dir":"non-keyed/san","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://baidu.github.io/san/"},{"name":"sauron-v0.50.3-non-keyed","dir":"non-keyed/sauron","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/ivanceras/sauron"},{"name":"scarlets-frame-v0.34.6-non-keyed","dir":"non-keyed/scarlets-frame","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://github.com/ScarletsFiction/ScarletsFrame"},{"name":"seed-v0.8.0-non-keyed","dir":"non-keyed/seed","keyed":false,"issues":[1139],"frameworkHomeURL":"https://github.com/seed-rs/seed"},{"name":"sifrr-v0.0.3-non-keyed","dir":"non-keyed/sifrr","keyed":false,"issues":[800,1139],"frameworkHomeURL":"https://sifrr.github.io/sifrr/#/"},{"name":"slim-js-v5.0.8-non-keyed","dir":"non-keyed/slim-js","keyed":false,"issues":[1139],"frameworkHomeURL":"https://slimjs.com/#/welcome"},{"name":"slingjs-v14.3.0-non-keyed","dir":"non-keyed/slingjs","keyed":false,"frameworkHomeURL":"https://github.com/puckowski/Sling.js"},{"name":"stdweb-v0.4.17-non-keyed","dir":"non-keyed/stdweb","keyed":false,"issues":[772,1139],"frameworkHomeURL":"https://docs.rs/stdweb/latest/stdweb/"},{"name":"svelte-v3.50.1-non-keyed","dir":"non-keyed/svelte","keyed":false,"frameworkHomeURL":"https://svelte.dev/"},{"name":"udomsay-esx-v0.4.9-non-keyed","dir":"non-keyed/udomsay-esx","keyed":false,"issues":[772],"frameworkHomeURL":"https://github.com/WebReflection/udomsay"},{"name":"uhtml-v3.0.1-non-keyed","dir":"non-keyed/uhtml","keyed":false,"issues":[801],"frameworkHomeURL":"https://github.com/WebReflection/uhtml"},{"name":"ui5-webcomponents-v1.3.1-non-keyed","dir":"non-keyed/ui5-webcomponents","keyed":false,"issues":[1139],"frameworkHomeURL":"https://sap.github.io/ui5-webcomponents/"},{"name":"vanillajs-non-keyed","dir":"non-keyed/vanillajs","keyed":false,"issues":[772],"frameworkHomeURL":""},{"name":"vanillajs-1-non-keyed","dir":"non-keyed/vanillajs-1","keyed":false,"issues":[772],"frameworkHomeURL":""},{"name":"vue-v3.2.37-non-keyed","dir":"non-keyed/vue","keyed":false,"frameworkHomeURL":"https://vue.js.org/"}]; export const benchmarks = [{"id":"01_run1k","label":"create rows","description":"creating 1,000 rows (5 warmup runs).","type":0,"allowBatching":true,"durationMeasurementMode":0},{"id":"02_replace1k","label":"replace all rows","description":"updating all 1,000 rows (5 warmup runs).","type":0,"allowBatching":true,"durationMeasurementMode":1},{"id":"03_update10th1k_x16","label":"partial update","description":"updating every 10th row for 1,000 rows (3 warmup runs). 16x CPU slowdown.","type":0,"throttleCPU":16,"allowBatching":true,"durationMeasurementMode":1},{"id":"04_select1k","label":"select row","description":"highlighting a selected row. (5 warmup runs). 16x CPU slowdown.","type":0,"throttleCPU":16,"allowBatching":true,"durationMeasurementMode":1},{"id":"05_swap1k","label":"swap rows","description":"swap 2 rows for table with 1,000 rows. (5 warmup runs). 4x CPU slowdown.","type":0,"throttleCPU":4,"allowBatching":true,"durationMeasurementMode":1},{"id":"06_remove-one-1k","label":"remove row","description":"removing one row. (5 warmup runs). 4x CPU slowdown.","type":0,"throttleCPU":4,"allowBatching":true,"durationMeasurementMode":1},{"id":"07_create10k","label":"create many rows","description":"creating 10,000 rows. (5 warmup runs with 1k rows).","type":0,"allowBatching":true,"durationMeasurementMode":0},{"id":"08_create1k-after1k_x2","label":"append rows to large table","description":"appending 1,000 to a table of 10,000 rows. 2x CPU slowdown.","type":0,"throttleCPU":2,"allowBatching":true,"durationMeasurementMode":1},{"id":"09_clear1k_x8","label":"clear rows","description":"clearing a table with 1,000 rows. 8x CPU slowdown. (5 warmup runs).","type":0,"throttleCPU":8,"allowBatching":true,"durationMeasurementMode":1},{"id":"21_ready-memory","label":"ready memory","description":"Memory usage after page load.","type":1},{"id":"22_run-memory","label":"run memory","description":"Memory usage after adding 1,000 rows.","type":1},{"id":"23_update5-memory","label":"update every 10th row for 1k rows (5 cycles)","description":"Memory usage after clicking update every 10th row 5 times","type":1},{"id":"25_run-clear-memory","label":"creating/clearing 1k rows (5 cycles)","description":"Memory usage after creating and clearing 1000 rows 5 times","type":1},{"id":"26_run-10k-memory","label":"run memory 10k","description":"Memory usage after adding 10,000 rows.","type":1},{"id":"31_startup-ci","label":"consistently interactive","description":"a pessimistic TTI - when the CPU and network are both definitely very idle. (no more CPU tasks over 50ms)","property":"interactive","type":3},{"id":"32_startup-bt","label":"script bootup time","description":"the total ms required to parse/compile/evaluate all the page's scripts","property":"bootup-time","type":3},{"id":"33_startup-mainthreadcost","label":"main thread work cost","description":"total amount of time spent doing work on the main thread. includes style/layout/etc.","property":"mainthread-work-breakdown","type":3},{"id":"34_startup-totalbytes","label":"total kilobyte weight","description":"network transfer cost (post-compression) of all the resources loaded into the page.","property":"total-byte-weight","type":3}]; diff --git a/webdriver-ts-results/table.html b/webdriver-ts-results/table.html index 0612662aa..c04df7f64 100644 --- a/webdriver-ts-results/table.html +++ b/webdriver-ts-results/table.html @@ -1,2 +1,2 @@ Interactive Results
\ No newline at end of file + (globalThis.webpackChunkwebdriver_ts_results=globalThis.webpackChunkwebdriver_ts_results||[]).push([[736],{645:e=>{"use strict";e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",r=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),r&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),r&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,r,a,o){"string"==typeof e&&(e=[[null,e,void 0]]);var l={};if(r)for(var u=0;u0?" ".concat(s[5]):""," {").concat(s[1],"}")),s[5]=o),t&&(s[2]?(s[1]="@media ".concat(s[2]," {").concat(s[1],"}"),s[2]=t):s[2]=t),a&&(s[4]?(s[1]="@supports (".concat(s[4],") {").concat(s[1],"}"),s[4]=a):s[4]="".concat(a)),n.push(s))}},n}},81:e=>{"use strict";e.exports=function(e){return e[1]}},679:(e,n,t)=>{"use strict";var r=t(864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function i(e){return r.isMemo(e)?l:u[e.$$typeof]||a}u[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[r.Memo]=l;var c=Object.defineProperty,s=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(n,t,r){if("string"!=typeof t){if(m){var a=p(t);a&&a!==m&&e(n,a,r)}var l=s(t);f&&(l=l.concat(f(t)));for(var u=i(n),h=i(t),g=0;gt?n:t;return e.pow(10,17-~~(e.log(r>0?r:-r)*e.LOG10E))}var l=Array.isArray||function(e){return"[object Array]"===a.call(e)};function u(e){return"[object Function]"===a.call(e)}function i(e){return"number"==typeof e&&e-e==0}function c(){return new c._init(arguments)}function s(){return 0}function f(){return 1}function d(e,n){return e===n?1:0}c.fn=c.prototype,c._init=function(e){if(l(e[0]))if(l(e[0][0])){u(e[1])&&(e[0]=c.map(e[0],e[1]));for(var n=0;n=0;n--,r++)t[r]=[e[r][n]];return t},c.transpose=function(e){var n,t,r,a,o,u=[];for(l(e[0])||(e=[e]),t=e.length,r=e[0].length,o=0;o0&&(u[r][0]=e[r][0]),i=1;it&&r>0)return[];if(r>0)for(a=e;at;a+=r)o.push(a);return o},c.slice=function(){function e(e,t,r,a){var o,l=[],u=e.length;if(t===n&&r===n&&a===n)return c.copy(e);if(a=a||1,(t=(t=t||0)>=0?t:u+t)===(r=(r=r||e.length)>=0?r:u+r)||0===a)return[];if(tr&&a>0)return[];if(a>0)for(o=t;or;o+=a)l.push(e[o]);return l}return function(n,t){var r,a;return i((t=t||{}).row)?i(t.col)?n[t.row][t.col]:e(c.rowa(n,t.row),(r=t.col||{}).start,r.end,r.step):i(t.col)?e(c.cola(n,t.col),(a=t.row||{}).start,a.end,a.step):(a=t.row||{},r=t.col||{},e(n,a.start,a.end,a.step).map((function(n){return e(n,r.start,r.end,r.step)})))}}(),c.sliceAssign=function(t,r,a){var o,l;if(i(r.row)){if(i(r.col))return t[r.row][r.col]=a;r.col=r.col||{},r.col.start=r.col.start||0,r.col.end=r.col.end||t[0].length,r.col.step=r.col.step||1,o=c.arange(r.col.start,e.min(t.length,r.col.end),r.col.step);var u=r.row;return o.forEach((function(e,n){t[u][e]=a[n]})),t}if(i(r.col)){r.row=r.row||{},r.row.start=r.row.start||0,r.row.end=r.row.end||t.length,r.row.step=r.row.step||1,l=c.arange(r.row.start,e.min(t[0].length,r.row.end),r.row.step);var s=r.col;return l.forEach((function(e,n){t[e][s]=a[n]})),t}return a[0].length===n&&(a=[a]),r.row.start=r.row.start||0,r.row.end=r.row.end||t.length,r.row.step=r.row.step||1,r.col.start=r.col.start||0,r.col.end=r.col.end||t[0].length,r.col.step=r.col.step||1,l=c.arange(r.row.start,e.min(t.length,r.row.end),r.row.step),o=c.arange(r.col.start,e.min(t[0].length,r.col.end),r.col.step),l.forEach((function(e,n){o.forEach((function(r,o){t[e][r]=a[n][o]}))})),t},c.diagonal=function(e){var n=c.zeros(e.length,e.length);return e.forEach((function(e,t){n[t][t]=e})),n},c.copy=function(e){return e.map((function(e){return i(e)?e:e.map((function(e){return e}))}))};var p=c.prototype;return p.length=0,p.push=Array.prototype.push,p.sort=Array.prototype.sort,p.splice=Array.prototype.splice,p.slice=Array.prototype.slice,p.toArray=function(){return this.length>1?r.call(this):r.call(this)[0]},p.map=function(e,n){return c(c.map(this,e,n))},p.cumreduce=function(e,n){return c(c.cumreduce(this,e,n))},p.alter=function(e){return c.alter(this,e),this},function(e){for(var n=0;n=0;)n+=e[t];return n},e.sumsqrd=function(e){for(var n=0,t=e.length;--t>=0;)n+=e[t]*e[t];return n},e.sumsqerr=function(n){for(var t,r=e.mean(n),a=0,o=n.length;--o>=0;)a+=(t=n[o]-r)*t;return a},e.sumrow=function(e){for(var n=0,t=e.length;--t>=0;)n+=e[t];return n},e.product=function(e){for(var n=1,t=e.length;--t>=0;)n*=e[t];return n},e.min=function(e){for(var n=e[0],t=0;++tn&&(n=e[t]);return n},e.unique=function(e){for(var n={},t=[],r=0;rl?(i=[a[n]],l=o,u=0):o===l&&(i.push(a[n]),u++),o=1);return 0===u?i[0]:i},e.range=function(n){return e.max(n)-e.min(n)},e.variance=function(n,t){return e.sumsqerr(n)/(n.length-(t?1:0))},e.pooledvariance=function(n){return n.reduce((function(n,t){return n+e.sumsqerr(t)}),0)/(n.reduce((function(e,n){return e+n.length}),0)-n.length)},e.deviation=function(n){for(var t=e.mean(n),r=n.length,a=new Array(r),o=0;o=0;o--)a.push(n.abs(t[o]-r));return e.mean(a)},e.meddev=function(t){for(var r=e.median(t),a=[],o=t.length-1;o>=0;o--)a.push(n.abs(t[o]-r));return e.median(a)},e.coeffvar=function(n){return e.stdev(n)/e.mean(n)},e.quartiles=function(e){var t=e.length,a=e.slice().sort(r);return[a[n.round(t/4)-1],a[n.round(t/2)-1],a[n.round(3*t/4)-1]]},e.quantiles=function(e,t,o,l){var u,i,c,s,f,d=e.slice().sort(r),p=[t.length],m=e.length;for(void 0===o&&(o=3/8),void 0===l&&(l=3/8),u=0;u1){for(i=!0===r?this:this.transpose();u1){for("sumrow"!==n&&(i=!0===r?this:this.transpose());u1){for(u=u.transpose();l=0;u--)l*=r,l+=c[u];if(o=l/t+.5*n.log(a)+(t-.5)*n.log(t)-t,e<=7)for(u=1;u<=i;u++)o-=n.log(t-1),t-=1;return o},e.gammafn=function(e){var t,r,a,o,l=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],u=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],i=!1,c=0,s=0,f=0,d=e;if(e>171.6243769536076)return 1/0;if(d<=0){if(!(o=d%1+36e-17))return 1/0;i=(1&d?-1:1)*n.PI/n.sin(n.PI*o),d=1-d}for(a=d,r=d<1?d++:(d-=c=(0|d)-1)-1,t=0;t<8;++t)f=(f+l[t])*r,s=s*r+u[t];if(o=f/s+1,ad)for(t=0;t=1?t:1/t)+.4*t+17);if(r<0||t<=0)return NaN;if(r170||r>170?n.exp(e.combinationln(t,r)):e.factorial(t)/e.factorial(r)/e.factorial(t-r)},e.combinationln=function(n,t){return e.factorialln(n)-e.factorialln(t)-e.factorialln(n-t)},e.permutation=function(n,t){return e.factorial(n)/e.factorial(n-t)},e.betafn=function(t,r){if(!(t<=0||r<=0))return t+r>170?n.exp(e.betaln(t,r)):e.gammafn(t)*e.gammafn(r)/e.gammafn(t+r)},e.betaln=function(n,t){return e.gammaln(n)+e.gammaln(t)-e.gammaln(n+t)},e.betacf=function(e,t,r){var a,o,l,u,i=1e-30,c=1,s=t+r,f=t+1,d=t-1,p=1,m=1-s*e/f;for(n.abs(m)=1)return n.max(100,r+100*n.sqrt(r));if(t<=0)return 0;for(r>1?(i=n.log(f),c=n.exp(f*(i-1)-d),u=t<.5?t:1-t,a=(2.30753+.27061*(o=n.sqrt(-2*n.log(u))))/(1+o*(.99229+.04481*o))-o,t<.5&&(a=-a),a=n.max(.001,r*n.pow(1-1/(9*r)-a/(3*n.sqrt(r)),3))):a=t<(o=1-r*(.253+.12*r))?n.pow(t/o,1/r):1-n.log(1-(t-o)/(1-o));s<12;s++){if(a<=0)return 0;if((a-=o=(l=(e.lowRegGamma(r,a)-t)/(o=r>1?c*n.exp(-(a-f)+f*(n.log(a)-i)):n.exp(-a+f*n.log(a)-d)))/(1-.5*n.min(1,l*((r-1)/a-1))))<=0&&(a=.5*(a+o)),n.abs(o)<1e-8*a)break}return a},e.erf=function(e){var t,r,a,o,l=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18],u=l.length-1,i=!1,c=0,s=0;for(e<0&&(e=-e,i=!0),r=4*(t=2/(2+e))-2;u>0;u--)a=c,c=r*c-s+l[u],s=a;return o=t*n.exp(-e*e+.5*(l[0]+r*c)-s),i?o-1:1-o},e.erfc=function(n){return 1-e.erf(n)},e.erfcinv=function(t){var r,a,o,l,u=0;if(t>=2)return-100;if(t<=0)return 100;for(l=t<1?t:2-t,r=-.70711*((2.30753+.27061*(o=n.sqrt(-2*n.log(l/2))))/(1+o*(.99229+.04481*o))-o);u<2;u++)r+=(a=e.erfc(r)-l)/(1.1283791670955126*n.exp(-r*r)-r*a);return t<1?r:-r},e.ibetainv=function(t,r,a){var o,l,u,i,c,s,f,d,p,m,h=r-1,g=a-1,v=0;if(t<=0)return 0;if(t>=1)return 1;for(r>=1&&a>=1?(u=t<.5?t:1-t,s=(2.30753+.27061*(i=n.sqrt(-2*n.log(u))))/(1+i*(.99229+.04481*i))-i,t<.5&&(s=-s),f=(s*s-3)/6,d=2/(1/(2*r-1)+1/(2*a-1)),p=s*n.sqrt(f+d)/d-(1/(2*a-1)-1/(2*r-1))*(f+5/6-2/(3*d)),s=r/(r+a*n.exp(2*p))):(o=n.log(r/(r+a)),l=n.log(a/(r+a)),s=t<(i=n.exp(r*o)/r)/(p=i+(c=n.exp(a*l)/a))?n.pow(r*p*t,1/r):1-n.pow(a*p*(1-t),1/a)),m=-e.gammaln(r)-e.gammaln(a)+e.gammaln(r+a);v<10;v++){if(0===s||1===s)return s;if((s-=i=(c=(e.ibeta(s,r,a)-t)/(i=n.exp(h*n.log(s)+g*n.log(1-s)+m)))/(1-.5*n.min(1,c*(h/s-g/(1-s)))))<=0&&(s=.5*(s+i)),s>=1&&(s=.5*(s+i+1)),n.abs(i)<1e-8*s&&v>0)break}return s},e.ibeta=function(t,r,a){var o=0===t||1===t?0:n.exp(e.gammaln(r+a)-e.gammaln(r)-e.gammaln(a)+r*n.log(t)+a*n.log(1-t));return!(t<0||t>1)&&(t<(r+1)/(r+a+2)?o*e.betacf(t,r,a)/r:1-o*e.betacf(1-t,a,r)/a)},e.randn=function(t,r){var a,o,l,u,i;if(r||(r=t),t)return e.create(t,r,(function(){return e.randn()}));do{a=e._random_fn(),o=1.7156*(e._random_fn()-.5),i=(l=a-.449871)*l+(u=n.abs(o)+.386595)*(.196*u-.25472*l)}while(i>.27597&&(i>.27846||o*o>-4*n.log(a)*a*a));return o/a},e.randg=function(t,r,a){var o,l,u,i,c,s,f=t;if(a||(a=r),t||(t=1),r)return(s=e.zeros(r,a)).alter((function(){return e.randg(t)})),s;t<1&&(t+=1),o=t-1/3,l=1/n.sqrt(9*o);do{do{i=1+l*(c=e.randn())}while(i<=0);i*=i*i,u=e._random_fn()}while(u>1-.331*n.pow(c,4)&&n.log(u)>.5*c*c+o*(1-i+n.log(i)));if(t==f)return o*i;do{u=e._random_fn()}while(0===u);return n.pow(u,1/f)*o*i},function(n){for(var t=0;ta;)f=i,u=c+(o=-(t+s)*(t+r+s)*e/(t+2*s)/(t+2*s+1))*u,i=(l=i+o*l)+(o=(s+=1)*(r-s)*e/(t+2*s-1)/(t+2*s))*i,l/=c=u+o*c,u/=c,i/=c,c=1;return i/t}function r(t,r,a){var o=[.9815606342467192,.9041172563704749,.7699026741943047,.5873179542866175,.3678314989981802,.1252334085114689],l=[.04717533638651183,.10693932599531843,.16007832854334622,.20316742672306592,.2334925365383548,.24914704581340277],u=.5*t;if(u>=8)return 1;var i,c=2*e.normal.cdf(u,0,1,1,0)-1;c=c>=n.exp(-50/a)?n.pow(c,a):0;for(var s=u,f=(8-u)/(i=t>3?2:3),d=s+f,p=0,m=a-1,h=1;h<=i;h++){for(var g=0,v=.5*(d+s),y=.5*(d-s),b=1;b<=12;b++){var w,k=v+y*(660)break;var x=2*e.normal.cdf(k,0,1,1,0)*.5-2*e.normal.cdf(k,t,1,1,0)*.5;x>=n.exp(-30/m)&&(g+=x=l[w-1]*n.exp(-.5*S)*n.pow(x,m))}p+=g*=2*y*a/n.sqrt(2*n.PI),s=d,d+=f}return(c+=p)<=n.exp(-30/r)?0:(c=n.pow(c,r))>=1?1:c}!function(n){for(var t=0;t1||t<0?0:1==r&&1==a?1:r<512&&a<512?n.pow(t,r-1)*n.pow(1-t,a-1)/e.betafn(r,a):n.exp((r-1)*n.log(t)+(a-1)*n.log(1-t)-e.betaln(r,a))},cdf:function(n,t,r){return n>1||n<0?1*(n>1):e.ibeta(n,t,r)},inv:function(n,t,r){return e.ibetainv(n,t,r)},mean:function(e,n){return e/(e+n)},median:function(n,t){return e.ibetainv(.5,n,t)},mode:function(e,n){return(e-1)/(e+n-2)},sample:function(n,t){var r=e.randg(n);return r/(r+e.randg(t))},variance:function(e,t){return e*t/(n.pow(e+t,2)*(e+t+1))}}),e.extend(e.centralF,{pdf:function(t,r,a){var o;return t<0?0:r<=2?0===t&&r<2?1/0:0===t&&2===r?1:1/e.betafn(r/2,a/2)*n.pow(r/a,r/2)*n.pow(t,r/2-1)*n.pow(1+r/a*t,-(r+a)/2):(o=r*t/(a+t*r),r*(a/(a+t*r))/2*e.binomial.pdf((r-2)/2,(r+a-2)/2,o))},cdf:function(n,t,r){return n<0?0:e.ibeta(t*n/(t*n+r),t/2,r/2)},inv:function(n,t,r){return r/(t*(1/e.ibetainv(n,t/2,r/2)-1))},mean:function(e,n){return n>2?n/(n-2):void 0},mode:function(e,n){return e>2?n*(e-2)/(e*(n+2)):void 0},sample:function(n,t){return 2*e.randg(n/2)/n/(2*e.randg(t/2)/t)},variance:function(e,n){if(!(n<=4))return 2*n*n*(e+n-2)/(e*(n-2)*(n-2)*(n-4))}}),e.extend(e.cauchy,{pdf:function(e,t,r){return r<0?0:r/(n.pow(e-t,2)+n.pow(r,2))/n.PI},cdf:function(e,t,r){return n.atan((e-t)/r)/n.PI+.5},inv:function(e,t,r){return t+r*n.tan(n.PI*(e-.5))},median:function(e){return e},mode:function(e){return e},sample:function(t,r){return e.randn()*n.sqrt(1/(2*e.randg(.5)))*r+t}}),e.extend(e.chisquare,{pdf:function(t,r){return t<0?0:0===t&&2===r?.5:n.exp((r/2-1)*n.log(t)-t/2-r/2*n.log(2)-e.gammaln(r/2))},cdf:function(n,t){return n<0?0:e.lowRegGamma(t/2,n/2)},inv:function(n,t){return 2*e.gammapinv(n,.5*t)},mean:function(e){return e},median:function(e){return e*n.pow(1-2/(9*e),3)},mode:function(e){return e-2>0?e-2:0},sample:function(n){return 2*e.randg(n/2)},variance:function(e){return 2*e}}),e.extend(e.exponential,{pdf:function(e,t){return e<0?0:t*n.exp(-t*e)},cdf:function(e,t){return e<0?0:1-n.exp(-t*e)},inv:function(e,t){return-n.log(1-e)/t},mean:function(e){return 1/e},median:function(e){return 1/e*n.log(2)},mode:function(){return 0},sample:function(t){return-1/t*n.log(e._random_fn())},variance:function(e){return n.pow(e,-2)}}),e.extend(e.gamma,{pdf:function(t,r,a){return t<0?0:0===t&&1===r?1/a:n.exp((r-1)*n.log(t)-t/a-e.gammaln(r)-r*n.log(a))},cdf:function(n,t,r){return n<0?0:e.lowRegGamma(t,n/r)},inv:function(n,t,r){return e.gammapinv(n,t)*r},mean:function(e,n){return e*n},mode:function(e,n){if(e>1)return(e-1)*n},sample:function(n,t){return e.randg(n)*t},variance:function(e,n){return e*n*n}}),e.extend(e.invgamma,{pdf:function(t,r,a){return t<=0?0:n.exp(-(r+1)*n.log(t)-a/t-e.gammaln(r)+r*n.log(a))},cdf:function(n,t,r){return n<=0?0:1-e.lowRegGamma(t,r/n)},inv:function(n,t,r){return r/e.gammapinv(1-n,t)},mean:function(e,n){return e>1?n/(e-1):void 0},mode:function(e,n){return n/(e+1)},sample:function(n,t){return t/e.randg(n)},variance:function(e,n){if(!(e<=2))return n*n/((e-1)*(e-1)*(e-2))}}),e.extend(e.kumaraswamy,{pdf:function(e,t,r){return 0===e&&1===t?r:1===e&&1===r?t:n.exp(n.log(t)+n.log(r)+(t-1)*n.log(e)+(r-1)*n.log(1-n.pow(e,t)))},cdf:function(e,t,r){return e<0?0:e>1?1:1-n.pow(1-n.pow(e,t),r)},inv:function(e,t,r){return n.pow(1-n.pow(1-e,1/r),1/t)},mean:function(n,t){return t*e.gammafn(1+1/n)*e.gammafn(t)/e.gammafn(1+1/n+t)},median:function(e,t){return n.pow(1-n.pow(2,-1/t),1/e)},mode:function(e,t){if(e>=1&&t>=1&&1!==e&&1!==t)return n.pow((e-1)/(e*t-1),1/e)},variance:function(){throw new Error("variance not yet implemented")}}),e.extend(e.lognormal,{pdf:function(e,t,r){return e<=0?0:n.exp(-n.log(e)-.5*n.log(2*n.PI)-n.log(r)-n.pow(n.log(e)-t,2)/(2*r*r))},cdf:function(t,r,a){return t<0?0:.5+.5*e.erf((n.log(t)-r)/n.sqrt(2*a*a))},inv:function(t,r,a){return n.exp(-1.4142135623730951*a*e.erfcinv(2*t)+r)},mean:function(e,t){return n.exp(e+t*t/2)},median:function(e){return n.exp(e)},mode:function(e,t){return n.exp(e-t*t)},sample:function(t,r){return n.exp(e.randn()*r+t)},variance:function(e,t){return(n.exp(t*t)-1)*n.exp(2*e+t*t)}}),e.extend(e.noncentralt,{pdf:function(t,r,a){return n.abs(a)<1e-14?e.studentt.pdf(t,r):n.abs(t)<1e-14?n.exp(e.gammaln((r+1)/2)-a*a/2-.5*n.log(n.PI*r)-e.gammaln(r/2)):r/t*(e.noncentralt.cdf(t*n.sqrt(1+2/r),r+2,a)-e.noncentralt.cdf(t,r,a))},cdf:function(t,r,a){var o=1e-14;if(n.abs(a)o||i>o;)c=i,f>0&&(d*=a*a/(2*f),p*=a*a/(2*(f+.5))),u+=.5*(i=d*e.beta.cdf(s,f+.5,r/2)+p*e.beta.cdf(s,f+1,r/2)),f++;return l?1-u:u}}),e.extend(e.normal,{pdf:function(e,t,r){return n.exp(-.5*n.log(2*n.PI)-n.log(r)-n.pow(e-t,2)/(2*r*r))},cdf:function(t,r,a){return.5*(1+e.erf((t-r)/n.sqrt(2*a*a)))},inv:function(n,t,r){return-1.4142135623730951*r*e.erfcinv(2*n)+t},mean:function(e){return e},median:function(e){return e},mode:function(e){return e},sample:function(n,t){return e.randn()*t+n},variance:function(e,n){return n*n}}),e.extend(e.pareto,{pdf:function(e,t,r){return e1e100?1e100:r,1/(n.sqrt(r)*e.betafn(.5,r/2))*n.pow(1+t*t/r,-(r+1)/2)},cdf:function(t,r){var a=r/2;return e.ibeta((t+n.sqrt(t*t+r))/(2*n.sqrt(t*t+r)),a,a)},inv:function(t,r){var a=e.ibetainv(2*n.min(t,1-t),.5*r,.5);return a=n.sqrt(r*(1-a)/a),t>.5?a:-a},mean:function(e){return e>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(t){return e.randn()*n.sqrt(t/(2*e.randg(t/2)))},variance:function(e){return e>2?e/(e-2):e>1?1/0:void 0}}),e.extend(e.weibull,{pdf:function(e,t,r){return e<0||t<0||r<0?0:r/t*n.pow(e/t,r-1)*n.exp(-n.pow(e/t,r))},cdf:function(e,t,r){return e<0?0:1-n.exp(-n.pow(e/t,r))},inv:function(e,t,r){return t*n.pow(-n.log(1-e),1/r)},mean:function(n,t){return n*e.gammafn(1+1/t)},median:function(e,t){return e*n.pow(n.log(2),1/t)},mode:function(e,t){return t<=1?0:e*n.pow((t-1)/t,1/t)},sample:function(t,r){return t*n.pow(-n.log(e._random_fn()),1/r)},variance:function(t,r){return t*t*e.gammafn(1+2/r)-n.pow(e.weibull.mean(t,r),2)}}),e.extend(e.uniform,{pdf:function(e,n,t){return et?0:1/(t-n)},cdf:function(e,n,t){return e=a)return 1;if(o<0||o>1||a<=0)return NaN;var i=o,c=(r=n.floor(r))+1,s=a-r,f=c+s,d=n.exp(e.gammaln(f)-e.gammaln(s)-e.gammaln(c)+c*n.log(i)+s*n.log(1-i));return l=i<(c+1)/(f+2)?d*t(i,c,s,u):1-d*t(1-i,s,c,u),n.round(1/u*(1-l))/(1/u)}}),e.extend(e.negbin,{pdf:function(t,r,a){return t===t>>>0&&(t<0?0:e.combination(t+r-1,r-1)*n.pow(1-a,t)*n.pow(a,r))},cdf:function(n,t,r){var a=0,o=0;if(n<0)return 0;for(;o<=n;o++)a+=e.negbin.pdf(o,t,r);return a}}),e.extend(e.hypgeom,{pdf:function(t,r,a,o){if(t!=t|0)return!1;if(t<0||to||t>a)return 0;if(2*a>r)return 2*o>r?e.hypgeom.pdf(r-a-o+t,r,r-a,r-o):e.hypgeom.pdf(o-t,r,r-a,o);if(2*o>r)return e.hypgeom.pdf(a-t,r,a,r-o);if(a1&&u=o||t>=a)return 1;if(2*a>r)return 2*o>r?e.hypgeom.cdf(r-a-o+t,r,r-a,r-o):1-e.hypgeom.cdf(o-t-1,r,r-a,o);if(2*o>r)return 1-e.hypgeom.cdf(a-t-1,r,a,r-o);if(a1&&io);return a-1},sampleLarge:function(t){var r,a,o,l,u,i,c,s,f,d,p=t;for(l=n.sqrt(p),u=n.log(p),i=.02483*(c=.931+2.53*l)-.059,s=1.1239+1.1328/(c-3.4),f=.9277-3.6224/(c-2);;){if(a=n.random()-.5,o=n.random(),d=.5-n.abs(a),r=n.floor((2*i/d+c)*a+p+.43),d>=.07&&o<=f)return r;if(!(r<0||d<.013&&o>d)&&n.log(o)+n.log(s)-n.log(i/(d*d)+c)<=r*u-p-e.loggam(r+1))return r}},sample:function(e){return e<10?this.sampleSmall(e):this.sampleLarge(e)}}),e.extend(e.triangular,{pdf:function(e,n,t,r){return t<=n||rt?NaN:et?0:er?NaN:e<=t?0:e>=r?1:e<=a?n.pow(e-t,2)/((r-t)*(a-t)):1-n.pow(r-e,2)/((r-t)*(r-a))},inv:function(e,t,r,a){return r<=t||ar?NaN:e<=(a-t)/(r-t)?t+(r-t)*n.sqrt(e*((a-t)/(r-t))):t+(r-t)*(1-n.sqrt((1-e)*(1-(a-t)/(r-t))))},mean:function(e,n,t){return(e+n+t)/3},median:function(e,t,r){return r<=(e+t)/2?t-n.sqrt((t-e)*(t-r))/n.sqrt(2):r>(e+t)/2?e+n.sqrt((t-e)*(r-e))/n.sqrt(2):void 0},mode:function(e,n,t){return t},sample:function(t,r,a){var o=e._random_fn();return o<(a-t)/(r-t)?t+n.sqrt(o*(r-t)*(a-t)):r-n.sqrt((1-o)*(r-t)*(r-a))},variance:function(e,n,t){return(e*e+n*n+t*t-e*n-e*t-n*t)/18}}),e.extend(e.arcsine,{pdf:function(e,t,r){return r<=t?NaN:e<=t||e>=r?0:2/n.PI*n.pow(n.pow(r-t,2)-n.pow(2*e-t-r,2),-.5)},cdf:function(e,t,r){return e25e3)return r(t,1,l);var c,s=.5*o,f=s*n.log(o)-o*n.log(2)-e.gammaln(s),d=s-1,p=.25*o;c=o<=100?1:o<=800?.5:o<=5e3?.25:.125,f+=n.log(c);for(var m=0,h=1;h<=50;h++){for(var g=0,v=(2*h-1)*c,y=1;y<=16;y++){var b,w;8=-30&&(g+=r(8=1&&g<=1e-14)break;m+=g}if(g>1e-14)throw new Error("tukey.cdf failed to converge");return m>1&&(m=1),m},inv:function(t,r,a){if(a<2||r<2)return NaN;if(t<0||t>1)return NaN;if(0===t)return 0;if(1===t)return 1/0;var o,l=function(e,t,r){var a=.5-.5*e,o=n.sqrt(n.log(1/(a*a))),l=o+((((-453642210148e-16*o-.204231210125)*o-.342242088547)*o-1)*o+.322232421088)/((((.0038560700634*o+.10353775285)*o+.531103462366)*o+.588581570495)*o+.099348462606);r<120&&(l+=(l*l*l+l)/r/4);var u=.8832-.2368*l;return r<120&&(u+=-1.214/r+1.208*l/r),l*(u*n.log(t-1)+1.4142)}(t,r,a),u=e.tukey.cdf(l,r,a)-t;o=u>0?n.max(0,l-1):l+1;for(var i,c=e.tukey.cdf(o,r,a)-t,s=1;s<50;s++)if(i=o-c*(o-l)/(c-u),u=c,l=o,i<0&&(i=0,c=-t),c=e.tukey.cdf(i,r,a)-t,o=i,n.abs(o-l)<1e-4)return i;throw new Error("tukey.inv failed to converge")}})}(n,Math),function(e,n){var t,r,a=Array.prototype.push,o=e.utils.isArray;function l(n){return o(n)||n instanceof e}e.extend({add:function(n,t){return l(t)?(l(t[0])||(t=[t]),e.map(n,(function(e,n,r){return e+t[n][r]}))):e.map(n,(function(e){return e+t}))},subtract:function(n,t){return l(t)?(l(t[0])||(t=[t]),e.map(n,(function(e,n,r){return e-t[n][r]||0}))):e.map(n,(function(e){return e-t}))},divide:function(n,t){return l(t)?(l(t[0])||(t=[t]),e.multiply(n,e.inv(t))):e.map(n,(function(e){return e/t}))},multiply:function(n,t){var r,a,o,u,i,c,s,f;if(void 0===n.length&&void 0===t.length)return n*t;if(i=n.length,c=n[0].length,s=e.zeros(i,o=l(t)?t[0].length:c),f=0,l(t)){for(;fr&&(a[o-1][l-1]=n[o][l])}var u=r%2?-1:1;t+=e(a)*n[0][r]*u}return t},gauss_elimination:function(t,r){var a,o,l,u,i=0,c=0,s=t.length,f=t[0].length,d=1,p=0,m=[];for(a=(t=e.aug(t,r))[0].length,i=0;i=0;i--){for(p=0,c=i+1;c<=s-1;c++)p+=m[c]*t[i][c];m[i]=(t[i][a-1]-p)/t[i][i]}return m},gauss_jordan:function(t,r){var a,o,l,u=e.aug(t,r),i=u.length,c=u[0].length,s=0;for(o=0;on.abs(u[f][o])&&(f=l);var d=u[o];for(u[o]=u[f],u[f]=d,l=o+1;l=0;o--){for(s=u[o][o],l=0;lo-1;a--)u[l][a]-=u[o][a]*u[l][o]/s;for(u[o][o]/=s,a=i;af?(p[s][f]=t[s][f],m[s][f]=h[s][f]=0):so;)l=c,c=e.add(e.multiply(i,l),u),s++;return c},gauss_seidel:function(t,r,a,o){for(var l,u,i,c,s,f=0,d=t.length,p=[],m=[],h=[];fl?(p[f][l]=t[f][l],m[f][l]=h[f][l]=0):fo;)u=s,s=e.add(e.multiply(c,u),i),f+=1;return s},SOR:function(t,r,a,o,l){for(var u,i,c,s,f,d=0,p=t.length,m=[],h=[],g=[];du?(m[d][u]=t[d][u],h[d][u]=g[d][u]=0):do;)i=f,f=e.add(e.multiply(s,i),c),d++;return f},householder:function(t){for(var r,a,o,l,u=t.length,i=t[0].length,c=0,s=[],f=[];c0?-1:1)*n.sqrt(r),a=n.sqrt((r*r-t[c+1][c]*r)/2),(s=e.zeros(u,1))[c+1][0]=(t[c+1][c]-r)/(2*a),o=c+2;o0?n.PI/4:-n.PI/4:n.atan(2*t[o][l]/(t[o][o]-t[l][l]))/2,(c=e.identity(f,f))[o][o]=n.cos(i),c[o][l]=-n.sin(i),c[l][o]=n.sin(i),c[l][l]=n.cos(i),d=e.multiply(d,c),t=e.multiply(e.multiply(e.inv(c),t),c),s=0,r=1;r.001&&(s=1)}for(r=0;r=f;)l=o(e,r+a),u=o(e,r),p[d]=(t[l]-2*t[u]+t[2*u-l])/(a*a),a/=2,d++;for(c=p.length,i=1;1!=c;){for(s=0;sr);a++);return t[a-=1]+(r-n[a])*d[a]+e.sq(r-n[a])*o[a]+(r-n[a])*e.sq(r-n[a])*p[a]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(n){var t,r,a,o,l,u=n.length,i=n[0].length,c=0,s=[],f=[],d=[],p=[],m=[],h=[],g=[];for(c=0;c1||r>1||e<=0||r<=0)throw new Error("Proportions should be greater than 0 and less than 1");var o=(e*t+r*a)/(t+a);return(e-r)/n.sqrt(o*(1-o)*(1/t+1/a))}e.extend({zscore:function(){var n=t.call(arguments);return r(n[1])?(n[0]-n[1])/n[2]:(n[0]-e.mean(n[1]))/e.stdev(n[1],n[2])},ztest:function(){var r,o=t.call(arguments);return a(o[1])?(r=e.zscore(o[0],o[1],o[3]),1===o[2]?e.normal.cdf(-n.abs(r),0,1):2*e.normal.cdf(-n.abs(r),0,1)):o.length>2?(r=e.zscore(o[0],o[1],o[2]),1===o[3]?e.normal.cdf(-n.abs(r),0,1):2*e.normal.cdf(-n.abs(r),0,1)):(r=o[0],1===o[1]?e.normal.cdf(-n.abs(r),0,1):2*e.normal.cdf(-n.abs(r),0,1))}}),e.extend(e.fn,{zscore:function(e,n){return(e-this.mean())/this.stdev(n)},ztest:function(t,r,a){var o=n.abs(this.zscore(t,a));return 1===r?e.normal.cdf(-o,0,1):2*e.normal.cdf(-o,0,1)}}),e.extend({tscore:function(){var r=t.call(arguments);return 4===r.length?(r[0]-r[1])/(r[2]/n.sqrt(r[3])):(r[0]-e.mean(r[1]))/(e.stdev(r[1],!0)/n.sqrt(r[1].length))},ttest:function(){var a,o=t.call(arguments);return 5===o.length?(a=n.abs(e.tscore(o[0],o[1],o[2],o[3])),1===o[4]?e.studentt.cdf(-a,o[3]-1):2*e.studentt.cdf(-a,o[3]-1)):r(o[1])?(a=n.abs(o[0]),1==o[2]?e.studentt.cdf(-a,o[1]-1):2*e.studentt.cdf(-a,o[1]-1)):(a=n.abs(e.tscore(o[0],o[1])),1==o[2]?e.studentt.cdf(-a,o[1].length-1):2*e.studentt.cdf(-a,o[1].length-1))}}),e.extend(e.fn,{tscore:function(e){return(e-this.mean())/(this.stdev(!0)/n.sqrt(this.cols()))},ttest:function(t,r){return 1===r?1-e.studentt.cdf(n.abs(this.tscore(t)),this.cols()-1):2*e.studentt.cdf(-n.abs(this.tscore(t)),this.cols()-1)}}),e.extend({anovafscore:function(){var r,a,o,l,u,i,c,s,f=t.call(arguments);if(1===f.length){for(u=new Array(f[0].length),c=0;c.5?1-r:r)})),s=n.studentt.inv(.975,t.df_resid),f=t.coef.map((function(e,n){var t=s*u[n];return[e-t,e+t]}));return{se:u,t:i,p:c,sigmaHat:l,interval95:f}}return{ols:function(r,a){var o=e(r,a),l=t(o),u=function(e){var t,r,a,o=e.R2/e.df_model/((1-e.R2)/e.df_resid);return{F_statistic:o,pvalue:1-(t=o,r=e.df_model,a=e.df_resid,n.beta.cdf(t/(a/r+t),r/2,a/2))}}(o),i=1-(1-o.R2)*((o.nobs-1)/o.df_resid);return o.t=l,o.f=u,o.adjust_R2=i,o}}}(),n.extend({buildxmatrix:function(){for(var e=new Array(arguments.length),t=0;t1){for(l=[],r=0;r{"use strict";var r=t(294),a=t(840);function o(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t