diff --git a/.github/workflows/deploy-app-staging.yml b/.github/workflows/deploy-app-staging.yml index 5a7e83ee..73e91c70 100644 --- a/.github/workflows/deploy-app-staging.yml +++ b/.github/workflows/deploy-app-staging.yml @@ -3,16 +3,20 @@ name: Build and Deploy to staging on Toolforge on: push: branches: - - main + - development - staging/** - gh-actions/** +concurrency: + group: '${{ github.workflow }}' + cancel-in-progress: true + jobs: build-deploy: name: Ship and Deploy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up node uses: actions/setup-node@v3.8.1 with: diff --git a/.github/workflows/deploy-app.yml b/.github/workflows/deploy-app.yml index bfebee20..c22e2a29 100644 --- a/.github/workflows/deploy-app.yml +++ b/.github/workflows/deploy-app.yml @@ -4,14 +4,17 @@ on: push: branches: - main - - gh-actions/** + +concurrency: + group: '${{ github.workflow }}' + cancel-in-progress: true jobs: build-deploy: name: Ship and Deploy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up node uses: actions/setup-node@v3.8.1 with: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 94f7d781..85b64098 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,7 +6,7 @@ jobs: phpcs-lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -22,7 +22,7 @@ jobs: js-lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v3.8.1 diff --git a/.github/workflows/schedule-release.yml b/.github/workflows/schedule-release.yml new file mode 100644 index 00000000..d0bfc910 --- /dev/null +++ b/.github/workflows/schedule-release.yml @@ -0,0 +1,30 @@ +## Creates a PR from development to main every 2 weeks +name: Release request from development to main + +on: + schedule: + - cron: '0 0 1,15 * *' + workflow_dispatch: + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: development + - name: Branch out Release + run: | + git config --global user.name "GitHub Actions" + git config --global user.email "<>" + git branch release/$(date +'%Y-%m-%d') + git push -u origin release/$(date +'%Y-%m-%d') + - name: Create PR + run: | + gh pr create -B main -H release/$(date +'%Y-%m-%d') \ + --title "Release Mismatch Finder to Production" \ + --body "Review and release the latest changes." + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 69e9f740..6893c65f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,7 +6,7 @@ jobs: feature-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -28,7 +28,7 @@ jobs: js-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v3.8.1 @@ -47,7 +47,7 @@ jobs: timeout-minutes: 30 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 diff --git a/.github/workflows/update-toc.yml b/.github/workflows/update-toc.yml new file mode 100644 index 00000000..7647704b --- /dev/null +++ b/.github/workflows/update-toc.yml @@ -0,0 +1,17 @@ +name: Update Table of Contents (ToC) + +on: + pull_request: + paths: + - docs/** + +jobs: + generateTOC: + name: TOC Generator + runs-on: ubuntu-latest + steps: + - uses: technote-space/toc-generator@v4 + with: + TARGET_PATHS: ./docs/*.md + CREATE_PR: true + diff --git a/README.md b/README.md index cbdf8df9..e265b91c 100644 --- a/README.md +++ b/README.md @@ -16,5 +16,5 @@ A tool to review mismatches between Wikidata and External Databases. * Follow [these instructions](docs/README.md#quickstart) to setup your local environment. * Start the application server with `sail up` * Stop the application server with `sail down` -* Make sure to setup a local testing oauth consumer by following [these instructions](docs/README.md#oauth) +* Make sure to setup a local testing oauth consumer by following [these instructions](docs/README.md#working-with-oauth) * If you encounter any issues, see the [troubleshooting section](docs/README.md#troubleshooting). diff --git a/app/Jobs/ImportCSV.php b/app/Jobs/ImportCSV.php index 3b2b6bff..ef926ce1 100644 --- a/app/Jobs/ImportCSV.php +++ b/app/Jobs/ImportCSV.php @@ -49,6 +49,9 @@ public function handle(CSVImportReader $reader) DB::transaction(function () use ($reader, $filepath) { $reader->lines($filepath)->each(function ($mismatchLine) { $mismatch = Mismatch::make($mismatchLine); + if ($mismatch->type == null) { + $mismatch->type = 'statement'; + } $mismatch->importMeta()->associate($this->meta); $mismatch->save(); }); diff --git a/app/Jobs/ValidateCSV.php b/app/Jobs/ValidateCSV.php index e7fc7679..57e0c6e8 100644 --- a/app/Jobs/ValidateCSV.php +++ b/app/Jobs/ValidateCSV.php @@ -136,6 +136,10 @@ private function checkFieldErrors($mismatch): ?string 'prohibited_if:wikidata_value,', 'max:' . $rules['meta_wikidata_value']['max_length'], 'regex:' . $rules['meta_wikidata_value']['format'] + ], + 'type' => [ + 'string', + 'in:' . implode(',', $rules['type']['accepted_values']), ] ]); diff --git a/app/Models/Mismatch.php b/app/Models/Mismatch.php index de7ab903..5d32bf7e 100644 --- a/app/Models/Mismatch.php +++ b/app/Models/Mismatch.php @@ -22,7 +22,8 @@ class Mismatch extends Model 'meta_wikidata_value', 'external_value', 'external_url', - 'review_status' + 'review_status', + 'type' ]; /** @@ -31,7 +32,8 @@ class Mismatch extends Model * @var array */ protected $attributes = [ - 'review_status' => 'pending' + 'review_status' => 'pending', + 'type' => 'statement' ]; public function importMeta() diff --git a/composer.json b/composer.json index d3fe63ca..00662f9a 100644 --- a/composer.json +++ b/composer.json @@ -9,23 +9,23 @@ "ext-zip": "*", "fideloper/proxy": "^4.4", "fruitcake/laravel-cors": "^2.2.0", - "guzzlehttp/guzzle": "^7.6.1", - "inertiajs/inertia-laravel": "0.6.9", - "kevinrob/guzzle-cache-middleware": "^4.0.2", + "guzzlehttp/guzzle": "^7.8", + "inertiajs/inertia-laravel": "^0.6.10", + "kevinrob/guzzle-cache-middleware": "^4.1.2", "laravel/framework": "^8.83.26", "laravel/sanctum": "^2.15.1", - "laravel/socialite": "^5.5.6", - "laravel/tinker": "^2.7.3", + "laravel/socialite": "^5.9", + "laravel/tinker": "^2.8", "taavi/laravel-socialite-mediawiki": "^1.4" }, "require-dev": { "facade/ignition": "^2.17.7", "fakerphp/faker": "^1.20.0", "laravel/dusk": "^6.25.1", - "laravel/sail": "^1.19.0", - "mockery/mockery": "^1.5.0", + "laravel/sail": "^1.19", + "mockery/mockery": "^1.6", "nunomaduro/collision": "^5.11", - "phpunit/phpunit": "^9.6.8", + "phpunit/phpunit": "^9.6", "squizlabs/php_codesniffer": "^3.7.2", "timacdonald/log-fake": "^1.9" }, diff --git a/composer.lock b/composer.lock index 441689e1..0e583dc6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "26f729e65d51c073a69ed09df4e6ebca", + "content-hash": "9fc5131c1e234ab2a85bb3a0986d46e9", "packages": [ { "name": "asm89/stack-cors", @@ -945,22 +945,22 @@ }, { "name": "inertiajs/inertia-laravel", - "version": "v0.6.9", + "version": "v0.6.10", "source": { "type": "git", "url": "https://github.com/inertiajs/inertia-laravel.git", - "reference": "b983c6eb2fe7460df6170060cdd7b47b5ef6832a" + "reference": "609f960c9392e61f8f10418e333599cf1b12efbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/b983c6eb2fe7460df6170060cdd7b47b5ef6832a", - "reference": "b983c6eb2fe7460df6170060cdd7b47b5ef6832a", + "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/609f960c9392e61f8f10418e333599cf1b12efbe", + "reference": "609f960c9392e61f8f10418e333599cf1b12efbe", "shasum": "" }, "require": { "ext-json": "*", "laravel/framework": "^6.0|^7.0|^8.74|^9.0|^10.0", - "php": "^7.2|~8.0.0|~8.1.0|~8.2.0" + "php": "^7.2|~8.0.0|~8.1.0|~8.2.0|~8.3.0" }, "require-dev": { "mockery/mockery": "^1.3.3", @@ -1005,7 +1005,7 @@ ], "support": { "issues": "https://github.com/inertiajs/inertia-laravel/issues", - "source": "https://github.com/inertiajs/inertia-laravel/tree/v0.6.9" + "source": "https://github.com/inertiajs/inertia-laravel/tree/v0.6.10" }, "funding": [ { @@ -1013,7 +1013,7 @@ "type": "github" } ], - "time": "2023-01-17T01:02:51+00:00" + "time": "2023-09-13T02:24:55+00:00" }, { "name": "kevinrob/guzzle-cache-middleware", @@ -1400,16 +1400,16 @@ }, { "name": "laravel/socialite", - "version": "v5.9.0", + "version": "v5.9.1", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "14acfa3262875f180fba51efe3c7aaa089a9ef24" + "reference": "49ecc4c907ed88c1254bae991c6b2948945645c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/14acfa3262875f180fba51efe3c7aaa089a9ef24", - "reference": "14acfa3262875f180fba51efe3c7aaa089a9ef24", + "url": "https://api.github.com/repos/laravel/socialite/zipball/49ecc4c907ed88c1254bae991c6b2948945645c2", + "reference": "49ecc4c907ed88c1254bae991c6b2948945645c2", "shasum": "" }, "require": { @@ -1466,7 +1466,7 @@ "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" }, - "time": "2023-09-05T15:20:21+00:00" + "time": "2023-09-07T16:13:53+00:00" }, { "name": "laravel/tinker", @@ -1960,16 +1960,16 @@ }, { "name": "nesbot/carbon", - "version": "2.69.0", + "version": "2.71.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c" + "reference": "98276233188583f2ff845a0f992a235472d9466a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4308217830e4ca445583a37d1bf4aff4153fa81c", - "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/98276233188583f2ff845a0f992a235472d9466a", + "reference": "98276233188583f2ff845a0f992a235472d9466a", "shasum": "" }, "require": { @@ -2062,7 +2062,7 @@ "type": "tidelift" } ], - "time": "2023-08-03T09:00:52+00:00" + "time": "2023-09-25T11:31:05+00:00" }, { "name": "nikic/php-parser", @@ -2408,16 +2408,16 @@ }, { "name": "psr/http-client", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { @@ -2454,9 +2454,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" + "source": "https://github.com/php-fig/http-client" }, - "time": "2023-04-10T20:12:12+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", @@ -2669,16 +2669,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.20", + "version": "v0.11.21", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "0fa27040553d1d280a67a4393194df5228afea5b" + "reference": "bcb22101107f3bf770523b65630c9d547f60c540" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/0fa27040553d1d280a67a4393194df5228afea5b", - "reference": "0fa27040553d1d280a67a4393194df5228afea5b", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/bcb22101107f3bf770523b65630c9d547f60c540", + "reference": "bcb22101107f3bf770523b65630c9d547f60c540", "shasum": "" }, "require": { @@ -2708,6 +2708,10 @@ "extra": { "branch-alias": { "dev-main": "0.11.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false } }, "autoload": { @@ -2739,9 +2743,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.20" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.21" }, - "time": "2023-07-31T14:32:22+00:00" + "time": "2023-09-17T21:15:54+00:00" }, { "name": "ralouphie/getallheaders", @@ -3274,16 +3278,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.26", + "version": "v5.4.29", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9" + "reference": "328c6fcfd2f90b64c16efaf0ea67a311d672f078" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/b26719213a39c9ba57520cbc5e52bfcc5e8d92f9", - "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/328c6fcfd2f90b64c16efaf0ea67a311d672f078", + "reference": "328c6fcfd2f90b64c16efaf0ea67a311d672f078", "shasum": "" }, "require": { @@ -3325,7 +3329,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.26" + "source": "https://github.com/symfony/error-handler/tree/v5.4.29" }, "funding": [ { @@ -3341,7 +3345,7 @@ "type": "tidelift" } ], - "time": "2023-07-16T16:48:57+00:00" + "time": "2023-09-06T21:54:06+00:00" }, { "name": "symfony/event-dispatcher", @@ -3648,16 +3652,16 @@ }, { "name": "symfony/http-kernel", - "version": "v5.4.28", + "version": "v5.4.29", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "127a2322ca1828157901092518b8ea8e4e1109d4" + "reference": "f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/127a2322ca1828157901092518b8ea8e4e1109d4", - "reference": "127a2322ca1828157901092518b8ea8e4e1109d4", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7", + "reference": "f53265fc6bd2a7f3a4ed4e443b76e750348ac3f7", "shasum": "" }, "require": { @@ -3740,7 +3744,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.28" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.29" }, "funding": [ { @@ -3756,7 +3760,7 @@ "type": "tidelift" } ], - "time": "2023-08-26T13:47:51+00:00" + "time": "2023-09-30T06:31:17+00:00" }, { "name": "symfony/mime", @@ -4896,16 +4900,16 @@ }, { "name": "symfony/string", - "version": "v5.4.26", + "version": "v5.4.29", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "1181fe9270e373537475e826873b5867b863883c" + "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/1181fe9270e373537475e826873b5867b863883c", - "reference": "1181fe9270e373537475e826873b5867b863883c", + "url": "https://api.github.com/repos/symfony/string/zipball/e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", + "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", "shasum": "" }, "require": { @@ -4962,7 +4966,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.26" + "source": "https://github.com/symfony/string/tree/v5.4.29" }, "funding": [ { @@ -4978,7 +4982,7 @@ "type": "tidelift" } ], - "time": "2023-06-28T12:46:07+00:00" + "time": "2023-09-13T11:47:41+00:00" }, { "name": "symfony/translation", @@ -5157,16 +5161,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.28", + "version": "v5.4.29", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "684b36ff415e1381d4a943c3ca2502cd2debad73" + "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/684b36ff415e1381d4a943c3ca2502cd2debad73", - "reference": "684b36ff415e1381d4a943c3ca2502cd2debad73", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6172e4ae3534d25ee9e07eb487c20be7760fcc65", + "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65", "shasum": "" }, "require": { @@ -5226,7 +5230,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.28" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.29" }, "funding": [ { @@ -5242,7 +5246,7 @@ "type": "tidelift" } ], - "time": "2023-08-24T13:38:36+00:00" + "time": "2023-09-12T10:09:58+00:00" }, { "name": "taavi/laravel-socialite-mediawiki", @@ -6555,16 +6559,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.27", + "version": "9.2.29", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1" + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b0a88255cb70d52653d80c890bd7f38740ea50d1", - "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", "shasum": "" }, "require": { @@ -6621,7 +6625,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.27" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" }, "funding": [ { @@ -6629,7 +6633,7 @@ "type": "github" } ], - "time": "2023-07-26T13:44:30+00:00" + "time": "2023-09-19T04:57:46+00:00" }, { "name": "phpunit/php-file-iterator", @@ -6874,16 +6878,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.11", + "version": "9.6.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "810500e92855eba8a7a5319ae913be2da6f957b0" + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/810500e92855eba8a7a5319ae913be2da6f957b0", - "reference": "810500e92855eba8a7a5319ae913be2da6f957b0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", "shasum": "" }, "require": { @@ -6898,7 +6902,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-code-coverage": "^9.2.28", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -6957,7 +6961,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.11" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" }, "funding": [ { @@ -6973,7 +6977,7 @@ "type": "tidelift" } ], - "time": "2023-08-19T07:10:56+00:00" + "time": "2023-09-19T05:39:22+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/imports.php b/config/imports.php index 8a08f4d2..76f19615 100644 --- a/config/imports.php +++ b/config/imports.php @@ -15,7 +15,8 @@ 'wikidata_value', 'meta_wikidata_value', 'external_value', - 'external_url' + 'external_url', + 'type' ] ], @@ -63,7 +64,8 @@ 'meta_wikidata_value', 'external_value', 'external_url', - 'review_status' + 'review_status', + 'type' ] ] ]; diff --git a/config/mismatches.php b/config/mismatches.php index 0478277b..aa5ee5cc 100644 --- a/config/mismatches.php +++ b/config/mismatches.php @@ -36,6 +36,9 @@ ], 'review_status' => [ 'accepted_values' => ['pending', 'wikidata', 'missing', 'external', 'both', 'none'] + ], + 'type' => [ + 'accepted_values' => ['statement', 'qualifier'] ] ], 'id_separator' => '|', diff --git a/database/factories/MismatchFactory.php b/database/factories/MismatchFactory.php index 314553af..968687f1 100644 --- a/database/factories/MismatchFactory.php +++ b/database/factories/MismatchFactory.php @@ -66,7 +66,8 @@ public function definition() return null; }, 'external_value'=> $this->getRandomValue(), - 'external_url' => $this->faker->optional(0.6)->url() + 'external_url' => $this->faker->optional(0.6)->url(), + 'type' => $this->getRandomMismatchType() ]; } @@ -167,4 +168,12 @@ static function ($propertyId) use ($datatype) { } )); } + + private function getRandomMismatchType() + { + return $this->faker->randomElement([ + 'statement', + 'qualifier' + ]); + } } diff --git a/database/migrations/2023_09_19_103513_add_type_column_to_mismatches.php b/database/migrations/2023_09_19_103513_add_type_column_to_mismatches.php new file mode 100644 index 00000000..7f01c172 --- /dev/null +++ b/database/migrations/2023_09_19_103513_add_type_column_to_mismatches.php @@ -0,0 +1,35 @@ +enum('type', [ + 'statement', + 'qualifier' + ])->default('statement'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('mismatches', function (Blueprint $table) { + $table->dropColumn('type'); + }); + } +} diff --git a/docs/AdminGuide.md b/docs/AdminGuide.md index 3b7fec85..8f5e562b 100644 --- a/docs/AdminGuide.md +++ b/docs/AdminGuide.md @@ -1,3 +1,15 @@ + + + +**Table of Contents** + +- [Mismatch Finder Administration Guide](#mismatch-finder-administration-guide) + - [Managing Upload Users](#managing-upload-users) + - [Managing Imported Mismatches](#managing-imported-mismatches) + - [Log Track of Users' Review Decisions](#log-track-of-users-review-decisions) + - [Update the expiry date of mismatches](#update-the-expiry-date-of-mismatches) + + # Mismatch Finder Administration Guide @@ -108,6 +120,7 @@ Example entry: "review_status_old": "pending", "review_status_new": "wikidata", "time": "2021-10-05 14:44:59", + "type": "statement" } ``` diff --git a/docs/README.md b/docs/README.md index 3e915bc9..76b35578 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,33 +2,25 @@ -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +**Table of Contents** - [Quickstart](#quickstart) - [Day to day](#day-to-day) - - [Start the application server](#start-the-application-server) - - [Stop the application server](#stop-the-application-server) - - [Destroy all the things](#destroy-all-the-things) -- [Working with OAuth](#oauth) -- [Frontend - Working with CSS and JS](#frontend) +- [Working with OAuth](#working-with-oauth) +- [Frontend - Working with CSS and JS](#frontend---working-with-css-and-js) - [Localization and Internationalization](#localization-and-internationalization) - [Job Queues](#job-queues) - [Linting](#linting) - - [PHP Linting](#php-linting) - - [Javascript Linting](#js-linting) - [Testing](#testing) - - [PHP Testing](#php-testing) - - [Javascript Testing](#javascript-testing) - - [Browser Testing](#browser-testing) - [Staging](#staging) - [Troubleshooting](#troubleshooting) - - [Address already in use](#address-already-in-use) - - [OAuth Error retrieving temporary credentials](#oauth-error-retrieving-temporary-credentials) +- [Chore: Updating dependencies](#chore-updating-dependencies) - [See also](#see-also) -## Quickstart +## Quickstart 1. Clone the repository @@ -96,9 +88,9 @@ sail npm run dev ``` -For more advanced frontend topics, see [Frontend - Working with CSS and JS](#frontend) +For more advanced frontend topics, see [Frontend - Working with CSS and JS](#frontend---working-with-css-and-js) -## Day to day +## Day to day ### Start the application server @@ -126,7 +118,7 @@ sail down sail down --rmi all -v ``` -## Working with OAuth +## Working with OAuth In production, this application relies on wikidata.org's OAuth capabilities in order to authorize and identify users. Since it is not ideal to test in the production environment, we recommend creating your own personal OAuth consumer credentials for testing purposes, in order to develop locally. @@ -160,7 +152,7 @@ In production, this application relies on wikidata.org's OAuth capabilities in o 1. As soon as you receive the email from the WMF team that your consumer is approved, you may start testing your application by logging in through your local instance's home page. -## Frontend - Working with CSS and JS +## Frontend - Working with CSS and JS Add the JS and CSS code in the `resources/js` and `resources/css` folder respectively. @@ -221,8 +213,8 @@ By Default, the jobs will run synchronously to the requests that dispatch them. ``` The `--timeout=1200` flag in the command above increases the job timeout to 20 minutes thus ensuring that the queue worker doesn't abort jobs that take longer than a minute. -## Linting -### PHP Linting +## Linting +### PHP Linting The application uses `phpcs` to detect code format violations. @@ -232,7 +224,7 @@ To fix style errors automatically run: `sail composer run fix` Note: Laravel uses the [PSR2](https://www.php-fig.org/psr/psr-2/) Standard which expects camel caps method names. So you might get the error: `Method name my_method() is not in camel caps` if you scaffold your application. The recommendation there is to change the method names to camel case. -### Javascript Linting +### Javascript Linting The application uses ESLint to detect code format violations in the frontend's `*.js` and `*.vue` files. @@ -240,9 +232,9 @@ To run eslint: `sail npm run lint` To fix style errors automatically run: `sail npm run lint:fix` -## Testing +## Testing -### PHP Testing +### PHP Testing The Laravel framework supports two types of testing: unit and feature tests. In contrast to unit tests, feature tests will boot your Laravel application and therefore are able to access your application's database and other framework services. @@ -272,7 +264,7 @@ $ sail artisan test Time: 0.16s ``` -### Javascript Testing +### Javascript Testing To test our Javascript code in general, and any vue components or pages we create in particular, this repository utilizes the jest test runner. In order to run JS tests, use the following command: @@ -280,7 +272,7 @@ To test our Javascript code in general, and any vue components or pages we creat sail npm test ``` -### Browser Testing +### Browser Testing The app uses [Laravel Dusk](https://laravel.com/docs/8.x/dusk) as the Browser testing framework. Dusk uses a ChromeDriver installation, since we are using [Laravel Sail](https://laravel.com/docs/8.x/sail#laravel-dusk), a standalone chrome installation is included in the docker setup. @@ -302,14 +294,14 @@ To run all the browser tests: sail dusk ``` -## Staging +## Staging When there are changes that need to be tested before being deployed to production, like an UX decision or testing a new feature, the [Mismatch Finder staging server](https://mismatch-finder-staging.toolforge.org/) can be used. To deploy to this server, push your commits to a branch starting with the name `staging/`. For example `staging/my_branch_name`. The changes in the branch will be deployed to the server after all the checks have passed. -## Troubleshooting +## Troubleshooting ### Address already in use @@ -392,7 +384,7 @@ http://localhost/auth/login **Possible Explanation:** -If, after following the steps in the [Working with OAuth section](#oauth), you are getting this error - this can be due to either misconfigured consumer keys, a wrong app url, or simply an attempt to authorize a consumer that is still pending WMF review. +If, after following the steps in the [Working with OAuth section](#working-with-oauth), you are getting this error - this can be due to either misconfigured consumer keys, a wrong app url, or simply an attempt to authorize a consumer that is still pending WMF review. **Solution:** @@ -436,7 +428,7 @@ Run `sail composer update` to install the new packages. Then make sure that all Don't update to any major version of Laravel since that would require a migration and would be out of the scope of a chore. -## See also +## See also [Laravel Sail](https://laravel.com/docs/8.x/sail) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 755972f0..0926823c 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,23 +2,29 @@ - -- [Logging in](#login) -- [Accessing the API](#apiAccess) -- [Obtaining an API access token](#apiToken) -- [Importing mismatches](#importing) + +**Table of Contents** + +- [Logging in](#logging-in) +- [Accessing the API](#accessing-the-api) +- [Obtaining an API access token](#obtaining-an-api-access-token) +- [Importing mismatches](#importing-mismatches) + - [Creating a mismatches import file](#creating-a-mismatches-import-file) + - [Getting upload rights](#getting-upload-rights) + - [Uploading an import file](#uploading-an-import-file) + - [Reviewing Mismatches](#reviewing-mismatches) -## Logging in +## Logging in You can log in to the Mismatch Finder website using your MediaWiki account on `www.wikidata.org`. Simply click the Login button on the Welcome page and get redirected to Wikidata, to allow Mismatch Finder access to your account as a "Connected Application". If you are not logged in already, Wikidata will ask you for the username and password of your MediaWiki account. -## Accessing the API +## Accessing the API Once you have logged in and have started to use the Mismatch Finder web interface, you may want to access the REST API as well. The available operations you can perform with the REST API can be checked in the [Wikidata Mismatch Finder OpenApi specification](https://mismatch-finder.toolforge.org/api-docs/index.html). -In order to perform some actions with the REST api, such as uploading files, you will need a [personal access token](#apiToken). +In order to perform some actions with the REST api, such as uploading files, you will need a [personal access token](#obtaining-an-api-access-token). For each request that involves authorization, your personal token must be provided in the `Authorization` header of your request as such: @@ -28,7 +34,7 @@ Authorization: Bearer **Note:** Don't forget to replace `` in the example above with your actual personal access token. -## Obtaining an API access token +## Obtaining an API access token To obtain a personal access token, follow these steps: @@ -39,7 +45,7 @@ To obtain a personal access token, follow these steps: In any case you want to revoke an existing token, simply click the revoke link in the token management page. After the token is revoked, you will be able to create a fresh token by repeating the steps above. -## Importing mismatches +## Importing mismatches Users which have sufficient access rights may perform batch imports into the Mismatch Finder by uploading a CSV file to describe their found mismatches. @@ -48,7 +54,7 @@ Users which have sufficient access rights may perform batch imports into the Mis A CSV import file must include the following header row, to describe each column: ```csv -item_id,statement_guid,property_id,wikidata_value,meta_wikidata_value,external_value,external_url +item_id,statement_guid,property_id,wikidata_value,meta_wikidata_value,external_value,external_url,type ``` * `item_id` - The item ID of the Wikidata item containing the mismatching statement. @@ -61,6 +67,7 @@ item_id,statement_guid,property_id,wikidata_value,meta_wikidata_value,external_v * `meta_wikidata_value` - _(Optional)_ The value on wikidata that represents property calendar/time type. * `external_value` - The value in the external database that mismatches a wikidata value. * `external_url` - _(Optional)_ A url or uri to the mismatching entity in the external database. +* `type` - _(Optional)_ A string that contains either the value 'statement' or the value 'qualifier' to indicate where the mismatch occurs. If left empty a value of 'statement' will be assumed. _**Note**: The data `wikidata_value`, `external_value`, `external_url` should be limited to a length of 1500 characters maximum._ @@ -81,7 +88,7 @@ To upload an import file, users may send a request to our `POST /api/imports` AP #### Headers The request should include the following headers: -* `Authorization: Bearer ACCESS_TOKEN`, see [access token](#apiAccess) +* `Authorization: Bearer ACCESS_TOKEN`, see [access token](#accessing-the-api) * `Accept: application/json` * `Content-Type: multipart/form-data` diff --git a/docs/exampleMismatchFile.csv b/docs/exampleMismatchFile.csv index 52aafcfa..95c92430 100644 --- a/docs/exampleMismatchFile.csv +++ b/docs/exampleMismatchFile.csv @@ -1,9 +1,9 @@ -item_id,statement_guid,property_id,wikidata_value,meta_wikidata_value,external_value,external_url -Q184746,Q184746$7814880A-A6EF-40EC-885E-F46DD58C8DC5,P569,3 April 1934,,1934-04-03,http://fake.source.url/12345 -Q184746,Q184746$7200D1AD-E4E8-401B-8D57-8C823810F11F,P21,Q6581072,,nonbinary,http://fake.source.url/12345 -Q184746,Q184746$417B1AD5-396D-471E-8F9F-D45619EDBE85,P101,Q7155,,Anthropologist, -Q184746,Q184746$E347266B-AE85-4D91-84D9-442B28F6C33C,P937,Q170478,,Congo, -Q184746,,P106,,,primatologist, -Q9391,Q9391$87CB9756-0941-40D1-816F-EA10535DCF83,P20,Q350,,Dublin, -Q9391,Q9391$A095A4AD-091B-4BC8-809E-7FF5CBD75034,P21,Q6581097,,nonbinary, -Q7243,Q7243$5377d420-4e08-9095-6ec4-cd406d98e2f9,P569,1828-08-28,Q1985786,28 August 1828 (Julian), +item_id,statement_guid,property_id,wikidata_value,meta_wikidata_value,external_value,external_url,type +Q184746,Q184746$7814880A-A6EF-40EC-885E-F46DD58C8DC5,P569,3 April 1934,,1934-04-03,http://fake.source.url/12345,statement +Q184746,Q184746$7200D1AD-E4E8-401B-8D57-8C823810F11F,P21,Q6581072,,nonbinary,http://fake.source.url/12345,statement +Q184746,Q184746$417B1AD5-396D-471E-8F9F-D45619EDBE85,P101,Q7155,,Anthropologist,,qualifier +Q184746,Q184746$E347266B-AE85-4D91-84D9-442B28F6C33C,P937,Q170478,,Congo,, +Q184746,,P106,,,primatologist,,statement +Q9391,Q9391$87CB9756-0941-40D1-816F-EA10535DCF83,P20,Q350,,Dublin,,qualifier +Q9391,Q9391$A095A4AD-091B-4BC8-809E-7FF5CBD75034,P21,Q6581097,,nonbinary,,statement +Q7243,Q7243$5377d420-4e08-9095-6ec4-cd406d98e2f9,P569,1828-08-28,Q1985786,28 August 1828 (Julian),,statement diff --git a/package-lock.json b/package-lock.json index b02c45e7..58157c88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "dependencies": { "@inertiajs/inertia": "^0.11.0", "@inertiajs/inertia-vue": "^0.8.0", + "@vue/composition-api": "^1.7.2", "@wmde/wikit-tokens": "^2.1.0-alpha.15", "@wmde/wikit-vue-components": "^2.1.0-alpha.16", "date-fns": "^2.30.0", @@ -18,29 +19,32 @@ "vuex": "^3.6.2" }, "devDependencies": { - "@types/jest": "^29.5.4", - "@types/lodash": "^4.14.198", - "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "^5.59.9", - "@vue/eslint-config-typescript": "^11.0.3", + "@types/jest": "^29.5.5", + "@types/lodash": "^4.14.199", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "@vue/eslint-config-typescript": "^12.0.0", "@vue/test-utils": "^1.3.6", "@vue/vue2-jest": "^29.2.6", + "@wikimedia/codex": "^0.20.0", + "@wikimedia/codex-design-tokens": "^0.20.0", + "@wikimedia/codex-icons": "^0.20.0", "@wikimedia/language-data": "^1.1.4", - "axios": "^1.5.0", - "axios-mock-adapter": "^1.21.4", + "axios": "^1.5.1", + "axios-mock-adapter": "^1.22.0", "babel-core": "^7.0.0-bridge.0", - "eslint": "^8.48.0", + "eslint": "^8.51.0", "eslint-plugin-vue": "^9.17.0", - "grunt-banana-checker": "^0.11.0", - "jest": "^29.6.4", - "jest-environment-jsdom": "^29.6.4", + "grunt-banana-checker": "^0.11.1", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", "laravel-mix": "^6.0.49", - "postcss": "^8.4.29", + "postcss": "^8.4.31", "resolve-url-loader": "^5.0.0", - "sass": "^1.66.1", + "sass": "^1.69.0", "sass-loader": "^13.3.1", "ts-jest": "^29.1.0", - "ts-loader": "^9.4.3", + "ts-loader": "^9.5.0", "typescript": "^5.2.2", "vue-loader": "^15.10.2", "vue-template-compiler": "^2.6.14" @@ -1924,18 +1928,53 @@ } }, "node_modules/@eslint/js": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", - "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dev": true, + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dev": true, + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.4.tgz", + "integrity": "sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==", + "dev": true + }, + "node_modules/@floating-ui/vue": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.0.2.tgz", + "integrity": "sha512-sImlAl9mAoCKZLNlwWz2P2ZMJIDlOEDXrRD6aD2sIHAka1LPC+nWtB+D3lPe7IE7FGWSbwBPTnlSdlABa3Fr0A==", + "dev": true, + "dependencies": { + "@floating-ui/dom": "^1.4.5", + "vue-demi": ">=0.13.0" + } + }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -2022,16 +2061,16 @@ } }, "node_modules/@jest/console": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.4.tgz", - "integrity": "sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -2109,15 +2148,15 @@ } }, "node_modules/@jest/core": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.4.tgz", - "integrity": "sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", - "@jest/reporters": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", @@ -2125,21 +2164,21 @@ "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.6.3", - "jest-config": "^29.6.4", - "jest-haste-map": "^29.6.4", - "jest-message-util": "^29.6.3", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-resolve-dependencies": "^29.6.4", - "jest-runner": "^29.6.4", - "jest-runtime": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", - "jest-watcher": "^29.6.4", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -2226,37 +2265,37 @@ } }, "node_modules/@jest/environment": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.4.tgz", - "integrity": "sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.6.4", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.4.tgz", - "integrity": "sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "expect": "^29.6.4", - "jest-snapshot": "^29.6.4" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.4.tgz", - "integrity": "sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3" @@ -2266,47 +2305,47 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.4.tgz", - "integrity": "sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.3", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.4.tgz", - "integrity": "sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/expect": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", "@jest/types": "^29.6.3", - "jest-mock": "^29.6.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.4.tgz", - "integrity": "sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", @@ -2320,9 +2359,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", - "jest-worker": "^29.6.4", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -2399,9 +2438,9 @@ } }, "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.0.tgz", - "integrity": "sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", @@ -2486,12 +2525,12 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.4.tgz", - "integrity": "sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", + "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" @@ -2501,14 +2540,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.4.tgz", - "integrity": "sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.4", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -2516,9 +2555,9 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.4.tgz", - "integrity": "sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -2529,9 +2568,9 @@ "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -3019,9 +3058,9 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", + "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", "dev": true, "dependencies": { "@types/node": "*" @@ -3113,9 +3152,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.4.tgz", - "integrity": "sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==", + "version": "29.5.5", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", + "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -3140,9 +3179,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.14.198", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", - "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==", + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", "dev": true }, "node_modules/@types/mime": { @@ -3188,9 +3227,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "dev": true }, "node_modules/@types/send": { @@ -3287,32 +3326,33 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", + "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/type-utils": "6.7.5", + "@typescript-eslint/utils": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3354,25 +3394,26 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", + "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3381,16 +3422,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", + "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3398,25 +3439,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", + "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/utils": "6.7.5", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3425,12 +3466,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", + "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3438,21 +3479,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", + "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3498,29 +3539,28 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", + "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { @@ -3557,16 +3597,16 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", + "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.7.5", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3641,22 +3681,22 @@ "dev": true }, "node_modules/@vue/composition-api": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@vue/composition-api/-/composition-api-1.7.1.tgz", - "integrity": "sha512-xDWoEtxGXhH9Ku3ROYX/rzhcpt4v31hpPU5zF3UeVC/qxA3dChmqU8zvTUYoKh3j7rzpNsoFOwqsWG7XPMlaFA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@vue/composition-api/-/composition-api-1.7.2.tgz", + "integrity": "sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw==", "peerDependencies": { "vue": ">= 2.5 < 2.7" } }, "node_modules/@vue/eslint-config-typescript": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz", - "integrity": "sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz", + "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.1", - "@typescript-eslint/parser": "^5.59.1", - "vue-eslint-parser": "^9.1.1" + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", + "vue-eslint-parser": "^9.3.1" }, "engines": { "node": "^14.17.0 || >=16.0.0" @@ -3899,6 +3939,42 @@ } } }, + "node_modules/@wikimedia/codex": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-0.20.0.tgz", + "integrity": "sha512-zsK/oOS/V3ltC5fBTh0BSC3bQaERsk5SLfcTkNdFDbOdDvVlyS4NeUKrZNEVNg/sL5DipL8Bogyfuglm36f7iw==", + "dev": true, + "dependencies": { + "@floating-ui/vue": "^1.0.2" + }, + "engines": { + "node": ">=16", + "npm": ">=7.21.0" + }, + "peerDependencies": { + "vue": "^3.2.37" + } + }, + "node_modules/@wikimedia/codex-design-tokens": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@wikimedia/codex-design-tokens/-/codex-design-tokens-0.20.0.tgz", + "integrity": "sha512-uLKt76q7gUnDuzmODyEb54MO9VyrsRXhtRBJxxXEtjyD5jxKMacNK36tJ1JV2bpHD7ETVR1jvMwgjWqR43NUzA==", + "dev": true, + "engines": { + "node": ">=16", + "npm": ">=7.21.0" + } + }, + "node_modules/@wikimedia/codex-icons": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-0.20.0.tgz", + "integrity": "sha512-iuOY0BZut7dtTIXBpG3A8XabEERpQM2yhlmWlBnOg4XxTDpPuZe87Tz3lUavdM6jIaMgqGaEFr203J5SWIfLaw==", + "dev": true, + "engines": { + "node": ">=16", + "npm": ">=7.21.0" + } + }, "node_modules/@wikimedia/language-data": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@wikimedia/language-data/-/language-data-1.1.4.tgz", @@ -4272,9 +4348,9 @@ } }, "node_modules/axios": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", - "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", + "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -4283,9 +4359,9 @@ } }, "node_modules/axios-mock-adapter": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.21.5.tgz", - "integrity": "sha512-5NI1V/VK+8+JeTF8niqOowuysA4b8mGzdlMN/QnTnoXbYh4HZSNiopsDclN2g/m85+G++IrEtUdZaQ3GnaMsSA==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz", + "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", @@ -4305,12 +4381,12 @@ } }, "node_modules/babel-jest": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz", - "integrity": "sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { - "@jest/transform": "^29.6.4", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", @@ -5481,6 +5557,97 @@ "sha.js": "^2.4.8" } }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/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/create-jest/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/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -6404,16 +6571,16 @@ } }, "node_modules/eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", - "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.48.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/js": "8.51.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.12.4", @@ -6891,16 +7058,16 @@ } }, "node_modules/expect": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.4.tgz", - "integrity": "sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.6.4", + "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3" + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7482,9 +7649,9 @@ "dev": true }, "node_modules/grunt-banana-checker": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.0.tgz", - "integrity": "sha512-qXtcxu7y9GFEIx6ELm5jSf+JqvCafdco+t/YsrUhUDNe9AgCnP7X0R+PxT0qZaDftKVrDrR2gPOYqpaAye5bDw==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.11.1.tgz", + "integrity": "sha512-CF0h/TXaX9sbF2yIz+fUfJc4Zvms7XGYQ7ZYMD5+vv0LMZzSFf7JSHXDaBEs72nQWw4r4ap5fOW3baAliW+0bQ==", "dev": true, "bin": { "banana-checker": "src/cli.js" @@ -8478,15 +8645,15 @@ } }, "node_modules/jest": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.4.tgz", - "integrity": "sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.6.4", + "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.6.4" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -8504,13 +8671,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.6.3.tgz", - "integrity": "sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -8518,28 +8685,28 @@ } }, "node_modules/jest-circus": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.4.tgz", - "integrity": "sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/expect": "^29.6.4", - "@jest/test-result": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-runtime": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -8619,22 +8786,21 @@ } }, "node_modules/jest-cli": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.4.tgz", - "integrity": "sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "@jest/core": "^29.6.4", - "@jest/test-result": "^29.6.4", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -8723,31 +8889,31 @@ } }, "node_modules/jest-config": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.4.tgz", - "integrity": "sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.4", + "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", - "babel-jest": "^29.6.4", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.4", - "jest-environment-node": "^29.6.4", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", "jest-get-type": "^29.6.3", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-runner": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -8838,15 +9004,15 @@ } }, "node_modules/jest-diff": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz", - "integrity": "sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8923,9 +9089,9 @@ } }, "node_modules/jest-docblock": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.6.3.tgz", - "integrity": "sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -8935,16 +9101,16 @@ } }, "node_modules/jest-each": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.3.tgz", - "integrity": "sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", - "jest-util": "^29.6.3", - "pretty-format": "^29.6.3" + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9021,18 +9187,18 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.6.4.tgz", - "integrity": "sha512-K6wfgUJ16DoMs02JYFid9lOsqfpoVtyJxpRlnTxUHzvZWBnnh2VNGRB9EC1Cro96TQdq5TtSjb3qUjNaJP9IyA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", "jsdom": "^20.0.0" }, "engines": { @@ -9048,17 +9214,17 @@ } }, "node_modules/jest-environment-node": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.4.tgz", - "integrity": "sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9074,9 +9240,9 @@ } }, "node_modules/jest-haste-map": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.4.tgz", - "integrity": "sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -9086,8 +9252,8 @@ "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", - "jest-util": "^29.6.3", - "jest-worker": "^29.6.4", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -9099,28 +9265,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.3.tgz", - "integrity": "sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz", - "integrity": "sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.6.4", + "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9197,9 +9363,9 @@ } }, "node_modules/jest-message-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.3.tgz", - "integrity": "sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -9208,7 +9374,7 @@ "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -9287,14 +9453,14 @@ } }, "node_modules/jest-mock": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.3.tgz", - "integrity": "sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.6.3" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9327,17 +9493,17 @@ } }, "node_modules/jest-resolve": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.4.tgz", - "integrity": "sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -9347,13 +9513,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.4.tgz", - "integrity": "sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.6.4" + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9430,30 +9596,30 @@ } }, "node_modules/jest-runner": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.4.tgz", - "integrity": "sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", - "@jest/environment": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.6.3", - "jest-environment-node": "^29.6.4", - "jest-haste-map": "^29.6.4", - "jest-leak-detector": "^29.6.3", - "jest-message-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-runtime": "^29.6.4", - "jest-util": "^29.6.3", - "jest-watcher": "^29.6.4", - "jest-worker": "^29.6.4", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -9532,17 +9698,17 @@ } }, "node_modules/jest-runtime": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.4.tgz", - "integrity": "sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", - "@jest/globals": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", @@ -9550,13 +9716,13 @@ "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-mock": "^29.6.3", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -9635,9 +9801,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.4.tgz", - "integrity": "sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -9645,20 +9811,20 @@ "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.4", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.4", + "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "semver": "^7.5.3" }, "engines": { @@ -9769,9 +9935,9 @@ "dev": true }, "node_modules/jest-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.3.tgz", - "integrity": "sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -9856,9 +10022,9 @@ } }, "node_modules/jest-validate": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.3.tgz", - "integrity": "sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -9866,7 +10032,7 @@ "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9955,18 +10121,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.4.tgz", - "integrity": "sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.4", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -10044,13 +10210,13 @@ } }, "node_modules/jest-worker": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz", - "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -10989,12 +11155,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -11590,9 +11750,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -12224,9 +12384,9 @@ } }, "node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.3", @@ -12359,9 +12519,9 @@ "dev": true }, "node_modules/pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", "dev": true, "funding": [ { @@ -12824,9 +12984,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.66.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", - "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "version": "1.69.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.0.tgz", + "integrity": "sha512-l3bbFpfTOGgQZCLU/gvm1lbsQ5mC/WnLz3djL2v4WCJBDrWm58PO+jgngcGRNnKUh6wSsdm50YaovTqskZ0xDQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -13860,6 +14020,18 @@ "node": ">=6" } }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-jest": { "version": "29.1.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", @@ -13937,15 +14109,16 @@ "dev": true }, "node_modules/ts-loader": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", - "integrity": "sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.0.tgz", + "integrity": "sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg==", "dev": true, "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^7.3.4" + "semver": "^7.3.4", + "source-map": "^0.7.4" }, "engines": { "node": ">=12.0.0" @@ -14040,6 +14213,15 @@ "node": ">=10" } }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/ts-loader/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14094,27 +14276,6 @@ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", "dev": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -14346,19 +14507,25 @@ } }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -14387,6 +14554,32 @@ "banana-i18n": "^2.2.0" } }, + "node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/vue-eslint-parser": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz", diff --git a/package.json b/package.json index bb4ae3c2..7039a960 100644 --- a/package.json +++ b/package.json @@ -15,29 +15,32 @@ "production": "mix --production" }, "devDependencies": { - "@types/jest": "^29.5.4", - "@types/lodash": "^4.14.198", - "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "^5.59.9", - "@vue/eslint-config-typescript": "^11.0.3", + "@types/jest": "^29.5.5", + "@types/lodash": "^4.14.199", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "@vue/eslint-config-typescript": "^12.0.0", "@vue/test-utils": "^1.3.6", "@vue/vue2-jest": "^29.2.6", + "@wikimedia/codex": "^0.20.0", + "@wikimedia/codex-design-tokens": "^0.20.0", + "@wikimedia/codex-icons": "^0.20.0", "@wikimedia/language-data": "^1.1.4", - "axios": "^1.5.0", - "axios-mock-adapter": "^1.21.4", + "axios": "^1.5.1", + "axios-mock-adapter": "^1.22.0", "babel-core": "^7.0.0-bridge.0", - "eslint": "^8.48.0", + "eslint": "^8.51.0", "eslint-plugin-vue": "^9.17.0", - "grunt-banana-checker": "^0.11.0", - "jest": "^29.6.4", - "jest-environment-jsdom": "^29.6.4", + "grunt-banana-checker": "^0.11.1", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", "laravel-mix": "^6.0.49", - "postcss": "^8.4.29", + "postcss": "^8.4.31", "resolve-url-loader": "^5.0.0", - "sass": "^1.66.1", + "sass": "^1.69.0", "sass-loader": "^13.3.1", "ts-jest": "^29.1.0", - "ts-loader": "^9.4.3", + "ts-loader": "^9.5.0", "typescript": "^5.2.2", "vue-loader": "^15.10.2", "vue-template-compiler": "^2.6.14" @@ -45,6 +48,7 @@ "dependencies": { "@inertiajs/inertia": "^0.11.0", "@inertiajs/inertia-vue": "^0.8.0", + "@vue/composition-api": "^1.7.2", "@wmde/wikit-tokens": "^2.1.0-alpha.15", "@wmde/wikit-vue-components": "^2.1.0-alpha.16", "date-fns": "^2.30.0", @@ -53,5 +57,10 @@ "vue": "^2.6.14", "vue-banana-i18n": "1.5.0", "vuex": "^3.6.2" + }, + "overrides": { + "@wikimedia/codex": { + "vue": "^2.6.14" + } } } diff --git a/public/i18n/ban.json b/public/i18n/ban.json index 5da24784..2325f36a 100644 --- a/public/i18n/ban.json +++ b/public/i18n/ban.json @@ -9,7 +9,6 @@ "item-form-id-input-placeholder": "Sekadi:\nQ80378\nQ33602\nQ1459\nQ4524", "log-in": "Manjing log", "log-out": "Medal log", - "column-property": "Atribut", "column-wikidata-value": "Aji ring Wikidata", "column-external-value": "Aji ring wit jaba", "column-review-status": "Status", diff --git a/public/i18n/bn.json b/public/i18n/bn.json index ed846de6..67258e0c 100644 --- a/public/i18n/bn.json +++ b/public/i18n/bn.json @@ -10,7 +10,7 @@ "log-out": "প্রস্থান করুন", "language-selector-options-menu-aria-label": "ভাষা", "language-selector-mobile-header": "একটি ভাষা নির্বাচন করুন", - "column-property": "বৈশিষ্ট্য", + "column-type": "ধরন", "column-review-status": "স্থিতি", "column-upload-info": "আপলোডের তথ্য", "column-external-source": "বহিঃউৎস", diff --git a/public/i18n/br.json b/public/i18n/br.json new file mode 100644 index 00000000..8b13f136 --- /dev/null +++ b/public/i18n/br.json @@ -0,0 +1,37 @@ +{ + "@metadata": { + "authors": [ + "Adriendelucca" + ] + }, + "find-more": "Gouzout hiroc'h", + "item-form-id-input-placeholder": "Da skouer:\nQ80378\nQ33602\nQ1459\nQ4524", + "log-in": "Kevreañ", + "log-out": "Digevreañ", + "language-selector-options-menu-aria-label": "Yezhoù", + "language-selector-mobile-header": "Dibab ur yezh", + "language-selector-input-placeholder": "Klask yezhoù", + "language-selector-no-results": "Ne c'haller ket kaout ar yezh-mañ", + "column-type": "Seurt", + "column-review-status": "Statud", + "column-external-source": "Mammenn diavaez", + "empty-value": "Hini ebet", + "statement": "disklêriadenn", + "review-status-wikidata": "Roadennoù faos war Wikidata", + "review-status-missing": "Roadennoù a vank war Wikidata", + "review-status-both": "An daou faos", + "review-status-none": "Hini ebet", + "confirmation-dialog-title": "Pazennoù da-heul", + "confirmation-dialog-button": "Kenderc'hel", + "confirmation-dialog-option-label": "Arabat diskouez din en-dro", + "confirm-dialog-button": "Kadarnaat", + "faq-button": "Muioc'h a ditouroù", + "faq-dialog-question-more-info": "Pelec'h e c'hallan kaout muioc'h a ditouroù?", + "wikidata-tool-footer-about-tool": "Diwar-benn $1", + "wikidata-tool-footer-source": "Tapout ar c'hod mammenn", + "wikidata-tool-footer-issues": "Danevelliñ ur gudenn", + "wikidata-tool-footer-about-us": "Piv omp?", + "wikidata-tool-footer-privacy": "Politikerezh prevezded", + "wikidata-tool-footer-wmde": "Wikimedia Deutschland", + "wikidata-tool-footer-team": "Aozet gant ♥ gant skipailh Wikidata" +} diff --git a/public/i18n/ca.json b/public/i18n/ca.json index f490a125..0d11e5a0 100644 --- a/public/i18n/ca.json +++ b/public/i18n/ca.json @@ -18,7 +18,6 @@ "language-selector-close-button-label": "Tanca el selector d'idiomes", "language-selector-input-placeholder": "Cerca idiomes", "language-selector-no-results": "Idioma no disponible", - "column-property": "Propietat", "column-wikidata-value": "Valor a Wikidata", "column-external-value": "Valor a la font externa", "column-review-status": "Estat", diff --git a/public/i18n/ce.json b/public/i18n/ce.json new file mode 100644 index 00000000..d8bf64af --- /dev/null +++ b/public/i18n/ce.json @@ -0,0 +1,35 @@ +{ + "@metadata": { + "authors": [ + "Умар" + ] + }, + "about-mismatch-finder-title": "ХӀокху гӀирсах лаьцна", + "item-form-submit": "Элементаш талла", + "log-in": "ЧугӀо", + "log-out": "ЧугӀо", + "language-selector-options-menu-aria-label": "Меттанаш", + "language-selector-mobile-header": "Харжа мотт", + "column-wikidata-value": "Викихаамашкара маьӀна", + "column-external-value": "Арахьара хьост чохь ду маьӀна", + "column-review-status": "Статус", + "column-upload-info": "Чуйаккхарах инфо", + "column-external-source": "Арахьара хьост", + "empty-value": "ХӀан-хӀа", + "review-status-wikidata": "Нийса боцу хаамаш Викихаамашкахь", + "review-status-missing": "Викихаамашкахь хаамаш бац", + "confirmation-dialog-button": "Кхин дӀа", + "confirmation-dialog-option-label": "Кхий ма гайта", + "confirm-dialog-button": "Бакъде", + "faq-button": "Ма-дарра", + "wikidata-tool-footer-about-tool": "$1 лаьцна", + "wikidata-tool-footer-license": "$2 лицензица", + "wikidata-tool-footer-source": "Схьаэца йуьхьанцара код", + "wikidata-tool-footer-issues": "Проблемех хаам бе", + "wikidata-tool-footer-about-us": "Тхоьх лаьцна", + "wikidata-tool-footer-privacy": "Къайлаха политика", + "wikidata-tool-footer-wmde": "Викимедиа Германи", + "tool-query-builder": "Дехарийн конструктор", + "tool-item-quality-evaluator": "Элементийн дикаллин маххадор", + "tool-curious-facts": "Тамашийна факташ" +} diff --git a/public/i18n/de.json b/public/i18n/de.json index 0ce368cb..d5ca3c30 100644 --- a/public/i18n/de.json +++ b/public/i18n/de.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Brettchenweber", + "Cupkake4Yoshi", "Justman10000" ] }, @@ -15,11 +16,17 @@ "log-in": "Anmelden", "log-out": "Abmelden", "mismatch-finder-title": "Wikidata Nichtübereinstimmungs-Finder", + "language-selector-options-menu-aria-label": "Sprachen", + "language-selector-mobile-header": "Sprache auswählen", + "language-selector-clear-button-label": "Eingabefeld löschen", + "language-selector-close-button-label": "Sprachauswahl schließen", + "language-selector-input-placeholder": "Sprache suchen", + "language-selector-no-results": "Sprache nicht verfügbar.", "item-form-error-message-empty": "Bitte gib die Artikelkennungen an, die geprüft werden sollen.", "item-form-error-message-max": "Bitte reduziere die Anzahl der Positionsbezeichnungen auf das Limit ($1)", "item-form-error-message-invalid": "Ein oder mehrere Positionsbezeichner konnten nicht verarbeitet werden. Achte bitte darauf, dass du nur eine Kennung pro Zeile angibst, ohne Leerzeichen oder Kommas. Die Positionsbezeichner sollten nur aus einer Reihe gültiger Zahlen bestehen, denen der Buchstabe Q vorangestellt wird (zum Beispiel: Q80378).", "server-error": "Der Server ist auf einen temporären Fehler gestoßen und konnte deine Anfrage nicht abschließen. Bitte versuche es noch einmal.", - "column-property": "Eigenschaft", + "column-type": "Typ", "column-wikidata-value": "Wert auf Wikidata", "column-external-value": "Wert in externer Quelle", "column-review-status": "Status", diff --git a/public/i18n/en.json b/public/i18n/en.json index 093f77e2..e318bfc8 100644 --- a/public/i18n/en.json +++ b/public/i18n/en.json @@ -27,7 +27,8 @@ "item-form-error-message-max": "Please reduce the number of Item identifiers to fit the limit ($1)", "item-form-error-message-invalid": "One or more Item identifiers couldn't be processed. Please make sure to add only one identifier per line, without spaces or commas. Item identifiers should only be a set of valid numbers preceded by the letter Q (for example: Q80378).", "server-error": "The server encountered a temporary error and could not complete your request. Please try again.", - "column-property": "Property", + "column-mismatch": "Mismatch", + "column-type": "Type", "column-wikidata-value": "Value on Wikidata", "column-external-value": "Value on external source", "column-review-status": "Status", @@ -36,6 +37,7 @@ "no-mismatches-found-message": "No mismatches have been found for:", "random-mismatches": "Random mismatches", "empty-value": "None", + "statement": "statement", "no-mismatches-available-for-review": "There are currently no mismatches available for review.", "review-status-pending": "Awaiting review", "review-status-wikidata": "Wrong data on Wikidata", diff --git a/public/i18n/es.json b/public/i18n/es.json index 50669c7c..3896effd 100644 --- a/public/i18n/es.json +++ b/public/i18n/es.json @@ -9,7 +9,6 @@ "item-form-submit": "Comprobar elementos", "log-in": "Acceder", "log-out": "Salir", - "column-property": "Propiedad", "column-wikidata-value": "Valor en Wikidata", "column-external-value": "Valor en la fuente externa", "column-review-status": "Estado", diff --git a/public/i18n/fr.json b/public/i18n/fr.json index e3252a19..13dc0f6f 100644 --- a/public/i18n/fr.json +++ b/public/i18n/fr.json @@ -2,6 +2,7 @@ "@metadata": { "authors": [ "Gomoko", + "Valmontin", "Verdy p" ] }, @@ -25,7 +26,8 @@ "item-form-error-message-max": "Veuillez réduire le nombre d’identifiants d’élément pour respecter la limite ($1)", "item-form-error-message-invalid": "Au moins un des identifiants d’élément n’a pas pu être traité. Assurez-vous d’ajouter un seul identifiant par ligne, sans espaces ni virgules. Les identifiants d’élément doivent être uniquement un ensemble de nombres valides précédés de la lettre Q (par exemple : Q80378).", "server-error": "Le serveur a rencontré une erreur temporaire et n’a pas pu exécuter votre requête. Veuillez essayer à nouveau.", - "column-property": "Propriété", + "column-mismatch": "Incohérence", + "column-type": "Type", "column-wikidata-value": "Valeur sur Wikidata", "column-external-value": "Valeur sur la source externe", "column-review-status": "État", @@ -34,6 +36,7 @@ "no-mismatches-found-message": "Aucune incohérence n’a été trouvée pour :", "random-mismatches": "Incohérences aléatoires", "empty-value": "Aucune", + "statement": "déclaration", "no-mismatches-available-for-review": "Il n’y a actuellement aucune incohérence à vérifier.", "review-status-pending": "Attente de vérification", "review-status-wikidata": "Données erronées sur Wikidata", diff --git a/public/i18n/gl.json b/public/i18n/gl.json index 59eeb206..89925e39 100644 --- a/public/i18n/gl.json +++ b/public/i18n/gl.json @@ -24,7 +24,7 @@ "item-form-error-message-max": "Reduza o número de identificadores de elementos para respectar o límite ($1)", "item-form-error-message-invalid": "Non se puideron procesar un ou máis identificadores de elementos. Asegúrese de engadir só un identificador por liña, sen espazos nin comas. Os identificadores de elementos son un conxunto de números válidos precedidos da letra Q (por exemplo, Q80378).", "server-error": "O servidor atopou un erro temporal e non puido completar a súa solicitude. Por favor, inténteo de novo.", - "column-property": "Propiedade", + "column-type": "Tipo", "column-wikidata-value": "Valor en Wikidata", "column-external-value": "Valor na fonte externa", "column-review-status": "Estado", @@ -33,6 +33,7 @@ "no-mismatches-found-message": "Non se atoparon incongruencias para:", "random-mismatches": "Incongruencias ao chou", "empty-value": "Ningún", + "statement": "declaración", "no-mismatches-available-for-review": "Actualmente non hai incongruencias dispoñibles para revisar.", "review-status-pending": "Agardando revisión", "review-status-wikidata": "Datos incorrectos en Wikidata", diff --git a/public/i18n/he.json b/public/i18n/he.json index 944c587f..70084416 100644 --- a/public/i18n/he.json +++ b/public/i18n/he.json @@ -24,7 +24,8 @@ "item-form-error-message-max": "נא לצמצם את מספר מזהי הפריטים כך שיתאימו למגבלה ($1)", "item-form-error-message-invalid": "לא היה אפשר לעבד מזהה פריט אחד או יותר. נא להקפיד להוסיף רק מזהה אחד בכל שורה, ללא רווחים או פסיקים. מזהי פריט צריכים להיות רק קבוצה של מספרים תקינים שלפניהם האות Q (לדוגמה: Q80378).", "server-error": "השרת נתקל השגיאה זמנית ואינו יכול להשלים את הבקשה שלך. נא לנסות שוב.", - "column-property": "מאפיין", + "column-mismatch": "אי־התאמה", + "column-type": "סוג", "column-wikidata-value": "ערך בוויקינתונים", "column-external-value": "ערך במקור חיצוני", "column-review-status": "מצב", @@ -33,6 +34,7 @@ "no-mismatches-found-message": "לא נמצאו אי־התאמות עבור:", "random-mismatches": "אי־התאמה אקראית", "empty-value": "אין", + "statement": "קביעה", "no-mismatches-available-for-review": "כרגע אין אי־התאמות זמינות לבדיקה.", "review-status-pending": "ממתינה לסקירה", "review-status-wikidata": "נתונים שגויים בוויקינתונים", diff --git a/public/i18n/ia.json b/public/i18n/ia.json index b31be127..46804c91 100644 --- a/public/i18n/ia.json +++ b/public/i18n/ia.json @@ -5,7 +5,7 @@ ] }, "about-mismatch-finder-title": "A proposito de iste utensile", - "about-mismatch-finder-description": "Le Cercator de incoherentias te monstra le datos in Wikidata que differe del datos de un altere base de datos, catalogo o sito web (per exemplo, le data de nascentia de qualcuno in Wikidata non concorda con le entrata correspondente in le catalogo del Bibliotheca National German). Tal incoherentias debe esser corrigite, e le Cercator de incoherentias te adjuta a facer lo.", + "about-mismatch-finder-description": "Le Recerca de incoherentias te monstra le datos in Wikidata que differe del datos de un altere base de datos, catalogo o sito web (per exemplo, le data de nascentia de qualcuno in Wikidata non concorda con le entrata correspondente in le catalogo del Bibliotheca National German). Tal incoherentias debe esser corrigite, e le Recerca de incoherentias te adjuta a facer lo.", "find-more": "Saper plus", "item-form-title": "Qual elementos debe esser verificate?", "item-form-id-input-label": "Per favor adde un identificator de elemento per linea", @@ -13,7 +13,7 @@ "item-form-submit": "Verificar elementos", "log-in": "Aperir session", "log-out": "Clauder session", - "mismatch-finder-title": "Cercator de incoherentias Wikidata", + "mismatch-finder-title": "Recerca de incoherentias de Wikidata", "language-selector-options-menu-aria-label": "Linguas", "language-selector-mobile-header": "Selige un lingua", "language-selector-clear-button-label": "Rader campo de entrata", @@ -24,7 +24,8 @@ "item-form-error-message-max": "Per favor reduce le numero de identificatores de elemento pro respectar le limite ($1)", "item-form-error-message-invalid": "Un o plus identificatores de elemento non poteva esser processate. Per favor assecura te de adder solmente un identificator per linea, sin spatios o commas. Identificatores de elemento debe esser un sequentia de cifras precedite per le littera Q (per exemplo: Q80378).", "server-error": "Le servitor incontrava un error temporari e non poteva completar tu requesta. Per favor, prova lo de novo.", - "column-property": "Proprietate", + "column-mismatch": "Incoherentia", + "column-type": "Typo", "column-wikidata-value": "Valor sur Wikidata", "column-external-value": "Valor sur le fonte externe", "column-review-status": "Stato", @@ -33,6 +34,7 @@ "no-mismatches-found-message": "Necun incoherentia ha essite trovate pro:", "random-mismatches": "Incoherentias aleatori", "empty-value": "Necun", + "statement": "declaration", "no-mismatches-available-for-review": "Il non ha actualmente incoherentias a verificar.", "review-status-pending": "Attende revision", "review-status-wikidata": "Datos erronee sur Wikidata", @@ -66,7 +68,7 @@ "instructions-dialog-message-instruction-none": "Necun de istes: usa iste option si necun altere option es applicabile. Isto pote per exemplo esser le caso si le incoherentia ha ja essite resolvite per qualcuno altere.", "results-back-button": "Trovar plus incoherentias", "faq-button": "Plus information", - "faq-dialog-title": "Plus sur le Cercator de incoherentias", + "faq-dialog-title": "Plus sur le Recerca de incoherentias", "faq-dialog-question-finding-mismatches": "Como es trovate le incoherentias?", "faq-dialog-answer-finding-mismatches": "Le incoherentias proveni de diverse fontes. Tu potera vider le fonte de un incoherentia particular sur le pagina de resultatos plus tarde. Le incoherentias es per exemplo fornite per:", "faq-dialog-answer-finding-mismatches-sources-1": "Recercatores que analysa le datos de Wikidata;", @@ -77,7 +79,7 @@ "faq-dialog-question-contributing": "Como pote io contribuer nove incoherentias?", "faq-dialog-answer-contributing": "Si tu ha comparate le datos de Wikidata con un fonte externe e ha trovate incoherentias, tu pote aperir un carga in Phabricator pro requestar un incargamento de tu incoherentias.", "faq-dialog-question-more-info": "Ubi pote io trovar plus information?", - "faq-dialog-answer-more-info": "Le documentation e codice fonte de iste instrumento es disponibile sur GitHub. Tu pote leger plus sur le Cercator de incoherentias sur Wikidata o tu pote dar nos tu opinion.", + "faq-dialog-answer-more-info": "Le documentation e codice fonte de iste instrumento es disponibile sur GitHub. Tu pote leger plus sur le Recerca de incoherentias sur Wikidata o tu pote dar nos tu opinion.", "wikidata-tool-footer-about-tool": "A proposito del $1", "wikidata-tool-footer-license": "Licentiate sub $2", "wikidata-tool-footer-source": "Obtener codice fonte", diff --git a/public/i18n/id.json b/public/i18n/id.json index e776610b..2ee2be6b 100644 --- a/public/i18n/id.json +++ b/public/i18n/id.json @@ -11,7 +11,6 @@ "item-form-submit": "Cek Butir", "log-in": "Masuk log", "log-out": "Keluar log", - "column-property": "Atribut", "column-wikidata-value": "Nilai di Wikidata", "column-external-value": "Nilai di sumber luar", "column-review-status": "Status", diff --git a/public/i18n/it.json b/public/i18n/it.json index 74d40758..81595360 100644 --- a/public/i18n/it.json +++ b/public/i18n/it.json @@ -16,7 +16,6 @@ "language-selector-close-button-label": "Chiudi il selettore della lingua", "language-selector-input-placeholder": "Cerca lingue", "language-selector-no-results": "Lingua non disponibile", - "column-property": "Proprietà", "column-wikidata-value": "Valore su Wikidata", "column-review-status": "Stato", "empty-value": "Nessuno", diff --git a/public/i18n/lt.json b/public/i18n/lt.json index 7239cc28..806ed93d 100644 --- a/public/i18n/lt.json +++ b/public/i18n/lt.json @@ -16,7 +16,6 @@ "item-form-error-message-max": "Prašome sumažinti elementų identifikatorių skaičių iki limito ($1)", "item-form-error-message-invalid": "Vienas ar daugiau elementų indentifikatorų negali būti apdorotas. Prašome užtikrnti, kad pridėjote po vieną identifikatorių eilutėje be tarpų ar kablelių. Elementų identifikatoriais turėtų būti tinkamų skaičių rinkiniai su Q raidės priešdėliu (pvz.: Q80378).", "server-error": "Serveris susidūrė su laikina klaida ir negalėjo įvykdyti jūsų užklausos. Prašome pabandyti dar kartą.", - "column-property": "Savybė", "column-wikidata-value": "Reikmė Vikiduomenyse", "column-external-value": "Reikšmė išorės šaltinyje", "column-review-status": "Būsena", diff --git a/public/i18n/mk.json b/public/i18n/mk.json index 95098e66..599db2e4 100644 --- a/public/i18n/mk.json +++ b/public/i18n/mk.json @@ -24,7 +24,7 @@ "item-form-error-message-max": "Смалете го бројот на предмети. Ограничени сте на $1.", "item-form-error-message-invalid": "Не можев да обработам една или повеќе назнаки на предмети. Погрижете се секоја да стои самостојно во нов ред, без празни места или запирки. Назнаката треба да се состои само од важечки цифри со буквата Q пред нив (на пример: Q80378).", "server-error": "Опслужувачот наиде на привремена грешка и затоа не можеше да го исполни вашето барање. Обидете се повторно.", - "column-property": "Својство", + "column-type": "Вид", "column-wikidata-value": "Вредност на Википодатоците", "column-external-value": "Вредност на надворешниот извор", "column-review-status": "Состојба", @@ -33,6 +33,7 @@ "no-mismatches-found-message": "Не најдов несовпаѓања за:", "random-mismatches": "Случајни несовпаѓања", "empty-value": "Нема", + "statement": "исказ", "no-mismatches-available-for-review": "Засега нема несовпаѓања за проверување.", "review-status-pending": "Чека на проверка", "review-status-wikidata": "Грешни податоци на Википодатоци", diff --git a/public/i18n/ms.json b/public/i18n/ms.json index 3d27d169..b47867af 100644 --- a/public/i18n/ms.json +++ b/public/i18n/ms.json @@ -25,7 +25,8 @@ "item-form-error-message-max": "Sila kurangkan bilangan pengecam Item agar sesuai dengan had ($1)", "item-form-error-message-invalid": "Satu atau lebih pengecam Item tidak dapat diproses. Sila pastikan anda menambah hanya satu pengecam untuk setiap baris, tanpa ruang atau koma. Pengecam item hendaklah hanya satu set nombor yang sah didahului oleh huruf Q (contohnya: Q80378).", "server-error": "Pelayan mengalami ralat sementara dan tidak dapat menyelesaikan permintaan anda. Sila cuba lagi.", - "column-property": "Sifat", + "column-mismatch": "Salah padan", + "column-type": "Jenis", "column-wikidata-value": "Nilai di Wikidata", "column-external-value": "Nilai di sumber luar", "column-review-status": "Status", @@ -34,6 +35,7 @@ "no-mismatches-found-message": "Tiada ketidakpadanan ditemui untuk:", "random-mismatches": "Ketidakpadanan rawak", "empty-value": "Tiada", + "statement": "kenyataan", "no-mismatches-available-for-review": "Buat masa ini tiada ketidakpadanan tersedia untuk semakan", "review-status-pending": "Menunggu semakan", "review-status-wikidata": "Data salah di Wikidata", diff --git a/public/i18n/nb.json b/public/i18n/nb.json index 00a75ff1..2f81f393 100644 --- a/public/i18n/nb.json +++ b/public/i18n/nb.json @@ -24,7 +24,8 @@ "item-form-error-message-max": "Reduser antallet elementidentifikatorer for å passe grensen ($1)", "item-form-error-message-invalid": "En eller flere elementidentifikatorer kunne ikke sjekkes. Dobbeltsjekk at det kun er én identifikator per linje, uten mellomrom eller komma. Elementidentifikatorene burde kun være et sett gyldige tall med Q-prefiksen (for eksempel: Q80378).", "server-error": "Tjeneren støtte på en midlertidig feil og kunne ikke fullføre forespørselen din. Prøv igjen.", - "column-property": "Egenskap", + "column-mismatch": "Avvik", + "column-type": "Type", "column-wikidata-value": "Verdi på Wikidata", "column-external-value": "Verdi i ekstern kilde", "column-review-status": "Status", @@ -33,6 +34,7 @@ "no-mismatches-found-message": "Ingen differanser funnet for:", "random-mismatches": "Tilfeldige differanser", "empty-value": "Ingen", + "statement": "utsagn", "no-mismatches-available-for-review": "Det er ingen differanser som må gjennomgås for øyeblikket.", "review-status-pending": "Venter på gjennomgang", "review-status-wikidata": "Feil data på Wikidata", diff --git a/public/i18n/nl.json b/public/i18n/nl.json new file mode 100644 index 00000000..1b4abb98 --- /dev/null +++ b/public/i18n/nl.json @@ -0,0 +1,33 @@ +{ + "@metadata": { + "authors": [ + "Sjoerddebruin", + "Victor LP" + ] + }, + "about-mismatch-finder-title": "Over dit hulpmiddel", + "item-form-id-input-placeholder": "Bijvoorbeeld:\nQ80378\nQ33602\nQ1459\nQ4524", + "log-in": "Aanmelden", + "log-out": "Afmelden", + "language-selector-options-menu-aria-label": "Talen", + "language-selector-mobile-header": "Selecteer een taal", + "column-wikidata-value": "Waarde op Wikidata", + "column-review-status": "Status", + "column-external-source": "Externe bron", + "empty-value": "Geen", + "review-status-wikidata": "Verkeerde gegevens op Wikidata", + "results-instructions-button": "Instructies", + "confirmation-dialog-title": "Volgende stappen", + "confirmation-dialog-button": "Doorgaan", + "confirmation-dialog-option-label": "Niet opnieuw weergeven", + "confirm-dialog-button": "Bevestigen", + "faq-button": "Meer informatie", + "wikidata-tool-footer-about-tool": "Over de $1", + "wikidata-tool-footer-source": "Broncode ophalen", + "wikidata-tool-footer-issues": "Probleem melden", + "wikidata-tool-footer-about-us": "Over ons", + "wikidata-tool-footer-privacy": "Privacybeleid", + "wikidata-tool-footer-wmde": "Wikimedia Duitsland", + "wikidata-tool-footer-team": "Gemaakt met ♥ door het Wikida-team", + "tool-query-builder": "Query-generator" +} diff --git a/public/i18n/pl.json b/public/i18n/pl.json index f94693c5..77c22bb9 100644 --- a/public/i18n/pl.json +++ b/public/i18n/pl.json @@ -3,6 +3,7 @@ "authors": [ "Chrumps", "Czupirek", + "Luku123", "Matlin" ] }, @@ -21,7 +22,7 @@ "language-selector-input-placeholder": "Szukaj języków", "language-selector-no-results": "Język nie jest dostępny", "server-error": "Serwer napotkał problem i nie mógł zrealizować Twojego żądania. Proszę spróbować ponownie.", - "column-property": "Właściwość", + "column-type": "Typ", "column-wikidata-value": "Wartość w Wikidanych", "column-external-value": "Wartość z zewnętrznego źródła", "column-review-status": "Status", diff --git a/public/i18n/qqq.json b/public/i18n/qqq.json index a6ca99cc..f6706796 100644 --- a/public/i18n/qqq.json +++ b/public/i18n/qqq.json @@ -25,7 +25,8 @@ "item-form-error-message-max": "An error message when too many item ids are provided", "item-form-error-message-invalid": "An error message when invalid Item ids are provided", "server-error": "An error message when the server encountered an error retrieving results", - "column-property": "Property column on mismatches table", + "column-mismatch": "Mismatch column on mismatches table", + "column-type": "Type column on mismatches table", "column-wikidata-value": "Wikidata value column on mismatches table", "column-external-value": "External source column on mismatches table", "column-review-status": "The mismatch review decision column on mismatches table", @@ -34,6 +35,7 @@ "no-mismatches-found-message": "A message when no mismatches have been found for the provided Item Ids", "random-mismatches": "The call to action for retrieving random mismatches", "empty-value": "Label for empty value in Mismatch Row column 'Value on Wikidata'", + "statement": "Label for statement when value is empty in database in Mismatch Row column 'Type'", "no-mismatches-available-for-review": "A message when no unreviewed mismatches have been found. This message can be displayed when searching for random mismatches", "review-status-pending": "Label for pending review status. Default value for all un-reviewed mismatches", "review-status-wikidata": "Label that indicates that the mismatch is due to wrong data on Wikidata. Used as an option in the review decision dropdown", diff --git a/public/i18n/ru.json b/public/i18n/ru.json index a50aa648..82a99f4e 100644 --- a/public/i18n/ru.json +++ b/public/i18n/ru.json @@ -14,8 +14,10 @@ "log-in": "Войти", "log-out": "Выйти", "language-selector-options-menu-aria-label": "Языки", + "language-selector-mobile-header": "Выберите язык", + "language-selector-clear-button-label": "Очистить поле ввода", "language-selector-input-placeholder": "Поиск языков", - "column-property": "Свойство", + "language-selector-no-results": "Язык недоступен", "column-wikidata-value": "Значение в Викиданных", "column-external-value": "Значение во внешнем источнике", "column-review-status": "Состояние", @@ -27,6 +29,7 @@ "review-status-wikidata": "Неверные данные в Викиданных", "review-status-missing": "Отсутствуют данные в Викиданных", "review-status-both": "Оба неверны", + "results-page-title": "Что мне делать с несоответствиями?", "results-instructions-button": "Инструкции", "confirmation-dialog-title": "Следующие шаги", "results-full-description-button": "прочитать полное описание", @@ -35,6 +38,7 @@ "confirm-dialog-button": "Подтвердить", "results-back-button": "Найти ещё несоответствий", "faq-button": "Подробнее", + "faq-dialog-question-relevance": "Насколько актуальны эти несоответствия?", "faq-dialog-question-more-info": "Где я могу найти дополнительную информацию?", "wikidata-tool-footer-about-tool": "О $1", "wikidata-tool-footer-license": "Под лицензией $2", @@ -47,5 +51,6 @@ "mismatch-finder-footer-more-tools": "Ещё инструменты по работе с качеством данных", "tool-query-builder": "Конструктор запросов", "tool-item-quality-evaluator": "Оценка качества элементов", - "tool-curious-facts": "Любопытные факты" + "tool-curious-facts": "Любопытные факты", + "tool-constraints-violation-checker": "Проверка нарушения ограничений" } diff --git a/public/i18n/sl.json b/public/i18n/sl.json index 65a1f385..0503c4bd 100644 --- a/public/i18n/sl.json +++ b/public/i18n/sl.json @@ -24,7 +24,8 @@ "item-form-error-message-max": "Zmanjšajte število identifikatorjev predmetov, da bodo ustrezali omejitvi ($1)", "item-form-error-message-invalid": "Enega ali več identifikatorjev predmeta ni bilo mogoče obdelati. Zagotovite, da je v vsaki vrstici naveden samo en identifikator brez presledkov ali vejic. Identifikatorji predmetov so lahko samo nabor veljavnih številk, pred katerimi je črka Q (na primer: Q80378).", "server-error": "Strežnik je naletel na prehodno napako in ni mogel izvesti vašega zahtevka. Prosimo, poskusite znova.", - "column-property": "Lastnost", + "column-mismatch": "Neujemanje", + "column-type": "Vrsta", "column-wikidata-value": "Vrednost v Wikipodatkih", "column-external-value": "Vrednost v zunanjem viru", "column-review-status": "Stanje", diff --git a/public/i18n/sr-ec.json b/public/i18n/sr-ec.json index 040d79f7..95a469de 100644 --- a/public/i18n/sr-ec.json +++ b/public/i18n/sr-ec.json @@ -14,12 +14,12 @@ "language-selector-clear-button-label": "Очисти поље", "language-selector-input-placeholder": "Претрага језика", "language-selector-no-results": "Језик није доступан", - "column-property": "Својство", "column-wikidata-value": "Вредност на Википодацима", "column-external-value": "Вредност у спољном извору", "column-review-status": "Статус", "column-external-source": "Спољашњи извори", "empty-value": "Ништа", + "statement": "изјава", "review-status-both": "Обоје погрешно", "review-status-none": "Ништа од наведеног", "results-instructions-button": "Упутства", diff --git a/public/i18n/sv.json b/public/i18n/sv.json index 16f5d1a3..b3651e2c 100644 --- a/public/i18n/sv.json +++ b/public/i18n/sv.json @@ -3,7 +3,8 @@ "authors": [ "Jopparn", "Sabelöga", - "WikiPhoenix" + "WikiPhoenix", + "Yupik" ] }, "about-mismatch-finder-title": "Om verktyget", @@ -16,11 +17,11 @@ "log-in": "Logga in", "log-out": "Logga ut", "mismatch-finder-title": "Wikidata Mismatch Finder", + "language-selector-mobile-header": "Välj språk", "item-form-error-message-empty": "Ange objektsidentifierare som bör kontrolleras.", "item-form-error-message-max": "Minska antalet objektidentifierare för att vara inom gränsen ($1)", "item-form-error-message-invalid": "En eller fler objektidentifierare kunde inte bearbetats. Se till att bara lägga till en identifierare per rad, utan mellanslag eller komma. Objektidentifierare borde bara vara en uppsättning giltiga siffror som föregås av Q (exempelvis: Q80378).", "server-error": "Servern stötte på ett tillfälligt fel och kunde inte slutföra din begäran.", - "column-property": "Egenskap", "column-wikidata-value": "Värde på Wikidata", "column-external-value": "Värde på extern källa", "column-review-status": "Status", diff --git a/public/i18n/tr.json b/public/i18n/tr.json index a27ae8e5..f5ce62cf 100644 --- a/public/i18n/tr.json +++ b/public/i18n/tr.json @@ -25,7 +25,6 @@ "item-form-error-message-max": "Lütfen öge tanımlayıcılarının sayısını sınıra ($1) uyacak şekilde azaltın", "item-form-error-message-invalid": "Bir veya daha fazla öge tanımlayıcı işlenemedi. Lütfen her satıra boşluk veya virgül olmadan yalnızca bir tanımlayıcı eklediğinizden emin olun. Öge tanımlayıcıları yalnızca önünde Q harfi bulunan bir dizi geçerli sayı olmalıdır (örneğin: Q80378).", "server-error": "Sunucu geçici bir hatayla karşılaştı ve isteğinizi tamamlayamadı. Lütfen yeniden deneyin.", - "column-property": "Özellik", "column-wikidata-value": "Vikiveri'deki değer", "column-external-value": "Dış kaynaktaki değer", "column-review-status": "Durum", diff --git a/public/i18n/zh-hant.json b/public/i18n/zh-hant.json index c283977f..982074da 100644 --- a/public/i18n/zh-hant.json +++ b/public/i18n/zh-hant.json @@ -24,7 +24,8 @@ "item-form-error-message-max": "請減少項目識別碼的數量避免超過限制($1)", "item-form-error-message-invalid": "無法處理一個或多個項目識別碼。請確認每行只添加一個識別碼,並且沒有空格或逗號。項目識別碼只能是一組以字母 Q 為開頭的有效數字(例如:Q80378)。", "server-error": "伺服器臨時出現錯誤,無法完成您的請求。請再試一次。", - "column-property": "屬性", + "column-mismatch": "不匹配", + "column-type": "類型", "column-wikidata-value": "在維基數據的值", "column-external-value": "在外部來源的值", "column-review-status": "狀態", @@ -33,6 +34,7 @@ "no-mismatches-found-message": "未發現不相符內容:", "random-mismatches": "隨機不相符內容", "empty-value": "無", + "statement": "陳述", "no-mismatches-available-for-review": "目前沒有可供檢閱的不相符內容。", "review-status-pending": "等待檢閱", "review-status-wikidata": "維基數據上的資料錯誤", diff --git a/public/mix-manifest.json b/public/mix-manifest.json index e8ce1fa5..6f8b4772 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,5 +1,6 @@ { "/js/app.js": "/js/app.js", + "/css/noscript.css": "/css/noscript.css", "/css/app.css": "/css/app.css", "/images/clear.svg": "/images/clear.svg", "/images/close.svg": "/images/close.svg", diff --git a/resources/js/Components/MismatchRow.vue b/resources/js/Components/MismatchRow.vue index 9cbe7e05..40508ab9 100644 --- a/resources/js/Components/MismatchRow.vue +++ b/resources/js/Components/MismatchRow.vue @@ -1,6 +1,6 @@