From 2449e653f6054b0f75d6d4914801138ef33055e8 Mon Sep 17 00:00:00 2001 From: benoit74 Date: Thu, 29 Oct 2026 08:37:08 +0000 Subject: [PATCH] Upgrade Python, Node.JS and GitHub Actions dependencies - Allow pymupdf 2, pillow 13, beartype 0.23, urllib3 2.8 and xxhash 4 - Upgrade QA, test and docs tooling; unpin pygments now that pygments/pygments#3076 is fixed - Use dt alias for datetime imports, as required by ruff 0.17 (ICN001) - Upgrade Node.JS dev dependencies and yarn, remove unused babel-eslint and eslint-config-prettier - Upgrade GitHub Actions to latest major versions - Exclude .hatch and site folders from pyright --- .github/workflows/Publish.yaml | 16 +- .github/workflows/PublishDev.yaml | 6 +- .github/workflows/QA.yaml | 12 +- .github/workflows/Tests.yaml | 18 +- .pre-commit-config.yaml | 4 +- CHANGELOG.md | 1 + javascript/package.json | 14 +- javascript/yarn.lock | 769 ++++++++++++++-------------- pyproject.toml | 38 +- src/zimscraperlib/zim/filesystem.py | 6 +- src/zimscraperlib/zim/metadata.py | 16 +- tests/zim/test_metadata.py | 16 +- tests/zim/test_zim_creator.py | 6 +- 13 files changed, 444 insertions(+), 478 deletions(-) diff --git a/.github/workflows/Publish.yaml b/.github/workflows/Publish.yaml index 11bf2065..1fc0ae13 100644 --- a/.github/workflows/Publish.yaml +++ b/.github/workflows/Publish.yaml @@ -10,10 +10,10 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 @@ -44,7 +44,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Restore rules artifact uses: actions/download-artifact@v8 @@ -52,7 +52,7 @@ jobs: name: rules - name: Setup Node.JS - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version-file: 'javascript/package.json' @@ -84,7 +84,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Restore rules artifact uses: actions/download-artifact@v8 @@ -98,7 +98,7 @@ jobs: path: src/zimscraperlib/rewriting/statics - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 @@ -119,7 +119,7 @@ jobs: # steps: # - name: Checkout repo -# uses: actions/checkout@v6 +# uses: actions/checkout@v7 # - name: Restore rules artifact # uses: actions/download-artifact@v8 @@ -127,7 +127,7 @@ jobs: # name: rules # - name: Setup Node.JS -# uses: actions/setup-node@v6 +# uses: actions/setup-node@v7 # with: # node-version-file: 'javascript/package.json' # registry-url: 'https://registry.npmjs.org' # Setup .npmrc file to publish to npm diff --git a/.github/workflows/PublishDev.yaml b/.github/workflows/PublishDev.yaml index 240902cc..f511ddfb 100644 --- a/.github/workflows/PublishDev.yaml +++ b/.github/workflows/PublishDev.yaml @@ -11,10 +11,10 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 @@ -29,7 +29,7 @@ jobs: python rules/generate_rules.py - name: Setup Node.JS - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version-file: 'javascript/package.json' registry-url: 'https://registry.npmjs.org' diff --git a/.github/workflows/QA.yaml b/.github/workflows/QA.yaml index e8673ffe..df10d11f 100644 --- a/.github/workflows/QA.yaml +++ b/.github/workflows/QA.yaml @@ -12,10 +12,10 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 @@ -46,7 +46,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Restore rules artifact uses: actions/download-artifact@v8 @@ -54,7 +54,7 @@ jobs: name: rules - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 @@ -79,7 +79,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Restore rules artifact uses: actions/download-artifact@v8 @@ -87,7 +87,7 @@ jobs: name: rules - name: Setup Node.JS - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version-file: 'javascript/package.json' diff --git a/.github/workflows/Tests.yaml b/.github/workflows/Tests.yaml index 16beabb7..e8ddb33f 100644 --- a/.github/workflows/Tests.yaml +++ b/.github/workflows/Tests.yaml @@ -12,10 +12,10 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 @@ -46,7 +46,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Restore rules artifact uses: actions/download-artifact@v8 @@ -57,7 +57,7 @@ jobs: run: sudo apt update && sudo apt install ffmpeg gifsicle - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 @@ -71,7 +71,7 @@ jobs: run: inv coverage --args "--runslow --runinstalled -vvv" - name: Upload coverage report to codecov - uses: codecov/codecov-action@v6 + uses: codecov/codecov-action@v7 with: fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} @@ -87,7 +87,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Restore rules artifact uses: actions/download-artifact@v8 @@ -95,7 +95,7 @@ jobs: name: rules - name: Setup Node.JS - uses: actions/setup-node@v6 + uses: actions/setup-node@v7 with: node-version-file: 'javascript/package.json' @@ -128,10 +128,10 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version-file: pyproject.toml architecture: x64 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c44a5c0b..912c63dc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,12 +8,12 @@ repos: - id: trailing-whitespace - id: end-of-file-fixer - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.0 + rev: v0.17.3 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/RobertCraigie/pyright-python - rev: v1.1.411 + rev: v1.1.414 hooks: - id: pyright name: pyright (system) diff --git a/CHANGELOG.md b/CHANGELOG.md index ebce4485..075b83ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Upgrade to wombat 3.11.0 (#338) +- Upgrade Python dependencies, allowing pymupdf 2, pillow 13, beartype 0.23, urllib3 2.8 and xxhash 4, and Node.JS dependencies ### Fixed diff --git a/javascript/package.json b/javascript/package.json index 5edd04f9..5ff5677b 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -8,13 +8,11 @@ "@rollup/plugin-commonjs": "29.0.3", "@rollup/plugin-node-resolve": "16.0.3", "@rollup/plugin-strip": "3.0.4", - "@rollup/plugin-terser": "1.0.0", - "ava": "8.0.1", - "babel-eslint": "10.1.0", - "eslint": "10.7.0", - "eslint-config-prettier": "10.1.8", - "prettier": "3.9.6", - "rollup": "4.62.2", + "@rollup/plugin-terser": "1.0.2", + "ava": "8.2.0", + "eslint": "10.13.0", + "prettier": "3.9.10", + "rollup": "4.65.1", "rollup-plugin-version-injector": "1.3.3" }, "scripts": { @@ -43,5 +41,5 @@ "engines": { "node": ">=26.0.0 <27.0.0" }, - "packageManager": "yarn@4.17.1" + "packageManager": "yarn@4.18.1" } diff --git a/javascript/yarn.lock b/javascript/yarn.lock index b0988183..7b1b8bd5 100644 --- a/javascript/yarn.lock +++ b/javascript/yarn.lock @@ -5,102 +5,32 @@ __metadata: version: 10 cacheKey: 10c0 -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/code-frame@npm:7.29.7" +"@cacheable/memory@npm:^2.2.0": + version: 2.2.0 + resolution: "@cacheable/memory@npm:2.2.0" dependencies: - "@babel/helper-validator-identifier": "npm:^7.29.7" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10c0/169fc2080169a40c1760155eaaaf739bcb882df0bec76a83adbda5493645bc17270a3434b8848c494b1933e96fe1d147370001e3cda09a39f43ae30f08ef2069 + "@cacheable/utils": "npm:^2.5.0" + "@keyv/bigmap": "npm:^1.3.1" + hookified: "npm:^1.15.1" + keyv: "npm:^5.6.0" + checksum: 10c0/c74889eb09871be0696065778fff013a498ddc73b538d113c2cb6ece361746f2959fbddfa4ce03ce53c9259998be05949e393212e72413dbd07616744eabd261 languageName: node linkType: hard -"@babel/generator@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/generator@npm:7.29.7" +"@cacheable/utils@npm:^2.5.0": + version: 2.5.0 + resolution: "@cacheable/utils@npm:2.5.0" dependencies: - "@babel/parser": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - "@jridgewell/gen-mapping": "npm:^0.3.12" - "@jridgewell/trace-mapping": "npm:^0.3.28" - jsesc: "npm:^3.0.2" - checksum: 10c0/9bf72b01b5bd0ea5b1288a0e37dbd360bff2f2b1ce73342c0d40fb3db2ec3dc004ada5ffa925c5e12939a416eed59e600d562b8ecd938ce0d27dfd0eb6c6c2b7 + hashery: "npm:^1.5.1" + keyv: "npm:^5.6.0" + checksum: 10c0/99e901accd71eeb0bce91484d6c66d7ef2c731b541561eb5dc9ea7fed78bdc0b65e5dd2a80edde50191143bcfc5f238fc4742475b32e82d43b43eea224038e35 languageName: node linkType: hard -"@babel/helper-globals@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-globals@npm:7.29.7" - checksum: 10c0/f38417c40b1129a1b2b519ca961b9040c8827d1444fd74068702286b91b77089431dc76b6b9d5c1496e5da2a4f3ad329c6946e688ba3fa0d1d0b3d2b4f34f36a - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-string-parser@npm:7.29.7" - checksum: 10c0/194bc0f1716e396d5ffde56ad6119745fb9557662c98611590e5e454906783a4ccb21ce93056b8eb69a4909044834e45d96e50ac695bbe9e3221648fe033c06c - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-validator-identifier@npm:7.29.7" - checksum: 10c0/4795354e7ae0dcafa72de1cd04ec51252dc1498517170beaf019e03effc5b7bf13c6b21a3949a77e07b8125be7f106ed1131350d8ebd4566ae874094a726d62b - languageName: node - linkType: hard - -"@babel/parser@npm:^7.29.7, @babel/parser@npm:^7.7.0": - version: 7.29.7 - resolution: "@babel/parser@npm:7.29.7" - dependencies: - "@babel/types": "npm:^7.29.7" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/65133038f80b54a714d6027cb77cee3f9a6b5c4c6842ce674301e13947cbcbfa8055e63acaf1b84c085d34226a14425b2c2b97b829e0e226d2e8f1299942a51d - languageName: node - linkType: hard - -"@babel/template@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/template@npm:7.29.7" - dependencies: - "@babel/code-frame": "npm:^7.29.7" - "@babel/parser": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - checksum: 10c0/8bb7f900dcab0e9e1c5ffbc33ca10e0d26b7b2e2ca804becb73ee771b9c4ed6e2908a4ae4a14c08560febb45d2b6b9a173955e42ad404d05f8b04840a14d9c58 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.7.0": - version: 7.29.7 - resolution: "@babel/traverse@npm:7.29.7" - dependencies: - "@babel/code-frame": "npm:^7.29.7" - "@babel/generator": "npm:^7.29.7" - "@babel/helper-globals": "npm:^7.29.7" - "@babel/parser": "npm:^7.29.7" - "@babel/template": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - debug: "npm:^4.3.1" - checksum: 10c0/e256a1fbdb956555b76f3c285b1e453f6bedec8b3afb61751d99d933efd11c7d79caf5ddf2493570058a9f7deaa1b48324380d7c1aa1443fd9508becbf56331a - languageName: node - linkType: hard - -"@babel/types@npm:^7.29.7, @babel/types@npm:^7.7.0": - version: 7.29.7 - resolution: "@babel/types@npm:7.29.7" - dependencies: - "@babel/helper-string-parser": "npm:^7.29.7" - "@babel/helper-validator-identifier": "npm:^7.29.7" - checksum: 10c0/b6623994c69717fa27294f5fa46d59140338e2d86c6c1c13085c84ef7d53086ee357fbf4fe9abe3dd3da75734dc77c4c0df2f90fb29e667558bb3b3fb705e88f - languageName: node - linkType: hard - -"@cto.af/wtf8@npm:0.0.5": - version: 0.0.5 - resolution: "@cto.af/wtf8@npm:0.0.5" - checksum: 10c0/b73ebb301b0f1ff0a3b127b5200f0c87deaa69ea0c1cbf5a035ac35d8ff533749e4963b41375c7fcb29d9443990407e864ac009d6c5242d0e0bf9676ab4ae83c +"@cto.af/wtf8@npm:1.0.0": + version: 1.0.0 + resolution: "@cto.af/wtf8@npm:1.0.0" + checksum: 10c0/850591142314da70fe98ff169e8cfccabf489d7f46d223f8bb970cd7632de6fd82d5eb73bc8b04230cf8bb03c28a37eb121b48045f3489b291cf1cbd2be5a9d8 languageName: node linkType: hard @@ -133,12 +63,12 @@ __metadata: languageName: node linkType: hard -"@eslint/config-helpers@npm:^0.6.0": - version: 0.6.0 - resolution: "@eslint/config-helpers@npm:0.6.0" +"@eslint/config-helpers@npm:^0.7.0": + version: 0.7.0 + resolution: "@eslint/config-helpers@npm:0.7.0" dependencies: "@eslint/core": "npm:^1.2.1" - checksum: 10c0/f9af20e8b60b0ba27edb74b8eb40c0c5d51a9bf9baf9e053bb57833a87cb0a1c49b4dfaad88fc24d49c907ad1324c8a0b668684fa9c321351dac4bc9155ec10a + checksum: 10c0/fd40d57d6f1db49f7b647048b88a433dc7f6522ef3edf855a43cb526ef4fc40622ceed0dc8de2e03d254f30f8e035370570de1d4bd8e7c2b1200131451e0d331 languageName: node linkType: hard @@ -158,13 +88,13 @@ __metadata: languageName: node linkType: hard -"@eslint/plugin-kit@npm:^0.7.2": - version: 0.7.2 - resolution: "@eslint/plugin-kit@npm:0.7.2" +"@eslint/plugin-kit@npm:^0.7.3": + version: 0.7.3 + resolution: "@eslint/plugin-kit@npm:0.7.3" dependencies: "@eslint/core": "npm:^1.2.1" levn: "npm:^0.4.1" - checksum: 10c0/aafba08077bcd6d7dde6c2e21db18086046a88f914f29971a84cac9ad2d48952ded1b293e665e523805297eff756522dafa16f0062195e2c7143dcd1d47d11ed + checksum: 10c0/2daebaedcfbd261478e8b87dfb46d3118f48277c19eb298483ebc6f3b438e9688b86ddca13b3aeb08dfb06be00fb6073506852386aa124645c1170e7e33d140c languageName: node linkType: hard @@ -218,7 +148,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.13 resolution: "@jridgewell/gen-mapping@npm:0.3.13" dependencies: @@ -252,7 +182,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28": +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.31 resolution: "@jridgewell/trace-mapping@npm:0.3.31" dependencies: @@ -262,6 +192,25 @@ __metadata: languageName: node linkType: hard +"@keyv/bigmap@npm:^1.3.1": + version: 1.3.1 + resolution: "@keyv/bigmap@npm:1.3.1" + dependencies: + hashery: "npm:^1.4.0" + hookified: "npm:^1.15.0" + peerDependencies: + keyv: ^5.6.0 + checksum: 10c0/acc6a4a5edf462ce23e95672ab4bfaf7cd1941dff6bf3a2f671ce467961ace1fac9d3eb75a9ed9a8e92012e00a7d8b16ad1677bc539a52c3ad0cec31473e2349 + languageName: node + linkType: hard + +"@keyv/serialize@npm:^1.1.1": + version: 1.1.1 + resolution: "@keyv/serialize@npm:1.1.1" + checksum: 10c0/b0008cae4a54400c3abf587b8cc2474c6f528ee58969ce6cf9cb07a04006f80c73c85971d6be6544408318a2bc40108236a19a82aea0a6de95aae49533317374 + languageName: node + linkType: hard + "@mapbox/node-pre-gyp@npm:^2.0.0": version: 2.0.3 resolution: "@mapbox/node-pre-gyp@npm:2.0.3" @@ -279,6 +228,13 @@ __metadata: languageName: node linkType: hard +"@napi-rs/lzma-linux-x64-gnu@npm:1.5.1": + version: 1.5.1 + resolution: "@napi-rs/lzma-linux-x64-gnu@npm:1.5.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -313,13 +269,11 @@ __metadata: "@rollup/plugin-commonjs": "npm:29.0.3" "@rollup/plugin-node-resolve": "npm:16.0.3" "@rollup/plugin-strip": "npm:3.0.4" - "@rollup/plugin-terser": "npm:1.0.0" - ava: "npm:8.0.1" - babel-eslint: "npm:10.1.0" - eslint: "npm:10.7.0" - eslint-config-prettier: "npm:10.1.8" - prettier: "npm:3.9.6" - rollup: "npm:4.62.2" + "@rollup/plugin-terser": "npm:1.0.2" + ava: "npm:8.2.0" + eslint: "npm:10.13.0" + prettier: "npm:3.9.10" + rollup: "npm:4.65.1" rollup-plugin-version-injector: "npm:1.3.3" uri-js: "npm:4.4.1" languageName: unknown @@ -379,19 +333,19 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-terser@npm:1.0.0": - version: 1.0.0 - resolution: "@rollup/plugin-terser@npm:1.0.0" +"@rollup/plugin-terser@npm:1.0.2": + version: 1.0.2 + resolution: "@rollup/plugin-terser@npm:1.0.2" dependencies: serialize-javascript: "npm:^7.0.3" smob: "npm:^1.0.0" - terser: "npm:^5.17.4" + terser: "npm:^5.49.2" peerDependencies: rollup: ^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - checksum: 10c0/08be445cc2e0677132ee06cdebbcd1b6cd3ab22e220fcd89d8a22eaf9ee501a940f425931ac65c65ab113803ad31a895f2575716248609c882c8e562fd6cc2d4 + checksum: 10c0/2dd58902f543f9d156d367074cb65d45236245a714ee3af745d695082258ca2525e03a2b8dc704c0123cf9081363ad55b4c01a8ac23a69f9200a944d30e4bc07 languageName: node linkType: hard @@ -411,177 +365,177 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.62.2" +"@rollup/rollup-android-arm-eabi@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.65.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-android-arm64@npm:4.62.2" +"@rollup/rollup-android-arm64@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-android-arm64@npm:4.65.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-darwin-arm64@npm:4.62.2" +"@rollup/rollup-darwin-arm64@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.65.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-darwin-x64@npm:4.62.2" +"@rollup/rollup-darwin-x64@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.65.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.62.2" +"@rollup/rollup-freebsd-arm64@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.65.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-freebsd-x64@npm:4.62.2" +"@rollup/rollup-freebsd-x64@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.65.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.62.2" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.65.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.62.2" +"@rollup/rollup-linux-arm-musleabihf@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.65.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.62.2" +"@rollup/rollup-linux-arm64-gnu@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.65.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.62.2" +"@rollup/rollup-linux-arm64-musl@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.65.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loong64-gnu@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.62.2" +"@rollup/rollup-linux-loong64-gnu@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.65.1" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-loong64-musl@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-loong64-musl@npm:4.62.2" +"@rollup/rollup-linux-loong64-musl@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.65.1" conditions: os=linux & cpu=loong64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-gnu@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.62.2" +"@rollup/rollup-linux-ppc64-gnu@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.65.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-musl@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.62.2" +"@rollup/rollup-linux-ppc64-musl@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.65.1" conditions: os=linux & cpu=ppc64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.62.2" +"@rollup/rollup-linux-riscv64-gnu@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.65.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.62.2" +"@rollup/rollup-linux-riscv64-musl@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.65.1" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.62.2" +"@rollup/rollup-linux-s390x-gnu@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.65.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.62.2" +"@rollup/rollup-linux-x64-gnu@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.65.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.62.2" +"@rollup/rollup-linux-x64-musl@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.65.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-openbsd-x64@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-openbsd-x64@npm:4.62.2" +"@rollup/rollup-openbsd-x64@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-openbsd-x64@npm:4.65.1" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-openharmony-arm64@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.62.2" +"@rollup/rollup-openharmony-arm64@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.65.1" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.62.2" +"@rollup/rollup-win32-arm64-msvc@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.65.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.62.2" +"@rollup/rollup-win32-ia32-msvc@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.65.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-gnu@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.62.2" +"@rollup/rollup-win32-x64-gnu@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.65.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.62.2": - version: 4.62.2 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.62.2" +"@rollup/rollup-win32-x64-msvc@npm:4.65.1": + version: 4.65.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.65.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -621,9 +575,9 @@ __metadata: languageName: node linkType: hard -"@vercel/nft@npm:^1.5.0": - version: 1.10.2 - resolution: "@vercel/nft@npm:1.10.2" +"@vercel/nft@npm:^1.11.0": + version: 1.11.0 + resolution: "@vercel/nft@npm:1.11.0" dependencies: "@mapbox/node-pre-gyp": "npm:^2.0.0" "@rollup/pluginutils": "npm:^5.1.3" @@ -635,11 +589,11 @@ __metadata: glob: "npm:^13.0.0" graceful-fs: "npm:^4.2.9" node-gyp-build: "npm:^4.2.2" - picomatch: "npm:^4.0.2" + picomatch: "npm:^4.0.4" resolve-from: "npm:^5.0.0" bin: nft: out/cli.js - checksum: 10c0/114da3765758075906bcd2c07a21776b0f675486a665c5c3a2691df21b28e85796eb760272427cf5521189e19d276052245979c972fecf1605e3091951af90a3 + checksum: 10c0/8b1567bf31a5ddaad64dd87a2fb1e009e2281e0f00d3682b0866b3570fcbdf29b07d2706d5c11dd93f28c111316a4cb0d395f792a562d692e3dc24977ec61b75 languageName: node linkType: hard @@ -693,6 +647,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.19.0": + version: 8.19.0 + resolution: "acorn@npm:8.19.0" + bin: + acorn: bin/acorn + checksum: 10c0/21007e0ca638dd13d44a0ad26856b7a885cc6c4319cd2bc71694bc8ec3f0606c23ecd12b157e167f909d9d2b2d68d5b50fe3f54211b1aab7c3451a7c801fe62e + languageName: node + linkType: hard + "agent-base@npm:^7.1.2": version: 7.1.4 resolution: "agent-base@npm:7.1.4" @@ -735,6 +698,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^7.0.0": + version: 7.0.0 + resolution: "ansi-styles@npm:7.0.0" + checksum: 10c0/406cf8984c682d632738964db918d895d84ec4ff39bffd0dddc81c4a4669a77b57adb0b58b26a1cc6ebcff0e30581d5946fc9b6f0394f6d9ac0b42f5ea97d216 + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -772,74 +742,58 @@ __metadata: languageName: node linkType: hard -"ava@npm:8.0.1": - version: 8.0.1 - resolution: "ava@npm:8.0.1" +"ava@npm:8.2.0": + version: 8.2.0 + resolution: "ava@npm:8.2.0" dependencies: - "@vercel/nft": "npm:^1.5.0" - acorn: "npm:^8.16.0" + "@vercel/nft": "npm:^1.11.0" + acorn: "npm:^8.19.0" acorn-walk: "npm:^8.3.5" - ansi-styles: "npm:^6.2.3" + ansi-styles: "npm:^7.0.0" arrgv: "npm:^1.0.2" arrify: "npm:^3.0.0" callsites: "npm:^4.2.0" - cbor2: "npm:^2.3.0" - chalk: "npm:^5.6.2" + cbor2: "npm:^2.4.0" + chalk: "npm:^6.0.1" chunkd: "npm:^2.0.1" ci-info: "npm:^4.4.0" ci-parallel-vars: "npm:^1.0.1" - cli-truncate: "npm:^6.0.0" + cli-truncate: "npm:^6.1.1" code-excerpt: "npm:^4.0.0" common-path-prefix: "npm:^3.0.0" concordance: "npm:^5.0.4" currently-unhandled: "npm:^0.4.1" debug: "npm:^4.4.3" - emittery: "npm:^2.0.0" + emittery: "npm:^2.2.0" figures: "npm:^6.1.0" - globby: "npm:^16.2.0" + globby: "npm:^16.2.4" ignore-by-default: "npm:^2.1.0" indent-string: "npm:^5.0.0" - is-plain-object: "npm:^5.0.0" + is-plain-object: "npm:^5.1.0" is-promise: "npm:^4.0.0" - matcher: "npm:^6.0.0" + matcher: "npm:^7.0.0" memoize: "npm:^11.0.0" ms: "npm:^2.1.3" - p-map: "npm:^7.0.4" + p-map: "npm:^7.1.1" package-config: "npm:^5.0.0" - picomatch: "npm:^4.0.4" + picomatch: "npm:^4.0.7" plur: "npm:^6.0.0" - pretty-ms: "npm:^9.3.0" + pretty-ms: "npm:^10.0.0" resolve-cwd: "npm:^3.0.0" slash: "npm:^5.1.0" stack-utils: "npm:^2.0.6" supertap: "npm:^3.0.1" temp-dir: "npm:^3.0.0" write-file-atomic: "npm:^7.0.1" - yargs: "npm:^18.0.0" + yargs: "npm:^18.2.0" peerDependencies: "@ava/typescript": "*" peerDependenciesMeta: "@ava/typescript": optional: true bin: - ava: entrypoints/cli.js - checksum: 10c0/2edaede2e47aeaf4e1ed5744380d308a1e0ea7aba7f39ce6a96635a463857020826071e1e7ad5c2f79582244aa5c51ed3bab1fa818cc74a5249c8d3f00e4a4d6 - languageName: node - linkType: hard - -"babel-eslint@npm:10.1.0": - version: 10.1.0 - resolution: "babel-eslint@npm:10.1.0" - dependencies: - "@babel/code-frame": "npm:^7.0.0" - "@babel/parser": "npm:^7.7.0" - "@babel/traverse": "npm:^7.7.0" - "@babel/types": "npm:^7.7.0" - eslint-visitor-keys: "npm:^1.0.0" - resolve: "npm:^1.12.0" - peerDependencies: - eslint: ">= 4.12.1" - checksum: 10c0/a1596111871ce3615410a2ffb87ab8383b35a8c8e1942b47130cb12bca2578c8eb9d8e56c3c84f44d7abe716684f6794f2e6c1e5b4e6d09f171ae51670be44b9 + ava: ./entrypoints/cli.js + checksum: 10c0/59559d687f0cfb08a572ab145025d304ebd1d9df3814ab7b9fd651325416ecf415d1c055e3d0e4ae5fcec823ac3a0d3b3f038237bfbe0d1f08b61368faa5fe95 languageName: node linkType: hard @@ -875,6 +829,15 @@ __metadata: languageName: node linkType: hard +"brace-expansion@npm:^5.0.8": + version: 5.0.12 + resolution: "brace-expansion@npm:5.0.12" + dependencies: + balanced-match: "npm:^4.0.2" + checksum: 10c0/a40ac64d3bdb5bb222456514d3633c1f627f03b844f509c69e70f98b78be0ce85e21b44bbfecdd0ddd4cc0855ca4242b41ea96ddccf88c7c3c7a84405474bb3a + languageName: node + linkType: hard + "braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" @@ -891,6 +854,19 @@ __metadata: languageName: node linkType: hard +"cacheable@npm:^2.5.0": + version: 2.5.0 + resolution: "cacheable@npm:2.5.0" + dependencies: + "@cacheable/memory": "npm:^2.2.0" + "@cacheable/utils": "npm:^2.5.0" + hookified: "npm:^1.15.0" + keyv: "npm:^5.6.0" + qified: "npm:^0.10.1" + checksum: 10c0/ad4086a60ed327196901c16360312705e35bfde5118457449cfabaf4ece0fecad046985ea8b66b3ece46dd469cb33798d87e1dac3ed2c00746578054bccbf74d + languageName: node + linkType: hard + "callsites@npm:^4.2.0": version: 4.2.0 resolution: "callsites@npm:4.2.0" @@ -898,12 +874,12 @@ __metadata: languageName: node linkType: hard -"cbor2@npm:^2.3.0": - version: 2.3.0 - resolution: "cbor2@npm:2.3.0" +"cbor2@npm:^2.4.0": + version: 2.4.1 + resolution: "cbor2@npm:2.4.1" dependencies: - "@cto.af/wtf8": "npm:0.0.5" - checksum: 10c0/373e528163e58d1b7f74ae6bc201a2c1e4e3d780b9244caa42e5bb14a7c7b5a862b27e01c45ae9371ac9cfd375d9d6c936e38d547ed170ace2e808c26380176e + "@cto.af/wtf8": "npm:1.0.0" + checksum: 10c0/04c0d24c8079eefba49bce567f3acce14a53a01bdadd15e5bc575aeb56229eb69bb92c4d38dc52d5e6a94ea660e480c8e93da24774ad68bd9722d7af328cf91d languageName: node linkType: hard @@ -917,10 +893,10 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.6.2": - version: 5.6.2 - resolution: "chalk@npm:5.6.2" - checksum: 10c0/99a4b0f0e7991796b1e7e3f52dceb9137cae2a9dfc8fc0784a550dc4c558e15ab32ed70b14b21b52beb2679b4892b41a0aa44249bcb996f01e125d58477c6976 +"chalk@npm:^6.0.1": + version: 6.0.1 + resolution: "chalk@npm:6.0.1" + checksum: 10c0/4c58238fa874f531b5201bf99ebd374742be31f8e306c7783d930856aec305f2dea3e07531a8805b2a7ba92807296e39ced52e9f673703e0264d96e83998a429 languageName: node linkType: hard @@ -952,7 +928,7 @@ __metadata: languageName: node linkType: hard -"cli-truncate@npm:^6.0.0": +"cli-truncate@npm:^6.1.1": version: 6.1.1 resolution: "cli-truncate@npm:6.1.1" dependencies: @@ -1118,10 +1094,10 @@ __metadata: languageName: node linkType: hard -"emittery@npm:^2.0.0": - version: 2.0.0 - resolution: "emittery@npm:2.0.0" - checksum: 10c0/b8b5836e9fd368670e1ce5cb948feef30351ecebfbf589ac807c1f6b38c90d6556b2d48883f9b3c371fad59c92519b333dc3919a8ff5e351aea0f8b424203826 +"emittery@npm:^2.2.0": + version: 2.2.0 + resolution: "emittery@npm:2.2.0" + checksum: 10c0/0ac98b7925833a6dcdbd0e460f85f042054e0e9dcc38efc4adacd3a8e3d45ed3650a95c18414560f893415d94cf0feaee22718292e5c1c165191605397ef5890 languageName: node linkType: hard @@ -1167,24 +1143,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^5.0.0": - version: 5.0.0 - resolution: "escape-string-regexp@npm:5.0.0" - checksum: 10c0/6366f474c6f37a802800a435232395e04e9885919873e382b157ab7e8f0feb8fed71497f84a6f6a81a49aab41815522f5839112bd38026d203aea0c91622df95 - languageName: node - linkType: hard - -"eslint-config-prettier@npm:10.1.8": - version: 10.1.8 - resolution: "eslint-config-prettier@npm:10.1.8" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 10c0/e1bcfadc9eccd526c240056b1e59c5cd26544fe59feb85f38f4f1f116caed96aea0b3b87868e68b3099e55caaac3f2e5b9f58110f85db893e83a332751192682 - languageName: node - linkType: hard - "eslint-scope@npm:^9.1.2": version: 9.1.2 resolution: "eslint-scope@npm:9.1.2" @@ -1197,13 +1155,6 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^1.0.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 10c0/10c91fdbbe36810dd4308e57f9a8bc7177188b2a70247e54e3af1fa05ebc66414ae6fd4ce3c6c6821591f43a556e9037bc6b071122e099b5f8b7d2f76df553e3 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" @@ -1218,16 +1169,16 @@ __metadata: languageName: node linkType: hard -"eslint@npm:10.7.0": - version: 10.7.0 - resolution: "eslint@npm:10.7.0" +"eslint@npm:10.13.0": + version: 10.13.0 + resolution: "eslint@npm:10.13.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.8.0" "@eslint-community/regexpp": "npm:^4.12.2" "@eslint/config-array": "npm:^0.23.5" - "@eslint/config-helpers": "npm:^0.6.0" + "@eslint/config-helpers": "npm:^0.7.0" "@eslint/core": "npm:^1.2.1" - "@eslint/plugin-kit": "npm:^0.7.2" + "@eslint/plugin-kit": "npm:^0.7.3" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.4.2" @@ -1242,14 +1193,14 @@ __metadata: esquery: "npm:^1.7.0" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^8.0.0" + file-entry-cache: "npm:11.1.5 || >11.1.6 <12" find-up: "npm:^5.0.0" glob-parent: "npm:^6.0.2" ignore: "npm:^5.2.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" - minimatch: "npm:^10.2.4" + minimatch: "npm:^10.2.5" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" peerDependencies: @@ -1259,7 +1210,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/d9415f506730c098ab8897da39f5719cdf9d1026c9511c322d4a272677f904b7d43ff423d63ee941c9a03d74d1a75563ce2668886734b1f293b22e57911a6dd6 + checksum: 10c0/4a28e85de458f13306d30f07df21b58109056bd8bd691b6158952d95e126cf742db2eb09562e3f1c1cc0154ee44dedc789f8ced8d0d8da48e82a689aa9cb1c0d languageName: node linkType: hard @@ -1401,12 +1352,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^8.0.0": - version: 8.0.0 - resolution: "file-entry-cache@npm:8.0.0" +"file-entry-cache@npm:11.1.5 || >11.1.6 <12": + version: 11.1.5 + resolution: "file-entry-cache@npm:11.1.5" dependencies: - flat-cache: "npm:^4.0.0" - checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 + flat-cache: "npm:^6.1.23" + checksum: 10c0/d05eca8794b27824d79a0f1a0bc76b81ca7232b6c9634bc086f365a6d9ddac749c4826b2b2d36bb7ef9ed84fdf0097f34979527daeb9255b4f17673a4ae50fc5 languageName: node linkType: hard @@ -1443,20 +1394,21 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^4.0.0": - version: 4.0.1 - resolution: "flat-cache@npm:4.0.1" +"flat-cache@npm:^6.1.23": + version: 6.1.23 + resolution: "flat-cache@npm:6.1.23" dependencies: - flatted: "npm:^3.2.9" - keyv: "npm:^4.5.4" - checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc + cacheable: "npm:^2.5.0" + flatted: "npm:^3.4.2" + hookified: "npm:^1.15.0" + checksum: 10c0/c757c24f51334e1917958cd9d62d4ed3d520a3815d5a1ec50d993ac3a93fa81b6de7e28264231914bb0d990babd426e4d713d3e2f3d782dae65c42a2ded1e651 languageName: node linkType: hard -"flatted@npm:^3.2.9": - version: 3.4.3 - resolution: "flatted@npm:3.4.3" - checksum: 10c0/0b36eba483a68dda5a2c4dda9cab61dc1c57a3bd9bd6942d1c6fac9c94c86fb6295c7167f33f94f72b5a79ccf95bf5c2a0cf99f73888ef858252439e149bf24b +"flatted@npm:^3.4.2": + version: 3.4.4 + resolution: "flatted@npm:3.4.4" + checksum: 10c0/a3a52a88ea5a4c333e5a1f097dcd87a037fa31c236a77cf46222c2aa4036ef895ab9bc76138a66d9dc22bdb3652128f9598cd26e7439561bf19f67276e2bc37e languageName: node linkType: hard @@ -1529,17 +1481,18 @@ __metadata: languageName: node linkType: hard -"globby@npm:^16.2.0": - version: 16.2.2 - resolution: "globby@npm:16.2.2" +"globby@npm:^16.2.4": + version: 16.2.4 + resolution: "globby@npm:16.2.4" dependencies: "@sindresorhus/merge-streams": "npm:^4.0.0" fast-glob: "npm:^3.3.3" ignore: "npm:^7.0.5" is-path-inside: "npm:^4.0.0" + micromatch: "npm:^4.0.8" slash: "npm:^5.1.0" unicorn-magic: "npm:^0.4.0" - checksum: 10c0/77bbd36a8862b2952ccbb7e411064387c5b274cb0a1466fd335b0bf336f2b7d92e05167799ddcaf8beac571229d9a7d8a4d5ea7446d4a90714cdc32cef2443ed + checksum: 10c0/ef4a56b656260138b47706bd9532aad86d2820f028c58d51af41f458cf7f1177ce71cf104697cd6068c18eb1e0f3272bf446bc7c6265a357c6a159a1a1e31cec languageName: node linkType: hard @@ -1557,6 +1510,15 @@ __metadata: languageName: node linkType: hard +"hashery@npm:^1.4.0, hashery@npm:^1.5.1": + version: 1.5.1 + resolution: "hashery@npm:1.5.1" + dependencies: + hookified: "npm:^1.15.0" + checksum: 10c0/ab4225b655a7b0d05df99b1a59d5b3a51fe433f82422ca25e6f3f4c4ddd30adb49ebd38e0047ef9bded93319c1e9fc857e16aa382e554929c871cb77d39fc463 + languageName: node + linkType: hard + "hasown@npm:^2.0.3": version: 2.0.4 resolution: "hasown@npm:2.0.4" @@ -1566,6 +1528,20 @@ __metadata: languageName: node linkType: hard +"hookified@npm:^1.15.0, hookified@npm:^1.15.1": + version: 1.15.1 + resolution: "hookified@npm:1.15.1" + checksum: 10c0/6b691374fa97ae57169fb29f90e723499fda5e85494654fbe55c4768b3ccbf3e14c0adc8d0f365f32c503b60d7c06f907781f5966c03d41c423575eb5e16860c + languageName: node + linkType: hard + +"hookified@npm:^2.1.1": + version: 2.2.0 + resolution: "hookified@npm:2.2.0" + checksum: 10c0/7017d2b66945490293a5aba239e7b39f39071dd940fa019348c7ffea92b91b8c267853c4c51680ed0f3687b33352582fa4d2cff6dd4c5a1c5c44b037276f07aa + languageName: node + linkType: hard + "https-proxy-agent@npm:^7.0.5": version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" @@ -1673,10 +1649,10 @@ __metadata: languageName: node linkType: hard -"is-plain-object@npm:^5.0.0": - version: 5.0.0 - resolution: "is-plain-object@npm:5.0.0" - checksum: 10c0/893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c +"is-plain-object@npm:^5.1.0": + version: 5.1.0 + resolution: "is-plain-object@npm:5.1.0" + checksum: 10c0/21d6e5b182aaf56b18fdc3829bf39ed6c1ebdf9fd312549a56846942307e5699fb3c5841e60622c409951f670900980d7e402c22d4f7659a78e32e016442ba7a languageName: node linkType: hard @@ -1724,13 +1700,6 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - "js-yaml@npm:^3.14.1": version: 3.15.0 resolution: "js-yaml@npm:3.15.0" @@ -1743,22 +1712,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2": - version: 3.1.0 - resolution: "jsesc@npm:3.1.0" - bin: - jsesc: bin/jsesc - checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 - languageName: node - linkType: hard - "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -1773,12 +1726,12 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.4": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" +"keyv@npm:^5.6.0": + version: 5.6.0 + resolution: "keyv@npm:5.6.0" dependencies: - json-buffer: "npm:3.0.1" - checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + "@keyv/serialize": "npm:^1.1.1" + checksum: 10c0/c3ea795b6e03593ca57c8f70928a69bad14c13389a7fb75649a115ff55615244b04d8902798d841c17f0bb4a8a8866c97133b543b93f151b440170bba09176db languageName: node linkType: hard @@ -1831,12 +1784,10 @@ __metadata: languageName: node linkType: hard -"matcher@npm:^6.0.0": - version: 6.0.0 - resolution: "matcher@npm:6.0.0" - dependencies: - escape-string-regexp: "npm:^5.0.0" - checksum: 10c0/b2eb6a23de82be3cbcf8e79034638a44e22ce6fcc6968ea2a7b342b1e059eb15bc18bf32d8fce7390c9b0710b21a8eabdc133190c0d86a91de2491b0afae3ca7 +"matcher@npm:^7.0.0": + version: 7.0.0 + resolution: "matcher@npm:7.0.0" + checksum: 10c0/bda2121a6772c262521a8e3a13f5525c231d486dde4d340a33d4ca8c3510c5a93ab370eb1ea2df320f7f19b61f27d64a67d7cb6577aaea4b8b3759f8047d184e languageName: node linkType: hard @@ -1891,6 +1842,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.2.5": + version: 10.2.6 + resolution: "minimatch@npm:10.2.6" + dependencies: + brace-expansion: "npm:^5.0.8" + checksum: 10c0/4559a836243b98bd4d17ea9f7edae698717c76399eea7be374f3737f33164e4907f19e9726891ddeb122f750a5a7fa80d2ac43e851d6e5984dc4ff42ec127d3a + languageName: node + linkType: hard + "minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3": version: 7.1.3 resolution: "minipass@npm:7.1.3" @@ -2020,10 +1980,10 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^7.0.4": - version: 7.0.6 - resolution: "p-map@npm:7.0.6" - checksum: 10c0/46e3b3c79b6179613161aa1a28c72cfe7155f27f1928afee1b2406858728f9dd4c29637bba25cef9b50517caacdcb71549f5ff228292524b0069b2310922b22e +"p-map@npm:^7.1.1": + version: 7.1.1 + resolution: "p-map@npm:7.1.1" + checksum: 10c0/e3f0fa6990f506a89593f55f2eb532b1eaae968ffc8d871bdce4ad3fdeabe1c2b4255c61dac3b8e668f197cc3a69fbe2f1942192d18ebb621831b8dc38599f5a languageName: node linkType: hard @@ -2037,13 +1997,6 @@ __metadata: languageName: node linkType: hard -"parse-ms@npm:^4.0.0": - version: 4.0.0 - resolution: "parse-ms@npm:4.0.0" - checksum: 10c0/a7900f4f1ebac24cbf5e9708c16fb2fd482517fad353aecd7aefb8c2ba2f85ce017913ccb8925d231770404780df46244ea6fec598b3bde6490882358b4d2d16 - languageName: node - linkType: hard - "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" @@ -2075,13 +2028,6 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.1.1": - version: 1.1.1 - resolution: "picocolors@npm:1.1.1" - checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 - languageName: node - linkType: hard - "picomatch@npm:^2.3.1": version: 2.3.2 resolution: "picomatch@npm:2.3.2" @@ -2096,6 +2042,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.7": + version: 4.0.7 + resolution: "picomatch@npm:4.0.7" + checksum: 10c0/beb6ae02c43ae44e84883b90830196d9046b1726ead292adcf7f57945e0bb0d992d68563d87e03b484b6f3c9a5c6defda7523477f047d7f0e663f126cc01787f + languageName: node + linkType: hard + "plur@npm:^6.0.0": version: 6.0.0 resolution: "plur@npm:6.0.0" @@ -2112,21 +2065,19 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.9.6": - version: 3.9.6 - resolution: "prettier@npm:3.9.6" +"prettier@npm:3.9.10": + version: 3.9.10 + resolution: "prettier@npm:3.9.10" bin: prettier: bin/prettier.cjs - checksum: 10c0/9f7ddae234035868f3daab3dc34e6de7e54622185afb017378029f0c09a9c023248ccf6f34def0b17a0538e18c47aa1b3188bab72965d1bf735919baa0747e99 + checksum: 10c0/0b3531593aa6fb36ac6baf629cb058bda472c59a6938774f931fe55283a07c62e6f56e621b043a82d8a3e21fc284c08c34f9e539fc70072635f79b7bae1a1067 languageName: node linkType: hard -"pretty-ms@npm:^9.3.0": - version: 9.3.0 - resolution: "pretty-ms@npm:9.3.0" - dependencies: - parse-ms: "npm:^4.0.0" - checksum: 10c0/555ea39a1de48a30601938aedb76d682871d33b6dee015281c37108921514b11e1792928b1648c2e5589acc73c8ef0fb5e585fb4c718e340a28b86799e90fb34 +"pretty-ms@npm:^10.0.0": + version: 10.0.0 + resolution: "pretty-ms@npm:10.0.0" + checksum: 10c0/ce40c4612989782b3656a18c56f67bd71d90269d245b5f6f11be38f34fa1a57833374344b31714df679704ee761ab6df725f1ee455945334f973c510e4804ce2 languageName: node linkType: hard @@ -2144,6 +2095,15 @@ __metadata: languageName: node linkType: hard +"qified@npm:^0.10.1": + version: 0.10.1 + resolution: "qified@npm:0.10.1" + dependencies: + hookified: "npm:^2.1.1" + checksum: 10c0/4a39d45492c65a4b9795381acede1bd566028ce9764ead5b41d776b391a898bf0855dd2b59d724a6711fe253ba3cacf7c9a8832887cf9dc6d48a2c5e4997c82d + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -2167,7 +2127,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.12.0, resolve@npm:^1.22.1": +"resolve@npm:^1.22.1": version: 1.22.12 resolution: "resolve@npm:1.22.12" dependencies: @@ -2181,7 +2141,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": +"resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": version: 1.22.12 resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=9bd1a5" dependencies: @@ -2213,38 +2173,41 @@ __metadata: languageName: node linkType: hard -"rollup@npm:4.62.2": - version: 4.62.2 - resolution: "rollup@npm:4.62.2" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.62.2" - "@rollup/rollup-android-arm64": "npm:4.62.2" - "@rollup/rollup-darwin-arm64": "npm:4.62.2" - "@rollup/rollup-darwin-x64": "npm:4.62.2" - "@rollup/rollup-freebsd-arm64": "npm:4.62.2" - "@rollup/rollup-freebsd-x64": "npm:4.62.2" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.62.2" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.62.2" - "@rollup/rollup-linux-arm64-gnu": "npm:4.62.2" - "@rollup/rollup-linux-arm64-musl": "npm:4.62.2" - "@rollup/rollup-linux-loong64-gnu": "npm:4.62.2" - "@rollup/rollup-linux-loong64-musl": "npm:4.62.2" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.62.2" - "@rollup/rollup-linux-ppc64-musl": "npm:4.62.2" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.62.2" - "@rollup/rollup-linux-riscv64-musl": "npm:4.62.2" - "@rollup/rollup-linux-s390x-gnu": "npm:4.62.2" - "@rollup/rollup-linux-x64-gnu": "npm:4.62.2" - "@rollup/rollup-linux-x64-musl": "npm:4.62.2" - "@rollup/rollup-openbsd-x64": "npm:4.62.2" - "@rollup/rollup-openharmony-arm64": "npm:4.62.2" - "@rollup/rollup-win32-arm64-msvc": "npm:4.62.2" - "@rollup/rollup-win32-ia32-msvc": "npm:4.62.2" - "@rollup/rollup-win32-x64-gnu": "npm:4.62.2" - "@rollup/rollup-win32-x64-msvc": "npm:4.62.2" +"rollup@npm:4.65.1": + version: 4.65.1 + resolution: "rollup@npm:4.65.1" + dependencies: + "@napi-rs/lzma-linux-x64-gnu": "npm:1.5.1" + "@rollup/rollup-android-arm-eabi": "npm:4.65.1" + "@rollup/rollup-android-arm64": "npm:4.65.1" + "@rollup/rollup-darwin-arm64": "npm:4.65.1" + "@rollup/rollup-darwin-x64": "npm:4.65.1" + "@rollup/rollup-freebsd-arm64": "npm:4.65.1" + "@rollup/rollup-freebsd-x64": "npm:4.65.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.65.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.65.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.65.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.65.1" + "@rollup/rollup-linux-loong64-gnu": "npm:4.65.1" + "@rollup/rollup-linux-loong64-musl": "npm:4.65.1" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.65.1" + "@rollup/rollup-linux-ppc64-musl": "npm:4.65.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.65.1" + "@rollup/rollup-linux-riscv64-musl": "npm:4.65.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.65.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.65.1" + "@rollup/rollup-linux-x64-musl": "npm:4.65.1" + "@rollup/rollup-openbsd-x64": "npm:4.65.1" + "@rollup/rollup-openharmony-arm64": "npm:4.65.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.65.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.65.1" + "@rollup/rollup-win32-x64-gnu": "npm:4.65.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.65.1" "@types/estree": "npm:1.0.9" fsevents: "npm:~2.3.2" dependenciesMeta: + "@napi-rs/lzma-linux-x64-gnu": + optional: true "@rollup/rollup-android-arm-eabi": optional: true "@rollup/rollup-android-arm64": @@ -2299,7 +2262,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/83ff5f4a1fea3fa05db2ef56beceee8c33d4a72b818e19c562f1e85c41076fe5b12aadc44048bb73e60b83336df82154b017fa6bf0186f3141643e6f215fbdcb + checksum: 10c0/2761920a320b3d454ee87992f974454abe8475d54f42bc4bedb27f6908d77409031935b4931d9f4a29eb6d337c8fbbfc33b7af94b382f5610ddfd8dfb25debbd languageName: node linkType: hard @@ -2438,6 +2401,16 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^8.2.1": + version: 8.3.0 + resolution: "string-width@npm:8.3.0" + dependencies: + get-east-asian-width: "npm:^1.5.0" + strip-ansi: "npm:^7.1.2" + checksum: 10c0/bc354b27772777c314e6792106f01586e959f36abb3d4b8ad46c4d4ee92d5e906acb10c1f3be97a85ae0ba1b11389094bc5672999fc5f03f12d22a4725fa30fe + languageName: node + linkType: hard + "strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0, strip-ansi@npm:^7.1.2": version: 7.2.0 resolution: "strip-ansi@npm:7.2.0" @@ -2495,9 +2468,9 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.17.4": - version: 5.49.0 - resolution: "terser@npm:5.49.0" +"terser@npm:^5.49.2": + version: 5.51.2 + resolution: "terser@npm:5.51.2" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.15.0" @@ -2505,7 +2478,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/c1f628a7a6226f7283db92ce43247306d612b80a60a075d97e1f5539a032beee05c87f889eacff2ffabd2fa9ac6bd1c147e5eb49c6546c9b174ed241d5f056a7 + checksum: 10c0/e6dd3d9152ad51b5a990e55bf0647701278970193d2ce2359a401623e65827a27a1803f5d58593a1f0b5e10ff3fa316a8d014d4f88a28d98ea94fb69359aeae5 languageName: node linkType: hard @@ -2675,17 +2648,17 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^18.0.0": - version: 18.0.0 - resolution: "yargs@npm:18.0.0" +"yargs@npm:^18.2.0": + version: 18.2.0 + resolution: "yargs@npm:18.2.0" dependencies: cliui: "npm:^9.0.1" escalade: "npm:^3.1.1" get-caller-file: "npm:^2.0.5" - string-width: "npm:^7.2.0" + string-width: "npm:^8.2.1" y18n: "npm:^5.0.5" yargs-parser: "npm:^22.0.0" - checksum: 10c0/bf290e4723876ea9c638c786a5c42ac28e03c9ca2325e1424bf43b94e5876456292d3ed905b853ebbba6daf43ed29e772ac2a6b3c5fb1b16533245d6211778f3 + checksum: 10c0/7419338c3c00f9143ec6b6ab168335061c6f5342d161642aec23ff119e28cac1c417e0eca1d7dc82fd084f07207cc5d34c7d8315f605c0e3dbf12c350e405f3f languageName: node linkType: hard diff --git a/pyproject.toml b/pyproject.toml index cc8f3416..5e65102e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,16 +24,16 @@ dependencies = [ # promise is that they will never (or always) break the API, and the API is very # limited and we use only a very small subset of it. "regex>=2020.7.14", - "pymupdf>=1.24.0,<2.0", + "pymupdf>=1.24.0,<3.0", "CairoSVG>=2.2.0,<3.0", - "beartype>=0.19,<0.23", + "beartype>=0.19,<0.24", # youtube-dl should be updated as frequently as possible "yt-dlp", - "pillow>=7.0.0,<13.0", - "urllib3>=1.26.5,<2.8.0", + "pillow>=7.0.0,<14.0", + "urllib3>=1.26.5,<2.9.0", "piexif==1.1.3", # this dep is a nightmare in terms of release management, better pinned just like in optimize-images anyway "idna>=2.5,<4.0", - "xxhash>=2.0,<4.0", + "xxhash>=2.0,<5.0", # Parsing JavaScript well enough to know which names a script declares at its # top level (see rewriting/js_ast.py). tree-sitter rather than a pure-Python # parser because the input is whatever the live web served: esprima is ES2017 @@ -65,29 +65,29 @@ scripts = [ ] qa = [ - "ruff==0.16.0", - "pyright==1.1.411", - "pytest==9.1.1", + "ruff==0.17.3", + "pyright==1.1.414", + "pytest==9.2.0", ] test = [ - "pytest==9.1.1", - "pytest-mock==3.15.1", - "coverage==7.15.2", + "pytest==9.2.0", + "pytest-mock==3.17.0", + "coverage==7.17.0", ] docs = [ - "ruff==0.16.0", + "ruff==0.17.3", "mkdocs==1.6.1", "mkdocs-include-markdown-plugin==7.3.0", - "mkdocs-material==9.7.7", - "mkdocstrings[python]==1.0.6", - "pymdown-extensions==11.0.1", + "mkdocs-material==9.8.0", + "mkdocstrings[python]==1.0.8", + "pymdown-extensions==12.3", "mkdocs-gen-files==0.6.1", "mkdocs-literate-nav==0.6.3", - "pygments==2.19.2", # See https://github.com/pygments/pygments/issues/3076 + "pygments==2.21.0" ] dev = [ - "ipython==9.15.0", - "pre-commit==4.6.0", + "ipython==9.17.1", + "pre-commit==4.7.0", "zimscraperlib[scripts]", "zimscraperlib[qa]", "zimscraperlib[test]", @@ -286,7 +286,7 @@ exclude_lines = [ [tool.pyright] include = ["contrib", "src", "tests", "tasks.py"] -exclude = [".env/**", ".venv/**"] +exclude = [".env/**", ".venv/**", ".hatch/**", "site/**"] extraPaths = ["src"] pythonVersion = "3.14" typeCheckingMode="strict" diff --git a/src/zimscraperlib/zim/filesystem.py b/src/zimscraperlib/zim/filesystem.py index 8960f90f..10a12790 100644 --- a/src/zimscraperlib/zim/filesystem.py +++ b/src/zimscraperlib/zim/filesystem.py @@ -23,7 +23,7 @@ Meaning you should exit right after an exception in your code (during zim creation) Use workaround_nocancel=False to disable the workaround.""" -import datetime +import datetime as dt import pathlib import re import tempfile @@ -123,7 +123,7 @@ def make_zim_file( illustration: str, title: str, description: str, - date: datetime.date | None = None, + date: dt.date | None = None, language: str = "eng", creator: str = "-", publisher: str = "-", @@ -174,7 +174,7 @@ def make_zim_file( Name=metadata.NameMetadata(name), Title=metadata.TitleMetadata(title), Description=metadata.DescriptionMetadata(description), - Date=metadata.DateMetadata(date or datetime.date.today()), # noqa: DTZ011 + Date=metadata.DateMetadata(date or dt.date.today()), # noqa: DTZ011 Language=metadata.LanguageMetadata(language), Creator=metadata.CreatorMetadata(creator), Publisher=metadata.PublisherMetadata(publisher), diff --git a/src/zimscraperlib/zim/metadata.py b/src/zimscraperlib/zim/metadata.py index d0c4299b..326ec577 100644 --- a/src/zimscraperlib/zim/metadata.py +++ b/src/zimscraperlib/zim/metadata.py @@ -1,5 +1,5 @@ import base64 -import datetime +import datetime as dt import io from abc import ABC, abstractmethod from collections.abc import Iterable @@ -318,20 +318,18 @@ def get_libzim_value(self) -> bytes: return self.get_encoded(self.join_list_with.join(self.value)) -class DateBasedMetadata(MetadataBase[datetime.date]): +class DateBasedMetadata(MetadataBase[dt.date]): """Expects a Date (date | datetime) input. Will be UTF-8 encoded as YYYY-MM-DD""" - value: datetime.date + value: dt.date require_utf8_encoding = True - def __init__( - self, value: datetime.date | datetime.datetime, name: str | None = None - ) -> None: + def __init__(self, value: dt.date | dt.datetime, name: str | None = None) -> None: super().__init__(value=value, name=name) # native type is date - def get_cleaned_value(self, value: datetime.date) -> datetime.date: - if isinstance(value, datetime.datetime): + def get_cleaned_value(self, value: dt.date) -> dt.date: + if isinstance(value, dt.datetime): value = value.date() return value @@ -532,7 +530,7 @@ def __init__(self, name: str, value: str) -> None: Title=TitleMetadata("Test Title"), Creator=CreatorMetadata("Test Creator"), Publisher=PublisherMetadata("Test Publisher"), - Date=DateMetadata(datetime.date(2023, 1, 1)), + Date=DateMetadata(dt.date(2023, 1, 1)), Description=DescriptionMetadata("Test Description"), Language=LanguageMetadata("fra"), # blank 48x48 transparent PNG diff --git a/tests/zim/test_metadata.py b/tests/zim/test_metadata.py index f098ba4b..44a7af6c 100644 --- a/tests/zim/test_metadata.py +++ b/tests/zim/test_metadata.py @@ -1,6 +1,6 @@ import base64 import dataclasses -import datetime +import datetime as dt import io import pathlib import re @@ -185,19 +185,15 @@ def test_validate_too_long_longdescription_check_disabled( def test_validate_date_datetime_date(): - assert metadata.DateMetadata(datetime.date(2024, 12, 11)) + assert metadata.DateMetadata(dt.date(2024, 12, 11)) def test_validate_date_datetime_datetime(): - assert metadata.DateMetadata( - datetime.datetime(2024, 12, 11, 0, 0, 0, tzinfo=datetime.UTC) - ) + assert metadata.DateMetadata(dt.datetime(2024, 12, 11, 0, 0, 0, tzinfo=dt.UTC)) def test_validate_date_invalid_datee(): - assert metadata.DateMetadata( - datetime.datetime(9, 12, 11, 0, 0, 0, tzinfo=datetime.UTC) - ) + assert metadata.DateMetadata(dt.datetime(9, 12, 11, 0, 0, 0, tzinfo=dt.UTC)) @pytest.mark.parametrize("value", [("9999-99-99"), ("2023/02/29"), ("1969-13-31")]) @@ -432,7 +428,7 @@ def test_libzim_bytes_value(metadata_init: MetadataInitConfig, png_image: pathli assert metadata_init.a_type(png_data).libzim_value == png_data elif metadata_init.a_type == metadata.DateMetadata: assert ( - metadata_init.a_type(datetime.date(2023, 12, 11)).libzim_value + metadata_init.a_type(dt.date(2023, 12, 11)).libzim_value == b"2023-12-11" ) elif metadata_init.a_type == metadata.LanguageMetadata: @@ -488,7 +484,7 @@ def test_std_metadata_values(): metadata.TitleMetadata("Test Title"), metadata.CreatorMetadata("Test Creator"), metadata.PublisherMetadata("Test Publisher"), - metadata.DateMetadata(datetime.date(2023, 1, 1)), + metadata.DateMetadata(dt.date(2023, 1, 1)), metadata.DescriptionMetadata("Test Description"), metadata.LanguageMetadata("fra"), # blank 48x48 transparent PNG diff --git a/tests/zim/test_zim_creator.py b/tests/zim/test_zim_creator.py index e16e558d..dc7888b2 100644 --- a/tests/zim/test_zim_creator.py +++ b/tests/zim/test_zim_creator.py @@ -1,4 +1,4 @@ -import datetime +import datetime as dt import io import logging import pathlib @@ -713,7 +713,7 @@ def test_start_logs_metadata_log_contents( Title=TitleMetadata("English Wikipedia"), Creator=CreatorMetadata("English speaking Wikipedia contributors"), Publisher=PublisherMetadata("Wikipedia user Foobar"), - Date=DateMetadata(datetime.date(2009, 11, 21)), + Date=DateMetadata(dt.date(2009, 11, 21)), Description=DescriptionMetadata( "All articles (without images) from the english Wikipedia" ), @@ -839,7 +839,7 @@ def test_config_metadata( Title=TitleMetadata("English Wikipedia"), Creator=CreatorMetadata("English speaking Wikipedia contributors"), Publisher=PublisherMetadata("Wikipedia user Foobar"), - Date=DateMetadata(datetime.date(2009, 11, 21)), + Date=DateMetadata(dt.date(2009, 11, 21)), Description=DescriptionMetadata( "All articles (without images) from the english Wikipedia" ),