diff --git a/package.json b/package.json index cb14c84..245fa27 100644 --- a/package.json +++ b/package.json @@ -14,16 +14,17 @@ "pack-dist": "npm run clean && parcel build source/index.html --public-url .", "pack-sw": "rm -f dist/sw.js.map && workbox generateSW", "start": "npm run clean && parcel source/index.html --open", - "test": "lint-staged" + "test": "lint-staged && tsc --noEmit" }, "dependencies": { "boot-cell": "^2.0.0-beta.29", "browser-unhandled-rejection": "^1.0.2", - "cell-router": "^3.0.0-rc.7", + "cell-router": "^3.0.0-rc.8", "classnames": "^2.5.1", "dom-renderer": "^2.1.8", "koajax": "^1.1.2", "mobx": "^6.12.4", + "mobx-restful": "^1.0.0", "web-cell": "^3.0.0-rc.16", "web-utility": "^4.4.0" }, @@ -33,14 +34,14 @@ "@parcel/transformer-less": "2.12.0", "@parcel/transformer-typescript-tsc": "~2.12.0", "@parcel/transformer-webmanifest": "~2.12.0", - "@types/node": "^18.19.36", + "@types/node": "^18.19.37", "husky": "^9.0.11", "lint-staged": "^15.2.7", "parcel": "~2.12.0", "postcss": "^8.4.38", "postcss-modules": "^4.3.1", "prettier": "^3.3.2", - "typescript": "~5.4.5", + "typescript": "~5.5.2", "workbox-cli": "^7.1.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0f228c..8a05b76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,35 +10,38 @@ importers: dependencies: boot-cell: specifier: ^2.0.0-beta.29 - version: 2.0.0-beta.29(element-internals-polyfill@1.3.11)(iterable-observer@1.0.1)(typescript@5.4.5) + version: 2.0.0-beta.29(element-internals-polyfill@1.3.11)(iterable-observer@1.0.1)(typescript@5.5.2) browser-unhandled-rejection: specifier: ^1.0.2 version: 1.0.2 cell-router: - specifier: ^3.0.0-rc.7 - version: 3.0.0-rc.7(element-internals-polyfill@1.3.11)(typescript@5.4.5) + specifier: ^3.0.0-rc.8 + version: 3.0.0-rc.8(element-internals-polyfill@1.3.11)(typescript@5.5.2) classnames: specifier: ^2.5.1 version: 2.5.1 dom-renderer: specifier: ^2.1.8 - version: 2.1.8(typescript@5.4.5) + version: 2.1.8(typescript@5.5.2) koajax: specifier: ^1.1.2 - version: 1.1.2(typescript@5.4.5) + version: 1.1.2(typescript@5.5.2) mobx: specifier: ^6.12.4 version: 6.12.4 + mobx-restful: + specifier: ^1.0.0 + version: 1.0.0(mobx@6.12.4)(typescript@5.5.2) web-cell: specifier: ^3.0.0-rc.16 - version: 3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.4.5) + version: 3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.5.2) web-utility: specifier: ^4.4.0 - version: 4.4.0(typescript@5.4.5) + version: 4.4.0(typescript@5.5.2) devDependencies: '@parcel/config-default': specifier: ~2.12.0 - version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.4.5) + version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.5.2) '@parcel/packager-raw-url': specifier: ~2.12.0 version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) @@ -47,13 +50,13 @@ importers: version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/transformer-typescript-tsc': specifier: ~2.12.0 - version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(typescript@5.4.5) + version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(typescript@5.5.2) '@parcel/transformer-webmanifest': specifier: ~2.12.0 version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@types/node': - specifier: ^18.19.36 - version: 18.19.36 + specifier: ^18.19.37 + version: 18.19.38 husky: specifier: ^9.0.11 version: 9.0.11 @@ -62,7 +65,7 @@ importers: version: 15.2.7 parcel: specifier: ~2.12.0 - version: 2.12.0(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.4.5) + version: 2.12.0(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.5.2) postcss: specifier: ^8.4.38 version: 8.4.38 @@ -73,8 +76,8 @@ importers: specifier: ^3.3.2 version: 3.3.2 typescript: - specifier: ~5.4.5 - version: 5.4.5 + specifier: ~5.5.2 + version: 5.5.2 workbox-cli: specifier: ^7.1.0 version: 7.1.0 @@ -1136,68 +1139,68 @@ packages: '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - '@swc/core-darwin-arm64@1.6.1': - resolution: {integrity: sha512-u6GdwOXsOEdNAdSI6nWq6G2BQw5HiSNIZVcBaH1iSvBnxZvWbnIKyDiZKaYnDwTLHLzig2GuUjjE2NaCJPy4jg==} + '@swc/core-darwin-arm64@1.6.3': + resolution: {integrity: sha512-3r7cJf1BcE30iyF1rnOSKrEzIR+cqnyYSZvivrm62TZdXVsIjfXe1xulsKGxZgNeLY5erIu7ukvMvBvPhnQvqA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.6.1': - resolution: {integrity: sha512-/tXwQibkDNLVbAtr7PUQI0iQjoB708fjhDDDfJ6WILSBVZ3+qs/LHjJ7jHwumEYxVq1XA7Fv2Q7SE/ZSQoWHcQ==} + '@swc/core-darwin-x64@1.6.3': + resolution: {integrity: sha512-8GLZ23IgVpF5xh2SbS5ZW/12/EEBuRU1hFOLB5rKERJU0y1RJ6YhDMf/FuOWhfHQcFM7TeedBwHIzaF+tdKKlw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.6.1': - resolution: {integrity: sha512-aDgipxhJTms8iH78emHVutFR2c16LNhO+NTRCdYi+X4PyIn58/DyYTH6VDZ0AeEcS5f132ZFldU5AEgExwihXA==} + '@swc/core-linux-arm-gnueabihf@1.6.3': + resolution: {integrity: sha512-VQ/bduX7WhLOlGbJLMG7UH0LBehjjx43R4yuk55rjjJLqpvX5fQzMsWhQdIZ5vsc+4ORzdgtEAlpumTv6bsD1A==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.6.1': - resolution: {integrity: sha512-XkJ+eO4zUKG5g458RyhmKPyBGxI0FwfWFgpfIj5eDybxYJ6s4HBT5MoxyBLorB5kMlZ0XoY/usUMobPVY3nL0g==} + '@swc/core-linux-arm64-gnu@1.6.3': + resolution: {integrity: sha512-jHIQ/PCwtdDBIF/BiC5DochswuCAIW/T5skJ+eDMbta7+QtEnZCXTZWpT5ORoEY/gtsE2fjpOA4TS6fBBvXqUw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.6.1': - resolution: {integrity: sha512-dr6YbLBg/SsNxs1hDqJhxdcrS8dGMlOXJwXIrUvACiA8jAd6S5BxYCaqsCefLYXtaOmu0bbx1FB/evfodqB70Q==} + '@swc/core-linux-arm64-musl@1.6.3': + resolution: {integrity: sha512-gA6velEUD27Dwu0BlR9hCcFzkWq2YL2pDAU5qbgeuGhaMiUCBssfqTQB+2ctEnV+AZx+hSMJOHvtA+uFZjfRrw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.6.1': - resolution: {integrity: sha512-A0b/3V+yFy4LXh3O9umIE7LXPC7NBWdjl6AQYqymSMcMu0EOb1/iygA6s6uWhz9y3e172Hpb9b/CGsuD8Px/bg==} + '@swc/core-linux-x64-gnu@1.6.3': + resolution: {integrity: sha512-fy4qoBDr5I8r+ZNCZxs/oZcmu4j/8mtSud6Ka102DaSxEjNg0vfIdo9ITsVIPsofhUTmDKjQsPB2O7YUlJAioQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.6.1': - resolution: {integrity: sha512-5dJjlzZXhC87nZZZWbpiDP8kBIO0ibis893F/rtPIQBI5poH+iJuA32EU3wN4/WFHeK4et8z6SGSVghPtWyk4g==} + '@swc/core-linux-x64-musl@1.6.3': + resolution: {integrity: sha512-c/twcMbq/Gpq47G+b3kWgoaCujpXO11aRgJx6am+CprvP4uNeBHEpQkxD+DQmdWFHisZd0i9GB8NG3e7L9Rz9Q==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.6.1': - resolution: {integrity: sha512-HBi1ZlwvfcUibLtT3g/lP57FaDPC799AD6InolB2KSgkqyBbZJ9wAXM8/CcH67GLIP0tZ7FqblrJTzGXxetTJQ==} + '@swc/core-win32-arm64-msvc@1.6.3': + resolution: {integrity: sha512-y6RxMtX45acReQmzkxcEfJscfBXce6QjuNgWQHHs9exA592BZzmolDUwgmAyjyvopz1lWX+KdymdZFKvuDSx4w==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.6.1': - resolution: {integrity: sha512-AKqHohlWERclexar5y6ux4sQ8yaMejEXNxeKXm7xPhXrp13/1p4/I3E5bPVX/jMnvpm4HpcKSP0ee2WsqmhhPw==} + '@swc/core-win32-ia32-msvc@1.6.3': + resolution: {integrity: sha512-41h7z3xgukl1HDDwhquaeOPSP1OWeHl+mWKnJVmmwd3ui/oowUDCO856qa6JagBgPSnAGfyXwv6vthuXwyCcWA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.6.1': - resolution: {integrity: sha512-0dLdTLd+ONve8kgC5T6VQ2Y5G+OZ7y0ujjapnK66wpvCBM6BKYGdT/OKhZKZydrC5gUKaxFN6Y5oOt9JOFUrOQ==} + '@swc/core-win32-x64-msvc@1.6.3': + resolution: {integrity: sha512-//bnwo9b8Vp1ED06eXCHyGZ5xIpdkQgg2fuFDdtd1FITl7r5bdQh2ryRzPiKiGwgXZwZQitUshI4JeEX9IuW+Q==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.6.1': - resolution: {integrity: sha512-Yz5uj5hNZpS5brLtBvKY0L4s2tBAbQ4TjmW8xF1EC3YLFxQRrUjMP49Zm1kp/KYyYvTkSaG48Ffj2YWLu9nChw==} + '@swc/core@1.6.3': + resolution: {integrity: sha512-mZpei+LqE+AL+nwgERMQey9EJA9/yhHTN6nwbobH5GnSij/lhfTdGfAb1iumOrroqEcXbHUaK//7wOw7DjBGdA==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -1234,8 +1237,8 @@ packages: '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/node@18.19.36': - resolution: {integrity: sha512-tX1BNmYSWEvViftB26VLNxT6mEr37M7+ldUtq7rlKnv4/2fKYsJIOmqJAjT6h1DNuwQjIKgw3VJ/Dtw3yiTIQw==} + '@types/node@18.19.38': + resolution: {integrity: sha512-SApYXUF7si4JJ+lO2o6X60OPOnA6wPpbiB09GMCkQ+JAwpa9hxUVG8p7GzA08TKQn5OhzK57rj1wFj+185YsGg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1420,8 +1423,8 @@ packages: caniuse-lite@1.0.30001636: resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==} - cell-router@3.0.0-rc.7: - resolution: {integrity: sha512-59jKPsXlPV8SgFnfp0cllANfSQBQeQBM/7HoLvDCh8Q2FnRkizQRToUPqemhYlyOegWGpJ5+dFlgt8NjiIaanQ==} + cell-router@3.0.0-rc.8: + resolution: {integrity: sha512-Gv6qrAqBMNu6GA9fN4a44yncGe0MNi70sUQX8/5R8bFWyVllU3veoi+8Yz8YWDPLeiaUy3/yr1H5EXd82O0ZPQ==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1674,8 +1677,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.4.805: - resolution: {integrity: sha512-8W4UJwX/w9T0QSzINJckTKG6CYpAUTqsaWcWIsdud3I1FYJcMgW9QqT1/4CBff/pP/TihWh13OmiyY8neto6vw==} + electron-to-chromium@1.4.807: + resolution: {integrity: sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A==} element-internals-polyfill@1.3.11: resolution: {integrity: sha512-SQLQNVY4wMdpnP/F/HtalJbpEenQd46Avtjm5hvUdeTs3QU0zHFNX5/AmtQIPPcfzePb0ipCkQGY4GwYJIhLJA==} @@ -1770,6 +1773,10 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -1984,6 +1991,9 @@ packages: peerDependencies: postcss: ^8.1.0 + idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + idb@7.1.1: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} @@ -2062,8 +2072,9 @@ packages: resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} @@ -2336,8 +2347,8 @@ packages: engines: {node: '>=18.12.0'} hasBin: true - listr2@8.2.1: - resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} + listr2@8.2.2: + resolution: {integrity: sha512-sy0dq+JPS+RAFiFk2K8Nbub7khNmeeoFALNUJ4Wzk34wZKAzaOhEXqGWs4RA5aui0RaM6Hgn7VEKhCj0mlKNLA==} engines: {node: '>=18.0.0'} lmdb@2.8.5: @@ -2451,6 +2462,11 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + mobx-restful@1.0.0: + resolution: {integrity: sha512-b+3eAVusZdTvrK/ET8SU9Ih8NUA3PrBmtQDRIoGAEm5R8WqmcBTQyuM61SX7shsWTbTtL0T1Qe7m7x4fL6llLA==} + peerDependencies: + mobx: '>=6.11' + mobx@6.12.4: resolution: {integrity: sha512-uIymg89x+HmItX1p3MG+d09irn2k63J6biftZ5Ok+UpNojS1I3NJPLfcmJT9ANnUltNlHi+HQqrVyxiAN8ISYg==} @@ -2472,6 +2488,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + native-file-system-adapter@3.0.1: + resolution: {integrity: sha512-ocuhsYk2SY0906LPc3QIMW+rCV3MdhqGiy7wV5Bf0e8/5TsMjDdyIwhNiVPiKxzTJLDrLT6h8BoV9ERfJscKhw==} + engines: {node: '>=14.8.0'} + needle@3.3.1: resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} engines: {node: '>= 4.4.x'} @@ -2484,6 +2504,10 @@ packages: resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} engines: {node: ^16 || ^18 || >= 20} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + node-gyp-build-optional-packages@5.1.1: resolution: {integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==} hasBin: true @@ -3108,8 +3132,8 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} hasBin: true @@ -3191,6 +3215,14 @@ packages: element-internals-polyfill: ^1 jsdom: '>=21' + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web-streams-polyfill@4.0.0: + resolution: {integrity: sha512-0zJXHRAYEjM2tUfZ2DiSOHAa2aw1tisnnhU3ufD57R8iefL+DcdJyRBRyJpG+NUimDgbTI/lH+gAE1PAvV3Cgw==} + engines: {node: '>= 8'} + web-utility@4.4.0: resolution: {integrity: sha512-Bw0RcX5jBNuw+FQ2NKkkegNK07czjXoUtDNpRO+2ueNNv3FL8GsTTU27eM+17bzFPpYqukAdkCLJf5ZAYiDZtg==} peerDependencies: @@ -4179,14 +4211,14 @@ snapshots: transitivePeerDependencies: - '@parcel/core' - '@parcel/config-default@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.4.5)': + '@parcel/config-default@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.5.2)': dependencies: '@parcel/bundler-default': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/compressor-raw': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/core': 2.12.0(@swc/helpers@0.5.11) '@parcel/namer-default': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/optimizer-css': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) - '@parcel/optimizer-htmlnano': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(postcss@8.4.38)(terser@5.31.1)(typescript@5.4.5) + '@parcel/optimizer-htmlnano': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(postcss@8.4.38)(terser@5.31.1)(typescript@5.5.2) '@parcel/optimizer-image': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/optimizer-svgo': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/optimizer-swc': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) @@ -4317,10 +4349,10 @@ snapshots: transitivePeerDependencies: - '@parcel/core' - '@parcel/optimizer-htmlnano@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(postcss@8.4.38)(terser@5.31.1)(typescript@5.4.5)': + '@parcel/optimizer-htmlnano@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(postcss@8.4.38)(terser@5.31.1)(typescript@5.5.2)': dependencies: '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) - htmlnano: 2.1.1(postcss@8.4.38)(svgo@2.8.0)(terser@5.31.1)(typescript@5.4.5) + htmlnano: 2.1.1(postcss@8.4.38)(svgo@2.8.0)(terser@5.31.1)(typescript@5.5.2) nullthrows: 1.1.1 posthtml: 0.16.6 svgo: 2.8.0 @@ -4359,7 +4391,7 @@ snapshots: '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.12.0 - '@swc/core': 1.6.1(@swc/helpers@0.5.11) + '@swc/core': 1.6.3(@swc/helpers@0.5.11) nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' @@ -4375,7 +4407,7 @@ snapshots: '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) - '@swc/core': 1.6.1(@swc/helpers@0.5.11) + '@swc/core': 1.6.3(@swc/helpers@0.5.11) semver: 7.6.2 transitivePeerDependencies: - '@swc/helpers' @@ -4655,12 +4687,12 @@ snapshots: transitivePeerDependencies: - '@parcel/core' - '@parcel/transformer-typescript-tsc@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(typescript@5.4.5)': + '@parcel/transformer-typescript-tsc@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(typescript@5.5.2)': dependencies: '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@parcel/source-map': 2.1.1 - '@parcel/ts-utils': 2.12.0(typescript@5.4.5) - typescript: 5.4.5 + '@parcel/ts-utils': 2.12.0(typescript@5.5.2) + typescript: 5.5.2 transitivePeerDependencies: - '@parcel/core' @@ -4673,10 +4705,10 @@ snapshots: transitivePeerDependencies: - '@parcel/core' - '@parcel/ts-utils@2.12.0(typescript@5.4.5)': + '@parcel/ts-utils@2.12.0(typescript@5.5.2)': dependencies: nullthrows: 1.1.1 - typescript: 5.4.5 + typescript: 5.5.2 '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)': dependencies: @@ -4828,51 +4860,51 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.11 - '@swc/core-darwin-arm64@1.6.1': + '@swc/core-darwin-arm64@1.6.3': optional: true - '@swc/core-darwin-x64@1.6.1': + '@swc/core-darwin-x64@1.6.3': optional: true - '@swc/core-linux-arm-gnueabihf@1.6.1': + '@swc/core-linux-arm-gnueabihf@1.6.3': optional: true - '@swc/core-linux-arm64-gnu@1.6.1': + '@swc/core-linux-arm64-gnu@1.6.3': optional: true - '@swc/core-linux-arm64-musl@1.6.1': + '@swc/core-linux-arm64-musl@1.6.3': optional: true - '@swc/core-linux-x64-gnu@1.6.1': + '@swc/core-linux-x64-gnu@1.6.3': optional: true - '@swc/core-linux-x64-musl@1.6.1': + '@swc/core-linux-x64-musl@1.6.3': optional: true - '@swc/core-win32-arm64-msvc@1.6.1': + '@swc/core-win32-arm64-msvc@1.6.3': optional: true - '@swc/core-win32-ia32-msvc@1.6.1': + '@swc/core-win32-ia32-msvc@1.6.3': optional: true - '@swc/core-win32-x64-msvc@1.6.1': + '@swc/core-win32-x64-msvc@1.6.3': optional: true - '@swc/core@1.6.1(@swc/helpers@0.5.11)': + '@swc/core@1.6.3(@swc/helpers@0.5.11)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.8 optionalDependencies: - '@swc/core-darwin-arm64': 1.6.1 - '@swc/core-darwin-x64': 1.6.1 - '@swc/core-linux-arm-gnueabihf': 1.6.1 - '@swc/core-linux-arm64-gnu': 1.6.1 - '@swc/core-linux-arm64-musl': 1.6.1 - '@swc/core-linux-x64-gnu': 1.6.1 - '@swc/core-linux-x64-musl': 1.6.1 - '@swc/core-win32-arm64-msvc': 1.6.1 - '@swc/core-win32-ia32-msvc': 1.6.1 - '@swc/core-win32-x64-msvc': 1.6.1 + '@swc/core-darwin-arm64': 1.6.3 + '@swc/core-darwin-x64': 1.6.3 + '@swc/core-linux-arm-gnueabihf': 1.6.3 + '@swc/core-linux-arm64-gnu': 1.6.3 + '@swc/core-linux-arm64-musl': 1.6.3 + '@swc/core-linux-x64-gnu': 1.6.3 + '@swc/core-linux-x64-musl': 1.6.3 + '@swc/core-win32-arm64-msvc': 1.6.3 + '@swc/core-win32-ia32-msvc': 1.6.3 + '@swc/core-win32-x64-msvc': 1.6.3 '@swc/helpers': 0.5.11 '@swc/counter@0.1.3': {} @@ -4897,11 +4929,11 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 18.19.36 + '@types/node': 18.19.38 '@types/minimist@1.2.5': {} - '@types/node@18.19.36': + '@types/node@18.19.38': dependencies: undici-types: 5.26.5 @@ -4911,7 +4943,7 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 18.19.36 + '@types/node': 18.19.38 '@types/trusted-types@2.0.7': {} @@ -5025,16 +5057,16 @@ snapshots: boolbase@1.0.0: {} - boot-cell@2.0.0-beta.29(element-internals-polyfill@1.3.11)(iterable-observer@1.0.1)(typescript@5.4.5): + boot-cell@2.0.0-beta.29(element-internals-polyfill@1.3.11)(iterable-observer@1.0.1)(typescript@5.5.2): dependencies: '@swc/helpers': 0.5.11 classnames: 2.5.1 - dom-renderer: 2.1.8(typescript@5.4.5) + dom-renderer: 2.1.8(typescript@5.5.2) iterable-observer: 1.0.1 mobx: 6.12.4 regenerator-runtime: 0.14.1 - web-cell: 3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.4.5) - web-utility: 4.4.0(typescript@5.4.5) + web-cell: 3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.5.2) + web-utility: 4.4.0(typescript@5.5.2) transitivePeerDependencies: - '@webcomponents/webcomponentsjs' - core-js @@ -5071,7 +5103,7 @@ snapshots: browserslist@4.23.1: dependencies: caniuse-lite: 1.0.30001636 - electron-to-chromium: 1.4.805 + electron-to-chromium: 1.4.807 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.1) @@ -5114,15 +5146,15 @@ snapshots: caniuse-lite@1.0.30001636: {} - cell-router@3.0.0-rc.7(element-internals-polyfill@1.3.11)(typescript@5.4.5): + cell-router@3.0.0-rc.8(element-internals-polyfill@1.3.11)(typescript@5.5.2): dependencies: '@swc/helpers': 0.5.11 - dom-renderer: 2.1.8(typescript@5.4.5) + dom-renderer: 2.1.8(typescript@5.5.2) mobx: 6.12.4 regenerator-runtime: 0.14.1 urlpattern-polyfill: 10.0.0 - web-cell: 3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.4.5) - web-utility: 4.4.0(typescript@5.4.5) + web-cell: 3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.5.2) + web-utility: 4.4.0(typescript@5.5.2) transitivePeerDependencies: - '@webcomponents/webcomponentsjs' - core-js @@ -5238,14 +5270,14 @@ snapshots: dependencies: browserslist: 4.23.1 - cosmiconfig@9.0.0(typescript@5.4.5): + cosmiconfig@9.0.0(typescript@5.5.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 cross-spawn@7.0.3: dependencies: @@ -5335,10 +5367,10 @@ snapshots: detect-libc@2.0.3: {} - dom-renderer@2.1.8(typescript@5.4.5): + dom-renderer@2.1.8(typescript@5.5.2): dependencies: tslib: 2.6.3 - web-utility: 4.4.0(typescript@5.4.5) + web-utility: 4.4.0(typescript@5.5.2) transitivePeerDependencies: - typescript @@ -5374,7 +5406,7 @@ snapshots: dependencies: jake: 10.9.1 - electron-to-chromium@1.4.805: {} + electron-to-chromium@1.4.807: {} element-internals-polyfill@1.3.11: {} @@ -5508,6 +5540,12 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + optional: true + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -5666,9 +5704,9 @@ snapshots: hosted-git-info@2.8.9: {} - htmlnano@2.1.1(postcss@8.4.38)(svgo@2.8.0)(terser@5.31.1)(typescript@5.4.5): + htmlnano@2.1.1(postcss@8.4.38)(svgo@2.8.0)(terser@5.31.1)(typescript@5.5.2): dependencies: - cosmiconfig: 9.0.0(typescript@5.4.5) + cosmiconfig: 9.0.0(typescript@5.5.2) posthtml: 0.16.6 timsort: 0.3.0 optionalDependencies: @@ -5706,6 +5744,8 @@ snapshots: dependencies: postcss: 8.4.38 + idb-keyval@6.2.1: {} + idb@7.1.1: {} ieee754@1.2.1: {} @@ -5787,7 +5827,7 @@ snapshots: dependencies: ci-info: 2.0.0 - is-core-module@2.13.1: + is-core-module@2.14.0: dependencies: hasown: 2.0.2 @@ -5930,12 +5970,12 @@ snapshots: kind-of@6.0.3: {} - koajax@1.1.2(typescript@5.4.5): + koajax@1.1.2(typescript@5.5.2): dependencies: '@swc/helpers': 0.5.11 iterable-observer: 1.0.1 regenerator-runtime: 0.14.1 - web-utility: 4.4.0(typescript@5.4.5) + web-utility: 4.4.0(typescript@5.5.2) transitivePeerDependencies: - typescript @@ -6011,7 +6051,7 @@ snapshots: debug: 4.3.5 execa: 8.0.1 lilconfig: 3.1.2 - listr2: 8.2.1 + listr2: 8.2.2 micromatch: 4.0.7 pidtree: 0.6.0 string-argv: 0.3.2 @@ -6019,7 +6059,7 @@ snapshots: transitivePeerDependencies: - supports-color - listr2@8.2.1: + listr2@8.2.2: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -6146,6 +6186,20 @@ snapshots: minimist@1.2.8: {} + mobx-restful@1.0.0(mobx@6.12.4)(typescript@5.5.2): + dependencies: + '@swc/helpers': 0.5.11 + idb-keyval: 6.2.1 + koajax: 1.1.2(typescript@5.5.2) + mobx: 6.12.4 + native-file-system-adapter: 3.0.1 + regenerator-runtime: 0.14.1 + web-streams-polyfill: 4.0.0 + web-utility: 4.4.0(typescript@5.5.2) + transitivePeerDependencies: + - jsdom + - typescript + mobx@6.12.4: {} ms@2.1.2: {} @@ -6170,6 +6224,10 @@ snapshots: nanoid@3.3.7: {} + native-file-system-adapter@3.0.1: + optionalDependencies: + fetch-blob: 3.2.0 + needle@3.3.1: dependencies: iconv-lite: 0.6.3 @@ -6180,6 +6238,9 @@ snapshots: node-addon-api@7.1.0: {} + node-domexception@1.0.0: + optional: true + node-gyp-build-optional-packages@5.1.1: dependencies: detect-libc: 2.0.3 @@ -6270,9 +6331,9 @@ snapshots: registry-url: 5.1.0 semver: 6.3.1 - parcel@2.12.0(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.4.5): + parcel@2.12.0(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.5.2): dependencies: - '@parcel/config-default': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.4.5) + '@parcel/config-default': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(postcss@8.4.38)(terser@5.31.1)(typescript@5.5.2) '@parcel/core': 2.12.0(@swc/helpers@0.5.11) '@parcel/diagnostic': 2.12.0 '@parcel/events': 2.12.0 @@ -6507,7 +6568,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -6839,7 +6900,7 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript@5.4.5: {} + typescript@5.5.2: {} unbox-primitive@1.0.2: dependencies: @@ -6916,23 +6977,28 @@ snapshots: weak-lru-cache@1.2.2: {} - web-cell@3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.4.5): + web-cell@3.0.0-rc.16(element-internals-polyfill@1.3.11)(typescript@5.5.2): dependencies: '@swc/helpers': 0.5.11 - dom-renderer: 2.1.8(typescript@5.4.5) + dom-renderer: 2.1.8(typescript@5.5.2) element-internals-polyfill: 1.3.11 mobx: 6.12.4 regenerator-runtime: 0.14.1 - web-utility: 4.4.0(typescript@5.4.5) + web-utility: 4.4.0(typescript@5.5.2) transitivePeerDependencies: - typescript - web-utility@4.4.0(typescript@5.4.5): + web-streams-polyfill@3.3.3: + optional: true + + web-streams-polyfill@4.0.0: {} + + web-utility@4.4.0(typescript@5.5.2): dependencies: '@swc/helpers': 0.5.11 element-internals-polyfill: 1.3.11 regenerator-runtime: 0.14.1 - typescript: 5.4.5 + typescript: 5.5.2 webidl-conversions@4.0.2: {} diff --git a/source/data/navigator-menu.ts b/source/data/navigator-menu.ts index 9e3a1b7..0e394d4 100644 --- a/source/data/navigator-menu.ts +++ b/source/data/navigator-menu.ts @@ -10,7 +10,7 @@ export const topMenu: NavMenu[] = [ { title: '中文讨论', target: '_blank', - href: 'https://github.com/JSCIG/es-discuss/discussions', + href: 'https://github.com/orgs/JSCIG/discussions', }, { title: '开放组织', target: '_blank', href: 'https://github.com/JSCIG' }, { @@ -43,7 +43,11 @@ export const topMenu: NavMenu[] = [ target: '_blank', href: 'https://compat-table.github.io/compat-table/es6/', }, - { title: 'ES 6 学习', target: '_blank', href: 'http://es6-features.org/' }, + { + title: 'ES 6 学习', + target: '_blank', + href: 'https://rse.github.io/es6-features/', + }, { title: '技术委员会', target: '_blank', href: 'https://tc39.es/' }, { title: '标准补丁', diff --git a/source/model/Member.ts b/source/model/Member.ts index 014661b..8f4826f 100644 --- a/source/model/Member.ts +++ b/source/model/Member.ts @@ -1,4 +1,5 @@ import { observable } from 'mobx'; +import { BaseModel, toggle } from 'mobx-restful'; import { service } from './service'; @@ -8,21 +9,15 @@ export type Member = Record< > & Partial>; -export class MemberModel { - @observable - accessor loading = false; - +export class MemberModel extends BaseModel { @observable accessor list: Member[] = []; + @toggle('downloading') async getList() { - this.loading = true; - const { body } = await service.get( 'https://jscig.github.io/dataset/members-jscig.json', ); - this.loading = false; - return (this.list = body); } } diff --git a/source/model/Proposal.ts b/source/model/Proposal.ts index 7fea4fa..47ea468 100644 --- a/source/model/Proposal.ts +++ b/source/model/Proposal.ts @@ -1,4 +1,5 @@ import { observable, reaction } from 'mobx'; +import { BaseModel, toggle } from 'mobx-restful'; import { service } from './service'; import { Member } from './Member'; @@ -34,29 +35,27 @@ export type ProposalSortKey = | `${'stargazers' | 'open_issues'}_count` | 'meeting_at'; -export class ProposalModel { - @observable - accessor loading = false; - +export class ProposalModel extends BaseModel { @observable accessor list: Proposal[] = []; @observable - accessor sortKey: ProposalSortKey; + accessor sortKey: ProposalSortKey | undefined; @observable accessor finishedList: Proposal[] = []; constructor() { + super(); + reaction( () => this.sortKey, key => this.sortBy(key), ); } + @toggle('downloading') async getList() { - this.loading = true; - const { body } = await service.get( 'dataset/proposals.min.json', ); @@ -77,8 +76,6 @@ export class ProposalModel { [[], []] as Proposal[][], ); - this.loading = false; - return (this.finishedList = finished), (this.list = processing); } diff --git a/source/page/Main.tsx b/source/page/Main.tsx index dec6cb3..1f31b81 100644 --- a/source/page/Main.tsx +++ b/source/page/Main.tsx @@ -193,13 +193,13 @@ export class MainPage extends HTMLElement {

JSCIG 成员

- + 0}> {member.list.map(this.renderMember)}

TC39 既成提案

- + 0}> {proposal.finishedList.map(this.renderProposal)} diff --git a/source/page/Proposal.tsx b/source/page/Proposal.tsx index fafafb5..c7ca0ce 100644 --- a/source/page/Proposal.tsx +++ b/source/page/Proposal.tsx @@ -179,7 +179,7 @@ export class ProposalPage extends HTMLElement { className="stretched-link" type="badge" // @ts-ignore - bg={StageMap[stage + 1]} + bg={StageMap[stage + 1] || 'dark'} path="proposals" filter="stage" value={stage} @@ -232,14 +232,13 @@ export class ProposalPage extends HTMLElement { ); render() { - const { stage, author, champion, data } = this, - { loading } = proposal; + const { stage, author, champion, data } = this; return ( <>

ECMAScript 标准提案

- + 0}>

{stage != null ? `处于 Stage ${stage} 的` : null} {author && `${author} 提交的`} diff --git a/tsconfig.json b/tsconfig.json index 7130958..bfb7275 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,7 @@ "jsx": "react-jsx", "jsxImportSource": "dom-renderer", "lib": ["ES2023", "DOM"], + "skipLibCheck": true }, - "include": ["source/**/*"], + "include": ["source/**/*"] }