${id} |
diff --git a/frameworks/keyed/uhtml/src/table-tr.js b/frameworks/keyed/uhtml/src/table-tr.js
index 381a5f823..550d75502 100644
--- a/frameworks/keyed/uhtml/src/table-tr.js
+++ b/frameworks/keyed/uhtml/src/table-tr.js
@@ -1,4 +1,4 @@
-import {html} from 'uhtml';
+import {htmlFor} from 'uhtml/keyed';
const stateHandler = new WeakMap;
@@ -15,13 +15,13 @@ export default (state) => {
const handler = stateHandler.get(state);
const {data, selected} = state;
- return html.for(state)`
+ return htmlFor(state)`
${
data.map(item => {
const {id, label} = item;
- return html.for(data, id)`
-
+ return htmlFor(data, id)`
+
${id} |
${label}
diff --git a/frameworks/keyed/uhtml/src/table.js b/frameworks/keyed/uhtml/src/table.js
index 0bd742bfe..b3d810f86 100644
--- a/frameworks/keyed/uhtml/src/table.js
+++ b/frameworks/keyed/uhtml/src/table.js
@@ -1,18 +1,18 @@
-import {html} from 'uhtml';
+import {htmlFor} from 'uhtml/keyed';
export default (state) => {
const {data, selected, selectRow, removeRow} = state;
- return html.for(state)`
+ return htmlFor(state)`
${
data.map(({id, label, html}) => html`
${id} |
- ${label}
+ ${label}
|
-
+
|
diff --git a/frameworks/non-keyed/uhtml/index.html b/frameworks/non-keyed/uhtml/index.html
index 54749a117..52140bd54 100644
--- a/frameworks/non-keyed/uhtml/index.html
+++ b/frameworks/non-keyed/uhtml/index.html
@@ -1,6 +1,6 @@
-µHTML non-keyed
+µhtml non-keyed
-
+
diff --git a/frameworks/non-keyed/uhtml/package-lock.json b/frameworks/non-keyed/uhtml/package-lock.json
index 60bf98a3a..ad83672b6 100644
--- a/frameworks/non-keyed/uhtml/package-lock.json
+++ b/frameworks/non-keyed/uhtml/package-lock.json
@@ -10,50 +10,13 @@
"license": "Apache-2.0",
"dependencies": {
"js-framework-benchmark-utils": "^0.3.2",
- "uhtml": "^3.0.1"
+ "uhtml": "^4.0.0"
},
"devDependencies": {
- "@rollup/plugin-node-resolve": "^13.3.0",
- "@ungap/degap": "^0.2.8",
- "rollup": "^2.75.7",
- "rollup-plugin-includepaths": "^0.2.4",
- "rollup-plugin-minify-html-literals": "^1.2.6",
- "rollup-plugin-terser": "^7.0.2"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
- "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
- "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
- "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@rollup/plugin-node-resolve": "^15.2.3",
+ "@rollup/plugin-terser": "^0.4.4",
+ "rollup": "^4.4.0",
+ "rollup-plugin-minify-html-literals-v3": "^1.3.3"
}
},
"node_modules/@jridgewell/gen-mapping": {
@@ -121,42 +84,239 @@
"dev": true
},
"node_modules/@rollup/plugin-node-resolve": {
- "version": "13.3.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz",
- "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==",
+ "version": "15.2.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz",
+ "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==",
"dev": true,
"dependencies": {
- "@rollup/pluginutils": "^3.1.0",
- "@types/resolve": "1.17.1",
+ "@rollup/pluginutils": "^5.0.1",
+ "@types/resolve": "1.20.2",
"deepmerge": "^4.2.2",
- "is-builtin-module": "^3.1.0",
+ "is-builtin-module": "^3.2.1",
"is-module": "^1.0.0",
- "resolve": "^1.19.0"
+ "resolve": "^1.22.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.78.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-terser": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz",
+ "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==",
+ "dev": true,
+ "dependencies": {
+ "serialize-javascript": "^6.0.1",
+ "smob": "^1.0.0",
+ "terser": "^5.17.4"
},
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=14.0.0"
},
"peerDependencies": {
- "rollup": "^2.42.0"
+ "rollup": "^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-terser/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/@rollup/pluginutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
- "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz",
+ "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==",
"dev": true,
"dependencies": {
- "@types/estree": "0.0.39",
- "estree-walker": "^1.0.1",
- "picomatch": "^2.2.2"
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
},
"engines": {
- "node": ">= 8.0.0"
+ "node": ">=14.0.0"
},
"peerDependencies": {
- "rollup": "^1.20.0||^2.0.0"
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
}
},
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.0.tgz",
+ "integrity": "sha512-AD30wtT58hZZsXIeiksytR6Gm2gofUxn5KqrDBdyzekgxXB9bXN9dqWIEcPfYo9lA9MVRm0lC42LuYGsscRxiA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.0.tgz",
+ "integrity": "sha512-PlqvhzFxy5FRTB3wLSsGgPhiakv9jrgfu8tjSojLJFP0CdhfZSRDOFvQ2emWLUEBOSCnjpL63XSuFVMwg59ZtA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.0.tgz",
+ "integrity": "sha512-BYmhn1Hebmkmdyn5mBFy7HptowyjtMALyTpywNSNZYigWwyv4L8WQVr0XvOQE7eE6WoKrupSVxtIcGZW8MgZUA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.0.tgz",
+ "integrity": "sha512-7GXsMiX/giTDBMs/gL3rePLBRC6gV7DT7JQ0lNqoNDe5hm+Gm4NEWky9fwEmer64fIUbOsTiLUsyQ5fDXUbXPA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.0.tgz",
+ "integrity": "sha512-kavnkaV50Gu6vESlOAwUad92wYY9mUrcaPmhzOQZKlNFnzWAUYyD/uhHmWvY7Z2chtwhWlng0LvCRBF5QiPO7w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.0.tgz",
+ "integrity": "sha512-2hBHEtCjnBTeuLvDAlHRCqsuFQSyAhTQs9vbZEVBTV8ap35pDI1ukPbIVFFCWNvL/KE7xRor5YZFvfyGCfvLnA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.0.tgz",
+ "integrity": "sha512-u7zy0Ygzl7O5Gvr9TSNSQj+DBzvMJC7rXfyQNgZ13KwkhgJ8z0z+gt2AO4RPd01rZioMQ2/TA24XGGg4xqhd0Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.0.tgz",
+ "integrity": "sha512-VvpAdh5SgewmWo8sa5QPYG8aSKH9hU2Kr5+3of0GzBI/8n8PBqhLyvF0DbO+zDW8j5IM8NDebv82MpHrZaD0Cw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.0.tgz",
+ "integrity": "sha512-3g6jaXxXVFaDnFoMn2+E3ludGcXFfEr6lDn+S1lh9Qe0JcL9sPt1wGh0g2cKIlb6OakNOFopZqJ5Yub9F7gQlA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.0.tgz",
+ "integrity": "sha512-jnoDRkg5Ve6Y1qx2m1+ehouOLQ4ddc15/iQSfFjcDUL6bqLdJJ5c4CKfUy/C6W1oCU4la+hMkveE9GG7ECN7dg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.0.tgz",
+ "integrity": "sha512-SoLQmJanozFow8o50ul2a3R+J7nk4pEhrp83PzTSXs5OzOmIZbPSp5kihtQ3f6ypo4MCbmh0V8Ev0bJIEp4Azw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.0.tgz",
+ "integrity": "sha512-Zaz6itfQ5sQF5Cia49YDW1ZTr+YfIKzTSb9npLyvQn346n7ulRDOv2J7GnL0zcOJ3cqW7HzG/ZisyO6fH43J9g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@types/clean-css": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.6.tgz",
@@ -168,9 +328,9 @@
}
},
"node_modules/@types/estree": {
- "version": "0.0.39",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
- "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
"dev": true
},
"node_modules/@types/html-minifier": {
@@ -197,13 +357,10 @@
"dev": true
},
"node_modules/@types/resolve": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
- "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
+ "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/@types/uglify-js": {
"version": "3.17.1",
@@ -214,26 +371,13 @@
"source-map": "^0.6.1"
}
},
- "node_modules/@ungap/degap": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@ungap/degap/-/degap-0.2.8.tgz",
- "integrity": "sha512-avav4FVH0W/eyMCAVNHw19Oi7Hv2Ebv5xIhUhagOAuZIQEj6S+C9rVCjXGf8sxdIbwK13woArhsfzeZlYgjCpg==",
- "dev": true
- },
- "node_modules/@webreflection/mapset": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@webreflection/mapset/-/mapset-1.0.1.tgz",
- "integrity": "sha512-cfHPwoviBs7Y/sewLQqE6Ic3XJfUr+LbNEYtR2uW4Od41y5Mg8TTQ8hUb3zBp3cepZTPpwhI6YMnjWk+olqO2w=="
- },
"node_modules/@webreflection/uparser": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@webreflection/uparser/-/uparser-0.2.4.tgz",
- "integrity": "sha512-4cYSODHAbjsIlvlTLffaN+QiFcNSLTYkRLOrDqpK+m6Bzqyjudq/xHTiSl4/LxeijcQE48nJQuaBnJcnizXxrA=="
- },
- "node_modules/@webreflection/uwire": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@webreflection/uwire/-/uwire-1.2.1.tgz",
- "integrity": "sha512-3FIqIFzqij5NPWKWCQKJhfcRQpfS8RHAcceFosSDDiD6WrMHRAp3QoBqYt7dfrPhJ8Fg2b6T6Ea8ttClzVkZHA=="
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@webreflection/uparser/-/uparser-0.3.3.tgz",
+ "integrity": "sha512-XxGfo8jr2eVuvP5lrmwjgMAM7QjtZ0ngFD+dd9Fd3GStcEb4QhLlTiqZYF5O3l5k4sU/V6ZiPrVCzCWXWFEmCw==",
+ "dependencies": {
+ "domconstants": "^1.1.6"
+ }
},
"node_modules/acorn": {
"version": "8.10.0",
@@ -247,23 +391,6 @@
"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/async-tag": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/async-tag/-/async-tag-0.2.0.tgz",
- "integrity": "sha512-hNstPiQvxVVJdkBjfBsNb3zDEM2IUY3Xp7qaadEnhaGXq1/OFdS+TuwjEJxnIvZRm7e13KrPW74fIeDra7P5vw=="
- },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -292,20 +419,6 @@
"upper-case": "^1.1.1"
}
},
- "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/clean-css": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
@@ -318,27 +431,17 @@
"node": ">= 4.0"
}
},
- "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/custom-function": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/custom-function/-/custom-function-1.0.6.tgz",
+ "integrity": "sha512-styyvwOki/EYr+VBe7/m9xAjq6uKx87SpDKIpFRdTQnofBDSZpBEFc9qJLmaJihjjTeEpAIJ+nz+9fUXj+BPNQ=="
+ },
"node_modules/deepmerge": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
@@ -348,19 +451,15 @@
"node": ">=0.10.0"
}
},
- "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/domconstants": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/domconstants/-/domconstants-1.1.6.tgz",
+ "integrity": "sha512-CuaDrThJ4VM+LyZ4ax8n52k0KbLJZtffyGkuj1WhpTRRcSfcy/9DfOBa68jenhX96oNUTunblSJEUNC4baFdmQ=="
},
"node_modules/estree-walker": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
- "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "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/fsevents": {
@@ -395,15 +494,6 @@
"node": ">= 0.4.0"
}
},
- "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/he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@@ -467,57 +557,11 @@
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
"dev": true
},
- "node_modules/jest-worker": {
- "version": "26.6.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
- "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jest-worker/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/js-framework-benchmark-utils": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/js-framework-benchmark-utils/-/js-framework-benchmark-utils-0.3.2.tgz",
"integrity": "sha512-UvzhokIJ9bwcTNc677X+f2OionK0/GeAA/tCpZleT+mZub5yset/RX1uJX660tv3pEX1MG7Y53iIjhrIZfR1Rg=="
},
- "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/jsx2tag": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/jsx2tag/-/jsx2tag-0.3.1.tgz",
- "integrity": "sha512-S1ACW3N4yDiE49x9y9f2d+utB3Kci3A3Bx7wb2bK+5sl0B60lZM60pZ8L/A+FA55DYuAy2fgHu1i47yt+xgL9Q=="
- },
"node_modules/lower-case": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
@@ -533,12 +577,6 @@
"sourcemap-codec": "^1.4.8"
}
},
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
"node_modules/minify-html-literals": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/minify-html-literals/-/minify-html-literals-1.3.5.tgz",
@@ -633,70 +671,75 @@
}
},
"node_modules/rollup": {
- "version": "2.79.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
- "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.0.tgz",
+ "integrity": "sha512-3L67ubCc1Qm49wUodsQ72FM6JmJ9M37d63rGPjxbcKrzNJrwFipl+lDNHeWd6BId09S6Tb9KiBgYKbWhIuqVyg==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
},
"optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.4.0",
+ "@rollup/rollup-android-arm64": "4.4.0",
+ "@rollup/rollup-darwin-arm64": "4.4.0",
+ "@rollup/rollup-darwin-x64": "4.4.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.4.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.4.0",
+ "@rollup/rollup-linux-arm64-musl": "4.4.0",
+ "@rollup/rollup-linux-x64-gnu": "4.4.0",
+ "@rollup/rollup-linux-x64-musl": "4.4.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.4.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.4.0",
+ "@rollup/rollup-win32-x64-msvc": "4.4.0",
"fsevents": "~2.3.2"
}
},
- "node_modules/rollup-plugin-includepaths": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/rollup-plugin-includepaths/-/rollup-plugin-includepaths-0.2.4.tgz",
- "integrity": "sha512-iZen+XKVExeCzk7jeSZPJKL7B67slZNr8GXSC5ROBXtDGXDBH8wdjMfdNW5hf9kPt+tHyIvWh3wlE9bPrZL24g==",
- "dev": true
- },
- "node_modules/rollup-plugin-minify-html-literals": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/rollup-plugin-minify-html-literals/-/rollup-plugin-minify-html-literals-1.2.6.tgz",
- "integrity": "sha512-JRq2fjlCTiw0zu+1Sy3ClHGCxA79dWGr4HLHWSQgd060StVW9fBVksuj8Xw/suPkNSGClJf/4xNQ1MF6JeXPaw==",
+ "node_modules/rollup-plugin-minify-html-literals-v3": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-minify-html-literals-v3/-/rollup-plugin-minify-html-literals-v3-1.3.3.tgz",
+ "integrity": "sha512-UVWmBRiEy/ZHBqqdPzmfBxfiMkXikmBTLlbuOlzuGayeE9Of1W+l1MENmQ0X1SG+3AR3N94nVl1YktrV0YVTgQ==",
"dev": true,
"dependencies": {
+ "@rollup/pluginutils": "^5.0.2",
"minify-html-literals": "^1.3.5",
- "rollup-pluginutils": "^2.8.2"
- },
- "peerDependencies": {
- "rollup": "^0.65.2 || ^1.0.0 || ^2.0.0"
+ "rollup": "^3.20.2",
+ "tslib": "^2.5.0",
+ "typescript": "^5.0.4"
}
},
- "node_modules/rollup-plugin-terser": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
- "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
- "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser",
+ "node_modules/rollup-plugin-minify-html-literals-v3/node_modules/rollup": {
+ "version": "3.29.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+ "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
"dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.10.4",
- "jest-worker": "^26.2.1",
- "serialize-javascript": "^4.0.0",
- "terser": "^5.0.0"
+ "bin": {
+ "rollup": "dist/bin/rollup"
},
- "peerDependencies": {
- "rollup": "^2.0.0"
+ "engines": {
+ "node": ">=14.18.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
}
},
- "node_modules/rollup-pluginutils": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
- "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
+ "node_modules/rollup-plugin-minify-html-literals-v3/node_modules/typescript": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"dev": true,
- "dependencies": {
- "estree-walker": "^0.6.1"
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
}
},
- "node_modules/rollup-pluginutils/node_modules/estree-walker": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
- "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
- "dev": true
- },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -717,14 +760,11 @@
}
]
},
- "node_modules/serialize-javascript": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
- "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
+ "node_modules/smob": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz",
+ "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==",
+ "dev": true
},
"node_modules/source-map": {
"version": "0.6.1",
@@ -752,18 +792,6 @@
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
"dev": true
},
- "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/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",
@@ -794,6 +822,12 @@
"node": ">=10"
}
},
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
"node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
@@ -807,11 +841,6 @@
"node": ">=4.2.0"
}
},
- "node_modules/uarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/uarray/-/uarray-1.0.0.tgz",
- "integrity": "sha512-LHmiAd5QuAv7pU2vbh+Zq9YOnqVK0H764p2Ozinpfy9ka58OID4IsGLiXsitqH7n0NAIDxvax1A/kDXpii/Ckg=="
- },
"node_modules/udomdiff": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/udomdiff/-/udomdiff-1.1.0.tgz",
@@ -829,26 +858,15 @@
"node": ">=0.8.0"
}
},
- "node_modules/uhandlers": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/uhandlers/-/uhandlers-0.7.0.tgz",
- "integrity": "sha512-MG6Q6Dc+xIfyFnHU8APpR916XWhnb+m30qVjPXxAmHUaVFmzUAcd6BCWws5LedyG43onCk1RRPNq0N02wcn4NA==",
- "dependencies": {
- "uarray": "^1.0.0"
- }
- },
"node_modules/uhtml": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/uhtml/-/uhtml-3.2.1.tgz",
- "integrity": "sha512-ONLzfU9zALEth7ZCm4RJm5ja6KB9jTOJCLZfHFAhzLh0nv/4TJAs7etiRT8V9bS0Lz8erXNT9rEcppscZH8UJQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/uhtml/-/uhtml-4.0.0.tgz",
+ "integrity": "sha512-ZmS2T3iao6sxBGAfP99x63DP7B0VeyeDSX0M3cqLHAC7UCqVH61cUx/QoDX8+0NZ+pHytdim/U5bLKTejoFDIA==",
"dependencies": {
- "@webreflection/mapset": "^1.0.1",
- "@webreflection/uparser": "^0.2.4",
- "@webreflection/uwire": "^1.2.1",
- "async-tag": "^0.2.0",
- "jsx2tag": "^0.3.1",
- "udomdiff": "^1.1.0",
- "uhandlers": "^0.7.0"
+ "@webreflection/uparser": "^0.3.3",
+ "custom-function": "^1.0.6",
+ "domconstants": "^1.1.6",
+ "udomdiff": "^1.1.0"
}
},
"node_modules/upper-case": {
diff --git a/frameworks/non-keyed/uhtml/package.json b/frameworks/non-keyed/uhtml/package.json
index fe79934bc..189093fbc 100644
--- a/frameworks/non-keyed/uhtml/package.json
+++ b/frameworks/non-keyed/uhtml/package.json
@@ -3,6 +3,7 @@
"version": "1.0.0",
"description": "uhtml demo",
"main": "index.js",
+ "type": "module",
"js-framework-benchmark": {
"frameworkVersionFromPackage": "uhtml",
"frameworkHomeURL": "https://github.com/WebReflection/uhtml",
@@ -29,14 +30,12 @@
"homepage": "https://github.com/krausest/js-framework-benchmark#readme",
"dependencies": {
"js-framework-benchmark-utils": "^0.3.2",
- "uhtml": "^3.0.1"
+ "uhtml": "^4.0.0"
},
"devDependencies": {
- "@rollup/plugin-node-resolve": "^13.3.0",
- "@ungap/degap": "^0.2.8",
- "rollup": "^2.75.7",
- "rollup-plugin-includepaths": "^0.2.4",
- "rollup-plugin-minify-html-literals": "^1.2.6",
- "rollup-plugin-terser": "^7.0.2"
+ "@rollup/plugin-node-resolve": "^15.2.3",
+ "@rollup/plugin-terser": "^0.4.4",
+ "rollup": "^4.4.0",
+ "rollup-plugin-minify-html-literals-v3": "^1.3.3"
}
}
diff --git a/frameworks/non-keyed/uhtml/rollup.config.js b/frameworks/non-keyed/uhtml/rollup.config.js
index b32000496..bc89ecf2c 100644
--- a/frameworks/non-keyed/uhtml/rollup.config.js
+++ b/frameworks/non-keyed/uhtml/rollup.config.js
@@ -1,7 +1,6 @@
-import minifyHTML from 'rollup-plugin-minify-html-literals';
+import minifyHTML from 'rollup-plugin-minify-html-literals-v3';
import {nodeResolve} from '@rollup/plugin-node-resolve';
-import {terser} from 'rollup-plugin-terser';
-import includePaths from 'rollup-plugin-includepaths';
+import terser from '@rollup/plugin-terser';
export default {
input: 'src/index.js',
@@ -13,21 +12,11 @@ export default {
}
}
}),
- includePaths({
- include: {
- '@ungap/create-content': 'node_modules/@ungap/degap/create-content.js'
- },
- }),
nodeResolve(),
terser()
],
output: {
- esModule: false,
+ esModule: true,
file: 'dist/index.js',
- exports: 'named',
- format: 'iife',
- name: 'app'
}
};
-
-
diff --git a/frameworks/non-keyed/uhtml/src/jumbotron.js b/frameworks/non-keyed/uhtml/src/jumbotron.js
index 00858e0e7..34c03c7ce 100644
--- a/frameworks/non-keyed/uhtml/src/jumbotron.js
+++ b/frameworks/non-keyed/uhtml/src/jumbotron.js
@@ -10,27 +10,27 @@ export default ({run, runLots, add, update, clear, swapRows}) => html`
+ id="run" onclick=${run}>Create 1,000 rows
+ id="runlots" onclick=${runLots}>Create 10,000 rows
+ id="add" onclick=${add}>Append 1,000 rows
+ id="update" onclick=${update}>Update every 10th row
+ id="clear" onclick=${clear}>Clear
+ id="swaprows" onclick=${swapRows}>Swap Rows
diff --git a/frameworks/non-keyed/uhtml/src/table-delegate.js b/frameworks/non-keyed/uhtml/src/table-delegate.js
index b1a2d3a79..2966ef4fe 100644
--- a/frameworks/non-keyed/uhtml/src/table-delegate.js
+++ b/frameworks/non-keyed/uhtml/src/table-delegate.js
@@ -10,7 +10,7 @@ export default (state) => {
const {data, selected} = state;
return html`
+ onclick=${handler} .state=${state}>
${
data.map(({id, label}) => html`
| |