diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index f8a84e735df..dd1f5e1b04a 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -27,8 +27,8 @@ FAST (`@microsoft/fast`) is a Microsoft open-source monorepo for building W3C-st | Package | Status | Purpose | |---|---|---| -| `@microsoft/fast-bench` | Private (not published as a package) | Benchmarking utilities | | `sites/website` | Private (not published as a package) | Documentation website source | +| `sites/benchmarks` | Private (not published as a package) | Benchmarking utilities | | `@microsoft/fast-ssr` | Alpha (not actively maintained) | Server-side rendering utilities | ### Example projects diff --git a/change/@microsoft-fast-html-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json b/change/@microsoft-fast-html-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json new file mode 100644 index 00000000000..293e17774d4 --- /dev/null +++ b/change/@microsoft-fast-html-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: update webui to 0.0.10", + "packageName": "@microsoft/fast-html", + "email": "7559015+janechu@users.noreply.github.com", + "dependentChangeType": "none" +} diff --git a/package-lock.json b/package-lock.json index e47196b67a3..d5a5976c200 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,9 +11,8 @@ "workspaces": [ "build", "packages/*", - "sites/website", - "examples/todo-app", - "examples/ssr" + "sites/*", + "examples/*" ], "devDependencies": { "@ast-grep/cli": "0.37.0", @@ -1415,9 +1414,9 @@ } }, "node_modules/@github/catalyst": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@github/catalyst/-/catalyst-1.8.0.tgz", - "integrity": "sha512-uLpi/D/mKfylYaFLfzNuloXNENi0AlcM0Z7hwYLH8Z030jBCr+ueMdX2xLxCzpMH/keYXKh0uPrHSMfcbxU6KA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@github/catalyst/-/catalyst-1.8.1.tgz", + "integrity": "sha512-dnN4WWpbeuQvA17LvsGdlXEueJdBk9y+I+WO5pdNpoHNOXPsFcz3hJrq1iRmdsNgQOf4S8e83axtwIxvG62eWA==", "dev": true, "license": "MIT" }, @@ -1555,7 +1554,7 @@ } }, "node_modules/@microsoft/fast-bench": { - "resolved": "packages/bench", + "resolved": "sites/benchmarks", "link": true }, "node_modules/@microsoft/fast-build": { @@ -1617,9 +1616,9 @@ } }, "node_modules/@microsoft/webui": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui/-/webui-0.0.9.tgz", - "integrity": "sha512-jAV7GiTeICbuAhNmwc5Fyf07oNGcRqbsqrC8DqUM0P6yxqnFTt1PmB/VzTP8NhMVxufaqGcy2qY6QueG9Asypg==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui/-/webui-0.0.10.tgz", + "integrity": "sha512-lGj0PyVoYUOOJ1MWhseGSe5ZJQurp7KWvSgYtNMBiAb140rD2MXQsHwbwIPsqEPFPtqtCZcxuNzbDqJ7Bl8gRQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1630,18 +1629,18 @@ "node": ">=18" }, "optionalDependencies": { - "@microsoft/webui-darwin-arm64": "0.0.9", - "@microsoft/webui-darwin-x64": "0.0.9", - "@microsoft/webui-linux-arm64": "0.0.9", - "@microsoft/webui-linux-x64": "0.0.9", - "@microsoft/webui-win32-arm64": "0.0.9", - "@microsoft/webui-win32-x64": "0.0.9" + "@microsoft/webui-darwin-arm64": "0.0.10", + "@microsoft/webui-darwin-x64": "0.0.10", + "@microsoft/webui-linux-arm64": "0.0.10", + "@microsoft/webui-linux-x64": "0.0.10", + "@microsoft/webui-win32-arm64": "0.0.10", + "@microsoft/webui-win32-x64": "0.0.10" } }, "node_modules/@microsoft/webui-darwin-arm64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-arm64/-/webui-darwin-arm64-0.0.9.tgz", - "integrity": "sha512-91HprvaitU62IzdYgt22qMCiEXvr0Utg9vxUc6Mt3mh4KVfSsFVmN7Z6J7eXZQ858CEW4xXKSfpeiEXKkpNGSg==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-arm64/-/webui-darwin-arm64-0.0.10.tgz", + "integrity": "sha512-ApVNle/cU++YYeSG1qiyyP6wC2B5lxPhoKUZI8KZlPLViTwgrJ9Th37HhPqvCPqLMnY06jYtAQlPXbjGZxCNsQ==", "cpu": [ "arm64" ], @@ -1653,9 +1652,9 @@ ] }, "node_modules/@microsoft/webui-darwin-x64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-x64/-/webui-darwin-x64-0.0.9.tgz", - "integrity": "sha512-JDVmFki6CRRpj+F9CNTPI+b67fIQicLn3AmUQLFFCp0JQqaeGwpdUmXjzPy/Am+dQDCYVL4bKOeysmz4pHDDMA==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-x64/-/webui-darwin-x64-0.0.10.tgz", + "integrity": "sha512-BfKIrhqNDFWA1UZPLccZGq1LEDbA8pNEAsJXaaidAFdzB6Mwhezk9tTKArATthctBOd8O9k5sx5rm7+5FnE15A==", "cpu": [ "x64" ], @@ -1667,9 +1666,9 @@ ] }, "node_modules/@microsoft/webui-linux-arm64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-arm64/-/webui-linux-arm64-0.0.9.tgz", - "integrity": "sha512-fGcSTZi3QfqtdTXsGkSVQ8JT8o4gLpx/32i10qCxf/FvVxkxs7DosgjXgl7lx+kJ2XuTqCOCbSrLLjIK8T/WdA==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-arm64/-/webui-linux-arm64-0.0.10.tgz", + "integrity": "sha512-D5gg78/s3QEph3zwcL7PxaHEp33r7EIX2/CpzVXhYq+nTE50Kx3MYQVkyVoSFCp80dz8NpgEB771/JeFGOQ3lQ==", "cpu": [ "arm64" ], @@ -1681,9 +1680,9 @@ ] }, "node_modules/@microsoft/webui-linux-x64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-x64/-/webui-linux-x64-0.0.9.tgz", - "integrity": "sha512-w4AtqZevHbf+AUSMuSq0388DPfZEDi0DoajxVdNas5NBZ8qEr4d/2iP0VSx1vMBcH7nIPHjzM7DJnr9rYnt4Mw==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-x64/-/webui-linux-x64-0.0.10.tgz", + "integrity": "sha512-RCnwb7F6Wf75LYDnva/vIN0sNEuKRAXS5BEL8Yg5LuoZtncTGctGxSvMoqhLbBAeD4nnlhTyLn/ZFQVRWJluGw==", "cpu": [ "x64" ], @@ -1695,9 +1694,9 @@ ] }, "node_modules/@microsoft/webui-win32-arm64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-arm64/-/webui-win32-arm64-0.0.9.tgz", - "integrity": "sha512-nNl7yvIu7uZ2y0/ViJ9tpOwflB0sqd1hHF0P53PK8dBfT7bqhby+UNv6tLAFjUYiu1xjnpTje8QIeQZKh2+Qow==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-arm64/-/webui-win32-arm64-0.0.10.tgz", + "integrity": "sha512-dFHzxCCOhEPX9kC64uWvw3gV5ldeVdlQ2QreAHt/ewlnOQQmUFWQpzJaSWwirEezWwE20+uakECSt65LBnRuxQ==", "cpu": [ "arm64" ], @@ -1709,9 +1708,9 @@ ] }, "node_modules/@microsoft/webui-win32-x64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-x64/-/webui-win32-x64-0.0.9.tgz", - "integrity": "sha512-FH4gprnUnNcEYgDkPHQS9D8h9gRQqYiy5Wswkgi75EgcELg2k8usGERexLOl/nmLMv4E3su7alhDKQm5oMXIJQ==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-x64/-/webui-win32-x64-0.0.10.tgz", + "integrity": "sha512-9nrveoR0Cu9ZRAlXdGh1SI6ljSRwhWSlDj2vAmf4XAWSA4P5nOwL7krQtX/QTbj3xjytTC5t6vxOvASJdqCnSg==", "cpu": [ "x64" ], @@ -4595,9 +4594,9 @@ } }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "license": "MIT", "optional": true, @@ -4678,9 +4677,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.13.7", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz", - "integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", "dev": true, "license": "MIT", "dependencies": { @@ -4992,9 +4991,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -5470,12 +5469,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "license": "MIT" - }, "node_modules/is-ssh": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", @@ -5576,9 +5569,9 @@ "license": "MIT" }, "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -5824,9 +5817,9 @@ } }, "node_modules/liquidjs": { - "version": "10.25.5", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.25.5.tgz", - "integrity": "sha512-GKiKeZjJDdVoQAu+S9rzkYsYnYhcep5W3WwZXgb5f+yq484P/k9JqamBbGYu+LBEixcUAXZr2jogdAIjB3ki1w==", + "version": "10.25.6", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.25.6.tgz", + "integrity": "sha512-h5ki5HS1PiL9/NmLw3iUcTF1jQswKJd8KLEXNrtSf8XHF0v3c5+d+8llz3N9I5IUdc5rsOuVLb9AVnqvqqscPg==", "license": "MIT", "dependencies": { "commander": "^10.0.0" @@ -6604,15 +6597,6 @@ "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -6879,6 +6863,20 @@ "node": ">=18" } }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -6889,9 +6887,9 @@ } }, "node_modules/postcss": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.9.tgz", - "integrity": "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "funding": [ { "type": "opencollective", @@ -7300,55 +7298,6 @@ "node": ">=16.0.0" } }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/router/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/router/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/router/node_modules/path-to-regexp": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", - "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8349,20 +8298,6 @@ } } }, - "node_modules/vite/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8548,12 +8483,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, "node_modules/ws": { "version": "8.20.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", @@ -8682,14 +8611,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/bench": { - "name": "@microsoft/fast-bench", - "version": "0.0.0", - "dependencies": { - "@microsoft/fast-element": "*", - "@microsoft/fast-html": "*" - } - }, "packages/fast-build": { "name": "@microsoft/fast-build", "version": "0.4.0", @@ -8713,7 +8634,7 @@ "devDependencies": { "@microsoft/fast-build": "^0.4.0", "@microsoft/fast-element": "^2.10.4", - "@microsoft/webui": "0.0.9" + "@microsoft/webui": "0.0.10" }, "peerDependencies": { "@microsoft/fast-element": "^2.10.4" @@ -8784,8 +8705,6 @@ }, "packages/fast-test-harness/node_modules/accepts": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "license": "MIT", "dependencies": { "mime-types": "^3.0.0", @@ -8797,8 +8716,6 @@ }, "packages/fast-test-harness/node_modules/body-parser": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", - "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", "license": "MIT", "dependencies": { "bytes": "^3.1.2", @@ -8821,8 +8738,6 @@ }, "packages/fast-test-harness/node_modules/content-disposition": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "license": "MIT", "engines": { "node": ">=18" @@ -8834,8 +8749,6 @@ }, "packages/fast-test-harness/node_modules/cookie-signature": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", "license": "MIT", "engines": { "node": ">=6.6.0" @@ -8843,8 +8756,6 @@ }, "packages/fast-test-harness/node_modules/debug": { "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -8860,8 +8771,6 @@ }, "packages/fast-test-harness/node_modules/express": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", "dependencies": { "accepts": "^2.0.0", @@ -8903,8 +8812,6 @@ }, "packages/fast-test-harness/node_modules/finalhandler": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "license": "MIT", "dependencies": { "debug": "^4.4.0", @@ -8924,8 +8831,6 @@ }, "packages/fast-test-harness/node_modules/fresh": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -8933,8 +8838,6 @@ }, "packages/fast-test-harness/node_modules/iconv-lite": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -8949,8 +8852,6 @@ }, "packages/fast-test-harness/node_modules/media-typer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -8958,8 +8859,6 @@ }, "packages/fast-test-harness/node_modules/merge-descriptors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "license": "MIT", "engines": { "node": ">=18" @@ -8970,8 +8869,6 @@ }, "packages/fast-test-harness/node_modules/mime-db": { "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -8979,8 +8876,6 @@ }, "packages/fast-test-harness/node_modules/mime-types": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { "mime-db": "^1.54.0" @@ -8995,14 +8890,10 @@ }, "packages/fast-test-harness/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "packages/fast-test-harness/node_modules/negotiator": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -9010,8 +8901,6 @@ }, "packages/fast-test-harness/node_modules/raw-body": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "license": "MIT", "dependencies": { "bytes": "~3.1.2", @@ -9025,8 +8914,6 @@ }, "packages/fast-test-harness/node_modules/send": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", - "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "license": "MIT", "dependencies": { "debug": "^4.4.3", @@ -9051,8 +8938,6 @@ }, "packages/fast-test-harness/node_modules/serve-static": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", - "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "license": "MIT", "dependencies": { "encodeurl": "^2.0.0", @@ -9070,8 +8955,6 @@ }, "packages/fast-test-harness/node_modules/type-is": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", "license": "MIT", "dependencies": { "content-type": "^1.0.5", @@ -9082,6 +8965,14 @@ "node": ">= 0.6" } }, + "sites/benchmarks": { + "name": "@microsoft/fast-bench", + "version": "0.0.0", + "dependencies": { + "@microsoft/fast-element": "*", + "@microsoft/fast-html": "*" + } + }, "sites/website": { "name": "@microsoft/fast-site", "version": "0.6.2", @@ -9114,8 +9005,6 @@ }, "sites/website/node_modules/@microsoft/api-extractor-model": { "version": "7.33.4", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.33.4.tgz", - "integrity": "sha512-u1LTaNTikZAQ9uK6KG1Ms7nvNedsnODnspq/gH2dcyETWvH4hVNGNDvRAEutH66kAmxA4/necElqGNs1FggC8w==", "license": "MIT", "dependencies": { "@microsoft/tsdoc": "~0.16.0", @@ -9125,8 +9014,6 @@ }, "sites/website/node_modules/@rushstack/node-core-library": { "version": "5.20.3", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.20.3.tgz", - "integrity": "sha512-95JgEPq2k7tHxhF9/OJnnyHDXfC9cLhhta0An/6MlkDsX2A6dTzDrTUG18vx4vjc280V0fi0xDH9iQczpSuWsw==", "license": "MIT", "dependencies": { "ajv": "~8.18.0", @@ -9149,8 +9036,6 @@ }, "sites/website/node_modules/@rushstack/terminal": { "version": "0.22.3", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.22.3.tgz", - "integrity": "sha512-gHC9pIMrUPzAbBiI4VZMU7Q+rsCzb8hJl36lFIulIzoceKotyKL3Rd76AZ2CryCTKEg+0bnTj406HE5YY5OQvw==", "license": "MIT", "dependencies": { "@rushstack/node-core-library": "5.20.3", @@ -9168,8 +9053,6 @@ }, "sites/website/node_modules/@rushstack/ts-command-line": { "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.3.3.tgz", - "integrity": "sha512-c+ltdcvC7ym+10lhwR/vWiOhsrm/bP3By2VsFcs5qTKv+6tTmxgbVrtJ5NdNjANiV5TcmOZgUN+5KYQ4llsvEw==", "license": "MIT", "dependencies": { "@rushstack/terminal": "0.22.3", diff --git a/package.json b/package.json index 80308cfcaee..c8c7e0bd438 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,8 @@ "workspaces": [ "build", "packages/*", - "sites/website", - "examples/todo-app", - "examples/ssr" + "sites/*", + "examples/*" ], "engines": { "npm": ">=10.0.0", diff --git a/packages/bench/src/scenarios/attr-reflect/csr/main.ts b/packages/bench/src/scenarios/attr-reflect/csr/main.ts deleted file mode 100644 index 258bb980ded..00000000000 --- a/packages/bench/src/scenarios/attr-reflect/csr/main.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { html } from "@microsoft/fast-element"; -import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; - -BenchElement.define({ - name: "bench-element", - template: html` - ${x => x.label} (${x => x.count}) - `, -}); - -let id = 0; - -runBenchmark(() => { - const count = ++id; - const el = document.createElement("bench-element") as BenchElement; - el.label = `item-${count}`; - el.count = count; - el.active = true; - return el; -}); diff --git a/packages/bench/src/scenarios/attr-reflect/element.ts b/packages/bench/src/scenarios/attr-reflect/element.ts deleted file mode 100644 index f2406393c26..00000000000 --- a/packages/bench/src/scenarios/attr-reflect/element.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { attr, FASTElement, nullableNumberConverter } from "@microsoft/fast-element"; - -export class BenchElement extends FASTElement { - @attr - label?: string; - - @attr({ converter: nullableNumberConverter }) - count?: number; - - @attr({ mode: "boolean" }) - active?: boolean; -} diff --git a/packages/bench/src/scenarios/basic/csr/main.ts b/packages/bench/src/scenarios/basic/csr/main.ts deleted file mode 100644 index 7c5ffc5af7f..00000000000 --- a/packages/bench/src/scenarios/basic/csr/main.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { html } from "@microsoft/fast-element"; -import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; - -BenchElement.define({ - name: "bench-element", - template: html` - - `, -}); - -runBenchmark(() => { - const el = document.createElement("bench-element"); - el.innerHTML = "hello"; - return el; -}); diff --git a/packages/bench/src/scenarios/basic/element.ts b/packages/bench/src/scenarios/basic/element.ts deleted file mode 100644 index 1247ab9e4ba..00000000000 --- a/packages/bench/src/scenarios/basic/element.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { FASTElement } from "@microsoft/fast-element"; - -export class BenchElement extends FASTElement {} diff --git a/packages/bench/src/scenarios/bind-event/csr/main.ts b/packages/bench/src/scenarios/bind-event/csr/main.ts deleted file mode 100644 index 06d29b8d0f3..00000000000 --- a/packages/bench/src/scenarios/bind-event/csr/main.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { html } from "@microsoft/fast-element"; -import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; - -BenchElement.define({ - name: "bench-element", - template: html` - - `, -}); - -runBenchmark(() => document.createElement("bench-element")); diff --git a/packages/bench/src/scenarios/bind-event/element.ts b/packages/bench/src/scenarios/bind-event/element.ts deleted file mode 100644 index 2cee5bcaf5b..00000000000 --- a/packages/bench/src/scenarios/bind-event/element.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { attr, FASTElement } from "@microsoft/fast-element"; - -export class BenchElement extends FASTElement { - @attr count: string = "0"; - - handleClick(): void { - this.count = String(parseInt(this.count, 10) + 1); - } -} diff --git a/packages/bench/src/scenarios/ref-slotted/csr/main.ts b/packages/bench/src/scenarios/ref-slotted/csr/main.ts deleted file mode 100644 index 83ba22f5426..00000000000 --- a/packages/bench/src/scenarios/ref-slotted/csr/main.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { html, ref, slotted } from "@microsoft/fast-element"; -import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; - -BenchElement.define({ - name: "bench-element", - template: html` -

Title

- - `, -}); - -runBenchmark(() => { - const el = document.createElement("bench-element") as BenchElement; - const child = document.createElement("span"); - child.textContent = "slotted content"; - el.appendChild(child); - return el; -}); diff --git a/packages/bench/src/scenarios/ref-slotted/element.ts b/packages/bench/src/scenarios/ref-slotted/element.ts deleted file mode 100644 index 3ada06f6730..00000000000 --- a/packages/bench/src/scenarios/ref-slotted/element.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FASTElement } from "@microsoft/fast-element"; - -export class BenchElement extends FASTElement { - heading!: HTMLHeadingElement; - slottedItems!: Element[]; -} diff --git a/packages/bench/src/scenarios/repeat/csr/main.ts b/packages/bench/src/scenarios/repeat/csr/main.ts deleted file mode 100644 index 6483c5d3703..00000000000 --- a/packages/bench/src/scenarios/repeat/csr/main.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { html, repeat } from "@microsoft/fast-element"; -import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; - -BenchElement.define({ - name: "bench-element", - template: html` -
    - ${repeat( - x => x.items, - html` -
  • ${x => x}
  • - ` - )} -
- `, -}); - -runBenchmark(() => document.createElement("bench-element"), 100); diff --git a/packages/bench/src/scenarios/repeat/element.ts b/packages/bench/src/scenarios/repeat/element.ts deleted file mode 100644 index 8c97a9966cb..00000000000 --- a/packages/bench/src/scenarios/repeat/element.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { FASTElement } from "@microsoft/fast-element"; - -const items = Array.from({ length: 20 }, (_, i) => `Item ${i}`); - -export class BenchElement extends FASTElement { - items = items; -} diff --git a/packages/bench/src/scenarios/when/csr/main.ts b/packages/bench/src/scenarios/when/csr/main.ts deleted file mode 100644 index 17ddb1b39b3..00000000000 --- a/packages/bench/src/scenarios/when/csr/main.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { html, when } from "@microsoft/fast-element"; -import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; - -BenchElement.define({ - name: "bench-element", - template: html` - ${when( - x => x.show, - html` - Visible - ` - )} - ${when( - x => !x.show, - html` - Hidden - ` - )} - `, -}); - -runBenchmark(() => document.createElement("bench-element")); diff --git a/packages/bench/src/scenarios/when/element.ts b/packages/bench/src/scenarios/when/element.ts deleted file mode 100644 index f5d0f974d69..00000000000 --- a/packages/bench/src/scenarios/when/element.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { FASTElement, observable } from "@microsoft/fast-element"; - -export class BenchElement extends FASTElement { - @observable show = true; -} diff --git a/packages/bench/src/scenarios/when/hydration/main.ts b/packages/bench/src/scenarios/when/hydration/main.ts deleted file mode 100644 index 17cbaddee9f..00000000000 --- a/packages/bench/src/scenarios/when/hydration/main.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { RenderableFASTElement, TemplateElement } from "@microsoft/fast-html"; -import { signalDone } from "../../harness.js"; -import { BenchElement } from "../element.js"; - -RenderableFASTElement(BenchElement).defineAsync({ - name: "bench-element", - templateOptions: "defer-and-hydrate", -}); - -performance.mark("bench-start"); - -TemplateElement.config({ - hydrationComplete() { - performance.mark("bench-end"); - signalDone(); - }, -}).define({ name: "f-template" }); diff --git a/packages/fast-html/package.json b/packages/fast-html/package.json index f6aeba4ecb6..e6bf7594474 100644 --- a/packages/fast-html/package.json +++ b/packages/fast-html/package.json @@ -66,7 +66,7 @@ "devDependencies": { "@microsoft/fast-build": "^0.4.0", "@microsoft/fast-element": "^2.10.4", - "@microsoft/webui": "0.0.9" + "@microsoft/webui": "0.0.10" }, "beachball": { "disallowedChangeTypes": [ diff --git a/packages/bench/.gitignore b/sites/benchmarks/.gitignore similarity index 100% rename from packages/bench/.gitignore rename to sites/benchmarks/.gitignore diff --git a/packages/bench/README.md b/sites/benchmarks/README.md similarity index 98% rename from packages/bench/README.md rename to sites/benchmarks/README.md index 251a11ffc58..d6c1be5111b 100644 --- a/packages/bench/README.md +++ b/sites/benchmarks/README.md @@ -14,7 +14,7 @@ npm install ## Running benchmarks -From this folder (`packages/bench`): +From this folder (`sites/benchmarks`): ```bash npm run bench diff --git a/packages/bench/package.json b/sites/benchmarks/package.json similarity index 100% rename from packages/bench/package.json rename to sites/benchmarks/package.json diff --git a/packages/bench/server/package.json b/sites/benchmarks/server/package.json similarity index 100% rename from packages/bench/server/package.json rename to sites/benchmarks/server/package.json diff --git a/packages/bench/server/server.mjs b/sites/benchmarks/server/server.mjs similarity index 100% rename from packages/bench/server/server.mjs rename to sites/benchmarks/server/server.mjs diff --git a/packages/bench/src/bench.ts b/sites/benchmarks/src/bench.ts similarity index 100% rename from packages/bench/src/bench.ts rename to sites/benchmarks/src/bench.ts diff --git a/packages/bench/src/chart.ts b/sites/benchmarks/src/chart.ts similarity index 100% rename from packages/bench/src/chart.ts rename to sites/benchmarks/src/chart.ts diff --git a/packages/bench/src/report.ts b/sites/benchmarks/src/report.ts similarity index 100% rename from packages/bench/src/report.ts rename to sites/benchmarks/src/report.ts diff --git a/sites/benchmarks/src/scenarios/all/csr/index.html b/sites/benchmarks/src/scenarios/all/csr/index.html new file mode 100644 index 00000000000..91a37515abc --- /dev/null +++ b/sites/benchmarks/src/scenarios/all/csr/index.html @@ -0,0 +1,13 @@ + + + + + + all / csr + + + +
+ + + diff --git a/sites/benchmarks/src/scenarios/all/csr/main.ts b/sites/benchmarks/src/scenarios/all/csr/main.ts new file mode 100644 index 00000000000..01d61076e34 --- /dev/null +++ b/sites/benchmarks/src/scenarios/all/csr/main.ts @@ -0,0 +1,16 @@ +import { runBenchmark } from "../../harness.js"; +import { BenchElement, template } from "../element.js"; + +BenchElement.define({ + name: "all-bench-element", + template, +}); + +let id = 0; + +runBenchmark(() => { + const count = ++id; + const el = document.createElement("all-bench-element") as BenchElement; + el.count = count; + return el; +}); diff --git a/sites/benchmarks/src/scenarios/all/element.ts b/sites/benchmarks/src/scenarios/all/element.ts new file mode 100644 index 00000000000..29d57422db9 --- /dev/null +++ b/sites/benchmarks/src/scenarios/all/element.ts @@ -0,0 +1,80 @@ +import { + attr, + FASTElement, + html, + nullableNumberConverter, +} from "@microsoft/fast-element"; +import { + BenchElement as AttrReflectBenchElement, + template as attrReflectTemplate, +} from "../attr-reflect/element.js"; +import { + BenchElement as BasicBenchElement, + template as basicTemplate, +} from "../basic/element.js"; +import { + BenchElement as BindEventBenchElement, + template as bindEventTemplate, +} from "../bind-event/element.js"; +import { BenchElement as DotSyntaxElement } from "../dot-syntax/element.js"; +import { + BenchElement as RefSlottedBenchElement, + template as refSlottedTemplate, +} from "../ref-slotted/element.js"; +import { + BenchElement as RepeatBenchElement, + template as repeatTemplate, +} from "../repeat/element.js"; +import { + BenchElement as WhenBenchElement, + template as whenTemplate, +} from "../when/element.js"; + +AttrReflectBenchElement.define({ + name: "attr-reflect-bench-element", + template: attrReflectTemplate, +}); + +BasicBenchElement.define({ + name: "basic-bench-element", + template: basicTemplate, +}); + +BindEventBenchElement.define({ + name: "bind-event-bench-element", + template: bindEventTemplate, +}); + +RefSlottedBenchElement.define({ + name: "ref-slotted-bench-element", + template: refSlottedTemplate, +}); + +RepeatBenchElement.define({ + name: "repeat-bench-element", + template: repeatTemplate, +}); + +WhenBenchElement.define({ + name: "when-bench-element", + template: whenTemplate, +}); + +DotSyntaxElement.define({ + name: "dot-syntax-bench-element", +}); + +export class BenchElement extends FASTElement { + @attr({ converter: nullableNumberConverter }) + count?: number; +} + +export const template = html` + + + + slotted content + + + +`; diff --git a/sites/benchmarks/src/scenarios/all/hydration/index.html b/sites/benchmarks/src/scenarios/all/hydration/index.html new file mode 100644 index 00000000000..a32384c7bba --- /dev/null +++ b/sites/benchmarks/src/scenarios/all/hydration/index.html @@ -0,0 +1,16 @@ + + + + + + all / hydration + + + +
+ +
+ + + + diff --git a/packages/bench/src/scenarios/bind-event/hydration/main.ts b/sites/benchmarks/src/scenarios/all/hydration/main.ts similarity index 93% rename from packages/bench/src/scenarios/bind-event/hydration/main.ts rename to sites/benchmarks/src/scenarios/all/hydration/main.ts index 17cbaddee9f..6559a23726f 100644 --- a/packages/bench/src/scenarios/bind-event/hydration/main.ts +++ b/sites/benchmarks/src/scenarios/all/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; RenderableFASTElement(BenchElement).defineAsync({ - name: "bench-element", + name: "all-bench-element", templateOptions: "defer-and-hydrate", }); diff --git a/packages/bench/src/scenarios/attr-reflect/csr/index.html b/sites/benchmarks/src/scenarios/attr-reflect/csr/index.html similarity index 100% rename from packages/bench/src/scenarios/attr-reflect/csr/index.html rename to sites/benchmarks/src/scenarios/attr-reflect/csr/index.html diff --git a/sites/benchmarks/src/scenarios/attr-reflect/csr/main.ts b/sites/benchmarks/src/scenarios/attr-reflect/csr/main.ts new file mode 100644 index 00000000000..497eea9005b --- /dev/null +++ b/sites/benchmarks/src/scenarios/attr-reflect/csr/main.ts @@ -0,0 +1,18 @@ +import { runBenchmark } from "../../harness.js"; +import { BenchElement, template } from "../element.js"; + +BenchElement.define({ + name: "attr-reflect-bench-element", + template, +}); + +let id = 0; + +runBenchmark(() => { + const count = ++id; + const el = document.createElement("attr-reflect-bench-element") as BenchElement; + el.label = `item-${count}`; + el.count = count; + el.active = true; + return el; +}); diff --git a/sites/benchmarks/src/scenarios/attr-reflect/element.ts b/sites/benchmarks/src/scenarios/attr-reflect/element.ts new file mode 100644 index 00000000000..c3ead39418e --- /dev/null +++ b/sites/benchmarks/src/scenarios/attr-reflect/element.ts @@ -0,0 +1,21 @@ +import { + attr, + FASTElement, + html, + nullableNumberConverter, +} from "@microsoft/fast-element"; + +export class BenchElement extends FASTElement { + @attr + label?: string; + + @attr({ converter: nullableNumberConverter }) + count?: number; + + @attr({ mode: "boolean" }) + active?: boolean; +} + +export const template = html` + ${x => x.label} (${x => x.count}) +`; diff --git a/packages/bench/src/scenarios/attr-reflect/hydration/index.html b/sites/benchmarks/src/scenarios/attr-reflect/hydration/index.html similarity index 100% rename from packages/bench/src/scenarios/attr-reflect/hydration/index.html rename to sites/benchmarks/src/scenarios/attr-reflect/hydration/index.html diff --git a/sites/benchmarks/src/scenarios/attr-reflect/hydration/main.ts b/sites/benchmarks/src/scenarios/attr-reflect/hydration/main.ts new file mode 100644 index 00000000000..8a107a80e03 --- /dev/null +++ b/sites/benchmarks/src/scenarios/attr-reflect/hydration/main.ts @@ -0,0 +1,17 @@ +import { RenderableFASTElement, TemplateElement } from "@microsoft/fast-html"; +import { signalDone } from "../../harness.js"; +import { BenchElement } from "../element.js"; + +RenderableFASTElement(BenchElement).defineAsync({ + name: "attr-reflect-bench-element", + templateOptions: "defer-and-hydrate", +}); + +performance.mark("bench-start"); + +TemplateElement.config({ + hydrationComplete() { + performance.mark("bench-end"); + signalDone(); + }, +}).define({ name: "f-template" }); diff --git a/packages/bench/src/scenarios/attr-reflect/hydration/render.ts b/sites/benchmarks/src/scenarios/attr-reflect/hydration/render.ts similarity index 77% rename from packages/bench/src/scenarios/attr-reflect/hydration/render.ts rename to sites/benchmarks/src/scenarios/attr-reflect/hydration/render.ts index 4f0ed4ffcf5..18a7391f300 100644 --- a/packages/bench/src/scenarios/attr-reflect/hydration/render.ts +++ b/sites/benchmarks/src/scenarios/attr-reflect/hydration/render.ts @@ -2,13 +2,13 @@ export function render(index: number): string { const count = `${index + 1}`; const label = `item-${count}`; return /* html */ ` - + - + `; } diff --git a/packages/bench/src/scenarios/attr-reflect/template.html b/sites/benchmarks/src/scenarios/attr-reflect/template.html similarity index 65% rename from packages/bench/src/scenarios/attr-reflect/template.html rename to sites/benchmarks/src/scenarios/attr-reflect/template.html index dcb945208c4..c02297339f3 100644 --- a/packages/bench/src/scenarios/attr-reflect/template.html +++ b/sites/benchmarks/src/scenarios/attr-reflect/template.html @@ -1,4 +1,4 @@ - + diff --git a/packages/bench/src/scenarios/basic/csr/index.html b/sites/benchmarks/src/scenarios/basic/csr/index.html similarity index 100% rename from packages/bench/src/scenarios/basic/csr/index.html rename to sites/benchmarks/src/scenarios/basic/csr/index.html diff --git a/sites/benchmarks/src/scenarios/basic/csr/main.ts b/sites/benchmarks/src/scenarios/basic/csr/main.ts new file mode 100644 index 00000000000..948c683dac1 --- /dev/null +++ b/sites/benchmarks/src/scenarios/basic/csr/main.ts @@ -0,0 +1,13 @@ +import { runBenchmark } from "../../harness.js"; +import { BenchElement, template } from "../element.js"; + +BenchElement.define({ + name: "basic-bench-element", + template, +}); + +runBenchmark(() => { + const el = document.createElement("basic-bench-element"); + el.innerHTML = "hello"; + return el; +}); diff --git a/sites/benchmarks/src/scenarios/basic/element.ts b/sites/benchmarks/src/scenarios/basic/element.ts new file mode 100644 index 00000000000..986d1346b2e --- /dev/null +++ b/sites/benchmarks/src/scenarios/basic/element.ts @@ -0,0 +1,7 @@ +import { FASTElement, html } from "@microsoft/fast-element"; + +export class BenchElement extends FASTElement {} + +export const template = html` + +`; diff --git a/packages/bench/src/scenarios/basic/hydration/index.html b/sites/benchmarks/src/scenarios/basic/hydration/index.html similarity index 100% rename from packages/bench/src/scenarios/basic/hydration/index.html rename to sites/benchmarks/src/scenarios/basic/hydration/index.html diff --git a/packages/bench/src/scenarios/basic/hydration/main.ts b/sites/benchmarks/src/scenarios/basic/hydration/main.ts similarity index 91% rename from packages/bench/src/scenarios/basic/hydration/main.ts rename to sites/benchmarks/src/scenarios/basic/hydration/main.ts index 84c6f4629da..96607c01b96 100644 --- a/packages/bench/src/scenarios/basic/hydration/main.ts +++ b/sites/benchmarks/src/scenarios/basic/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; BenchElement.defineAsync({ - name: "bench-element", + name: "basic-bench-element", }); performance.mark("bench-start"); diff --git a/packages/bench/src/scenarios/basic/hydration/render.ts b/sites/benchmarks/src/scenarios/basic/hydration/render.ts similarity index 70% rename from packages/bench/src/scenarios/basic/hydration/render.ts rename to sites/benchmarks/src/scenarios/basic/hydration/render.ts index 0d2d63c8299..0c13e232869 100644 --- a/packages/bench/src/scenarios/basic/hydration/render.ts +++ b/sites/benchmarks/src/scenarios/basic/hydration/render.ts @@ -1,10 +1,10 @@ export function render(): string { return /* html */ ` - + hello - + `; } diff --git a/packages/bench/src/scenarios/basic/template.html b/sites/benchmarks/src/scenarios/basic/template.html similarity index 62% rename from packages/bench/src/scenarios/basic/template.html rename to sites/benchmarks/src/scenarios/basic/template.html index c0be9263dff..6d7384de8a3 100644 --- a/packages/bench/src/scenarios/basic/template.html +++ b/sites/benchmarks/src/scenarios/basic/template.html @@ -1,4 +1,4 @@ - + diff --git a/packages/bench/src/scenarios/bind-event/csr/index.html b/sites/benchmarks/src/scenarios/bind-event/csr/index.html similarity index 100% rename from packages/bench/src/scenarios/bind-event/csr/index.html rename to sites/benchmarks/src/scenarios/bind-event/csr/index.html diff --git a/sites/benchmarks/src/scenarios/bind-event/csr/main.ts b/sites/benchmarks/src/scenarios/bind-event/csr/main.ts new file mode 100644 index 00000000000..2bb1c18f7b7 --- /dev/null +++ b/sites/benchmarks/src/scenarios/bind-event/csr/main.ts @@ -0,0 +1,9 @@ +import { runBenchmark } from "../../harness.js"; +import { BenchElement, template } from "../element.js"; + +BenchElement.define({ + name: "bind-event-bench-element", + template, +}); + +runBenchmark(() => document.createElement("bind-event-bench-element")); diff --git a/sites/benchmarks/src/scenarios/bind-event/element.ts b/sites/benchmarks/src/scenarios/bind-event/element.ts new file mode 100644 index 00000000000..098b12d4ad4 --- /dev/null +++ b/sites/benchmarks/src/scenarios/bind-event/element.ts @@ -0,0 +1,13 @@ +import { attr, FASTElement, html } from "@microsoft/fast-element"; + +export class BenchElement extends FASTElement { + @attr count: string = "0"; + + handleClick(): void { + this.count = String(parseInt(this.count, 10) + 1); + } +} + +export const template = html` + +`; diff --git a/packages/bench/src/scenarios/bind-event/hydration/index.html b/sites/benchmarks/src/scenarios/bind-event/hydration/index.html similarity index 100% rename from packages/bench/src/scenarios/bind-event/hydration/index.html rename to sites/benchmarks/src/scenarios/bind-event/hydration/index.html diff --git a/packages/bench/src/scenarios/repeat/hydration/main.ts b/sites/benchmarks/src/scenarios/bind-event/hydration/main.ts similarity index 92% rename from packages/bench/src/scenarios/repeat/hydration/main.ts rename to sites/benchmarks/src/scenarios/bind-event/hydration/main.ts index 17cbaddee9f..403a1513ed0 100644 --- a/packages/bench/src/scenarios/repeat/hydration/main.ts +++ b/sites/benchmarks/src/scenarios/bind-event/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; RenderableFASTElement(BenchElement).defineAsync({ - name: "bench-element", + name: "bind-event-bench-element", templateOptions: "defer-and-hydrate", }); diff --git a/packages/bench/src/scenarios/bind-event/hydration/render.ts b/sites/benchmarks/src/scenarios/bind-event/hydration/render.ts similarity index 74% rename from packages/bench/src/scenarios/bind-event/hydration/render.ts rename to sites/benchmarks/src/scenarios/bind-event/hydration/render.ts index c0856c6811c..cb8189b3fff 100644 --- a/packages/bench/src/scenarios/bind-event/hydration/render.ts +++ b/sites/benchmarks/src/scenarios/bind-event/hydration/render.ts @@ -1,9 +1,9 @@ export function render(): string { return /* html */ ` - + - + `; } diff --git a/packages/bench/src/scenarios/bind-event/template.html b/sites/benchmarks/src/scenarios/bind-event/template.html similarity index 71% rename from packages/bench/src/scenarios/bind-event/template.html rename to sites/benchmarks/src/scenarios/bind-event/template.html index 44cbfd5eb5b..922e7234649 100644 --- a/packages/bench/src/scenarios/bind-event/template.html +++ b/sites/benchmarks/src/scenarios/bind-event/template.html @@ -1,4 +1,4 @@ - + diff --git a/packages/bench/src/scenarios/dot-syntax/csr/index.html b/sites/benchmarks/src/scenarios/dot-syntax/csr/index.html similarity index 100% rename from packages/bench/src/scenarios/dot-syntax/csr/index.html rename to sites/benchmarks/src/scenarios/dot-syntax/csr/index.html diff --git a/packages/bench/src/scenarios/dot-syntax/csr/main.ts b/sites/benchmarks/src/scenarios/dot-syntax/csr/main.ts similarity index 55% rename from packages/bench/src/scenarios/dot-syntax/csr/main.ts rename to sites/benchmarks/src/scenarios/dot-syntax/csr/main.ts index b2ff1d05e48..94d489c25da 100644 --- a/packages/bench/src/scenarios/dot-syntax/csr/main.ts +++ b/sites/benchmarks/src/scenarios/dot-syntax/csr/main.ts @@ -3,14 +3,14 @@ import { runBenchmark } from "../../harness.js"; import { BenchElement } from "../element.js"; BenchElement.defineAsync({ - name: "bench-element", + name: "dot-syntax-bench-element", templateOptions: "defer-and-hydrate", }); TemplateElement.options({ - "bench-element": { observerMap: "all" }, + "dot-syntax-bench-element": { observerMap: "all" }, }).define({ name: "f-template" }); -await customElements.whenDefined("bench-element"); +await customElements.whenDefined("dot-syntax-bench-element"); -runBenchmark(() => document.createElement("bench-element")); +runBenchmark(() => document.createElement("dot-syntax-bench-element")); diff --git a/packages/bench/src/scenarios/dot-syntax/element.ts b/sites/benchmarks/src/scenarios/dot-syntax/element.ts similarity index 100% rename from packages/bench/src/scenarios/dot-syntax/element.ts rename to sites/benchmarks/src/scenarios/dot-syntax/element.ts diff --git a/packages/bench/src/scenarios/dot-syntax/hydration/index.html b/sites/benchmarks/src/scenarios/dot-syntax/hydration/index.html similarity index 100% rename from packages/bench/src/scenarios/dot-syntax/hydration/index.html rename to sites/benchmarks/src/scenarios/dot-syntax/hydration/index.html diff --git a/packages/bench/src/scenarios/dot-syntax/hydration/main.ts b/sites/benchmarks/src/scenarios/dot-syntax/hydration/main.ts similarity index 83% rename from packages/bench/src/scenarios/dot-syntax/hydration/main.ts rename to sites/benchmarks/src/scenarios/dot-syntax/hydration/main.ts index b3190bfda4f..e3347057e6d 100644 --- a/packages/bench/src/scenarios/dot-syntax/hydration/main.ts +++ b/sites/benchmarks/src/scenarios/dot-syntax/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; RenderableFASTElement(BenchElement).defineAsync({ - name: "bench-element", + name: "dot-syntax-bench-element", templateOptions: "defer-and-hydrate", }); @@ -16,6 +16,6 @@ TemplateElement.config({ }, }) .options({ - "bench-element": { observerMap: "all" }, + "dot-syntax-bench-element": { observerMap: "all" }, }) .define({ name: "f-template" }); diff --git a/packages/bench/src/scenarios/dot-syntax/hydration/render.ts b/sites/benchmarks/src/scenarios/dot-syntax/hydration/render.ts similarity index 84% rename from packages/bench/src/scenarios/dot-syntax/hydration/render.ts rename to sites/benchmarks/src/scenarios/dot-syntax/hydration/render.ts index 9baa2ab3b88..fcbc7566792 100644 --- a/packages/bench/src/scenarios/dot-syntax/hydration/render.ts +++ b/sites/benchmarks/src/scenarios/dot-syntax/hydration/render.ts @@ -1,6 +1,6 @@ export function render(): string { return /* html */ ` - + - + `; } diff --git a/packages/bench/src/scenarios/dot-syntax/template.html b/sites/benchmarks/src/scenarios/dot-syntax/template.html similarity index 82% rename from packages/bench/src/scenarios/dot-syntax/template.html rename to sites/benchmarks/src/scenarios/dot-syntax/template.html index 28dc743c5a7..f7d45a0a93c 100644 --- a/packages/bench/src/scenarios/dot-syntax/template.html +++ b/sites/benchmarks/src/scenarios/dot-syntax/template.html @@ -1,4 +1,4 @@ - +