diff --git a/CHANGELOG.md b/CHANGELOG.md index e6416267..96646eca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 4.3.4 + +### Patch Changes + +- [#442](https://github.com/import-js/eslint-import-resolver-typescript/pull/442) [`57611d9`](https://github.com/import-js/eslint-import-resolver-typescript/commit/57611d9818c5b98d792a03f7392d9c0802a7b961) Thanks [@JounQin](https://github.com/JounQin)! - fix: add more extension aliases for ts source/declaration files + +- [#444](https://github.com/import-js/eslint-import-resolver-typescript/pull/444) [`bd45fcd`](https://github.com/import-js/eslint-import-resolver-typescript/commit/bd45fcd5b4ff8e7cf4b9e5b0dbe8ed146de58c1b) Thanks [@JounQin](https://github.com/JounQin)! - fix(deps): bump `unrs-resolver` which resolves #406, #409, #437 + ## 4.3.3 ### Patch Changes diff --git a/README.md b/README.md index 5ca2bc89..5d1a96ec 100644 --- a/README.md +++ b/README.md @@ -282,9 +282,19 @@ Default: ".d.ts", ".js", ], + ".ts": [".ts", ".d.ts", ".js"], ".jsx": [".tsx", ".d.ts", ".jsx"], + ".tsx": [ + ".tsx", + ".d.ts", + ".jsx", + // `.tsx` can also be compiled as `.js` + ".js", + ], ".cjs": [".cts", ".d.cts", ".cjs"], + ".cts": [".cts", ".d.cts", ".cjs"], ".mjs": [".mts", ".d.mts", ".mjs"], + ".mts": [".mts", ".d.mts", ".mjs"], } ``` diff --git a/package.json b/package.json index 6cfec638..4499f1cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-import-resolver-typescript", - "version": "4.3.3", + "version": "4.3.4", "type": "module", "description": "This plugin adds `TypeScript` support to `eslint-plugin-import`", "repository": "https://github.com/import-js/eslint-import-resolver-typescript", @@ -82,7 +82,7 @@ "is-bun-module": "^2.0.0", "stable-hash": "^0.0.5", "tinyglobby": "^0.2.13", - "unrs-resolver": "^1.6.0" + "unrs-resolver": "^1.6.3" }, "devDependencies": { "@1stg/common-config": "^13.0.1", @@ -97,13 +97,13 @@ "@types/node": "^22.14.1", "@types/pnpapi": "^0.0.5", "@types/unist": "^3.0.3", - "@vitest/coverage-v8": "3.1.1", + "@vitest/coverage-v8": "3.1.2", "@vitest/eslint-plugin": "^1.1.43", - "clean-pkg-json": "^1.2.1", + "clean-pkg-json": "^1.3.0", "dummy.js": "link:dummy.js", "eslint": "^9.25.0", "eslint-import-resolver-typescript": "workspace:*", - "eslint-plugin-import-x": "^4.10.5", + "eslint-plugin-import-x": "^4.10.6", "nano-staged": "^0.8.0", "npm-run-all2": "^7.0.2", "path-serializer": "^0.3.4", @@ -115,7 +115,7 @@ "tinyexec": "^1.0.1", "type-coverage": "^2.29.7", "typescript": "^5.8.3", - "vitest": "^3.1.1", + "vitest": "^3.1.2", "yarn-berry-deduplicate": "^6.1.3" }, "resolutions": { diff --git a/src/constants.ts b/src/constants.ts index 8feae1b5..1878caaa 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -36,9 +36,19 @@ export const defaultExtensionAlias = { '.d.ts', '.js', ], + '.ts': ['.ts', '.d.ts', '.js'], '.jsx': ['.tsx', '.d.ts', '.jsx'], + '.tsx': [ + '.tsx', + '.d.ts', + '.jsx', + // `.tsx` can also be compiled as `.js` + '.js', + ], '.cjs': ['.cts', '.d.cts', '.cjs'], + '.cts': ['.cts', '.d.cts', '.cjs'], '.mjs': ['.mts', '.d.mts', '.mjs'], + '.mts': ['.mts', '.d.mts', '.mjs'], } export const defaultMainFields = [ diff --git a/src/index.ts b/src/index.ts index de6165b0..6b2b5a30 100644 --- a/src/index.ts +++ b/src/index.ts @@ -50,7 +50,7 @@ const unrsResolve = ( } } if (result.error) { - log('oxc resolve error:', result.error) + log('unrs-resolver error:', result.error) if (TSCONFIG_NOT_FOUND_REGEXP.test(result.error)) { throw new Error(result.error) } diff --git a/tests/e2e/__snapshots__/e2e.spec.ts.snap b/tests/e2e/__snapshots__/e2e.spec.ts.snap index ba1d6f91..622d64a0 100644 --- a/tests/e2e/__snapshots__/e2e.spec.ts.snap +++ b/tests/e2e/__snapshots__/e2e.spec.ts.snap @@ -64,14 +64,6 @@ exports[`e2e cases > should exec eslint successfully > nearestTsconfig 1`] = ` } `; -exports[`e2e cases > should exec eslint successfully > nestedPackageJson 1`] = ` -{ - "exitCode": 0, - "stderr": "", - "stdout": "", -} -`; - exports[`e2e cases > should exec eslint successfully > withJsExtension 1`] = ` { "exitCode": 0, diff --git a/tests/e2e/nestedPackageJson/.eslintrc.cjs b/tests/e2e/nestedPackageJson/.eslintrc.cjs deleted file mode 100644 index 3d3a72f5..00000000 --- a/tests/e2e/nestedPackageJson/.eslintrc.cjs +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../base.eslintrc.cjs')(__dirname) diff --git a/tests/e2e/nestedPackageJson/.gitignore b/tests/e2e/nestedPackageJson/.gitignore deleted file mode 100644 index 32c153b1..00000000 --- a/tests/e2e/nestedPackageJson/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.yarn/* diff --git a/tests/e2e/nestedPackageJson/package.json b/tests/e2e/nestedPackageJson/package.json deleted file mode 100644 index 7035f31c..00000000 --- a/tests/e2e/nestedPackageJson/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "nested-package-json", - "version": "1.0.0", - "private": true, - "devDependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.5.2" - } -} diff --git a/tests/e2e/nestedPackageJson/test.ts b/tests/e2e/nestedPackageJson/test.ts deleted file mode 100644 index c1e5dc89..00000000 --- a/tests/e2e/nestedPackageJson/test.ts +++ /dev/null @@ -1 +0,0 @@ -export { combine } from '@atlaskit/pragmatic-drag-and-drop/combine' diff --git a/tests/e2e/nestedPackageJson/tsconfig.json b/tests/e2e/nestedPackageJson/tsconfig.json deleted file mode 100644 index 180bfac8..00000000 --- a/tests/e2e/nestedPackageJson/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "compilerOptions": { - "module": "Node16" - } -} diff --git a/tests/e2e/nestedPackageJson/yarn.lock b/tests/e2e/nestedPackageJson/yarn.lock deleted file mode 100644 index 851b96a3..00000000 --- a/tests/e2e/nestedPackageJson/yarn.lock +++ /dev/null @@ -1,55 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10c0 - -"@atlaskit/pragmatic-drag-and-drop@npm:^1.5.2": - version: 1.5.2 - resolution: "@atlaskit/pragmatic-drag-and-drop@npm:1.5.2" - dependencies: - "@babel/runtime": "npm:^7.0.0" - bind-event-listener: "npm:^3.0.0" - raf-schd: "npm:^4.0.3" - checksum: 10c0/1dace49fa384b532ca3ba363931e8c3b3d92632c02b259bc2823d2b443a8dd903a2c218d96aaceb3b715b9925a2438a570d09ed82287ab7180eabef89fd0fa43 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.0.0": - version: 7.27.0 - resolution: "@babel/runtime@npm:7.27.0" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/35091ea9de48bd7fd26fb177693d64f4d195eb58ab2b142b893b7f3fa0f1d7c677604d36499ae0621a3703f35ba0c6a8f6c572cc8f7dc0317213841e493cf663 - languageName: node - linkType: hard - -"bind-event-listener@npm:^3.0.0": - version: 3.0.0 - resolution: "bind-event-listener@npm:3.0.0" - checksum: 10c0/08eadf1c7d3a58633f25c2bbd8dc066f77ef4e5df1049e81ff2f43a40c00f6581aba37387caa4878782b1f1f7c337b827757f52b637052a465ad74a7e1db8def - languageName: node - linkType: hard - -"nested-package-json@workspace:.": - version: 0.0.0-use.local - resolution: "nested-package-json@workspace:." - dependencies: - "@atlaskit/pragmatic-drag-and-drop": "npm:^1.5.2" - languageName: unknown - linkType: soft - -"raf-schd@npm:^4.0.3": - version: 4.0.3 - resolution: "raf-schd@npm:4.0.3" - checksum: 10c0/ecabf0957c05fad059779bddcd992f1a9d3a35dfea439a6f0935c382fcf4f7f7fa60489e467b4c2db357a3665167d2a379782586b59712bb36c766e02824709b - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 - languageName: node - linkType: hard diff --git a/tests/unit/dts/foo.d.ts b/tests/unit/dts/foo.d.ts new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/pnp/.yarn/cache/@atlaskit-pragmatic-drag-and-drop-npm-1.5.2-3241d4f843-1dace49fa3.zip b/tests/unit/pnp/.yarn/cache/@atlaskit-pragmatic-drag-and-drop-npm-1.5.2-3241d4f843-1dace49fa3.zip new file mode 100644 index 00000000..648dc1e5 Binary files /dev/null and b/tests/unit/pnp/.yarn/cache/@atlaskit-pragmatic-drag-and-drop-npm-1.5.2-3241d4f843-1dace49fa3.zip differ diff --git a/tests/unit/pnp/.yarn/cache/@babel-runtime-npm-7.27.0-67ce9cb54f-35091ea9de.zip b/tests/unit/pnp/.yarn/cache/@babel-runtime-npm-7.27.0-67ce9cb54f-35091ea9de.zip new file mode 100644 index 00000000..e5c7ac94 Binary files /dev/null and b/tests/unit/pnp/.yarn/cache/@babel-runtime-npm-7.27.0-67ce9cb54f-35091ea9de.zip differ diff --git a/tests/unit/pnp/.yarn/cache/bind-event-listener-npm-3.0.0-c29621e676-08eadf1c7d.zip b/tests/unit/pnp/.yarn/cache/bind-event-listener-npm-3.0.0-c29621e676-08eadf1c7d.zip new file mode 100644 index 00000000..4742c457 Binary files /dev/null and b/tests/unit/pnp/.yarn/cache/bind-event-listener-npm-3.0.0-c29621e676-08eadf1c7d.zip differ diff --git a/tests/unit/pnp/.yarn/cache/raf-schd-npm-4.0.3-18f72af738-ecabf0957c.zip b/tests/unit/pnp/.yarn/cache/raf-schd-npm-4.0.3-18f72af738-ecabf0957c.zip new file mode 100644 index 00000000..205f3b1f Binary files /dev/null and b/tests/unit/pnp/.yarn/cache/raf-schd-npm-4.0.3-18f72af738-ecabf0957c.zip differ diff --git a/tests/unit/pnp/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-1b16eb2c4b.zip b/tests/unit/pnp/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-1b16eb2c4b.zip new file mode 100644 index 00000000..78fa56f8 Binary files /dev/null and b/tests/unit/pnp/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-1b16eb2c4b.zip differ diff --git a/tests/unit/pnp/package.json b/tests/unit/pnp/package.json index 8d317c3a..2fb30aec 100644 --- a/tests/unit/pnp/package.json +++ b/tests/unit/pnp/package.json @@ -3,6 +3,7 @@ "type": "module", "packageManager": "yarn@4.8.1", "devDependencies": { + "@atlaskit/pragmatic-drag-and-drop": "^1.5.2", "lodash.zip": "^4.2.0" } } diff --git a/tests/unit/pnp/yarn.lock b/tests/unit/pnp/yarn.lock index ca85ce75..d8ba4bf4 100644 --- a/tests/unit/pnp/yarn.lock +++ b/tests/unit/pnp/yarn.lock @@ -5,6 +5,33 @@ __metadata: version: 8 cacheKey: 10c0 +"@atlaskit/pragmatic-drag-and-drop@npm:^1.5.2": + version: 1.5.2 + resolution: "@atlaskit/pragmatic-drag-and-drop@npm:1.5.2" + dependencies: + "@babel/runtime": "npm:^7.0.0" + bind-event-listener: "npm:^3.0.0" + raf-schd: "npm:^4.0.3" + checksum: 10c0/1dace49fa384b532ca3ba363931e8c3b3d92632c02b259bc2823d2b443a8dd903a2c218d96aaceb3b715b9925a2438a570d09ed82287ab7180eabef89fd0fa43 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.0.0": + version: 7.27.0 + resolution: "@babel/runtime@npm:7.27.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/35091ea9de48bd7fd26fb177693d64f4d195eb58ab2b142b893b7f3fa0f1d7c677604d36499ae0621a3703f35ba0c6a8f6c572cc8f7dc0317213841e493cf663 + languageName: node + linkType: hard + +"bind-event-listener@npm:^3.0.0": + version: 3.0.0 + resolution: "bind-event-listener@npm:3.0.0" + checksum: 10c0/08eadf1c7d3a58633f25c2bbd8dc066f77ef4e5df1049e81ff2f43a40c00f6581aba37387caa4878782b1f1f7c337b827757f52b637052a465ad74a7e1db8def + languageName: node + linkType: hard + "lodash.zip@npm:^4.2.0": version: 4.2.0 resolution: "lodash.zip@npm:4.2.0" @@ -16,6 +43,21 @@ __metadata: version: 0.0.0-use.local resolution: "pnp@workspace:." dependencies: + "@atlaskit/pragmatic-drag-and-drop": "npm:^1.5.2" lodash.zip: "npm:^4.2.0" languageName: unknown linkType: soft + +"raf-schd@npm:^4.0.3": + version: 4.0.3 + resolution: "raf-schd@npm:4.0.3" + checksum: 10c0/ecabf0957c05fad059779bddcd992f1a9d3a35dfea439a6f0935c382fcf4f7f7fa60489e467b4c2db357a3665167d2a379782586b59712bb36c766e02824709b + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 + languageName: node + linkType: hard diff --git a/tests/unit/unit.spec.ts b/tests/unit/unit.spec.ts index 6c3fae54..7c5791af 100644 --- a/tests/unit/unit.spec.ts +++ b/tests/unit/unit.spec.ts @@ -7,19 +7,19 @@ import { TSCONFIG_NOT_FOUND_REGEXP, } from 'eslint-import-resolver-typescript' -describe('createTypeScriptImportResolver', async () => { - const { dirname } = import.meta - - const pnpDir = path.resolve(dirname, 'pnp') +const { dirname } = import.meta - await exec('yarn', [], { - nodeOptions: { - cwd: pnpDir, - }, - }) +describe('createTypeScriptImportResolver', async () => { + const resolver = createTypeScriptImportResolver() it('should work with pnp', async () => { - const resolver = createTypeScriptImportResolver() + const pnpDir = path.resolve(dirname, 'pnp') + + await exec('yarn', [], { + nodeOptions: { + cwd: pnpDir, + }, + }) const testfile = path.resolve(pnpDir, '__test__.js') @@ -36,6 +36,28 @@ describe('createTypeScriptImportResolver', async () => { "path": "/tests/unit/pnp/.yarn/cache/lodash.zip-npm-4.2.0-5299417ec8-e596da80a6.zip/node_modules/lodash.zip/index.js", } `) + + expect( + resolver.resolve('@atlaskit/pragmatic-drag-and-drop/combine', testfile), + ).toMatchInlineSnapshot(` + { + "found": true, + "path": "/tests/unit/pnp/.yarn/cache/@atlaskit-pragmatic-drag-and-drop-npm-1.5.2-3241d4f843-1dace49fa3.zip/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/types/entry-point/combine.d.ts", + } + `) + }) + + it('should resolve .d.ts with .ts extension', () => { + const dtsDir = path.resolve(dirname, 'dts') + + const testfile = path.resolve(dtsDir, '__test__.js') + + expect(resolver.resolve('./foo.ts', testfile)).toMatchInlineSnapshot(` + { + "found": true, + "path": "/tests/unit/dts/foo.d.ts", + } + `) }) it('should error on malformed tsconfig reference', () => { diff --git a/yarn.lock b/yarn.lock index 0c73e389..5fd8ba44 100644 --- a/yarn.lock +++ b/yarn.lock @@ -162,8 +162,8 @@ __metadata: linkType: hard "@1stg/prettier-config@npm:^5.1.1": - version: 5.1.3 - resolution: "@1stg/prettier-config@npm:5.1.3" + version: 5.1.4 + resolution: "@1stg/prettier-config@npm:5.1.4" dependencies: "@1stg/config": "npm:^1.0.5" "@prettier/plugin-pug": "npm:^3.3.0" @@ -172,7 +172,7 @@ __metadata: prettier-plugin-go-template: "npm:^0.0.15" prettier-plugin-ini: "npm:^1.3.0" prettier-plugin-jsdoc: "npm:^1.3.2" - prettier-plugin-jsdoc-type: "npm:^0.1.6" + prettier-plugin-jsdoc-type: "npm:^0.1.12" prettier-plugin-pkg: "npm:^0.19.0" prettier-plugin-properties: "npm:^0.3.0" prettier-plugin-sh: "npm:^0.17.2" @@ -180,7 +180,7 @@ __metadata: prettier-plugin-toml: "npm:^2.0.4" peerDependencies: prettier: ^3.0.0 - checksum: 10c0/df2a8ffa117458de163c1fecb1184ec57a24f24779865aa149abddab133af08aa3b41cfd5a073fb81b1600e006e99da2b2dab6af3cfa9575c35b9658cc16a414 + checksum: 10c0/7950dca3881be0604eff57191b34a0f7efc0377b756225ba7ec969c81ef5cf5db2183d574679c4a1d9224e5597e110d5e78f476aab768e15d434b1c5509bbc3b languageName: node linkType: hard @@ -3856,123 +3856,123 @@ __metadata: languageName: node linkType: hard -"@unrs/resolver-binding-darwin-arm64@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.6.0" +"@unrs/resolver-binding-darwin-arm64@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.6.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-x64@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.6.0" +"@unrs/resolver-binding-darwin-x64@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.6.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-freebsd-x64@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.6.0" +"@unrs/resolver-binding-freebsd-x64@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.6.3" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.6.0" +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.6.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.6.0" +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.6.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.6.0" +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.6.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-musl@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.6.0" +"@unrs/resolver-binding-linux-arm64-musl@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.6.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.6.0" +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.6.3" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.6.0" +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.6.3" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.6.0" +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.6.3" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.6.0" +"@unrs/resolver-binding-linux-x64-gnu@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.6.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.6.0" +"@unrs/resolver-binding-linux-x64-musl@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.6.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.6.0" +"@unrs/resolver-binding-wasm32-wasi@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.6.3" dependencies: "@napi-rs/wasm-runtime": "npm:^0.2.9" conditions: cpu=wasm32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.6.0" +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.6.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.6.0" +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.6.3" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.6.0": - version: 1.6.0 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.6.0" +"@unrs/resolver-binding-win32-x64-msvc@npm:1.6.3": + version: 1.6.3 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.6.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@vitest/coverage-v8@npm:3.1.1": - version: 3.1.1 - resolution: "@vitest/coverage-v8@npm:3.1.1" +"@vitest/coverage-v8@npm:3.1.2": + version: 3.1.2 + resolution: "@vitest/coverage-v8@npm:3.1.2" dependencies: "@ampproject/remapping": "npm:^2.3.0" "@bcoe/v8-coverage": "npm:^1.0.2" @@ -3983,16 +3983,16 @@ __metadata: istanbul-reports: "npm:^3.1.7" magic-string: "npm:^0.30.17" magicast: "npm:^0.3.5" - std-env: "npm:^3.8.1" + std-env: "npm:^3.9.0" test-exclude: "npm:^7.0.1" tinyrainbow: "npm:^2.0.0" peerDependencies: - "@vitest/browser": 3.1.1 - vitest: 3.1.1 + "@vitest/browser": 3.1.2 + vitest: 3.1.2 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 10c0/0f852d8a438d27605955f2a1177e017f48b0dcdc7069318b2b1e031e3561d02a54e4d9a108afacbc8365c8b42f4bcb13282ae7cfaf380bce27741991321e83d9 + checksum: 10c0/26f44a922262160ccb15ff3b5668b2b2c220845b41e84a5f601050be5f7d1d447be6bba7850dac12919acc9fd009c6b4c506469e88845f7da867ef14a5a7414a languageName: node linkType: hard @@ -4013,23 +4013,23 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:3.1.1": - version: 3.1.1 - resolution: "@vitest/expect@npm:3.1.1" +"@vitest/expect@npm:3.1.2": + version: 3.1.2 + resolution: "@vitest/expect@npm:3.1.2" dependencies: - "@vitest/spy": "npm:3.1.1" - "@vitest/utils": "npm:3.1.1" + "@vitest/spy": "npm:3.1.2" + "@vitest/utils": "npm:3.1.2" chai: "npm:^5.2.0" tinyrainbow: "npm:^2.0.0" - checksum: 10c0/ef4528d0ebb89eb3cc044cf597d051c35df8471bb6ba4029e9b3412aa69d0d85a0ce4eb49531fc78fe1ebd97e6428260463068cc96a8d8c1a80150dedfd1ab3a + checksum: 10c0/63507f77b225196d79f5aabedbb10f93974808a2b507661b66def95e803e6f7f958049e9b985d2d5fee83317f157f8018fea6e1240c64a5fec8e9753235ad081 languageName: node linkType: hard -"@vitest/mocker@npm:3.1.1": - version: 3.1.1 - resolution: "@vitest/mocker@npm:3.1.1" +"@vitest/mocker@npm:3.1.2": + version: 3.1.2 + resolution: "@vitest/mocker@npm:3.1.2" dependencies: - "@vitest/spy": "npm:3.1.1" + "@vitest/spy": "npm:3.1.2" estree-walker: "npm:^3.0.3" magic-string: "npm:^0.30.17" peerDependencies: @@ -4040,57 +4040,57 @@ __metadata: optional: true vite: optional: true - checksum: 10c0/9264558809e2d7c77ae9ceefad521dc5f886a567aaf0bdd021b73089b8906ffd92c893f3998d16814f38fc653c7413836f508712355c87749a0e86c7d435eec1 + checksum: 10c0/4447962d7e160d774cf5b1eef03067230b5e36131e3441d3dd791ad38b6c06e16940f21fa20c311c58b635ba376ffb45d003b6f04d0d4cc0d7c4be854df4b8e4 languageName: node linkType: hard -"@vitest/pretty-format@npm:3.1.1, @vitest/pretty-format@npm:^3.1.1": - version: 3.1.1 - resolution: "@vitest/pretty-format@npm:3.1.1" +"@vitest/pretty-format@npm:3.1.2, @vitest/pretty-format@npm:^3.1.2": + version: 3.1.2 + resolution: "@vitest/pretty-format@npm:3.1.2" dependencies: tinyrainbow: "npm:^2.0.0" - checksum: 10c0/540cd46d317fc80298c93b185f3fb48dfe90eaaa3942fd700fde6e88d658772c01b56ad5b9b36e4ac368a02e0fc8e0dc72bbdd6dd07a5d75e89ef99c8df5ba6e + checksum: 10c0/f4a79be6d5a1a0b3215ba66b3cc62b2e0fc3a81b4eee07b2644600450b796a8630ee86180691391a5597c9a792f3d213d54f2043f4a0809a9386473bfcca85fb languageName: node linkType: hard -"@vitest/runner@npm:3.1.1": - version: 3.1.1 - resolution: "@vitest/runner@npm:3.1.1" +"@vitest/runner@npm:3.1.2": + version: 3.1.2 + resolution: "@vitest/runner@npm:3.1.2" dependencies: - "@vitest/utils": "npm:3.1.1" + "@vitest/utils": "npm:3.1.2" pathe: "npm:^2.0.3" - checksum: 10c0/35a541069c3c94a2dd02fca2d70cc8d5e66ba2e891cfb80da354174f510aeb96774ffb34fff39cecde9d5c969be4dd20e240a900beb9b225b7512a615ecc5503 + checksum: 10c0/7312013c87a6869d07380506e808f686ab04cb989f8ae6d3c7ea16a4990fce715801c8c4d5836612706a9e8a2e5ed01629d728360fba035d8f2570a90b0050cd languageName: node linkType: hard -"@vitest/snapshot@npm:3.1.1": - version: 3.1.1 - resolution: "@vitest/snapshot@npm:3.1.1" +"@vitest/snapshot@npm:3.1.2": + version: 3.1.2 + resolution: "@vitest/snapshot@npm:3.1.2" dependencies: - "@vitest/pretty-format": "npm:3.1.1" + "@vitest/pretty-format": "npm:3.1.2" magic-string: "npm:^0.30.17" pathe: "npm:^2.0.3" - checksum: 10c0/43e5fc5db580f20903eb1493d07f08752df8864f7b9b7293a202b2ffe93d8c196a5614d66dda096c6bacc16e12f1836f33ba41898812af6d32676d1eb501536a + checksum: 10c0/f3e451ec41eb54ace4c08f3dc3dbd3c283ff73b4c8eab899bb6bcd6589bf864bcaa33afb611751a76c87c5ca31fb3420511633fb7fb06af2692a70e6c8578db2 languageName: node linkType: hard -"@vitest/spy@npm:3.1.1": - version: 3.1.1 - resolution: "@vitest/spy@npm:3.1.1" +"@vitest/spy@npm:3.1.2": + version: 3.1.2 + resolution: "@vitest/spy@npm:3.1.2" dependencies: tinyspy: "npm:^3.0.2" - checksum: 10c0/896659d4b42776cfa2057a1da2c33adbd3f2ebd28005ca606d1616d08d2e726dc1460fb37f1ea7f734756b5bccf926c7165f410e63f0a3b8d992eb5489528b08 + checksum: 10c0/0f827970c34e256f3af964df5a5133c181ef1475b73a15b47565ad3187e4b2627e949e632c21e34a694e16b98ceb1e670f5e7dc99baeb53cb029578147d4ccee languageName: node linkType: hard -"@vitest/utils@npm:3.1.1": - version: 3.1.1 - resolution: "@vitest/utils@npm:3.1.1" +"@vitest/utils@npm:3.1.2": + version: 3.1.2 + resolution: "@vitest/utils@npm:3.1.2" dependencies: - "@vitest/pretty-format": "npm:3.1.1" + "@vitest/pretty-format": "npm:3.1.2" loupe: "npm:^3.1.3" tinyrainbow: "npm:^2.0.0" - checksum: 10c0/a9cfe0c0f095b58644ce3ba08309de5be8564c10dad9e62035bd378e60b2834e6a256e6e4ded7dcf027fdc2371301f7965040ad3e6323b747d5b3abbb7ceb0d6 + checksum: 10c0/9e778ab7cf483396d650ddd079e702af6b9f087443a99045707865bf433cfa3c4f468d94d17a44173e6adcc5cce218a1b0073d1b94bbd84a03262033e427336d languageName: node linkType: hard @@ -5185,12 +5185,12 @@ __metadata: languageName: node linkType: hard -"clean-pkg-json@npm:^1.2.1": - version: 1.2.1 - resolution: "clean-pkg-json@npm:1.2.1" +"clean-pkg-json@npm:^1.3.0": + version: 1.3.0 + resolution: "clean-pkg-json@npm:1.3.0" bin: clean-pkg-json: dist/index.js - checksum: 10c0/57af16fd730ff4797c27ae178813202b356d9958d03c2ed381ef3a7e4129bc6571074386f338c178fb9686e21a992263e116ce2e2bfb4d6ab5824f5abac84297 + checksum: 10c0/6d394cadd11bd1fa6d1becee0144e639f3915a9f523e9b4e6989e0576d227de7cc09a1779780d4803e50bc36ef982860bfb0ca79ec0b17e6640f9fb818878f29 languageName: node linkType: hard @@ -6127,14 +6127,14 @@ __metadata: "@types/node": "npm:^22.14.1" "@types/pnpapi": "npm:^0.0.5" "@types/unist": "npm:^3.0.3" - "@vitest/coverage-v8": "npm:3.1.1" + "@vitest/coverage-v8": "npm:3.1.2" "@vitest/eslint-plugin": "npm:^1.1.43" - clean-pkg-json: "npm:^1.2.1" + clean-pkg-json: "npm:^1.3.0" debug: "npm:^4.4.0" dummy.js: "link:dummy.js" eslint: "npm:^9.25.0" eslint-import-resolver-typescript: "workspace:*" - eslint-plugin-import-x: "npm:^4.10.5" + eslint-plugin-import-x: "npm:^4.10.6" get-tsconfig: "npm:^4.10.0" is-bun-module: "npm:^2.0.0" nano-staged: "npm:^0.8.0" @@ -6150,8 +6150,8 @@ __metadata: tinyglobby: "npm:^0.2.13" type-coverage: "npm:^2.29.7" typescript: "npm:^5.8.3" - unrs-resolver: "npm:^1.6.0" - vitest: "npm:^3.1.1" + unrs-resolver: "npm:^1.6.3" + vitest: "npm:^3.1.2" yarn-berry-deduplicate: "npm:^6.1.3" peerDependencies: eslint: "*" @@ -6236,9 +6236,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import-x@npm:^4.10.3, eslint-plugin-import-x@npm:^4.10.5": - version: 4.10.5 - resolution: "eslint-plugin-import-x@npm:4.10.5" +"eslint-plugin-import-x@npm:^4.10.3, eslint-plugin-import-x@npm:^4.10.6": + version: 4.10.6 + resolution: "eslint-plugin-import-x@npm:4.10.6" dependencies: "@pkgr/core": "npm:^0.2.4" "@types/doctrine": "npm:^0.0.9" @@ -6252,10 +6252,10 @@ __metadata: semver: "npm:^7.7.1" stable-hash: "npm:^0.0.5" tslib: "npm:^2.8.1" - unrs-resolver: "npm:^1.5.0" + unrs-resolver: "npm:^1.6.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/956df89003c97b9fcc2632754495944905195da27ef050efc9a7e0e9670ef220dbc9dc6f689322fb6cb2e29bc7395b5452b83df0beb95f7432aaf052e43db129 + checksum: 10c0/8bc2ad6b01d00c41b5e704d3156840957f1110b4b6937f7f88621eab5f51a42035182454e3430f49fb9b35dac0598c5b3197aa37e18bc788c640b2ff7874e75c languageName: node linkType: hard @@ -6682,7 +6682,7 @@ __metadata: languageName: node linkType: hard -"expect-type@npm:^1.2.0": +"expect-type@npm:^1.2.1": version: 1.2.1 resolution: "expect-type@npm:1.2.1" checksum: 10c0/b775c9adab3c190dd0d398c722531726cdd6022849b4adba19dceab58dda7e000a7c6c872408cd73d665baa20d381eca36af4f7b393a4ba60dd10232d1fb8898 @@ -9770,11 +9770,11 @@ __metadata: linkType: hard "napi-postinstall@npm:^0.1.1": - version: 0.1.1 - resolution: "napi-postinstall@npm:0.1.1" + version: 0.1.5 + resolution: "napi-postinstall@npm:0.1.5" bin: napi-postinstall: lib/cli.js - checksum: 10c0/578c4c99380a7c9e58276de6b82dbda0b7f364928b25d635a385d1e815470faebd5da2aec7b1284be682c85bbbf2a2c121dd85a9d0f505a7c052226098fde443 + checksum: 10c0/a6a6c8e26de4bbd5614496516c049ec90c34ab111c2cdbbd60c50b275512ccf85a1cceccefcb89dc26f149c33cc8cb272c0341623aa9ea12c37f725c36b95f56 languageName: node linkType: hard @@ -10495,7 +10495,7 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-jsdoc-type@npm:^0.1.6": +"prettier-plugin-jsdoc-type@npm:^0.1.12": version: 0.1.12 resolution: "prettier-plugin-jsdoc-type@npm:0.1.12" dependencies: @@ -12179,11 +12179,11 @@ __metadata: linkType: hard "sh-syntax@npm:^0.5.6": - version: 0.5.6 - resolution: "sh-syntax@npm:0.5.6" + version: 0.5.7 + resolution: "sh-syntax@npm:0.5.7" dependencies: tslib: "npm:^2.8.1" - checksum: 10c0/0a545ca724da66b97ab24e01e39e46fe3d3819350c687a278bf147328c144a62b2c3632daeb87eb84dba705ef3d81ba46d5bb684cf77355411520153301502cd + checksum: 10c0/191be067717f81355f4a2959950ca1809ef20bf52e7f684d53a112dd9a7230bdaf14ec012bee2d0e8c056e50174f66dbb7af4bd90ccce49334b318760411eaae languageName: node linkType: hard @@ -12530,7 +12530,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.8.1": +"std-env@npm:^3.9.0": version: 3.9.0 resolution: "std-env@npm:3.9.0" checksum: 10c0/4a6f9218aef3f41046c3c7ecf1f98df00b30a07f4f35c6d47b28329bc2531eef820828951c7d7b39a1c5eb19ad8a46e3ddfc7deb28f0a2f3ceebee11bab7ba50 @@ -13396,26 +13396,26 @@ __metadata: languageName: node linkType: hard -"unrs-resolver@npm:^1.5.0, unrs-resolver@npm:^1.6.0": - version: 1.6.0 - resolution: "unrs-resolver@npm:1.6.0" - dependencies: - "@unrs/resolver-binding-darwin-arm64": "npm:1.6.0" - "@unrs/resolver-binding-darwin-x64": "npm:1.6.0" - "@unrs/resolver-binding-freebsd-x64": "npm:1.6.0" - "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.6.0" - "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.6.0" - "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.6.0" - "@unrs/resolver-binding-linux-arm64-musl": "npm:1.6.0" - "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.6.0" - "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.6.0" - "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.6.0" - "@unrs/resolver-binding-linux-x64-gnu": "npm:1.6.0" - "@unrs/resolver-binding-linux-x64-musl": "npm:1.6.0" - "@unrs/resolver-binding-wasm32-wasi": "npm:1.6.0" - "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.6.0" - "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.6.0" - "@unrs/resolver-binding-win32-x64-msvc": "npm:1.6.0" +"unrs-resolver@npm:^1.6.0, unrs-resolver@npm:^1.6.3": + version: 1.6.3 + resolution: "unrs-resolver@npm:1.6.3" + dependencies: + "@unrs/resolver-binding-darwin-arm64": "npm:1.6.3" + "@unrs/resolver-binding-darwin-x64": "npm:1.6.3" + "@unrs/resolver-binding-freebsd-x64": "npm:1.6.3" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.6.3" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.6.3" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.6.3" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.6.3" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.6.3" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.6.3" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.6.3" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.6.3" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.6.3" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.6.3" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.6.3" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.6.3" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.6.3" napi-postinstall: "npm:^0.1.1" dependenciesMeta: "@unrs/resolver-binding-darwin-arm64": @@ -13450,7 +13450,7 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: 10c0/1fdb9cc0d2b7b74dee1f82cdf33d5788ef54cdc2c3bbf2a33e2971efe850c4f4d8356fcdaf93f93f911fdd642eb665a1d1380beee1debfedb11ae4dad85a9e2c + checksum: 10c0/6d1aac60eb3c25dadcebf87b4a3669194740ff02a403a678522264453d0bf7c811e2866b7ec3a14491961536569221e72d51836521cac97a6ffd1b26c6d76f21 languageName: node linkType: hard @@ -13599,9 +13599,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:3.1.1": - version: 3.1.1 - resolution: "vite-node@npm:3.1.1" +"vite-node@npm:3.1.2": + version: 3.1.2 + resolution: "vite-node@npm:3.1.2" dependencies: cac: "npm:^6.7.14" debug: "npm:^4.4.0" @@ -13610,7 +13610,7 @@ __metadata: vite: "npm:^5.0.0 || ^6.0.0" bin: vite-node: vite-node.mjs - checksum: 10c0/15ee73c472ae00f042a7cee09a31355d2c0efbb2dab160377545be9ba4b980a5f4cb2841b98319d87bedf630bbbb075e6b40796b39f65610920cf3fde66fdf8d + checksum: 10c0/eb0788b43a241c69ca23ba6cf5ab5226157947938dc4e02247b2008e1fd425e45a347d3caac7d53e0b804beb4c9e97395908fd87c1f23bda1590e1b011c63edb languageName: node linkType: hard @@ -13669,36 +13669,37 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^3.1.1": - version: 3.1.1 - resolution: "vitest@npm:3.1.1" - dependencies: - "@vitest/expect": "npm:3.1.1" - "@vitest/mocker": "npm:3.1.1" - "@vitest/pretty-format": "npm:^3.1.1" - "@vitest/runner": "npm:3.1.1" - "@vitest/snapshot": "npm:3.1.1" - "@vitest/spy": "npm:3.1.1" - "@vitest/utils": "npm:3.1.1" +"vitest@npm:^3.1.2": + version: 3.1.2 + resolution: "vitest@npm:3.1.2" + dependencies: + "@vitest/expect": "npm:3.1.2" + "@vitest/mocker": "npm:3.1.2" + "@vitest/pretty-format": "npm:^3.1.2" + "@vitest/runner": "npm:3.1.2" + "@vitest/snapshot": "npm:3.1.2" + "@vitest/spy": "npm:3.1.2" + "@vitest/utils": "npm:3.1.2" chai: "npm:^5.2.0" debug: "npm:^4.4.0" - expect-type: "npm:^1.2.0" + expect-type: "npm:^1.2.1" magic-string: "npm:^0.30.17" pathe: "npm:^2.0.3" - std-env: "npm:^3.8.1" + std-env: "npm:^3.9.0" tinybench: "npm:^2.9.0" tinyexec: "npm:^0.3.2" + tinyglobby: "npm:^0.2.13" tinypool: "npm:^1.0.2" tinyrainbow: "npm:^2.0.0" vite: "npm:^5.0.0 || ^6.0.0" - vite-node: "npm:3.1.1" + vite-node: "npm:3.1.2" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/debug": ^4.1.12 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - "@vitest/browser": 3.1.1 - "@vitest/ui": 3.1.1 + "@vitest/browser": 3.1.2 + "@vitest/ui": 3.1.2 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -13718,7 +13719,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10c0/680f31d2a7ca59509f837acdbacd9dff405e1b00c606d7cd29717127c6b543f186055854562c2604f74c5cd668b70174968d28feb4ed948a7e013c9477a68d50 + checksum: 10c0/14b9c99812282d88b6e1dafde8cca22b07dcefa0a00d240145cf5cb95b082c287807bd884f417a046992bc74246aaf64662fd07179e60547c9277fbc8986439b languageName: node linkType: hard pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy