diff --git a/package-lock.json b/package-lock.json index d4ceebe..ad1a16a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,8 @@ "dependencies": { "@apollo/client": "^3.11.8", "@ropescore/components": "^1.9.1", - "@ropescore/rulesets": "^0.11.0", - "@sentry/vue": "^8.35.0", + "@ropescore/rulesets": "^0.13.0", + "@sentry/vue": "^8.36.0", "@vue/apollo-composable": "^4.2.1", "@vue/tsconfig": "^0.5.1", "@vueuse/core": "^11.2.0", @@ -30,11 +30,12 @@ "@graphql-codegen/typescript": "^4.1.1", "@graphql-codegen/typescript-operations": "^4.3.1", "@graphql-codegen/typescript-vue-apollo": "^4.1.1", + "@parcel/watcher": "^2.4.1", "@types/eslint__js": "^8.42.3", "@types/uuid": "^10.0.0", "@vitejs/plugin-vue": "^5.1.4", "@vue/compiler-sfc": "^3.5.12", - "eslint": "^9.13.0", + "eslint": "^9.14.0", "eslint-plugin-vue": "^9.30.0", "neostandard": "^0.11.7", "typescript": "5.5", @@ -2503,9 +2504,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -2632,9 +2633,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz", - "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", + "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -3743,6 +3744,279 @@ "node": ">= 8" } }, + "node_modules/@parcel/watcher": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@repeaterjs/repeater": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.6.tgz", @@ -4551,121 +4825,121 @@ } }, "node_modules/@ropescore/rulesets": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@ropescore/rulesets/-/rulesets-0.11.0.tgz", - "integrity": "sha512-TsR0r0gmeBYzYouSomz49BjOSqaNDeCOCvrYUhR+qmGSd/kC9xAchrIhs7afnFLEYDjxC+yIx2aLeIsqpaTmhQ==" + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@ropescore/rulesets/-/rulesets-0.13.0.tgz", + "integrity": "sha512-kc+Q3LLIU8BKuuevVfEL2gkMjzK0fLdwUYHxBEumzXpkugkB88+AFCBFvgsgPk9dEc+Adc0JNXcDQ+a8qpvH5g==" }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.35.0.tgz", - "integrity": "sha512-uj9nwERm7HIS13f/Q52hF/NUS5Al8Ma6jkgpfYGeppYvU0uSjPkwMogtqoJQNbOoZg973tV8qUScbcWY616wNA==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.36.0.tgz", + "integrity": "sha512-AVJ9GmQW7jYxaal6hjQnnktsDNype01ajVC4q1RyOn1SfzSnXg6mXwj4xm4ovuJV+aBI7fAZJ55vEX5ASuP0ZA==", "dependencies": { - "@sentry/core": "8.35.0", - "@sentry/types": "8.35.0", - "@sentry/utils": "8.35.0" + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.35.0.tgz", - "integrity": "sha512-7bjSaUhL0bDArozre6EiIhhdWdT/1AWNWBC1Wc5w1IxEi5xF7nvF/FfvjQYrONQzZAI3HRxc45J2qhLUzHBmoQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.36.0.tgz", + "integrity": "sha512-aAMTm3uDBj8Ta7FwoohpLmJOpWzpWXvvtTbtmSgkeCtPJLUS8DZDCTZ9uCILUkpuYrv2savRUHsdPkxNjgL8FA==", "dependencies": { - "@sentry/core": "8.35.0", - "@sentry/types": "8.35.0", - "@sentry/utils": "8.35.0" + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.35.0.tgz", - "integrity": "sha512-3wkW03vXYMyWtTLxl9yrtkV+qxbnKFgfASdoGWhXzfLjycgT6o4/04eb3Gn71q9aXqRwH17ISVQbVswnRqMcmA==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.36.0.tgz", + "integrity": "sha512-lbic98GsSkDeinQDix54tBFEgHUlmBtO+HjXECk9jIE0vOzR4As20/s5ta46t1rKMLlnxOtJuT5jKXeUYogBUw==", "dependencies": { - "@sentry-internal/browser-utils": "8.35.0", - "@sentry/core": "8.35.0", - "@sentry/types": "8.35.0", - "@sentry/utils": "8.35.0" + "@sentry-internal/browser-utils": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.35.0.tgz", - "integrity": "sha512-TUrH6Piv19kvHIiRyIuapLdnuwxk/Un/l1WDCQfq7mK9p1Pac0FkQ7Uufjp6zY3lyhDDZQ8qvCS4ioCMibCwQg==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.36.0.tgz", + "integrity": "sha512-KJPLf+qYdrQdmouoAqIPZ2KeapIBlHWbzNdQqNxJFWLHFFjpLUtt0b+87ruvbA/q3NYy2fDwD7EB0tGS1RHBaA==", "dependencies": { - "@sentry-internal/replay": "8.35.0", - "@sentry/core": "8.35.0", - "@sentry/types": "8.35.0", - "@sentry/utils": "8.35.0" + "@sentry-internal/replay": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/browser": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.35.0.tgz", - "integrity": "sha512-WHfI+NoZzpCsmIvtr6ChOe7yWPLQyMchPnVhY3Z4UeC70bkYNdKcoj/4XZbX3m0D8+71JAsm0mJ9s9OC3Ue6MQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.36.0.tgz", + "integrity": "sha512-bLrQNe+wD4DkCfB8OD5TF3Rr8KA2+aTo5wF3t3Bf6KVn8//iX1ia1hhtptYiRnbRkG/0AEPxlqL6XfPZYVPQ5A==", "dependencies": { - "@sentry-internal/browser-utils": "8.35.0", - "@sentry-internal/feedback": "8.35.0", - "@sentry-internal/replay": "8.35.0", - "@sentry-internal/replay-canvas": "8.35.0", - "@sentry/core": "8.35.0", - "@sentry/types": "8.35.0", - "@sentry/utils": "8.35.0" + "@sentry-internal/browser-utils": "8.36.0", + "@sentry-internal/feedback": "8.36.0", + "@sentry-internal/replay": "8.36.0", + "@sentry-internal/replay-canvas": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/core": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.35.0.tgz", - "integrity": "sha512-Ci0Nmtw5ETWLqQJGY4dyF+iWh7PWKy6k303fCEoEmqj2czDrKJCp7yHBNV0XYbo00prj2ZTbCr6I7albYiyONA==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.36.0.tgz", + "integrity": "sha512-cbq1WQyRqc/+YpPhjwQxfniUM3ZxmO3Pm1oisTB8dw6mlbgQfGD6aznEIjXWWJY6k6acewJlMUx09N7DnprtBw==", "dependencies": { - "@sentry/types": "8.35.0", - "@sentry/utils": "8.35.0" + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/types": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.35.0.tgz", - "integrity": "sha512-AVEZjb16MlYPifiDDvJ19dPQyDn0jlrtC1PHs6ZKO+Rzyz+2EX2BRdszvanqArldexPoU1p5Bn2w81XZNXThBA==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.36.0.tgz", + "integrity": "sha512-K1pVFfdGHw115RzGHpwSOqoEPeayn4N1F9IfM0kxrYpQSbFT1X29eak88GBfC8gPiLEF0iFGlSaQ4ERmF7oRcA==", "engines": { "node": ">=14.18" } }, "node_modules/@sentry/utils": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.35.0.tgz", - "integrity": "sha512-MdMb6+uXjqND7qIPWhulubpSeHzia6HtxeJa8jYI09OCvIcmNGPydv/Gx/LZBwosfMHrLdTWcFH7Y7aCxrq7cg==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-oJ3EDPj0I00z+AwC3EWBpSidXYUoKW0Id8MfMQP5Hflniz3gif7UEReblT+FJgPEVo6+6uNzAncY0MuNMxmDKQ==", "dependencies": { - "@sentry/types": "8.35.0" + "@sentry/types": "8.36.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/vue": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-8.35.0.tgz", - "integrity": "sha512-fgF4N14Vx93CEHVpqyb6xTJibjFlJ66X/gwsFMblPr5KMtWeYzHGNHpu5whMGc5tsCU9cHxNnY605D/L4v2OFQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-8.36.0.tgz", + "integrity": "sha512-ymbqhQx0IX9K2fpGs5O+vctnZi95Pygesk3d8+MX85p0PpN2x+ppQ5lgZrVTSczG5BMMwfgKBF+YRkHew2lIIg==", "dependencies": { - "@sentry/browser": "8.35.0", - "@sentry/core": "8.35.0", - "@sentry/types": "8.35.0", - "@sentry/utils": "8.35.0" + "@sentry/browser": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { "node": ">=14.18" @@ -6605,6 +6879,18 @@ "node": ">=8" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -6928,20 +7214,20 @@ } }, "node_modules/eslint": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz", - "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", + "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", + "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.18.0", "@eslint/core": "^0.7.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.13.0", + "@eslint/js": "9.14.0", "@eslint/plugin-kit": "^0.2.0", - "@humanfs/node": "^0.16.5", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.1", + "@humanwhocodes/retry": "^0.4.0", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -6949,9 +7235,9 @@ "cross-spawn": "^7.0.2", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.1.0", - "eslint-visitor-keys": "^4.1.0", - "espree": "^10.2.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -7339,6 +7625,18 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@humanwhocodes/retry": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.0.tgz", + "integrity": "sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/eslint/node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -9497,6 +9795,12 @@ "tslib": "^2.0.3" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", diff --git a/package.json b/package.json index 36a1921..e1d2342 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,8 @@ "dependencies": { "@apollo/client": "^3.11.8", "@ropescore/components": "^1.9.1", - "@ropescore/rulesets": "^0.11.0", - "@sentry/vue": "^8.35.0", + "@ropescore/rulesets": "^0.13.0", + "@sentry/vue": "^8.36.0", "@vue/apollo-composable": "^4.2.1", "@vue/tsconfig": "^0.5.1", "@vueuse/core": "^11.2.0", @@ -40,11 +40,12 @@ "@graphql-codegen/typescript": "^4.1.1", "@graphql-codegen/typescript-operations": "^4.3.1", "@graphql-codegen/typescript-vue-apollo": "^4.1.1", + "@parcel/watcher": "^2.4.1", "@types/eslint__js": "^8.42.3", "@types/uuid": "^10.0.0", "@vitejs/plugin-vue": "^5.1.4", "@vue/compiler-sfc": "^3.5.12", - "eslint": "^9.13.0", + "eslint": "^9.14.0", "eslint-plugin-vue": "^9.30.0", "neostandard": "^0.11.7", "typescript": "5.5", diff --git a/src/App.vue b/src/App.vue index 35c5d63..f4ffd35 100644 --- a/src/App.vue +++ b/src/App.vue @@ -17,7 +17,7 @@ import NotificationCards from './components/NotificationCards.vue' } .grid-rows-score { - grid-template-rows: 9vh repeat(3, calc(82vh / 3)); + grid-template-rows: 9vh repeat(3, calc((82vh - 2rem) / 3)); } .touch-manipulation { diff --git a/src/components/BatteryStatus.vue b/src/components/BatteryStatus.vue index 918cc7b..d97261e 100644 --- a/src/components/BatteryStatus.vue +++ b/src/components/BatteryStatus.vue @@ -1,6 +1,6 @@ diff --git a/src/views/ropescore/Group.vue b/src/views/ropescore/Group.vue index 1cc9730..0643ae0 100644 --- a/src/views/ropescore/Group.vue +++ b/src/views/ropescore/Group.vue @@ -1,5 +1,5 @@ diff --git a/src/views/scoring/experiments/CirclePresentationAlt1.vue b/src/views/scoring/experiments/CirclePresentationAlt1.vue index bafc7d1..a8b4b95 100644 --- a/src/views/scoring/experiments/CirclePresentationAlt1.vue +++ b/src/views/scoring/experiments/CirclePresentationAlt1.vue @@ -120,6 +120,6 @@ const { addMark, tally, scoresheet } = useScoresheet() diff --git a/src/views/scoring/experiments/CirclePresentationAlt2.vue b/src/views/scoring/experiments/CirclePresentationAlt2.vue index 084a602..4c8c18b 100644 --- a/src/views/scoring/experiments/CirclePresentationAlt2.vue +++ b/src/views/scoring/experiments/CirclePresentationAlt2.vue @@ -239,9 +239,9 @@ const { addMark, tally, scoresheet } = useScoresheet() diff --git a/src/views/scoring/experiments/FiveScalePresentation.vue b/src/views/scoring/experiments/FiveScalePresentation.vue index eec603a..bc2e9e5 100644 --- a/src/views/scoring/experiments/FiveScalePresentation.vue +++ b/src/views/scoring/experiments/FiveScalePresentation.vue @@ -330,10 +330,10 @@ const result = computed(() => { diff --git a/src/views/scoring/experiments/FiveScalePresentation2024.vue b/src/views/scoring/experiments/FiveScalePresentation2024.vue index 563d9f7..a8b95e7 100644 --- a/src/views/scoring/experiments/FiveScalePresentation2024.vue +++ b/src/views/scoring/experiments/FiveScalePresentation2024.vue @@ -276,10 +276,10 @@ const result = computed(() => { diff --git a/src/views/scoring/experiments/SimplifiedPresentation.vue b/src/views/scoring/experiments/SimplifiedPresentation.vue index 85464c2..110a345 100644 --- a/src/views/scoring/experiments/SimplifiedPresentation.vue +++ b/src/views/scoring/experiments/SimplifiedPresentation.vue @@ -174,12 +174,12 @@ const result = computed(() => { diff --git a/src/views/scoring/ijru@4.0.0/DDDifficulty.vue b/src/views/scoring/ijru@4.0.0/DDDifficulty.vue index 7cc8573..046996a 100644 --- a/src/views/scoring/ijru@4.0.0/DDDifficulty.vue +++ b/src/views/scoring/ijru@4.0.0/DDDifficulty.vue @@ -86,7 +86,7 @@ import type { Model } from '../../../models' import type { PropType } from 'vue' type DiffBaseSchema = `diffL${1 | 2 | 3 | 4 | 5}` -export type Schema = 'break' | 'diffPlus' | 'diffMinus' | DiffBaseSchema +export type Schema = 'break' | `diff${'Plus' | 'Minus'}` | `${DiffBaseSchema}${'Plus' | 'Minus'}` | DiffBaseSchema defineProps({ model: { diff --git a/src/views/scoring/ijru@4.0.0/Presentation.vue b/src/views/scoring/ijru@4.0.0/Presentation.vue index 07b9f07..4c848b9 100644 --- a/src/views/scoring/ijru@4.0.0/Presentation.vue +++ b/src/views/scoring/ijru@4.0.0/Presentation.vue @@ -276,6 +276,6 @@ const missResult = computed(() => { diff --git a/src/views/servo/Entries.vue b/src/views/servo/Entries.vue index ae2127e..63964d2 100644 --- a/src/views/servo/Entries.vue +++ b/src/views/servo/Entries.vue @@ -5,7 +5,7 @@ import ServoEntryLink from '../../components/ServoEntryLink.vue' import BatteryStatus from '../../components/BatteryStatus.vue' import { useFetch } from '@vueuse/core' import { useServoAuth } from '../../hooks/servo-auth' -import { computed } from 'vue' +import { computed, watch } from 'vue' import { type AssignmentCodeLookupResponse } from '../../hooks/scoresheet' import { version } from '../../helpers' @@ -40,42 +40,36 @@ const { data, error, isFetching, execute: refetch } = useFetch(url, { } }).json() +watch(data, (newData, oldData) => { + if (oldData == null && newData?.Session.CurrentHeatNumber != null) { + scrollToHeat(newData.Session.CurrentHeatNumber) + } +}, { + flush: 'post' +}) + const currentHeat = computed(() => data.value?.Session.CurrentHeatNumber ?? 1) -const remainingEntries = computed(() => +const entries = computed(() => data.value ? [...data.value.Entries] - .filter(en => - !en.IsScratched && - !en.IsLocked && - ( - typeof en.HeatNumber !== 'number' || - en.HeatNumber >= currentHeat.value - ) && - !en.IsJudgeScored - ) .sort((a, b) => { if (a.HeatNumber !== b.HeatNumber) return (a.HeatNumber ?? Infinity) - (b.HeatNumber ?? Infinity) else return a.Participants[0].FirstName.localeCompare(b.Participants[0].FirstName) }) : [] ) -const completedEntries = computed(() => - data.value - ? [...data.value.Entries] - .filter(en => - remainingEntries.value.findIndex(rem => rem.CompEventEntryID === en.CompEventEntryID) === -1 - ) - .sort((a, b) => { - if (a.HeatNumber !== b.HeatNumber) return (b.HeatNumber ?? Infinity) - (a.HeatNumber ?? Infinity) - else return b.Participants[0].FirstName.localeCompare(a.Participants[0].FirstName) - }) - : [] -) + +function scrollToHeat (heatNumber: number) { + document.getElementById(`heat-${heatNumber}`)?.scrollIntoView({ + behavior: 'instant', + block: 'center', + }) +}