├── .changeset ├── README.md └── config.json ├── .codesandbox └── ci.json ├── .commitlintrc ├── .editorconfig ├── .env.yarn ├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ ├── autofix.yml │ ├── ci.yml │ ├── pkg-pr-new.yml │ ├── release.yml │ └── size-limit.yml ├── .gitignore ├── .nano-staged.js ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .remarkrc ├── .renovaterc ├── .simple-git-hooks.js ├── .size-limit.json ├── .yarn ├── plugins │ └── plugin-prepare-lifecycle.cjs └── releases │ └── yarn-4.9.2.cjs ├── .yarnrc.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── dummy.js ├── index.js └── package.json ├── eslint.config.js ├── package.json ├── src ├── constants.ts ├── global.d.ts ├── helpers.ts ├── index.ts ├── logger.ts ├── normalize-options.ts ├── tsconfig.json └── types.ts ├── tests ├── e2e │ ├── __snapshots__ │ │ └── e2e.spec.ts.snap │ ├── absoluteAlias │ │ ├── .eslintrc.cjs │ │ ├── public │ │ │ └── images │ │ │ │ └── foo.ts │ │ ├── test.ts │ │ └── tsconfig.json │ ├── base.eslintrc.cjs │ ├── dotInclude │ │ ├── .dot │ │ │ ├── index.ts │ │ │ ├── module │ │ │ │ ├── module.d.ts │ │ │ │ └── package.json │ │ │ ├── subfolder │ │ │ │ ├── tsImportee.ts │ │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ ├── .eslintrc.cjs │ │ └── tsconfig.json │ ├── dotPaths │ │ ├── .dot │ │ │ ├── module │ │ │ │ ├── module.d.ts │ │ │ │ └── package.json │ │ │ ├── subfolder │ │ │ │ ├── tsImportee.ts │ │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ ├── .eslintrc.cjs │ │ ├── index.ts │ │ └── tsconfig.json │ ├── dotProject │ │ ├── .eslintrc.cjs │ │ └── packages │ │ │ ├── module-a │ │ │ ├── .dot │ │ │ │ └── tsconfig.json │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ │ ├── tsImportee.ts │ │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ │ └── module-b │ │ │ ├── .dot │ │ │ └── tsconfig.json │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ ├── e2e.spec.ts │ ├── importXResolverV3 │ │ ├── eslint.config.js │ │ └── packages │ │ │ ├── module-a │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ │ ├── tsImportee.ts │ │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ ├── tsconfig.json │ │ │ └── tsxImportee.tsx │ │ │ └── module-b │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ ├── tsconfig.json │ │ │ └── tsxImportee.tsx │ ├── multipleEslintrcs │ │ ├── module-a │ │ │ ├── .eslintrc.cjs │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ │ ├── tsImportee.ts │ │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ ├── tsconfig.json │ │ │ └── tsxImportee.tsx │ │ └── module-b │ │ │ ├── .eslintrc.cjs │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ ├── tsconfig.json │ │ │ └── tsxImportee.tsx │ ├── multipleTsconfigs │ │ ├── .eslintrc.cjs │ │ └── packages │ │ │ ├── module-a │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ │ ├── tsImportee.ts │ │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ ├── tsconfig.json │ │ │ └── tsxImportee.tsx │ │ │ └── module-b │ │ │ ├── index.ts │ │ │ ├── subfolder │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ │ ├── tsImportee.ts │ │ │ ├── tsconfig.json │ │ │ └── tsxImportee.tsx │ ├── nearestTsconfig │ │ ├── .eslintrc.cjs │ │ ├── a │ │ │ ├── app │ │ │ │ └── app.ts │ │ │ ├── b │ │ │ │ ├── app │ │ │ │ │ └── app.ts │ │ │ │ ├── c │ │ │ │ │ ├── app │ │ │ │ │ │ └── app.ts │ │ │ │ │ ├── components │ │ │ │ │ │ └── c.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── components │ │ │ │ │ └── b.ts │ │ │ │ └── tsconfig.json │ │ │ ├── components │ │ │ │ └── a.ts │ │ │ └── tsconfig.json │ │ ├── app │ │ │ └── app.ts │ │ ├── components │ │ │ └── root.ts │ │ └── tsconfig.json │ ├── package.json │ ├── withJsExtension │ │ ├── .eslintrc.cjs │ │ ├── bar │ │ │ └── index.tsx │ │ ├── cjsImportee.cjs │ │ ├── ctsImportee.cts │ │ ├── d-ctsImportee.d.cts │ │ ├── d-mtsImportee.d.mts │ │ ├── dtsImportee.d.ts │ │ ├── foo.cjs │ │ │ └── index.ts │ │ ├── foo.js │ │ │ └── index.ts │ │ ├── foo.jsx │ │ │ └── index.ts │ │ ├── foo.mjs │ │ │ └── index.ts │ │ ├── foo │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── jsImportee.js │ │ ├── jsxImportee.jsx │ │ ├── mjsImportee.mjs │ │ ├── mtsImportee.mts │ │ ├── test.cjs │ │ ├── tsImportee.ts │ │ ├── tsconfig.json │ │ └── tsxImportee.tsx │ ├── withJsconfig │ │ ├── .eslintrc.cjs │ │ ├── importee.js │ │ ├── index.js │ │ └── jsconfig.json │ ├── withPaths │ │ ├── .eslintrc.cjs │ │ ├── index.ts │ │ ├── module │ │ │ ├── module.d.ts │ │ │ └── package.json │ │ ├── subfolder │ │ │ ├── tsImportee.ts │ │ │ └── tsxImportee.tsx │ │ ├── tsImportee.ts │ │ ├── tsconfig.json │ │ └── tsxImportee.tsx │ ├── withPathsAndNestedBaseUrl │ │ ├── .eslintrc.cjs │ │ ├── other │ │ │ └── bar.ts │ │ ├── root │ │ │ └── foo.ts │ │ └── tsconfig.json │ ├── withQuerystring │ │ ├── .eslintrc.cjs │ │ ├── image.svg │ │ ├── index.ts │ │ ├── subfolder │ │ │ └── image.svg │ │ └── tsconfig.json │ └── withoutPaths │ │ ├── .eslintrc.cjs │ │ ├── dtsImportee.d.ts │ │ ├── index.ts │ │ ├── subfolder │ │ ├── dtsImportee.d.ts │ │ ├── tsImportee.ts │ │ └── tsxImportee.tsx │ │ ├── tsImportee.ts │ │ ├── tsconfig.json │ │ └── tsxImportee.tsx ├── global.d.ts ├── tsconfig.json └── unit │ ├── dts │ └── foo.d.ts │ ├── malformed-reference │ ├── index.ts │ └── tsconfig.json │ ├── pnp │ ├── .editorconfig │ ├── .gitattributes │ ├── .gitignore │ ├── .yarn │ │ ├── cache │ │ │ ├── @atlaskit-analytics-next-npm-11.0.0-dee51f68fd-c5b0fb7f4c.zip │ │ │ ├── @atlaskit-analytics-next-stable-react-context-npm-1.0.1-7582c45125-b32e35c260.zip │ │ │ ├── @atlaskit-app-provider-npm-2.2.0-c66a549c49-553cf510da.zip │ │ │ ├── @atlaskit-atlassian-context-npm-0.2.0-2d87bc346f-c9481e62c0.zip │ │ │ ├── @atlaskit-css-npm-0.10.6-aef5a93234-16f1fa4b9c.zip │ │ │ ├── @atlaskit-ds-lib-npm-4.0.0-2657fb4860-3b42595e40.zip │ │ │ ├── @atlaskit-feature-gate-js-client-npm-5.3.1-5ba19e6813-f1deae06d5.zip │ │ │ ├── @atlaskit-interaction-context-npm-3.0.0-c7cd6bc1f6-ff1defa453.zip │ │ │ ├── @atlaskit-link-npm-3.2.0-826b5a551f-f3551a340a.zip │ │ │ ├── @atlaskit-platform-feature-flags-npm-1.1.1-cd4133dd9e-3bdd0e19b4.zip │ │ │ ├── @atlaskit-pragmatic-drag-and-drop-npm-1.7.0-2fb827d798-dc5f297086.zip │ │ │ ├── @atlaskit-primitives-npm-14.8.0-3b286f743e-08bdc3c6be.zip │ │ │ ├── @atlaskit-tokens-npm-4.9.0-620f17c75a-5158f0c204.zip │ │ │ ├── @atlaskit-visually-hidden-npm-3.0.3-ce3c05b0a7-6cddb8ff7c.zip │ │ │ ├── @babel-code-frame-npm-7.27.1-4dbcabb137-5dd9a18baa.zip │ │ │ ├── @babel-generator-npm-7.27.1-12737d533a-c4156434b2.zip │ │ │ ├── @babel-helper-module-imports-npm-7.27.1-3bf33978f4-e00aace096.zip │ │ │ ├── @babel-helper-string-parser-npm-7.27.1-d1471e0598-8bda3448e0.zip │ │ │ ├── @babel-helper-validator-identifier-npm-7.27.1-2c3cefd5dc-c558f11c48.zip │ │ │ ├── @babel-parser-npm-7.27.2-70cd61f3e6-3c06692768.zip │ │ │ ├── @babel-runtime-npm-7.27.0-67ce9cb54f-35091ea9de.zip │ │ │ ├── @babel-runtime-npm-7.27.1-c9b375440e-530a7332f8.zip │ │ │ ├── @babel-template-npm-7.27.2-77e67eabbd-ed9e902265.zip │ │ │ ├── @babel-traverse-npm-7.27.1-cdef168378-d912110037.zip │ │ │ ├── @babel-types-npm-7.27.1-2a01e9d02f-ed736f14db.zip │ │ │ ├── @compiled-react-npm-0.18.4-cec0f2856b-3192db2239.zip │ │ │ ├── @emotion-babel-plugin-npm-11.13.5-ca65815e43-8ccbfec7de.zip │ │ │ ├── @emotion-cache-npm-11.14.0-83baa0ff98-3fa3e7a431.zip │ │ │ ├── @emotion-hash-npm-0.9.2-21b49040cb-0dc254561a.zip │ │ │ ├── @emotion-memoize-npm-0.9.0-ccd80906b3-13f474a920.zip │ │ │ ├── @emotion-react-npm-11.14.0-2743f93910-d0864f571a.zip │ │ │ ├── @emotion-serialize-npm-1.3.3-b390a9707a-b28cb7de59.zip │ │ │ ├── @emotion-sheet-npm-1.4.0-fb64d8f222-3ca72d1650.zip │ │ │ ├── @emotion-unitless-npm-0.10.0-bd15580251-1509431927.zip │ │ │ ├── @emotion-use-insertion-effect-with-fallbacks-npm-1.2.0-a897c3d989-074dbc92b9.zip │ │ │ ├── @emotion-utils-npm-1.4.2-2cf43fb561-7d0010bf60.zip │ │ │ ├── @emotion-weak-memoize-npm-0.4.0-76aafb2333-64376af11f.zip │ │ │ ├── @jridgewell-gen-mapping-npm-0.3.8-647be6e286-c668feaf86.zip │ │ │ ├── @jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip │ │ │ ├── @jridgewell-set-array-npm-1.2.1-2312928209-2a5aa7b4b5.zip │ │ │ ├── @jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-2eb864f276.zip │ │ │ ├── @jridgewell-trace-mapping-npm-0.3.25-c076fd2279-3d1ce6ebc6.zip │ │ │ ├── @statsig-client-core-npm-3.17.1-9f8a5579d4-4553ddff9e.zip │ │ │ ├── @statsig-js-client-npm-3.17.1-ae513a2b32-ffa2218a56.zip │ │ │ ├── @types-parse-json-npm-4.0.2-f87f65692e-b1b863ac34.zip │ │ │ ├── babel-plugin-macros-npm-3.1.0-320e781f4e-c6dfb15de9.zip │ │ │ ├── bind-event-listener-npm-3.0.0-c29621e676-08eadf1c7d.zip │ │ │ ├── callsites-npm-3.1.0-268f989910-fff9227740.zip │ │ │ ├── convert-source-map-npm-1.9.0-e294555f4b-281da55454.zip │ │ │ ├── cosmiconfig-npm-7.1.0-13a5090bcd-b923ff6af5.zip │ │ │ ├── csstype-npm-3.1.3-e9a1c85013-80c089d6f7.zip │ │ │ ├── debug-npm-4.4.1-6eab84b9f7-d2b44bc1af.zip │ │ │ ├── error-ex-npm-1.3.2-5654f80c0f-ba827f8936.zip │ │ │ ├── escape-string-regexp-npm-4.0.0-4b531d8d59-9497d4dd30.zip │ │ │ ├── eventemitter2-npm-4.1.2-5f5ab40d0b-32b5ca5d9d.zip │ │ │ ├── find-root-npm-1.1.0-a16a94005f-1abc7f3bf2.zip │ │ │ ├── function-bind-npm-1.1.2-7a55be9b03-d8680ee1e5.zip │ │ │ ├── globals-npm-11.12.0-1fa7f41a6c-758f9f258e.zip │ │ │ ├── hasown-npm-2.0.2-80fe6c9901-3769d43470.zip │ │ │ ├── hoist-non-react-statics-npm-3.3.2-e7b709e6c1-fe0889169e.zip │ │ │ ├── import-fresh-npm-3.3.1-1916794950-bf8cc49487.zip │ │ │ ├── is-arrayish-npm-0.2.1-23927dfb15-e7fb686a73.zip │ │ │ ├── is-core-module-npm-2.16.1-a54837229e-898443c147.zip │ │ │ ├── js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip │ │ │ ├── jsesc-npm-3.1.0-2f4f998cd7-531779df5e.zip │ │ │ ├── json-parse-even-better-errors-npm-2.3.1-144d62256e-140932564c.zip │ │ │ ├── lines-and-columns-npm-1.2.4-d6c7cc5799-3da6ee62d4.zip │ │ │ ├── lodash.zip-npm-4.2.0-5299417ec8-e596da80a6.zip │ │ │ ├── loose-envify-npm-1.4.0-6307b72ccf-655d110220.zip │ │ │ ├── ms-npm-2.1.3-81ff3cfac1-d924b57e73.zip │ │ │ ├── object-assign-npm-4.1.1-1004ad6dec-1f4df99451.zip │ │ │ ├── parent-module-npm-1.0.1-1fae11b095-c63d6e8000.zip │ │ │ ├── parse-json-npm-5.2.0-00a63b1199-77947f2253.zip │ │ │ ├── path-parse-npm-1.0.7-09564527b7-11ce261f9d.zip │ │ │ ├── path-type-npm-4.0.0-10d47fc86a-666f6973f3.zip │ │ │ ├── picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip │ │ │ ├── prop-types-npm-15.8.1-17c71ee7ee-59ece7ca2f.zip │ │ │ ├── raf-schd-npm-4.0.3-18f72af738-ecabf0957c.zip │ │ │ ├── react-is-npm-16.13.1-a9b9382b4f-33977da7a5.zip │ │ │ ├── react-uid-npm-2.4.0-54d5631b5d-5e01e8d3a4.zip │ │ │ ├── regenerator-runtime-npm-0.14.1-a6c97c609a-1b16eb2c4b.zip │ │ │ ├── resolve-from-npm-4.0.0-f758ec21bf-8408eec31a.zip │ │ │ ├── resolve-npm-1.22.10-d6fd9cdec7-8967e1f4e2.zip │ │ │ ├── resolve-patch-b5982cfa8c-52a4e505bb.zip │ │ │ ├── source-map-npm-0.5.7-7c3f035429-904e767bb9.zip │ │ │ ├── stylis-npm-4.2.0-6b07f11c99-a7128ad5a8.zip │ │ │ ├── supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-6c40323407.zip │ │ │ ├── tiny-invariant-npm-1.3.3-e622f1447c-65af4a0732.zip │ │ │ ├── tslib-npm-2.8.1-66590b21b8-9c4759110a.zip │ │ │ ├── use-memo-one-npm-1.1.3-b9dc77468a-3d596e65a6.zip │ │ │ └── yaml-npm-1.10.2-0e780aebdf-5c28b9eb7a.zip │ │ └── releases │ │ │ └── yarn-4.8.1.cjs │ ├── .yarnrc.yml │ ├── README.md │ ├── package.json │ └── yarn.lock │ └── unit.spec.ts ├── tsconfig.json ├── tsconfig.lib.json ├── vitest.config.ts ├── vitest.setup.ts └── yarn.lock /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config/schema.json", 3 | "changelog": [ 4 | "@changesets/changelog-github", 5 | { 6 | "repo": "import-js/eslint-import-resolver-typescript" 7 | } 8 | ], 9 | "commit": false, 10 | "linked": [], 11 | "access": "public", 12 | "baseBranch": "master", 13 | "updateInternalDependencies": "patch", 14 | "ignore": [] 15 | } 16 | -------------------------------------------------------------------------------- /.codesandbox/ci.json: -------------------------------------------------------------------------------- 1 | { 2 | "node": "18", 3 | "sandboxes": [] 4 | } 5 | -------------------------------------------------------------------------------- /.commitlintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "@1stg" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root=true 2 | 3 | [*] 4 | indent_style=space 5 | indent_size=2 6 | tab_width=2 7 | end_of_line=lf 8 | charset=utf-8 9 | trim_trailing_whitespace=true 10 | insert_final_newline=true 11 | -------------------------------------------------------------------------------- /.env.yarn: -------------------------------------------------------------------------------- 1 | CONFIG_PREFER_PRETTIER=1 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: 2 | - JounQin 3 | - 1stG 4 | - rx-ts 5 | - un-ts 6 | open_collective: unts 7 | patreon: 1stG 8 | custom: 9 | - https://opencollective.com/1stG 10 | - https://opencollective.com/rxts 11 | - https://afdian.com/a/JounQin 12 | -------------------------------------------------------------------------------- /.github/workflows/autofix.yml: -------------------------------------------------------------------------------- 1 | name: autofix.ci # For security reasons, the workflow in which the autofix.ci action is used must be named "autofix.ci". 2 | 3 | on: 4 | pull_request: 5 | types: 6 | - opened 7 | - reopened 8 | - synchronize 9 | 10 | concurrency: 11 | group: ${{ github.workflow }}-${{ github.ref }} 12 | cancel-in-progress: true 13 | 14 | jobs: 15 | autofix: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - name: Checkout Repo 19 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 20 | 21 | - name: Setup Node.js LTS 22 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 23 | with: 24 | node-version: lts/* 25 | cache: yarn 26 | 27 | - name: Install dependencies 28 | run: yarn --immutable 29 | 30 | - name: Format Codes 31 | run: yarn format 32 | 33 | - name: Apply autofix.ci 34 | uses: autofix-ci/action@2891949f3779a1cafafae1523058501de3d4e944 # v1.3.1 35 | with: 36 | fail-fast: false 37 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | - push 5 | - pull_request 6 | 7 | concurrency: 8 | group: ${{ github.workflow }}-${{ github.ref }} 9 | cancel-in-progress: true 10 | 11 | jobs: 12 | ci: 13 | name: Lint and Test with Node.js ${{ matrix.node }} on ${{ matrix.os }} 14 | strategy: 15 | matrix: 16 | node: 17 | - 18 18 | - 20 19 | - 22 20 | - 24 21 | os: 22 | - ubuntu-latest 23 | - windows-latest 24 | - macos-latest 25 | fail-fast: false 26 | runs-on: ${{ matrix.os }} 27 | steps: 28 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 29 | 30 | - name: Setup Node.js ${{ matrix.node }} 31 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 32 | with: 33 | node-version: ${{ matrix.node }} 34 | cache: yarn 35 | 36 | - name: Install Dependencies 37 | run: yarn --immutable 38 | 39 | - name: Build, Lint and Test 40 | run: | 41 | yarn build 42 | yarn run-p lint test typecov 43 | env: 44 | PARSER_NO_WATCH: true 45 | 46 | - name: Codecov 47 | # bad Windows -- https://github.com/codecov/codecov-action/issues/1787 48 | if: ${{ !github.event.pull_request.head.repo.fork && matrix.os != 'windows-latest' }} 49 | uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3 50 | with: 51 | token: ${{ secrets.CODECOV_TOKEN }} 52 | -------------------------------------------------------------------------------- /.github/workflows/pkg-pr-new.yml: -------------------------------------------------------------------------------- 1 | name: Publish Any Commit 2 | 3 | on: 4 | - push 5 | - pull_request 6 | 7 | concurrency: 8 | group: ${{ github.workflow }}-${{ github.ref }} 9 | cancel-in-progress: true 10 | 11 | jobs: 12 | publish: 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - name: Checkout Repo 17 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 18 | 19 | - name: Setup Node.js LTS 20 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 21 | with: 22 | node-version: lts/* 23 | cache: yarn 24 | 25 | - name: Install dependencies 26 | run: yarn --immutable 27 | 28 | - name: Build 29 | run: yarn build 30 | 31 | - name: Publish 32 | run: yarn dlx pkg-pr-new publish --compact 33 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | - v3.x 8 | 9 | concurrency: 10 | group: ${{ github.workflow }}-${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | permissions: 14 | contents: write 15 | id-token: write 16 | pull-requests: write 17 | 18 | jobs: 19 | release: 20 | name: Release 21 | runs-on: ubuntu-latest 22 | steps: 23 | - name: Checkout Repo 24 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 25 | with: 26 | # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits 27 | fetch-depth: 0 28 | 29 | - name: Setup Node.js LTS 30 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 31 | with: 32 | node-version: lts/* 33 | cache: yarn 34 | 35 | - name: Install Dependencies 36 | run: yarn --immutable 37 | 38 | - name: Build 39 | run: yarn build 40 | 41 | - name: Create Release Pull Request or Publish to npm 42 | id: changesets 43 | uses: changesets/action@v1 44 | with: 45 | # This expects you to have a script called release which does a build for your packages and calls changeset publish 46 | publish: yarn release 47 | commit: 'chore: release eslint-import-resolver-typescript' 48 | title: 'chore: release eslint-import-resolver-typescript' 49 | env: 50 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 51 | NPM_CONFIG_PROVENANCE: true 52 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 53 | -------------------------------------------------------------------------------- /.github/workflows/size-limit.yml: -------------------------------------------------------------------------------- 1 | name: Size Limit 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - master 7 | - v3.x 8 | 9 | concurrency: 10 | group: ${{ github.workflow }}-${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | size-limit: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 18 | 19 | - name: Setup Node.js LTS 20 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 21 | with: 22 | node-version: lts/* 23 | cache: yarn 24 | 25 | - name: Install Dependencies 26 | run: yarn --immutable 27 | 28 | - name: Check Size Limit 29 | uses: andresz1/size-limit-action@94bc357df29c36c8f8d50ea497c3e225c3c95d1d # v1.8.0 30 | with: 31 | github_token: ${{ secrets.GITHUB_TOKEN }} 32 | skip_step: install 33 | script: yarn size-limit --json 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .*cache 2 | .type-coverage 3 | .yarn/* 4 | !.yarn/plugins 5 | !.yarn/releases 6 | coverage 7 | lib 8 | node_modules 9 | *.log 10 | .npmrc 11 | -------------------------------------------------------------------------------- /.nano-staged.js: -------------------------------------------------------------------------------- 1 | import base from '@1stg/nano-staged/tsc' 2 | 3 | export default { 4 | ...base, 5 | 'tests/e2e/absoluteAlias/**/*.ts?(x)': () => 6 | 'tsc -p tests/e2e/absoluteAlias --noEmit', 7 | } 8 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 18.20.8 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .yarn 2 | .pnp.* 3 | *.svg 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | "@1stg/prettier-config" 2 | -------------------------------------------------------------------------------- /.remarkrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@1stg/preset" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.renovaterc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "github>1stG/configs" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.simple-git-hooks.js: -------------------------------------------------------------------------------- 1 | export { default } from '@1stg/simple-git-hooks' 2 | -------------------------------------------------------------------------------- /.size-limit.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "path": "./lib/index.js", 4 | "limit": "1.5kB" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /.yarn/plugins/plugin-prepare-lifecycle.cjs: -------------------------------------------------------------------------------- 1 | module.exports={name:"plugin-prepare-lifecycle",factory:e=>({hooks:{afterAllInstalled(r){if(!r.topLevelWorkspace.manifest.scripts.get("prepare"))return;e("@yarnpkg/shell").execute("yarn prepare")}}})}; 2 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | enableTelemetry: false 2 | 3 | nodeLinker: node-modules 4 | 5 | plugins: 6 | - checksum: 37b2361b1502b2054e6779788c0e9bdd6a90ce49852a8cad2feda79b0614ec94f06fb6e78951f5f95429c610d7934dd077caa47413a0227378a102c55161616d 7 | path: .yarn/plugins/plugin-prepare-lifecycle.cjs 8 | spec: 'https://github.com/un-es/yarn-plugin-prepare-lifecycle/releases/download/v0.0.1/index.js' 9 | 10 | yarnPath: .yarn/releases/yarn-4.9.2.cjs 11 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 4.4.3 4 | 5 | ### Patch Changes 6 | 7 | - [#462](https://github.com/import-js/eslint-import-resolver-typescript/pull/462) [`43575e7`](https://github.com/import-js/eslint-import-resolver-typescript/commit/43575e7c59d979b396ca8bdd96e3e8464243ed8e) Thanks [@JounQin](https://github.com/JounQin)! - chore: migrate `stable-hash` to `stable-hash-x` 8 | 9 | ## 4.4.2 10 | 11 | ### Patch Changes 12 | 13 | - [#459](https://github.com/import-js/eslint-import-resolver-typescript/pull/459) [`f16150b`](https://github.com/import-js/eslint-import-resolver-typescript/commit/f16150b5e10ec24a3f1f107d6322816338c50dc8) Thanks [@carlocorradini](https://github.com/carlocorradini) and [@JounQin](https://github.com/JounQin)! - fix: always sort projects by affinity before iterating 14 | 15 | ## 4.4.1 16 | 17 | ### Patch Changes 18 | 19 | - [#457](https://github.com/import-js/eslint-import-resolver-typescript/pull/457) [`d9f3e68`](https://github.com/import-js/eslint-import-resolver-typescript/commit/d9f3e687ec9cfdd8cda77943f173ffc6bd469ea6) Thanks [@JounQin](https://github.com/JounQin)! - fix(deps): bump `eslint-import-context` to v0.1.5 20 | 21 | ## 4.4.0 22 | 23 | ### Minor Changes 24 | 25 | - [#453](https://github.com/import-js/eslint-import-resolver-typescript/pull/453) [`7d87517`](https://github.com/import-js/eslint-import-resolver-typescript/commit/7d87517ae051c2deff038e276d4b15f40aa8f6b6) Thanks [@JounQin](https://github.com/JounQin)! - feat: integrate `eslint-import-context` to get correct `context.cwd` 26 | 27 | ## 4.3.5 28 | 29 | ### Patch Changes 30 | 31 | - [#450](https://github.com/import-js/eslint-import-resolver-typescript/pull/450) [`3f1aab1`](https://github.com/import-js/eslint-import-resolver-typescript/commit/3f1aab1d5e916714678d5dc3e34644f4aaea4efc) Thanks [@JounQin](https://github.com/JounQin)! - fix: remove buggy `module-sync` exports field 32 | 33 | ## 4.3.4 34 | 35 | ### Patch Changes 36 | 37 | - [#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 38 | 39 | - [#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 40 | 41 | ## 4.3.3 42 | 43 | ### Patch Changes 44 | 45 | - [#433](https://github.com/import-js/eslint-import-resolver-typescript/pull/433) [`834b11e`](https://github.com/import-js/eslint-import-resolver-typescript/commit/834b11e65158a4079aac754779f5af013c907358) Thanks [@JounQin](https://github.com/JounQin)! - chore: bump `unrs-resolver` to v1.6.0 46 | 47 | ## 4.3.2 48 | 49 | ### Patch Changes 50 | 51 | - [#427](https://github.com/import-js/eslint-import-resolver-typescript/pull/427) [`dabba8e`](https://github.com/import-js/eslint-import-resolver-typescript/commit/dabba8e97ec1f9a109b2e6fbd16372b63a4c455f) Thanks [@JounQin](https://github.com/JounQin)! - chore: bump `unrs-resolver` to v1.4.1 52 | 53 | ## 4.3.1 54 | 55 | ### Patch Changes 56 | 57 | - [#425](https://github.com/import-js/eslint-import-resolver-typescript/pull/425) [`2ced0ba`](https://github.com/import-js/eslint-import-resolver-typescript/commit/2ced0ba8939c3f1ece076fa718fd831e8ecbb2ec) Thanks [@JounQin](https://github.com/JounQin)! - chore: bump `unrs-resolver` to v1.3.3 58 | 59 | ## 4.3.0 60 | 61 | ### Minor Changes 62 | 63 | - [#423](https://github.com/import-js/eslint-import-resolver-typescript/pull/423) [`2fcb947`](https://github.com/import-js/eslint-import-resolver-typescript/commit/2fcb947803eeb096c9c59fa3ae9c34df1236c543) Thanks [@JounQin](https://github.com/JounQin)! - feat: throw error on malformed `tsconfig` reference 64 | 65 | ## 4.2.7 66 | 67 | ### Patch Changes 68 | 69 | - [`aeb558f`](https://github.com/import-js/eslint-import-resolver-typescript/commit/aeb558f0a5911217e8eff6fe6e1b4ac4d4038c71) Thanks [@JounQin](https://github.com/JounQin)! - fix: add missing `index.d.cts` file 70 | 71 | ## 4.2.6 72 | 73 | ### Patch Changes 74 | 75 | - [#417](https://github.com/import-js/eslint-import-resolver-typescript/pull/417) [`c3f678b`](https://github.com/import-js/eslint-import-resolver-typescript/commit/c3f678ba550f027bfb1f1b64a1750fc1fe83c5e3) Thanks [@JounQin](https://github.com/JounQin)! - fix: `require` entry types, add `module-sync` entry 76 | 77 | ## 4.2.5 78 | 79 | ### Patch Changes 80 | 81 | - [#410](https://github.com/import-js/eslint-import-resolver-typescript/pull/410) [`ec59d22`](https://github.com/import-js/eslint-import-resolver-typescript/commit/ec59d22fdd1ec8093dcb97da626c28ea346f41e3) Thanks [@JounQin](https://github.com/JounQin)! - fix: absolute path aliasing should not be skipped 82 | 83 | ## 4.2.4 84 | 85 | ### Patch Changes 86 | 87 | - [#407](https://github.com/import-js/eslint-import-resolver-typescript/pull/407) [`6b183ff`](https://github.com/import-js/eslint-import-resolver-typescript/commit/6b183fff1b42dfb1514545b91021dfa73ab4a1c5) Thanks [@JounQin](https://github.com/JounQin)! - chore: migrate to rebranding `unrs-resolver` with new targets supported: 88 | 89 | - `i686-pc-windows-msvc` 90 | - `armv7-unknown-linux-musleabihf` 91 | - `powerpc64le-unknown-linux-gnu` 92 | - `s390x-unknown-linux-gnu` 93 | 94 | ## 4.2.3 95 | 96 | ### Patch Changes 97 | 98 | - [#402](https://github.com/import-js/eslint-import-resolver-typescript/pull/402) [`f21bf15`](https://github.com/import-js/eslint-import-resolver-typescript/commit/f21bf152311cdaa85bdf390bba2824c56cb111da) Thanks [@SunsetTechuila](https://github.com/SunsetTechuila)! - fix: don't resolve not implemented node modules in `bun` 99 | 100 | `is-bun-module` is marked as `dependency`, again, for correctness, see [`isBunImplementedNodeModule`](https://github.com/SunsetTechuila/is-bun-module#isbunimplementednodemodulemodulename-bunversion) for more details 101 | 102 | For `Bun` users: you don't need to install `is-bun-module` any more but `bun: true` option is still required if you're running without `bun --bun` nor [`run#bun`](https://bun.sh/docs/runtime/bunfig#run-bun-auto-alias-node-to-bun) enabled 103 | 104 | ## 4.2.2 105 | 106 | ### Patch Changes 107 | 108 | - [#397](https://github.com/import-js/eslint-import-resolver-typescript/pull/397) [`14a7688`](https://github.com/import-js/eslint-import-resolver-typescript/commit/14a76885499cf99b0e5ea588aeb916a881c4efcb) Thanks [@JounQin](https://github.com/JounQin)! - chore: bump `rspack-resolver` for better P'n'P support 109 | 110 | Now `rspack-resolver` resolves `pnpapi` natively. 111 | 112 | ## 4.2.1 113 | 114 | ### Patch Changes 115 | 116 | - [#394](https://github.com/import-js/eslint-import-resolver-typescript/pull/394) [`9f11f6b`](https://github.com/import-js/eslint-import-resolver-typescript/commit/9f11f6bb94f1f9eae6794eea3e4624b80ceac305) Thanks [@JounQin](https://github.com/JounQin)! - fix: don't set empty `configFile` when no `tsconfig` found 117 | 118 | - [#394](https://github.com/import-js/eslint-import-resolver-typescript/pull/394) [`9f11f6b`](https://github.com/import-js/eslint-import-resolver-typescript/commit/9f11f6bb94f1f9eae6794eea3e4624b80ceac305) Thanks [@JounQin](https://github.com/JounQin)! - chore: bump `rspack-resolver` to v1.2.0 119 | 120 | ## 4.2.0 121 | 122 | ### Minor Changes 123 | 124 | - [#391](https://github.com/import-js/eslint-import-resolver-typescript/pull/391) [`c8121e5`](https://github.com/import-js/eslint-import-resolver-typescript/commit/c8121e5eb4ce25a79396ae75df16d35fc67acbc6) Thanks [@JounQin](https://github.com/JounQin)! - feat: make `is-bun-module` as optional peer dependency 125 | 126 | Technically this is a BREAKING CHANGE, but considering we just raise out v4 recently and this only affects `bun` users, `bun --bun eslint` even works without this dependency, so I'd consider this as a minor change. 127 | 128 | So for `bun` users, there are three options: 129 | 130 | 1. install `is-bun-module` dependency manually and use `bun: true` option 131 | 2. run `eslint` with `bun --bun eslint` w/o `bun: true` option 132 | 3. enable `run#bun` in [`bunfig.toml`](https://bun.sh/docs/runtime/bunfig#run-bun-auto-alias-node-to-bun) w/o `bun: true` option 133 | 134 | ## 4.1.1 135 | 136 | ### Patch Changes 137 | 138 | - [#389](https://github.com/import-js/eslint-import-resolver-typescript/pull/389) [`1b97d8a`](https://github.com/import-js/eslint-import-resolver-typescript/commit/1b97d8a5913e15bdfcf5f64152e8a4173b18dab1) Thanks [@JounQin](https://github.com/JounQin)! - fix: should prefer `module.isBuiltin` when `process.versions.bun` available 139 | 140 | ## 4.1.0 141 | 142 | ### Minor Changes 143 | 144 | - [#387](https://github.com/import-js/eslint-import-resolver-typescript/pull/387) [`ef5cd10`](https://github.com/import-js/eslint-import-resolver-typescript/commit/ef5cd1083207d560b35694b99ccfefa4a1234acb) Thanks [@JounQin](https://github.com/JounQin)! - feat: add a new `bun?: boolean` option for `bun` users - close #386 145 | 146 | `process.versions.bun` is unavailable even with `bun eslint` due to its own design, 147 | but checking `bun` modules for non-bun users is incorrect behavior and just wasting time, 148 | so a new option is added for such case, you can still run with `bun --bun eslint` without this option enabled 149 | 150 | ## 4.0.0 151 | 152 | ### Major Changes 153 | 154 | - [#368](https://github.com/import-js/eslint-import-resolver-typescript/pull/368) [`2fd7c2e`](https://github.com/import-js/eslint-import-resolver-typescript/commit/2fd7c2ea63f30c9990e19a52dbd07fd8131558e9) Thanks [@JounQin](https://github.com/JounQin)! - feat!: rewrite, speed up by using [`rspack-resolver`](https://github.com/unrs/rspack-resolver) which supports `references` natively under the hood 155 | 156 | BREAKING CHANGES: 157 | 158 | - drop Node 14 support, Node `^16.17.0 || >=18.6` is now required 159 | - `alwaysTryTypes` is enabled by default, you can set it as `false` to opt-out 160 | - array type of `project` is discouraged but still supported, single `project` with `references` are encouraged for better performance, you can enable `noWarnOnMultipleProjects` option to supress the warning message 161 | - root `tsconfig.json` or `jsconfig.json` will be used automatically if no `project` provided 162 | 163 | ## 3.9.1 164 | 165 | ### Patch Changes 166 | 167 | - [#382](https://github.com/import-js/eslint-import-resolver-typescript/pull/382) [`4a9176e`](https://github.com/import-js/eslint-import-resolver-typescript/commit/4a9176e6e2b6013dc24b5634aea42feebd324e41) Thanks [@JounQin](https://github.com/JounQin)! - fix: use [`rspack-resolver`](https://github.com/unrs/rspack-resolver) fork for pnp support 168 | 169 | ## 3.9.0 170 | 171 | ### Minor Changes 172 | 173 | - [#379](https://github.com/import-js/eslint-import-resolver-typescript/pull/379) [`6814443`](https://github.com/import-js/eslint-import-resolver-typescript/commit/681444336fc66104b9b490838a67ea7bf8ac8b61) Thanks [@JounQin](https://github.com/JounQin)! - feat: migrate `enhanced-resolve` to `oxc-resolver` 174 | 175 | ## 3.8.7 176 | 177 | ### Patch Changes 178 | 179 | - [#377](https://github.com/import-js/eslint-import-resolver-typescript/pull/377) [`a14fdd9`](https://github.com/import-js/eslint-import-resolver-typescript/commit/a14fdd95011c4c09b74f71854410f684c0f04bc5) Thanks [@carlocorradini](https://github.com/carlocorradini)! - fix: include mapper with no files and force non-dynamic projects to use absolute paths 180 | 181 | ## 3.8.6 182 | 183 | ### Patch Changes 184 | 185 | - [#374](https://github.com/import-js/eslint-import-resolver-typescript/pull/374) [`c9d5ab0`](https://github.com/import-js/eslint-import-resolver-typescript/commit/c9d5ab0fa963bd891b6f2ae312ae3ec10a397b7c) Thanks [@JounQin](https://github.com/JounQin)! - fix: add support for importing with .js extension as tsx importee 186 | 187 | ## 3.8.5 188 | 189 | ### Patch Changes 190 | 191 | - [#372](https://github.com/import-js/eslint-import-resolver-typescript/pull/372) [`366eeaf`](https://github.com/import-js/eslint-import-resolver-typescript/commit/366eeaf8ba87adf7c2e165b0a73406292c002ad9) Thanks [@carlocorradini](https://github.com/carlocorradini)! - fix: if file has no corresponding mapper function, apply all of them, starting with the nearest one. 192 | 193 | ## 3.8.4 194 | 195 | ### Patch Changes 196 | 197 | - [#370](https://github.com/import-js/eslint-import-resolver-typescript/pull/370) [`c940785`](https://github.com/import-js/eslint-import-resolver-typescript/commit/c94078504cfb6fd17b775c53d268962a56a2d118) Thanks [@JounQin](https://github.com/JounQin)! - fix: support multiple matching ts paths 198 | 199 | ## 3.8.3 200 | 201 | ### Patch Changes 202 | 203 | - [#360](https://github.com/import-js/eslint-import-resolver-typescript/pull/360) [`8192976`](https://github.com/import-js/eslint-import-resolver-typescript/commit/81929767a9e440eaa730f4c76b932da7bbd9eed7) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Force tiniglobby to expand dot directories 204 | 205 | - [#360](https://github.com/import-js/eslint-import-resolver-typescript/pull/360) [`8192976`](https://github.com/import-js/eslint-import-resolver-typescript/commit/81929767a9e440eaa730f4c76b932da7bbd9eed7) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Update tinyglobby to latest version 206 | 207 | ## 3.8.2 208 | 209 | ### Patch Changes 210 | 211 | - [#357](https://github.com/import-js/eslint-import-resolver-typescript/pull/357) [`5fd349e`](https://github.com/import-js/eslint-import-resolver-typescript/commit/5fd349e17c3650aafcc804858a3c3b07cfda8e0d) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Update the `tinyglobby` to the latest version to solve performance regressions. 212 | 213 | ## 3.8.1 214 | 215 | ### Patch Changes 216 | 217 | - [#352](https://github.com/import-js/eslint-import-resolver-typescript/pull/352) [`0c6303d`](https://github.com/import-js/eslint-import-resolver-typescript/commit/0c6303d336093ecdac522da0bc1f57ef3ba85f9d) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Set cwd while resolving tsconfig include 218 | 219 | ## 3.8.0 220 | 221 | ### Minor Changes 222 | 223 | - [#345](https://github.com/import-js/eslint-import-resolver-typescript/pull/345) [`fcc8883`](https://github.com/import-js/eslint-import-resolver-typescript/commit/fcc8883c0f023247fcb9a453004f8bd3e6b7c0e2) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Enable the mapper function just for a set of allowed files. Improves project discovery using glob and POSIX separator. 224 | 225 | - [#346](https://github.com/import-js/eslint-import-resolver-typescript/pull/346) [`c124e87`](https://github.com/import-js/eslint-import-resolver-typescript/commit/c124e874b6429167b230697ee9f0a69e2efa5f96) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Update get-tsconfig to the the latest version. We now support the `${configDir}` variable, introduced in TypeScript 5.5. 226 | 227 | ## 3.7.0 228 | 229 | ### Minor Changes 230 | 231 | - [#326](https://github.com/import-js/eslint-import-resolver-typescript/pull/326) [`93ea130`](https://github.com/import-js/eslint-import-resolver-typescript/commit/93ea1305d0317db62a71edf029688eb410c2d261) Thanks [@SukkaW](https://github.com/SukkaW)! - This version has implemented the `eslint-plugin-import-x`'s v3 resolver interface. This allows you to use import/require to reference `eslint-import-resolver-typescript` directly in your ESLint flat config: 232 | 233 | **Previously** 234 | 235 | ```js 236 | // eslint.config.js 237 | module.exports = { 238 | settings: { 239 | 'import-x/resolver': { 240 | typescript: { 241 | alwaysTryTypes: true, 242 | }, 243 | // or 244 | require.resolve('eslint-import-resolver-typescript'): 245 | alwaysTryTypes: true, 246 | } 247 | } 248 | } 249 | } 250 | ``` 251 | 252 | **Now** 253 | 254 | ```js 255 | // eslint.config.js 256 | const { 257 | createTypeScriptImportResolver, 258 | } = require('eslint-import-resolver-typescript') 259 | 260 | module.exports = { 261 | settings: { 262 | 'import-x/resolver-next': [ 263 | createTypeScriptImportResolver({ 264 | alwaysTryTypes: true, 265 | }), 266 | ], 267 | }, 268 | } 269 | ``` 270 | 271 | Note that this only works with `eslint-plugin-import-x@>=4.5.0`. You can't use `createTypeScriptImportResolver` with the older versions of `eslint-plugin-import-x` or any existing versions of `eslint-plugin-import`. 272 | 273 | ## 3.6.3 274 | 275 | ### Patch Changes 276 | 277 | - [#305](https://github.com/import-js/eslint-import-resolver-typescript/pull/305) [`f8d7b82`](https://github.com/import-js/eslint-import-resolver-typescript/commit/f8d7b82d3e1137c9537f3c4bd7d67044b310475d) Thanks [@SukkaW](https://github.com/SukkaW)! - Fix resolve for `node:test`, `node:sea`, and `node:sqlite` without sacrificing installation size 278 | 279 | - [#288](https://github.com/import-js/eslint-import-resolver-typescript/pull/288) [`a4c6c78`](https://github.com/import-js/eslint-import-resolver-typescript/commit/a4c6c78904e8e7123503f6784fdbded3d4a026ed) Thanks [@SunsetTechuila](https://github.com/SunsetTechuila)! - fix: ignore bun built-in modules 280 | 281 | ## 3.6.2 282 | 283 | ### Patch Changes 284 | 285 | - [#294](https://github.com/import-js/eslint-import-resolver-typescript/pull/294) [`10f9b17`](https://github.com/import-js/eslint-import-resolver-typescript/commit/10f9b17d9ec96c9d38085894710f041bdce5aa86) Thanks [@RobinTail](https://github.com/RobinTail)! - Allow either eslint-plugin-import-x or eslint-plugin-import plugin as a peer dependency. 286 | 287 | - [#295](https://github.com/import-js/eslint-import-resolver-typescript/pull/295) [`ff3d3c6`](https://github.com/import-js/eslint-import-resolver-typescript/commit/ff3d3c6fc0bc8d88b4c33abe2d4449db47232d17) Thanks [@wojtekmaj](https://github.com/wojtekmaj)! - chore(deps): remove `is-core-module` dependency 288 | 289 | ## 3.6.1 290 | 291 | ### Patch Changes 292 | 293 | - [#241](https://github.com/import-js/eslint-import-resolver-typescript/pull/241) [`cf5d67f`](https://github.com/import-js/eslint-import-resolver-typescript/commit/cf5d67f8482bbb2b8ef3e7572f4791a00b4119aa) Thanks [@klippx](https://github.com/klippx)! - Fix CJS import to make it compatible with ESM projects 294 | 295 | ## 3.6.0 296 | 297 | ### Minor Changes 298 | 299 | - [#235](https://github.com/import-js/eslint-import-resolver-typescript/pull/235) [`b5ea367`](https://github.com/import-js/eslint-import-resolver-typescript/commit/b5ea367d8361d3a71154545831dfcf8e03aca8e1) Thanks [@SukkaW](https://github.com/SukkaW)! - refactor: drop `globby` and `synckit` 300 | 301 | ## 3.5.5 302 | 303 | ### Patch Changes 304 | 305 | - [`84b0649`](https://github.com/import-js/eslint-import-resolver-typescript/commit/84b0649096d81c4556bc506285fd2e3e56dadf09) Thanks [@JounQin](https://github.com/JounQin)! - fix: mark eslint-module-utils as dep 306 | 307 | ## 3.5.4 308 | 309 | ### Patch Changes 310 | 311 | - [`25f3920`](https://github.com/import-js/eslint-import-resolver-typescript/commit/25f3920cdef31701396fe25dd0942c472400b3a6) Thanks [@JounQin](https://github.com/JounQin)! - fix: enhanced-resolve is commonjs only - close #213 312 | 313 | - [#219](https://github.com/import-js/eslint-import-resolver-typescript/pull/219) [`0bf6ffb`](https://github.com/import-js/eslint-import-resolver-typescript/commit/0bf6ffb82bad35e96b22b7b7b91b94aa7ed875f8) Thanks [@lsmurray](https://github.com/lsmurray)! - fix: check if cwd changed to bust mapper cache 314 | 315 | ## 3.5.3 316 | 317 | ### Patch Changes 318 | 319 | - [#206](https://github.com/import-js/eslint-import-resolver-typescript/pull/206) [`6531bad`](https://github.com/import-js/eslint-import-resolver-typescript/commit/6531bad1c58831ef63124b9f660b8c457f1d9e44) Thanks [@marvinhagemeister](https://github.com/marvinhagemeister)! - Only try to resolve a module directory when we know that the path is a directory. This can lead to a 15% speedup on projects with many files. 320 | 321 | ## 3.5.2 322 | 323 | ### Patch Changes 324 | 325 | - [#193](https://github.com/import-js/eslint-import-resolver-typescript/pull/193) [`8756a26`](https://github.com/import-js/eslint-import-resolver-typescript/commit/8756a26aec2ad55b94a1198ec5be9660d2eac3f7) Thanks [@Rialgar](https://github.com/Rialgar)! - chore(package): remove node 12 from engines field 326 | 327 | - [#187](https://github.com/import-js/eslint-import-resolver-typescript/pull/187) [`7a91daf`](https://github.com/import-js/eslint-import-resolver-typescript/commit/7a91daf305ab968b7dd54eae8b727bcdb9c6d9a2) Thanks [@scott-ut](https://github.com/scott-ut)! - fix: resolve modules if folder contains a package.json file 328 | 329 | ## 3.5.1 330 | 331 | ### Patch Changes 332 | 333 | - [#182](https://github.com/import-js/eslint-import-resolver-typescript/pull/182) [`afeb928`](https://github.com/import-js/eslint-import-resolver-typescript/commit/afeb928b304e7196b10f71aec873fca739a9ad93) Thanks [@chenxinyanc](https://github.com/chenxinyanc)! - perf: disable `throwIfNoEntry` on Node 14+ 334 | 335 | ## 3.5.0 336 | 337 | ### Minor Changes 338 | 339 | - [#174](https://github.com/import-js/eslint-import-resolver-typescript/pull/174) [`66a3e6c`](https://github.com/import-js/eslint-import-resolver-typescript/commit/66a3e6c4349fe1821a5ada967b7cff1b8191dfe4) Thanks [@JounQin](https://github.com/JounQin)! - feat: reuse `eslint-module-utils/hash.js` for better caching 340 | 341 | ### Patch Changes 342 | 343 | - [#172](https://github.com/import-js/eslint-import-resolver-typescript/pull/172) [`00abb6f`](https://github.com/import-js/eslint-import-resolver-typescript/commit/00abb6fed2c9b9bedd053a5a7c575a367a707692) Thanks [@JounQin](https://github.com/JounQin)! - fix: incorrect exports mapping 344 | 345 | ## 3.4.2 346 | 347 | ### Patch Changes 348 | 349 | - [`594df9c`](https://github.com/import-js/eslint-import-resolver-typescript/commit/594df9c586fccab3cf29add6e9116c1dfece7935) Thanks [@HanSeo0507](https://github.com/HanSeo0507)! - chore(deps): update dependency synckit to ^0.8.3 for yarn PnP ([#169](https://github.com/import-js/eslint-import-resolver-typescript/pull/169)) 350 | 351 | ## 3.4.1 352 | 353 | ### Patch Changes 354 | 355 | - [#166](https://github.com/import-js/eslint-import-resolver-typescript/pull/166) [`8892a8c`](https://github.com/import-js/eslint-import-resolver-typescript/commit/8892a8c1d0b54965501dd03113873ac66a50f74f) Thanks [@thatsmydoing](https://github.com/thatsmydoing)! - perf: add filesystem caching support 356 | 357 | ## 3.4.0 358 | 359 | ### Minor Changes 360 | 361 | - [#161](https://github.com/import-js/eslint-import-resolver-typescript/pull/161) [`82d090b`](https://github.com/import-js/eslint-import-resolver-typescript/commit/82d090b2411853f94909a3c9a0ed3b8bbe1bef11) Thanks [@rbong](https://github.com/rbong)! - feat: add support for `jsconfig.json` 362 | 363 | ## 3.3.0 364 | 365 | ### Minor Changes 366 | 367 | - [#154](https://github.com/import-js/eslint-import-resolver-typescript/pull/154) [`42f2dd6`](https://github.com/import-js/eslint-import-resolver-typescript/commit/42f2dd6f57c4b053f7773081ea7f1e07f73a513d) Thanks [@JounQin](https://github.com/JounQin)! - feat: add `externsionAlias` option support, `.d.([cm]?ts|tsx)` are always preferred than `.([cm]?js|jsx)` 368 | 369 | `typescript` resolves `typescript/lib/typescript.d.ts` instead of `typescript/lib/typescript.js` by default 370 | 371 | - [#154](https://github.com/import-js/eslint-import-resolver-typescript/pull/154) [`42f2dd6`](https://github.com/import-js/eslint-import-resolver-typescript/commit/42f2dd6f57c4b053f7773081ea7f1e07f73a513d) Thanks [@JounQin](https://github.com/JounQin)! - feat: exports `globSync`, `defaultExtensions`, `defaultMainFields`, `defaultConditionNames` and `defaultExtensionAlias` for reusing 372 | 373 | ### Patch Changes 374 | 375 | - [#154](https://github.com/import-js/eslint-import-resolver-typescript/pull/154) [`42f2dd6`](https://github.com/import-js/eslint-import-resolver-typescript/commit/42f2dd6f57c4b053f7773081ea7f1e07f73a513d) Thanks [@JounQin](https://github.com/JounQin)! - perf: cache `options` and `resolver` 376 | 377 | - [#154](https://github.com/import-js/eslint-import-resolver-typescript/pull/154) [`42f2dd6`](https://github.com/import-js/eslint-import-resolver-typescript/commit/42f2dd6f57c4b053f7773081ea7f1e07f73a513d) Thanks [@JounQin](https://github.com/JounQin)! - chore: align with Angular Package Format correctly 378 | 379 | reference: https://angular.io/guide/angular-package-format 380 | 381 | - [#156](https://github.com/import-js/eslint-import-resolver-typescript/pull/156) [`4bd60c3`](https://github.com/import-js/eslint-import-resolver-typescript/commit/4bd60c37ab27d87be0e554d2563f0fea59fd4058) Thanks [@JounQin](https://github.com/JounQin)! - docs: document options from `enhanced-resolve` 382 | 383 | ## 3.2.7 384 | 385 | ### Patch Changes 386 | 387 | - [`60ff431`](https://github.com/import-js/eslint-import-resolver-typescript/commit/60ff431a4d3812dbdd793d40b6213b79c8b2db9d) Thanks [@JounQin](https://github.com/JounQin)! - chore: bump synckit 388 | 389 | ## 3.2.6 390 | 391 | ### Patch Changes 392 | 393 | - [#146](https://github.com/import-js/eslint-import-resolver-typescript/pull/146) [`7edb823`](https://github.com/import-js/eslint-import-resolver-typescript/commit/7edb82307676f507b5094448431eb117b035a712) Thanks [@JounQin](https://github.com/JounQin)! - chore: use latest `get-tsconfig` package 394 | 395 | ## 3.2.5 396 | 397 | ### Patch Changes 398 | 399 | - [#136](https://github.com/import-js/eslint-import-resolver-typescript/pull/136) [`abf8907`](https://github.com/import-js/eslint-import-resolver-typescript/commit/abf89078298ab9de2dcdf197d73cd39452fa043b) Thanks [@JounQin](https://github.com/JounQin)! - build: use pnpm as manager, yarn pnp is still supported 400 | 401 | ## 3.2.4 402 | 403 | ### Patch Changes 404 | 405 | - [#139](https://github.com/import-js/eslint-import-resolver-typescript/pull/139) [`3e93659`](https://github.com/import-js/eslint-import-resolver-typescript/commit/3e93659b6e20b84ec3805794e07494eb64a7e98f) Thanks [@JounQin](https://github.com/JounQin)! - fix: run prerelease manually for yarn v3, 2nd try 406 | 407 | ## 3.2.3 408 | 409 | ### Patch Changes 410 | 411 | - [#137](https://github.com/import-js/eslint-import-resolver-typescript/pull/137) [`a3f6ba3`](https://github.com/import-js/eslint-import-resolver-typescript/commit/a3f6ba3cd87aa1a0d9de68a5923ad2939759f83d) Thanks [@JounQin](https://github.com/JounQin)! - fix: run prerelease manually for yarn v3 412 | 413 | ## 3.2.2 414 | 415 | ### Patch Changes 416 | 417 | - [#133](https://github.com/import-js/eslint-import-resolver-typescript/pull/133) [`d944b26`](https://github.com/import-js/eslint-import-resolver-typescript/commit/d944b26e44c3f4e56ce41bb21584b86f8b4b8da5) Thanks [@JounQin](https://github.com/JounQin)! - fix: use yarn v3 with PnP linker, close #130 418 | 419 | ## 3.2.1 420 | 421 | ### Patch Changes 422 | 423 | - [#131](https://github.com/import-js/eslint-import-resolver-typescript/pull/131) [`fb88af2`](https://github.com/import-js/eslint-import-resolver-typescript/commit/fb88af2ecf797f014bfe0b38994f040a535dcdba) Thanks [@JounQin](https://github.com/JounQin)! - fix: try index file with extensions automatically 424 | 425 | ## 3.2.0 426 | 427 | ### Minor Changes 428 | 429 | - [#128](https://github.com/import-js/eslint-import-resolver-typescript/pull/128) [`56775b3`](https://github.com/import-js/eslint-import-resolver-typescript/commit/56775b3e574efb712fe8f449667524c5bc0042f1) Thanks [@JounQin](https://github.com/JounQin)! - refactor: support custom extensions on resolving 430 | 431 | - [#128](https://github.com/import-js/eslint-import-resolver-typescript/pull/128) [`56775b3`](https://github.com/import-js/eslint-import-resolver-typescript/commit/56775b3e574efb712fe8f449667524c5bc0042f1) Thanks [@JounQin](https://github.com/JounQin)! - feat: try extensionless file by default 432 | 433 | ## 3.1.5 434 | 435 | ### Patch Changes 436 | 437 | - [#126](https://github.com/import-js/eslint-import-resolver-typescript/pull/126) [`9cf60cb`](https://github.com/import-js/eslint-import-resolver-typescript/commit/9cf60cb1e7929884039c7d67317b0713aad50031) Thanks [@JounQin](https://github.com/JounQin)! - fix: auto try extensions 438 | 439 | ## 3.1.4 440 | 441 | ### Patch Changes 442 | 443 | - [`f88a8c9`](https://github.com/import-js/eslint-import-resolver-typescript/commit/f88a8c9f3bc2061d3b896764acf79e0cc3886f69) Thanks [@JounQin](https://github.com/JounQin)! - refactor: use non-capturing groups for perf 444 | 445 | ## 3.1.3 446 | 447 | ### Patch Changes 448 | 449 | - [#121](https://github.com/import-js/eslint-import-resolver-typescript/pull/121) [`35d3022`](https://github.com/import-js/eslint-import-resolver-typescript/commit/35d30226b964522bc698e842eb32eccfcf92545d) Thanks [@JounQin](https://github.com/JounQin)! - fix: try index.d.ts automatically 450 | 451 | ## 3.1.2 452 | 453 | ### Patch Changes 454 | 455 | - [#118](https://github.com/import-js/eslint-import-resolver-typescript/pull/118) [`01f525e`](https://github.com/import-js/eslint-import-resolver-typescript/commit/01f525ecd02523ef02d127bc280d591ac26e8cfe) Thanks [@JounQin](https://github.com/JounQin)! - docs: update repository, document `exports` support 456 | 457 | ### [3.1.1](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v3.1.0...v3.1.1) (2022-06-27) 458 | 459 | ### Bug Fixes 460 | 461 | - add conditionNames support ([#114](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/114)) ([c74fe0e](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/c74fe0e99d219e4a28348e833fc605664f02be18)) 462 | 463 | ## [3.1.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v3.0.0...v3.1.0) (2022-06-25) 464 | 465 | ### ⚠ BREAKING CHANGES 466 | 467 | - use enhanced-resolve instead 468 | 469 | ### Features 470 | 471 | - support angular-package-format out of box ([7e0cd04](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/7e0cd043e66f1a6ccc89ac57fe7d695228d5a2df)) 472 | - use enhanced-resolve instead ([39ab8b1](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/39ab8b1d0e99e76a7a333f3c74498fd21add0b4a)), closes [#85](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/85) [#107](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/107) 473 | 474 | ## [3.0.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.7.1...v3.0.0) (2022-06-25) 475 | 476 | ### ⚠ BREAKING CHANGES 477 | 478 | - remove depracated directory option 479 | - use get-tsconfig to replace tsconfig-paths 480 | - bump globby, use synckit for sync fn 481 | - **deps:** bump tsconfig-paths to ^4.0.0 (#104) 482 | 483 | ### Features 484 | 485 | - bump globby, use synckit for sync fn ([322cb29](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/322cb291f9af6f7ce1d6330cf13c33ce5a70f9a7)) 486 | - ignore `node_modules` folder in `projects` option glob ([#105](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/105)) ([1e1b5a6](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/1e1b5a6f09c71685d58aef400ac6254af892d669)) 487 | - remove depracated directory option ([67c8d59](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/67c8d59f51dc7fc58a0abb0838274c001c1dec6c)) 488 | - use get-tsconfig to replace tsconfig-paths ([78a08e0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/78a08e082dcd5ff9e3490759f4919316e715d3ff)) 489 | 490 | - **deps:** bump tsconfig-paths to ^4.0.0 ([#104](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/104)) ([b2edbc8](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/b2edbc85a6700c590d73887ce65211677305b914)) 491 | 492 | ### [2.7.1](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.7.0...v2.7.1) (2022-04-03) 493 | 494 | ### Bug Fixes 495 | 496 | - per package.json warning ([#101](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/101)) ([664465f](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/664465fa75e6b197f990cd6e89ab5f086bb8d4f2)) 497 | 498 | ## [2.7.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.6.0...v2.7.0) (2022-03-23) 499 | 500 | ### Features 501 | 502 | - support `.cjs` `.mjs` `.cts` `.mts` extensions ([#84](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/84)) ([1e39028](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/1e39028d33e660fbd0321ea045488ba8ba8b9783)) 503 | 504 | ## [2.6.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.5.0...v2.6.0) (2022-03-23) 505 | 506 | ### Bug Fixes 507 | 508 | - upgrade (dev)Dependencies ([#99](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/99)) ([2e7b4f4](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/2e7b4f420d03fe313386bb0079872c1c4be24eb5)) 509 | 510 | ## [2.5.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.4.0...v2.5.0) (2021-09-13) 511 | 512 | ### Features 513 | 514 | - allow passing through custom options to resolve ([#79](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/79)) ([34c94c8](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/34c94c87066ba42fb2b52727b95f3e34259c227f)) 515 | 516 | ### Bug Fixes 517 | 518 | - bump (dev)Dependencies, apply stricter rules ([#75](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/75)) ([866f32f](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/866f32f2191dc7fc8df7d973cdacefa48c64a927)) 519 | 520 | ## [2.4.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.3.0...v2.4.0) (2021-02-16) 521 | 522 | ### Features 523 | 524 | - remove any querystring from imports ([#67](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/67)) ([82ef357](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/82ef3573fa1258e0de8d8181de57ae7109e35ec5)) 525 | 526 | ### Bug Fixes 527 | 528 | - remove .tsbuildinfo and d.ts.map files from package ([#57](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/57)) ([15f2849](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/15f2849c49bf1b4eb7719f027c61ca48b6e1f2a2)) 529 | - remove redundant condition ([#69](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/69)) ([ba62e65](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/ba62e65e7cfe382ff976238de3f100cd41c73e8f)) 530 | 531 | ## [2.3.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.2.1...v2.3.0) (2020-09-01) 532 | 533 | ### Features 534 | 535 | - import with .js and .jsx file extensions ([#56](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/56)) ([5340f96](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/5340f969fad38165f8cfb28025a5e15233d0e6f9)) 536 | 537 | ### [2.2.1](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.2.0...v2.2.1) (2020-08-14) 538 | 539 | ### Bug Fixes 540 | 541 | - replace postintall with prepare - fix [#54](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/54) ([f3ffd16](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/f3ffd16b93ba12c6cc0f4902efb7c14d021bd02e)) 542 | 543 | ## [2.2.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.1.0...v2.2.0) (2020-07-30) 544 | 545 | ### Features 546 | 547 | - rename option `directory` to `project` - close [#23](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/23) ([a662fc1](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/a662fc14f6833daf3b7a71f9137d1cbf9abb2b7c)) 548 | 549 | ## [2.1.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.0.0...v2.1.0) (2020-07-30) 550 | 551 | ### Bug Fixes 552 | 553 | - options could be null - close [#42](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/42) ([81db8eb](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/81db8eb0ae81af437e11b6341d8f237bc4bc4e39)) 554 | - typo ([#40](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/40)) ([585509e](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/585509e95f93adf8b7ef5839029c19c55edbe76e)) 555 | - wrong path resolution in multiple eslintrc configurations ([#51](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/51)) ([d563eeb](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/d563eeb2af2938b9ff7f75e0492a5a26112a4772)), closes [#50](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/50) 556 | 557 | ## [2.0.0](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v1.1.1...v2.0.0) (2019-10-17) 558 | 559 | ### Features 560 | 561 | - add alwaysTryTypes option, add tests ([fe0aa6f](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/fe0aa6f0001904274c122d78cf0fd0757005b61f)) 562 | - replace glob with tiny-glob for faster speed, close [#12](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/12) ([f436627](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/f436627deb910afb332d6de9764a13f05b231dab)) 563 | - replace glob with tiny-glob for faster speed, close [#12](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/12) ([#13](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/issues/13)) ([5f87698](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/5f8769830abcbb87e67e5788d4bbcda7a5e632c7)) 564 | - resolve .ts/.tsx/.d.ts first, and then fallback to @types/\* ([b11ede3](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/b11ede3c9fafbc548db011729fd64e958cde6e51)) 565 | - support scoped packages from DefinitelyTyped ([b4e72a5](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/b4e72a54966bda12ef70791f09df5cbe0f04b889)) 566 | - use types/typings/module first to use .d.ts whenever possible ([74de3d9](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/74de3d9fa2552b5d1b0eb799638a657c9af67887)) 567 | 568 | ### Bug Fixes 569 | 570 | - add pretest script which is required ([1ffcd83](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/1ffcd834931ebc1f721543ed89d071a91fadb1ae)) 571 | - **deps:** bump configurations, use resolutions to simplify tests ([5eb4874](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/5eb48749870f8bcc5ff246a39d15daf19d11af39)) 572 | - only check alwaysTryTypes if foundNodePath is null ([23e2e8c](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/commit/23e2e8cf71ee6c19da9f55e85b2ab34543d2a12e)) 573 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2021 Alex Gorbatchev 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # eslint-import-resolver-typescript 2 | 3 | [![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/import-js/eslint-import-resolver-typescript/ci.yml?branch=master)](https://github.com/import-js/eslint-import-resolver-typescript/actions/workflows/ci.yml?query=branch%3Amaster) 4 | [![Codecov](https://img.shields.io/codecov/c/github/import-js/eslint-import-resolver-typescript.svg)](https://codecov.io/gh/import-js/eslint-import-resolver-typescript) 5 | [![type-coverage](https://img.shields.io/badge/dynamic/json.svg?label=type-coverage&prefix=%E2%89%A5&suffix=%&query=$.typeCoverage.atLeast&uri=https%3A%2F%2Fraw.githubusercontent.com%2Fimport-js%2Feslint-import-resolver-typescript%2Fmaster%2Fpackage.json)](https://github.com/plantain-00/type-coverage) 6 | [![npm](https://img.shields.io/npm/v/eslint-import-resolver-typescript.svg)](https://www.npmjs.com/package/eslint-import-resolver-typescript) 7 | [![GitHub Release](https://img.shields.io/github/release/import-js/eslint-import-resolver-typescript)](https://github.com/import-js/eslint-import-resolver-typescript/releases) 8 | 9 | [![Conventional Commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org) 10 | [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com) 11 | [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) 12 | [![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) 13 | [![changesets](https://img.shields.io/badge/maintained%20with-changesets-176de3.svg)](https://github.com/changesets/changesets) 14 | 15 | This is a resolver for `eslint-plugin-import(-x)` plugin, not an ESLint plugin itself, it adds [`TypeScript`][] support to [`eslint-plugin-import`][] (Or maybe you want to try [`eslint-plugin-import-x`][] for faster speed) 16 | 17 | This means you can: 18 | 19 | - `import`/`require` files with extension `.cts`/`.mts`/`.ts`/`.tsx`/`.d.cts`/`.d.mts`/`.d.ts` 20 | - Use [`paths`](https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping) defined in `tsconfig.json` 21 | - Prefer resolving `@types/*` definitions over plain `.js`/`.jsx` 22 | - Multiple tsconfigs support just like normal 23 | - `imports/exports` fields support in `package.json` 24 | 25 | ## TOC 26 | 27 | - [Notice](#notice) 28 | - [Installation](#installation) 29 | - [`eslint-plugin-import-x`](#eslint-plugin-import-x) 30 | - [`eslint-plugin-import`](#eslint-plugin-import) 31 | - [Configuration](#configuration) 32 | - [`eslint.config.js`](#eslintconfigjs) 33 | - [`.eslintrc`](#eslintrc) 34 | - [Other environments](#other-environments) 35 | - [Bun](#bun) 36 | - [Options from `unrs-resolver`](#options-from-unrs-resolver) 37 | - [`conditionNames`](#conditionnames) 38 | - [`extensions`](#extensions) 39 | - [`extensionAlias`](#extensionalias) 40 | - [`mainFields`](#mainfields) 41 | - [Other options](#other-options) 42 | - [Default options](#default-options) 43 | - [Contributing](#contributing) 44 | - [Sponsors and Backers](#sponsors-and-backers) 45 | - [Sponsors](#sponsors) 46 | - [Backers](#backers) 47 | - [Changelog](#changelog) 48 | - [License](#license) 49 | - [Star History](#star-history) 50 | 51 | ## Notice 52 | 53 | After version 2.0.0, `.d.ts` will take higher priority then normal `.js`/`.jsx` files on resolving `node_modules` packages in favor of `@types/*` definitions or its own definition. 54 | 55 | If you're facing some problems on rules `import/default` or `import/named` from [`eslint-plugin-import`][], do not post any issue here, because they are just working exactly as [expected](https://github.com/import-js/eslint-import-resolver-typescript/issues/31#issuecomment-539751607) on our sides, take [import-js/eslint-plugin-import#1525](https://github.com/import-js/eslint-plugin-import/issues/1525) as reference or post a new issue to [`eslint-plugin-import`][] instead. 56 | 57 | ## Installation 58 | 59 | ### `eslint-plugin-import-x` 60 | 61 | ```sh 62 | # npm 63 | npm i -D eslint-plugin-import-x eslint-import-resolver-typescript 64 | 65 | # pnpm 66 | pnpm i -D eslint-plugin-import-x eslint-import-resolver-typescript 67 | 68 | # yarn 69 | yarn add -D eslint-plugin-import-x eslint-import-resolver-typescript 70 | ``` 71 | 72 | ### `eslint-plugin-import` 73 | 74 | ```sh 75 | # npm 76 | npm i -D eslint-plugin-import eslint-import-resolver-typescript 77 | 78 | # pnpm 79 | pnpm i -D eslint-plugin-import eslint-import-resolver-typescript 80 | 81 | # yarn 82 | yarn add -D eslint-plugin-import eslint-import-resolver-typescript 83 | ``` 84 | 85 | ## Configuration 86 | 87 | ### `eslint.config.js` 88 | 89 | If you are using `eslint-plugin-import-x@>=4.5.0`, you can use import/require to reference `eslint-import-resolver-typescript` directly in your ESLint flat config: 90 | 91 | ```js 92 | // eslint.config.js, CommonJS is also supported 93 | import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript' 94 | 95 | export default [ 96 | { 97 | settings: { 98 | 'import-x/resolver-next': [ 99 | createTypeScriptImportResolver({ 100 | alwaysTryTypes: true, // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` 101 | 102 | bun: true, // resolve Bun modules https://github.com/import-js/eslint-import-resolver-typescript#bun 103 | 104 | // Choose from one of the "project" configs below or omit to use /tsconfig.json or /jsconfig.json by default 105 | 106 | // use /path/to/folder/tsconfig.json or /path/to/folder/jsconfig.json 107 | project: 'path/to/folder', 108 | 109 | // Multiple tsconfigs/jsconfigs (Useful for monorepos, but discouraged in favor of `references` supported) 110 | 111 | // use a glob pattern 112 | project: 'packages/*/{ts,js}config.json', 113 | 114 | // use an array 115 | project: [ 116 | 'packages/module-a/tsconfig.json', 117 | 'packages/module-b/jsconfig.json', 118 | ], 119 | 120 | // use an array of glob patterns 121 | project: [ 122 | 'packages/*/tsconfig.json', 123 | 'other-packages/*/jsconfig.json', 124 | ], 125 | }), 126 | ], 127 | }, 128 | }, 129 | ] 130 | ``` 131 | 132 | But if you are using `eslint-plugin-import` or the older version of `eslint-plugin-import-x`, you can't use require/import: 133 | 134 | ```js 135 | // eslint.config.js, CommonJS is also supported 136 | export default [ 137 | { 138 | settings: { 139 | 'import/resolver': { 140 | typescript: { 141 | alwaysTryTypes: true, // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` 142 | 143 | bun: true, // resolve Bun modules https://github.com/import-js/eslint-import-resolver-typescript#bun 144 | 145 | // Choose from one of the "project" configs below or omit to use /tsconfig.json or /jsconfig.json by default 146 | 147 | // use /path/to/folder/tsconfig.json or /path/to/folder/jsconfig.json 148 | project: 'path/to/folder', 149 | 150 | // Multiple tsconfigs/jsconfigs (Useful for monorepos, but discouraged in favor of `references` supported) 151 | 152 | // use a glob pattern 153 | project: 'packages/*/{ts,js}config.json', 154 | 155 | // use an array 156 | project: [ 157 | 'packages/module-a/tsconfig.json', 158 | 'packages/module-b/jsconfig.json', 159 | ], 160 | 161 | // use an array of glob patterns 162 | project: [ 163 | 'packages/*/tsconfig.json', 164 | 'other-packages/*/jsconfig.json', 165 | ], 166 | }, 167 | }, 168 | }, 169 | }, 170 | ] 171 | ``` 172 | 173 | ### `.eslintrc` 174 | 175 | Add the following to your `.eslintrc` config: 176 | 177 | ```jsonc 178 | { 179 | "plugins": ["import"], 180 | "rules": { 181 | // turn on errors for missing imports 182 | "import/no-unresolved": "error", 183 | }, 184 | "settings": { 185 | "import/parsers": { 186 | "@typescript-eslint/parser": [".ts", ".tsx"], 187 | }, 188 | "import/resolver": { 189 | "typescript": { 190 | "alwaysTryTypes": true, // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` 191 | 192 | "bun": true, // resolve Bun modules https://github.com/import-js/eslint-import-resolver-typescript#bun 193 | 194 | // Choose from one of the "project" configs below or omit to use /tsconfig.json or /jsconfig.json by default 195 | 196 | // use /path/to/folder/tsconfig.json or /path/to/folder/jsconfig.json 197 | "project": "path/to/folder", 198 | 199 | // Multiple tsconfigs (Useful for monorepos, but discouraged in favor of `references` supported) 200 | 201 | // use a glob pattern 202 | "project": "packages/*/{ts,js}config.json", 203 | 204 | // use an array 205 | "project": [ 206 | "packages/module-a/tsconfig.json", 207 | "packages/module-b/jsconfig.json", 208 | ], 209 | 210 | // use an array of glob patterns 211 | "project": [ 212 | "packages/*/tsconfig.json", 213 | "other-packages/*/jsconfig.json", 214 | ], 215 | }, 216 | }, 217 | }, 218 | } 219 | ``` 220 | 221 | ### Other environments 222 | 223 | #### Bun 224 | 225 | [Bun](https://bun.sh/) provides built-in modules such as `bun:test`, which are not resolved by default. 226 | 227 | Enable Bun built-in module resolution by choosing 1 out of these 3 options: 228 | 229 | - Set the `bun: true` option, as shown in [Configuration](#configuration) above 230 | - Run ESLint with `bun --bun eslint` 231 | - [Configure `run.bun` in `bunfig.toml`](https://bun.sh/docs/runtime/bunfig#run-bun-auto-alias-node-to-bun) 232 | 233 | ## Options from [`unrs-resolver`][] 234 | 235 | ### `conditionNames` 236 | 237 | Default: 238 | 239 | ```jsonc 240 | [ 241 | "types", 242 | "import", 243 | 244 | // APF: https://angular.io/guide/angular-package-format 245 | "esm2020", 246 | "es2020", 247 | "es2015", 248 | 249 | "require", 250 | "node", 251 | "node-addons", 252 | "browser", 253 | "default", 254 | ] 255 | ``` 256 | 257 | ### `extensions` 258 | 259 | Default: 260 | 261 | ```jsonc 262 | [ 263 | // `.mts`, `.cts`, `.d.mts`, `.d.cts`, `.mjs`, `.cjs` are not included because `.cjs` and `.mjs` must be used explicitly 264 | ".ts", 265 | ".tsx", 266 | ".d.ts", 267 | ".js", 268 | ".jsx", 269 | ".json", 270 | ".node", 271 | ] 272 | ``` 273 | 274 | ### `extensionAlias` 275 | 276 | Default: 277 | 278 | ```jsonc 279 | { 280 | ".js": [ 281 | ".ts", 282 | // `.tsx` can also be compiled as `.js` 283 | ".tsx", 284 | ".d.ts", 285 | ".js", 286 | ], 287 | ".ts": [".ts", ".d.ts", ".js"], 288 | ".jsx": [".tsx", ".d.ts", ".jsx"], 289 | ".tsx": [ 290 | ".tsx", 291 | ".d.ts", 292 | ".jsx", 293 | // `.tsx` can also be compiled as `.js` 294 | ".js", 295 | ], 296 | ".cjs": [".cts", ".d.cts", ".cjs"], 297 | ".cts": [".cts", ".d.cts", ".cjs"], 298 | ".mjs": [".mts", ".d.mts", ".mjs"], 299 | ".mts": [".mts", ".d.mts", ".mjs"], 300 | } 301 | ``` 302 | 303 | ### `mainFields` 304 | 305 | Default: 306 | 307 | ```jsonc 308 | [ 309 | "types", 310 | "typings", 311 | 312 | // APF: https://angular.io/guide/angular-package-format 313 | "fesm2020", 314 | "fesm2015", 315 | "esm2020", 316 | "es2020", 317 | 318 | "module", 319 | "jsnext:main", 320 | 321 | "main", 322 | ] 323 | ``` 324 | 325 | ### Other options 326 | 327 | You can pass through other options of [`unrs-resolver`][] directly 328 | 329 | ### Default options 330 | 331 | You can reuse `defaultConditionNames`, `defaultExtensions`, `defaultExtensionAlias` and `defaultMainFields` by `require/import` them directly 332 | 333 | ## Contributing 334 | 335 | - Make sure your change is covered by a test import. 336 | - Make sure that `yarn test` passes without a failure. 337 | - Make sure that `yarn lint` passes without conflicts. 338 | - Make sure your code changes match our [type-coverage](https://github.com/plantain-00/type-coverage) settings: `yarn type-coverage`. 339 | 340 | We have [GitHub Actions](https://github.com/import-js/eslint-import-resolver-typescript/actions) which will run the above commands on your PRs. 341 | 342 | If either fails, we won't be able to merge your PR until it's fixed. 343 | 344 | ## Sponsors and Backers 345 | 346 | [![Sponsors and Backers](https://raw.githubusercontent.com/1stG/static/master/sponsors.svg)](https://github.com/sponsors/JounQin) 347 | 348 | ### Sponsors 349 | 350 | | 1stG | RxTS | UnTS | 351 | | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | 352 | | [![1stG Open Collective sponsors](https://opencollective.com/1stG/organizations.svg)](https://opencollective.com/1stG) | [![RxTS Open Collective sponsors](https://opencollective.com/rxts/organizations.svg)](https://opencollective.com/rxts) | [![UnTS Open Collective sponsors](https://opencollective.com/unts/organizations.svg)](https://opencollective.com/unts) | 353 | 354 | ### Backers 355 | 356 | | 1stG | RxTS | UnTS | 357 | | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | 358 | | [![1stG Open Collective backers](https://opencollective.com/1stG/individuals.svg)](https://opencollective.com/1stG) | [![RxTS Open Collective backers](https://opencollective.com/rxts/individuals.svg)](https://opencollective.com/rxts) | [![UnTS Open Collective backers](https://opencollective.com/unts/individuals.svg)](https://opencollective.com/unts) | 359 | 360 | ## Changelog 361 | 362 | Detailed changes for each release are documented in [CHANGELOG.md](./CHANGELOG.md). 363 | 364 | ## License 365 | 366 | [ISC][] 367 | 368 | ## Star History 369 | 370 | 371 | 372 | 373 | 374 | Star History Chart 375 | 376 | 377 | 378 | [`eslint-plugin-import`]: https://github.com/import-js/eslint-plugin-import 379 | [`eslint-plugin-import-x`]: https://github.com/un-ts/eslint-plugin-import-x 380 | [`unrs-resolver`]: https://github.com/unrs/unrs-resolver 381 | [`typescript`]: https://www.typescriptlang.org 382 | [isc]: https://opensource.org/licenses/ISC 383 | -------------------------------------------------------------------------------- /dummy.js/index.js: -------------------------------------------------------------------------------- 1 | module.exports = 'dummy' 2 | -------------------------------------------------------------------------------- /dummy.js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dummy.js", 3 | "version": "1.0.0", 4 | "private": true, 5 | "main": "index.js" 6 | } 7 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import base from '@1stg/eslint-config' 4 | 5 | /** 6 | * @type {TSESLint.FlatConfig.ConfigArray} 7 | * @import { TSESLint } from '@typescript-eslint/utils' 8 | */ 9 | const config = [ 10 | { 11 | ignores: ['tests'], 12 | }, 13 | ...base, 14 | { 15 | files: ['dummy.js/*'], 16 | languageOptions: { 17 | globals: { 18 | module: false, 19 | }, 20 | }, 21 | }, 22 | { 23 | files: ['src/*'], 24 | rules: { 25 | 'prefer-const': ['error', { destructuring: 'all' }], 26 | 'sonarjs/no-nested-assignment': 'off', 27 | }, 28 | }, 29 | ] 30 | 31 | export default config 32 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eslint-import-resolver-typescript", 3 | "version": "4.4.3", 4 | "type": "module", 5 | "description": "This plugin adds `TypeScript` support to `eslint-plugin-import`", 6 | "repository": "https://github.com/import-js/eslint-import-resolver-typescript", 7 | "author": "Alex Gorbatchev ", 8 | "maintainers": [ 9 | "JounQin (https://www.1stG.me)" 10 | ], 11 | "funding": "https://opencollective.com/eslint-import-resolver-typescript", 12 | "license": "ISC", 13 | "packageManager": "yarn@4.9.2", 14 | "engines": { 15 | "node": "^16.17.0 || >=18.6.0" 16 | }, 17 | "main": "lib/index.cjs", 18 | "types": "lib/index.d.cts", 19 | "module": "lib/index.js", 20 | "exports": { 21 | ".": { 22 | "import": { 23 | "types": "./lib/index.d.ts", 24 | "default": "./lib/index.js" 25 | }, 26 | "require": { 27 | "types": "./lib/index.d.cts", 28 | "default": "./lib/index.cjs" 29 | } 30 | }, 31 | "./package.json": "./package.json" 32 | }, 33 | "files": [ 34 | "lib", 35 | "!**/*.tsbuildinfo" 36 | ], 37 | "keywords": [ 38 | "typescript", 39 | "eslint", 40 | "import", 41 | "resolver", 42 | "plugin" 43 | ], 44 | "scripts": { 45 | "build": "run-p -c 'build:*'", 46 | "build:ts": "tsc -p src", 47 | "build:tsdown": "tsdown --no-clean -d lib -f cjs src/index.ts", 48 | "clean": "premove coverage lib .eslintcache", 49 | "format": "prettier --write .", 50 | "lint": "run-p 'lint:*'", 51 | "lint:es": "eslint . --cache", 52 | "lint:tsc": "tsc --noEmit", 53 | "prepare": "simple-git-hooks && yarn-berry-deduplicate || exit 0", 54 | "release": "clean-pkg-json && changeset publish", 55 | "test": "node tests/e2e/withJsExtension/test.cjs && vitest run", 56 | "typecov": "type-coverage" 57 | }, 58 | "peerDependencies": { 59 | "eslint": "*", 60 | "eslint-plugin-import": "*", 61 | "eslint-plugin-import-x": "*" 62 | }, 63 | "peerDependenciesMeta": { 64 | "eslint-plugin-import": { 65 | "optional": true 66 | }, 67 | "eslint-plugin-import-x": { 68 | "optional": true 69 | } 70 | }, 71 | "dependencies": { 72 | "debug": "^4.4.1", 73 | "eslint-import-context": "^0.1.8", 74 | "get-tsconfig": "^4.10.1", 75 | "is-bun-module": "^2.0.0", 76 | "stable-hash-x": "^0.1.1", 77 | "tinyglobby": "^0.2.14", 78 | "unrs-resolver": "^1.7.11" 79 | }, 80 | "devDependencies": { 81 | "@1stg/common-config": "^14.1.0", 82 | "@changesets/changelog-github": "^0.5.1", 83 | "@changesets/cli": "^2.29.4", 84 | "@commitlint/cli": "^19.8.1", 85 | "@mozilla/glean": "^5.0.4", 86 | "@pkgr/core": "^0.3.3", 87 | "@total-typescript/ts-reset": "^0.6.1", 88 | "@types/debug": "^4.1.12", 89 | "@types/node": "^22.15.30", 90 | "@types/pnpapi": "^0.0.5", 91 | "@types/unist": "^3.0.3", 92 | "@vitest/coverage-v8": "^3.2.2", 93 | "@vitest/eslint-plugin": "^1.2.1", 94 | "clean-pkg-json": "^1.3.0", 95 | "dummy.js": "link:dummy.js", 96 | "eslint": "^9.28.0", 97 | "eslint-import-resolver-typescript": "workspace:*", 98 | "eslint-plugin-import-x": "^4.15.1", 99 | "nano-staged": "^0.8.0", 100 | "npm-run-all2": "^8.0.4", 101 | "path-serializer": "^0.4.0", 102 | "premove": "^4.0.0", 103 | "prettier": "^3.5.3", 104 | "react": "^19.1.0", 105 | "simple-git-hooks": "^2.13.0", 106 | "size-limit": "^11.2.0", 107 | "size-limit-preset-node-lib": "^0.4.0", 108 | "tinyexec": "^1.0.1", 109 | "tsdown": "^0.12.7", 110 | "type-coverage": "^2.29.7", 111 | "typescript": "^5.8.3", 112 | "vitest": "^3.2.2", 113 | "yarn-berry-deduplicate": "^6.1.3" 114 | }, 115 | "resolutions": { 116 | "eslint-import-resolver-typescript": "workspace:*", 117 | "prettier": "^3.5.3" 118 | }, 119 | "typeCoverage": { 120 | "atLeast": 100, 121 | "cache": true, 122 | "detail": true, 123 | "ignoreAsAssertion": true, 124 | "ignoreNonNullAssertion": true, 125 | "ignoreCatch": true, 126 | "strict": true, 127 | "update": true 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export const defaultConditionNames = [ 2 | 'types', 3 | 'import', 4 | 5 | // APF: https://angular.io/guide/angular-package-format 6 | 'esm2020', 7 | 'es2020', 8 | 'es2015', 9 | 10 | 'require', 11 | 'node', 12 | 'node-addons', 13 | 'browser', 14 | 'default', 15 | ] 16 | 17 | /** 18 | * `.mts`, `.cts`, `.d.mts`, `.d.cts`, `.mjs`, `.cjs` are not included because 19 | * `.cjs` and `.mjs` must be used explicitly 20 | */ 21 | export const defaultExtensions = [ 22 | '.ts', 23 | '.tsx', 24 | '.d.ts', 25 | '.js', 26 | '.jsx', 27 | '.json', 28 | '.node', 29 | ] 30 | 31 | export const defaultExtensionAlias = { 32 | '.js': [ 33 | '.ts', 34 | // `.tsx` can also be compiled as `.js` 35 | '.tsx', 36 | '.d.ts', 37 | '.js', 38 | ], 39 | '.ts': ['.ts', '.d.ts', '.js'], 40 | '.jsx': ['.tsx', '.d.ts', '.jsx'], 41 | '.tsx': [ 42 | '.tsx', 43 | '.d.ts', 44 | '.jsx', 45 | // `.tsx` can also be compiled as `.js` 46 | '.js', 47 | ], 48 | '.cjs': ['.cts', '.d.cts', '.cjs'], 49 | '.cts': ['.cts', '.d.cts', '.cjs'], 50 | '.mjs': ['.mts', '.d.mts', '.mjs'], 51 | '.mts': ['.mts', '.d.mts', '.mjs'], 52 | } 53 | 54 | export const defaultMainFields = [ 55 | 'types', 56 | 'typings', 57 | 58 | // APF: https://angular.io/guide/angular-package-format 59 | 'fesm2020', 60 | 'fesm2015', 61 | 'esm2020', 62 | 'es2020', 63 | 64 | 'module', 65 | 'jsnext:main', 66 | 67 | 'main', 68 | ] 69 | 70 | export const JS_EXT_PATTERN = /\.(?:[cm]js|jsx?)$/ 71 | 72 | export const IMPORT_RESOLVER_NAME = 'eslint-import-resolver-typescript' 73 | 74 | export const interfaceVersion = 2 75 | 76 | export const DEFAULT_TSCONFIG = 'tsconfig.json' 77 | 78 | export const DEFAULT_JSCONFIG = 'jsconfig.json' 79 | 80 | export const DEFAULT_CONFIGS = [DEFAULT_TSCONFIG, DEFAULT_JSCONFIG] 81 | 82 | export const DEFAULT_TRY_PATHS = ['', ...DEFAULT_CONFIGS] 83 | 84 | export const MATCH_ALL = '**' 85 | 86 | export const DEFAULT_IGNORE = [MATCH_ALL, 'node_modules', MATCH_ALL].join('/') 87 | 88 | export const TSCONFIG_NOT_FOUND_REGEXP = /^Tsconfig not found\b/ 89 | -------------------------------------------------------------------------------- /src/global.d.ts: -------------------------------------------------------------------------------- 1 | import '@total-typescript/ts-reset' 2 | import type * as pnpapi from 'pnpapi' 3 | 4 | declare module 'module' { 5 | namespace Module { 6 | function findPnpApi(source: string): typeof pnpapi 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/helpers.ts: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs' 2 | import path from 'node:path' 3 | 4 | /** 5 | * For a scoped package, we must look in `@types/foo__bar` instead of 6 | * `@types/@foo/bar`. 7 | */ 8 | export function mangleScopedPackage(moduleName: string) { 9 | if (moduleName.startsWith('@')) { 10 | const replaceSlash = moduleName.replace('/', '__') 11 | if (replaceSlash !== moduleName) { 12 | return replaceSlash.slice(1) // Take off the "@" 13 | } 14 | } 15 | return moduleName 16 | } 17 | 18 | /** Remove any trailing querystring from module id. */ 19 | export function removeQuerystring(id: string) { 20 | const querystringIndex = id.lastIndexOf('?') 21 | if (querystringIndex !== -1) { 22 | return id.slice(0, querystringIndex) 23 | } 24 | return id 25 | } 26 | 27 | export const tryFile = ( 28 | filename?: string[] | string, 29 | includeDir = false, 30 | base = process.cwd(), 31 | ): string => { 32 | if (typeof filename === 'string') { 33 | const filepath = path.resolve(base, filename) 34 | return fs.existsSync(filepath) && 35 | (includeDir || fs.statSync(filepath).isFile()) 36 | ? filepath 37 | : '' 38 | } 39 | 40 | for (const file of filename ?? []) { 41 | const filepath = tryFile(file, includeDir, base) 42 | if (filepath) { 43 | return filepath 44 | } 45 | } 46 | 47 | return '' 48 | } 49 | 50 | const computeAffinity = (projectDir: string, targetDir: string): number => { 51 | const a = projectDir.split(path.sep) 52 | const b = targetDir.split(path.sep) 53 | let lca = 0 54 | while (lca < a.length && lca < b.length && a[lca] === b[lca]) { 55 | lca++ 56 | } 57 | return a.length - lca + (b.length - lca) 58 | } 59 | 60 | export const sortProjectsByAffinity = (projects: string[], file: string) => { 61 | const fileDir = path.dirname(file) 62 | return projects 63 | .map(project => ({ 64 | project, 65 | affinity: computeAffinity(path.dirname(project), fileDir), 66 | })) 67 | .sort((a, b) => a.affinity - b.affinity) 68 | .map(item => item.project) 69 | } 70 | 71 | export const toGlobPath = (pathname: string) => pathname.replaceAll('\\', '/') 72 | 73 | export const toNativePath = (pathname: string) => 74 | '/' === path.sep ? pathname : pathname.replaceAll('/', '\\') 75 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { isBuiltin } from 'node:module' 2 | import path from 'node:path' 3 | 4 | import { useRuleContext, type ResolvedResult } from 'eslint-import-context' 5 | import { 6 | type FileMatcher, 7 | type TsConfigJsonResolved, 8 | createFilesMatcher, 9 | parseTsconfig, 10 | } from 'get-tsconfig' 11 | import { isBunBuiltin } from 'is-bun-module' 12 | import { stableHash } from 'stable-hash-x' 13 | import { ResolverFactory } from 'unrs-resolver' 14 | 15 | import { 16 | IMPORT_RESOLVER_NAME, 17 | JS_EXT_PATTERN, 18 | TSCONFIG_NOT_FOUND_REGEXP, 19 | } from './constants.js' 20 | import { 21 | mangleScopedPackage, 22 | removeQuerystring, 23 | sortProjectsByAffinity, 24 | } from './helpers.js' 25 | import { log } from './logger.js' 26 | import { normalizeOptions } from './normalize-options.js' 27 | import type { TypeScriptResolverOptions } from './types.js' 28 | 29 | export * from './constants.js' 30 | export * from './helpers.js' 31 | export * from './normalize-options.js' 32 | export type * from './types.js' 33 | 34 | const resolverCache = new Map() 35 | 36 | const tsconfigCache = new Map() 37 | 38 | const matcherCache = new Map() 39 | 40 | const unrsResolve = ( 41 | source: string, 42 | file: string, 43 | resolver: ResolverFactory, 44 | ): ResolvedResult => { 45 | const result = resolver.sync(path.dirname(file), source) 46 | if (result.path) { 47 | return { 48 | found: true, 49 | path: result.path, 50 | } 51 | } 52 | if (result.error) { 53 | log('unrs-resolver error:', result.error) 54 | if (TSCONFIG_NOT_FOUND_REGEXP.test(result.error)) { 55 | throw new Error(result.error) 56 | } 57 | } 58 | return { 59 | found: false, 60 | } 61 | } 62 | 63 | const isBun = !!process.versions.bun 64 | 65 | export const resolve = ( 66 | source: string, 67 | file: string, 68 | options?: TypeScriptResolverOptions | null, 69 | resolver?: ResolverFactory | null, 70 | // eslint-disable-next-line sonarjs/cognitive-complexity 71 | ): ResolvedResult => { 72 | options ||= {} 73 | 74 | // don't worry about node/bun core modules 75 | if (isBun || options.bun ? isBunBuiltin(source) : isBuiltin(source)) { 76 | log('matched core:', source) 77 | return { found: true, path: null } 78 | } 79 | 80 | source = removeQuerystring(source) 81 | 82 | if (!resolver) { 83 | const optionsHash = stableHash(options) 84 | const context = useRuleContext() 85 | const cwd = context?.cwd || process.cwd() 86 | options = normalizeOptions(options, cwd) 87 | // take `cwd` into account -- #217 88 | const cacheKey = `${optionsHash}\0${cwd}` 89 | let cached = resolverCache.get(cacheKey) 90 | if (!cached && !options.project) { 91 | resolverCache.set(cacheKey, (cached = new ResolverFactory(options))) 92 | } 93 | resolver = cached 94 | } 95 | 96 | // eslint-disable-next-line sonarjs/label-position, sonarjs/no-labels 97 | createResolver: if (!resolver) { 98 | // must be an array with 2+ items here already ensured by `normalizeOptions` 99 | const projects = sortProjectsByAffinity(options.project as string[], file) 100 | for (const tsconfigPath of projects) { 101 | const resolverCached = resolverCache.get(tsconfigPath) 102 | if (resolverCached) { 103 | resolver = resolverCached 104 | break createResolver 105 | } 106 | let tsconfigCached = tsconfigCache.get(tsconfigPath) 107 | if (!tsconfigCached) { 108 | tsconfigCache.set( 109 | tsconfigPath, 110 | (tsconfigCached = parseTsconfig(tsconfigPath)), 111 | ) 112 | } 113 | let matcherCached = matcherCache.get(tsconfigPath) 114 | if (!matcherCached) { 115 | matcherCache.set( 116 | tsconfigPath, 117 | (matcherCached = createFilesMatcher({ 118 | config: tsconfigCached, 119 | path: tsconfigPath, 120 | })), 121 | ) 122 | } 123 | const tsconfig = matcherCached(file) 124 | if (!tsconfig) { 125 | log('tsconfig', tsconfigPath, 'does not match', file) 126 | continue 127 | } 128 | log('matched tsconfig at:', tsconfigPath, 'for', file) 129 | options = { 130 | ...options, 131 | tsconfig: { 132 | references: 'auto', 133 | ...options.tsconfig, 134 | configFile: tsconfigPath, 135 | }, 136 | } 137 | resolver = new ResolverFactory(options) 138 | const resolved = resolve(source, file, options, resolver) 139 | if (resolved.found) { 140 | resolverCache.set(tsconfigPath, resolver) 141 | return resolved 142 | } 143 | } 144 | 145 | log( 146 | 'no tsconfig matched', 147 | file, 148 | 'with', 149 | ...projects, 150 | ', trying from the the nearest one instead', 151 | ) 152 | 153 | for (const project of projects) { 154 | const resolved = resolve(source, file, { ...options, project }, resolver) 155 | if (resolved.found) { 156 | return resolved 157 | } 158 | } 159 | } 160 | 161 | if (!resolver) { 162 | return { 163 | found: false, 164 | } 165 | } 166 | 167 | const resolved = unrsResolve(source, file, resolver) 168 | 169 | const foundPath = resolved.path 170 | 171 | // naive attempt at `@types/*` resolution, 172 | // if path is neither absolute nor relative 173 | if ( 174 | ((foundPath && JS_EXT_PATTERN.test(foundPath)) || 175 | (options.alwaysTryTypes !== false && !foundPath)) && 176 | !/^@types[/\\]/.test(source) && 177 | !path.isAbsolute(source) && 178 | !source.startsWith('.') 179 | ) { 180 | const definitelyTyped = unrsResolve( 181 | '@types/' + mangleScopedPackage(source), 182 | file, 183 | resolver, 184 | ) 185 | 186 | if (definitelyTyped.found) { 187 | return definitelyTyped 188 | } 189 | } 190 | 191 | if (foundPath) { 192 | log('matched path:', foundPath) 193 | } else { 194 | log( 195 | "didn't find", 196 | source, 197 | 'with', 198 | options.tsconfig?.configFile || options.project, 199 | ) 200 | } 201 | 202 | return resolved 203 | } 204 | 205 | export const createTypeScriptImportResolver = ( 206 | options?: TypeScriptResolverOptions | null, 207 | ) => { 208 | let cwd = process.cwd() 209 | options = normalizeOptions(options, cwd) 210 | let resolver = options.project ? undefined : new ResolverFactory(options) 211 | return { 212 | interfaceVersion: 3, 213 | name: IMPORT_RESOLVER_NAME, 214 | resolve(source: string, file: string) { 215 | const context = useRuleContext() 216 | if (context && cwd !== context.cwd) { 217 | cwd = context.cwd 218 | options = normalizeOptions(options, cwd) 219 | if (options.project) { 220 | resolver = resolver 221 | ? resolver.cloneWithOptions(options) 222 | : new ResolverFactory(options) 223 | } 224 | } 225 | return resolve(source, file, options, resolver) 226 | }, 227 | } 228 | } 229 | -------------------------------------------------------------------------------- /src/logger.ts: -------------------------------------------------------------------------------- 1 | import debug from 'debug' 2 | 3 | import { IMPORT_RESOLVER_NAME } from './constants.js' 4 | 5 | export const log = debug(IMPORT_RESOLVER_NAME) 6 | -------------------------------------------------------------------------------- /src/normalize-options.ts: -------------------------------------------------------------------------------- 1 | import { globSync, isDynamicPattern } from 'tinyglobby' 2 | import type { TsconfigOptions } from 'unrs-resolver' 3 | 4 | import { 5 | DEFAULT_CONFIGS, 6 | DEFAULT_IGNORE, 7 | DEFAULT_TRY_PATHS, 8 | defaultConditionNames, 9 | defaultExtensionAlias, 10 | defaultExtensions, 11 | defaultMainFields, 12 | } from './constants.js' 13 | import { toGlobPath, toNativePath, tryFile } from './helpers.js' 14 | import { log } from './logger.js' 15 | import type { TypeScriptResolverOptions } from './types.js' 16 | 17 | export let defaultConfigFile: string 18 | 19 | const configFileMapping = new Map() 20 | 21 | let warned: boolean | undefined 22 | 23 | export function normalizeOptions( 24 | options?: TypeScriptResolverOptions | null, 25 | cwd?: string, 26 | ): TypeScriptResolverOptions 27 | // eslint-disable-next-line sonarjs/cognitive-complexity 28 | export function normalizeOptions( 29 | options?: TypeScriptResolverOptions | null, 30 | cwd = process.cwd(), 31 | ): TypeScriptResolverOptions { 32 | let { project, tsconfig, noWarnOnMultipleProjects } = (options ||= {}) 33 | 34 | let { configFile, references }: Partial = tsconfig ?? {} 35 | 36 | let ensured: boolean | undefined 37 | 38 | if (configFile) { 39 | configFile = tryFile(configFile) 40 | ensured = true 41 | } else if (project) { 42 | project = Array.isArray(project) ? project : [project] 43 | log('original projects:', ...project) 44 | project = project.map(toGlobPath) 45 | if (project.some(p => isDynamicPattern(p))) { 46 | project = globSync(project, { 47 | absolute: true, 48 | cwd, 49 | dot: true, 50 | expandDirectories: false, 51 | onlyFiles: false, 52 | ignore: DEFAULT_IGNORE, 53 | }) 54 | } 55 | log('resolving projects:', ...project) 56 | project = project.flatMap( 57 | p => tryFile(DEFAULT_TRY_PATHS, false, toNativePath(p)) || [], 58 | ) 59 | log('resolved projects:', ...project) 60 | if (project.length === 1) { 61 | configFile = project[0] 62 | ensured = true 63 | } 64 | if (project.length <= 1) { 65 | project = undefined 66 | } else if (!warned && !noWarnOnMultipleProjects) { 67 | warned = true 68 | console.warn( 69 | 'Multiple projects found, consider using a single `tsconfig` with `references` to speed up, or use `noWarnOnMultipleProjects` to suppress this warning', 70 | ) 71 | } 72 | } 73 | 74 | if (!project && !configFile) { 75 | configFile = defaultConfigFile ||= tryFile(DEFAULT_CONFIGS) 76 | ensured = true 77 | } 78 | 79 | if (configFile) { 80 | const cachedOptions = configFileMapping.get(configFile) 81 | if (cachedOptions) { 82 | log('using cached options for', configFile) 83 | return cachedOptions 84 | } 85 | } 86 | 87 | if (!ensured && configFile && configFile !== defaultConfigFile) { 88 | configFile = tryFile(DEFAULT_TRY_PATHS, false, configFile) 89 | } 90 | 91 | options = { 92 | conditionNames: defaultConditionNames, 93 | extensions: defaultExtensions, 94 | extensionAlias: defaultExtensionAlias, 95 | mainFields: defaultMainFields, 96 | ...options, 97 | project, 98 | tsconfig: configFile 99 | ? { references: references ?? 'auto', configFile: configFile } 100 | : undefined, 101 | } 102 | 103 | if (configFile) { 104 | configFileMapping.set(configFile, options) 105 | } 106 | 107 | return options 108 | } 109 | -------------------------------------------------------------------------------- /src/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.lib", 3 | "compilerOptions": { 4 | "rootDir": ".", 5 | "outDir": "../lib" 6 | }, 7 | "include": ["."] 8 | } 9 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import type { NapiResolveOptions } from 'unrs-resolver' 2 | 3 | export interface TypeScriptResolverOptions extends NapiResolveOptions { 4 | project?: string[] | string 5 | /** @default true - whether to always try to resolve `@types` packages */ 6 | alwaysTryTypes?: boolean 7 | /** Whether `bun` core modules should be accounted */ 8 | bun?: boolean 9 | noWarnOnMultipleProjects?: boolean 10 | } 11 | -------------------------------------------------------------------------------- /tests/e2e/__snapshots__/e2e.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`e2e cases > should exec eslint successfully > absoluteAlias 1`] = ` 4 | { 5 | "exitCode": 0, 6 | "stderr": "", 7 | "stdout": "", 8 | } 9 | `; 10 | 11 | exports[`e2e cases > should exec eslint successfully > dotInclude 1`] = ` 12 | { 13 | "exitCode": 0, 14 | "stderr": "", 15 | "stdout": "", 16 | } 17 | `; 18 | 19 | exports[`e2e cases > should exec eslint successfully > dotPaths 1`] = ` 20 | { 21 | "exitCode": 0, 22 | "stderr": "", 23 | "stdout": "", 24 | } 25 | `; 26 | 27 | exports[`e2e cases > should exec eslint successfully > dotProject 1`] = ` 28 | { 29 | "exitCode": 0, 30 | "stderr": "", 31 | "stdout": "", 32 | } 33 | `; 34 | 35 | exports[`e2e cases > should exec eslint successfully > importXResolverV3 1`] = ` 36 | { 37 | "exitCode": 0, 38 | "stderr": "", 39 | "stdout": "", 40 | } 41 | `; 42 | 43 | exports[`e2e cases > should exec eslint successfully > multipleEslintrcs 1`] = ` 44 | { 45 | "exitCode": 0, 46 | "stderr": "", 47 | "stdout": "", 48 | } 49 | `; 50 | 51 | exports[`e2e cases > should exec eslint successfully > multipleTsconfigs 1`] = ` 52 | { 53 | "exitCode": 0, 54 | "stderr": "", 55 | "stdout": "", 56 | } 57 | `; 58 | 59 | exports[`e2e cases > should exec eslint successfully > nearestTsconfig 1`] = ` 60 | { 61 | "exitCode": 0, 62 | "stderr": "", 63 | "stdout": "", 64 | } 65 | `; 66 | 67 | exports[`e2e cases > should exec eslint successfully > withJsExtension 1`] = ` 68 | { 69 | "exitCode": 0, 70 | "stderr": "", 71 | "stdout": "", 72 | } 73 | `; 74 | 75 | exports[`e2e cases > should exec eslint successfully > withJsconfig 1`] = ` 76 | { 77 | "exitCode": 0, 78 | "stderr": "", 79 | "stdout": "", 80 | } 81 | `; 82 | 83 | exports[`e2e cases > should exec eslint successfully > withPaths 1`] = ` 84 | { 85 | "exitCode": 0, 86 | "stderr": "", 87 | "stdout": "", 88 | } 89 | `; 90 | 91 | exports[`e2e cases > should exec eslint successfully > withPathsAndNestedBaseUrl 1`] = ` 92 | { 93 | "exitCode": 0, 94 | "stderr": "", 95 | "stdout": "", 96 | } 97 | `; 98 | 99 | exports[`e2e cases > should exec eslint successfully > withQuerystring 1`] = ` 100 | { 101 | "exitCode": 0, 102 | "stderr": "", 103 | "stdout": "", 104 | } 105 | `; 106 | 107 | exports[`e2e cases > should exec eslint successfully > withoutPaths 1`] = ` 108 | { 109 | "exitCode": 0, 110 | "stderr": "", 111 | "stdout": "", 112 | } 113 | `; 114 | -------------------------------------------------------------------------------- /tests/e2e/absoluteAlias/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/absoluteAlias/public/images/foo.ts: -------------------------------------------------------------------------------- 1 | export default 'image.webp' 2 | -------------------------------------------------------------------------------- /tests/e2e/absoluteAlias/test.ts: -------------------------------------------------------------------------------- 1 | import image from '/images/foo.js' 2 | 3 | console.log(image) 4 | -------------------------------------------------------------------------------- /tests/e2e/absoluteAlias/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.lib", 3 | "compilerOptions": { 4 | "paths": { 5 | "/*": ["./public/*"] 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/e2e/base.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {string | string[]} project 3 | * @returns {TSESLint.ClassicConfig.Config} 4 | * @import { TSESLint } from '@typescript-eslint/utils' 5 | */ 6 | const base = project => ({ 7 | extends: [ 8 | 'eslint:recommended', 9 | 'plugin:@typescript-eslint/eslint-recommended', 10 | 'plugin:@typescript-eslint/recommended', 11 | 'plugin:import-x/errors', 12 | 'plugin:import-x/typescript', 13 | ], 14 | settings: { 15 | 'import-x/resolver': { 16 | typescript: { 17 | project, 18 | noWarnOnMultipleProjects: true, 19 | }, 20 | }, 21 | }, 22 | rules: { 23 | 'import-x/no-duplicates': 0, 24 | 'import-x/no-unresolved': 2, 25 | 'import-x/extensions': [ 26 | 2, 27 | 'ignorePackages', 28 | { 29 | js: 'never', 30 | jsx: 'never', 31 | ts: 'never', 32 | tsx: 'never', 33 | }, 34 | ], 35 | 'import-x/order': [ 36 | 2, 37 | { 38 | alphabetize: { 39 | order: 'asc', 40 | }, 41 | 'newlines-between': 'always', 42 | }, 43 | ], 44 | }, 45 | overrides: [ 46 | { 47 | files: '**/*.{cjs,cts}', 48 | env: { 49 | node: true, 50 | }, 51 | rules: { 52 | '@typescript-eslint/no-require-imports': 'off', 53 | }, 54 | }, 55 | ], 56 | }) 57 | 58 | module.exports = base 59 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.dot/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import module with typings set in package.json 14 | import 'folder/module' 15 | 16 | // import from node_module 17 | import 'typescript' 18 | import 'dummy.js' 19 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.dot/module/module.d.ts: -------------------------------------------------------------------------------- 1 | export {} 2 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.dot/module/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs", 3 | "private": true, 4 | "typings": "./module.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.dot/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.dot/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.dot/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.dot/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/dotInclude/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./.dot", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../node_modules/*"] 8 | } 9 | }, 10 | "include": ["./**/*.ts", "./**/*.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/.dot/module/module.d.ts: -------------------------------------------------------------------------------- 1 | export {} 2 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/.dot/module/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs", 3 | "private": true, 4 | "typings": "./module.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/.dot/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/.dot/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/.dot/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/.dot/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './.dot/tsImportee' 3 | import './.dot/tsxImportee' 4 | import './.dot/subfolder/tsImportee' 5 | import './.dot/subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import module with typings set in package.json 14 | import 'folder/module' 15 | 16 | // import from node_module 17 | import 'typescript' 18 | import 'dummy.js' 19 | -------------------------------------------------------------------------------- /tests/e2e/dotPaths/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": [".dot/*"], 7 | "*": ["../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", ".dot/tsImportee.ts", ".dot/tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | const path = require('node:path') 2 | 3 | const globPattern = './packages/*/*/tsconfig.json' 4 | 5 | // in normal cases this is not needed because the __dirname would be the root 6 | const absoluteGlobPath = path.join(__dirname, globPattern) 7 | 8 | module.exports = require('../base.eslintrc.cjs')(absoluteGlobPath) 9 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-a/.dot/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "../", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["../index.ts", "../tsImportee.ts", "../tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-a/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-a/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-a/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-a/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-a/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-b/.dot/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "../", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["../index.ts", "../tsImportee.ts", "../tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-b/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-b/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-b/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-b/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/dotProject/packages/module-b/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/e2e.spec.ts: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises' 2 | import path from 'node:path' 3 | 4 | import { tryFile } from '@pkgr/core' 5 | import { exec } from 'tinyexec' 6 | 7 | const TIMEOUT = 60_000 8 | 9 | describe('e2e cases', async () => { 10 | const { dirname } = import.meta 11 | 12 | const dirents = await fs.readdir(dirname, { withFileTypes: true }) 13 | 14 | for (const dirent of dirents) { 15 | const dirName = dirent.name 16 | 17 | if (!dirent.isDirectory() || dirName === '__snapshots__') { 18 | continue 19 | } 20 | 21 | const absoluteDir = path.resolve(dirname, dirName) 22 | 23 | if (tryFile('yarn.lock', false, absoluteDir)) { 24 | await exec('yarn', ['--immutable'], { 25 | nodeOptions: { 26 | cwd: absoluteDir, 27 | }, 28 | }) 29 | } 30 | 31 | it( 32 | `should exec eslint successfully > ${dirName}`, 33 | async () => { 34 | const eslintConfig = tryFile('eslint.config.js', false, absoluteDir) 35 | expect( 36 | await exec( 37 | 'yarn', 38 | [ 39 | 'eslint', 40 | ...(eslintConfig 41 | ? ['-c', eslintConfig] 42 | : ['--ignore-pattern', '!.dot']), 43 | '--ext', 44 | 'cjs,cts,js,jsx,mjs,mts,ts,tsx', 45 | '--report-unused-disable-directives', 46 | absoluteDir, 47 | ], 48 | { 49 | nodeOptions: { 50 | env: { 51 | ESLINT_USE_FLAT_CONFIG: eslintConfig ? undefined : 'false', 52 | NODE_OPTIONS: '--no-warnings=ESLintRCWarning', 53 | }, 54 | }, 55 | }, 56 | ), 57 | ).toMatchSnapshot() 58 | }, 59 | TIMEOUT, 60 | ) 61 | } 62 | }) 63 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/eslint.config.js: -------------------------------------------------------------------------------- 1 | import path from 'node:path' 2 | import { fileURLToPath } from 'node:url' 3 | 4 | import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript' 5 | import importX, { flatConfigs } from 'eslint-plugin-import-x' 6 | 7 | import base from '../base.eslintrc.cjs' 8 | 9 | const globPattern = './packages/*/tsconfig.json' 10 | 11 | // in normal cases this is not needed because the `dirname` would be the root 12 | const absoluteGlobPath = path.resolve( 13 | fileURLToPath(import.meta.url), 14 | '..', 15 | globPattern, 16 | ) 17 | 18 | export default +process.versions.node.split('.')[0] <= 16 19 | ? {} 20 | : { 21 | files: ['**/*.ts', '**/*.tsx'], 22 | plugins: { 23 | 'import-x': importX, 24 | }, 25 | settings: { 26 | ...flatConfigs.typescript.settings, 27 | 'import-x/resolver-next': [ 28 | createTypeScriptImportResolver({ 29 | project: absoluteGlobPath, 30 | noWarnOnMultipleProjects: true, 31 | }), 32 | ], 33 | }, 34 | rules: base().rules, 35 | } 36 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-a/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-a/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-a/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-a/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-a/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-a/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-b/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-b/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-b/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-b/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-b/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/importXResolverV3/packages/module-b/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-a/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-a/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-a/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-a/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-a/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-a/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-a/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-b/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-b/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-b/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-b/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-b/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-b/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/multipleEslintrcs/module-b/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | const path = require('node:path') 2 | 3 | const globPattern = './packages/*/tsconfig.json' 4 | 5 | // in normal cases this is not needed because the __dirname would be the root 6 | const absoluteGlobPath = path.join(__dirname, globPattern) 7 | 8 | module.exports = require('../base.eslintrc.cjs')(absoluteGlobPath) 9 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-a/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-a/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-a/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-a/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-a/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-a/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-b/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsxImportee' 10 | import 'folder/subfolder/tsImportee' 11 | import 'folder/subfolder/tsxImportee' 12 | 13 | // import from node_module 14 | import 'typescript' 15 | import 'dummy.js' 16 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-b/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-b/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-b/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-b/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/multipleTsconfigs/packages/module-b/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | const path = require('node:path') 2 | 3 | const project = [ 4 | 'tsconfig.json', 5 | 'a/tsconfig.json', 6 | 'a/b/tsconfig.json', 7 | 'a/b/c/tsconfig.json', 8 | ].map(tsconfig => path.resolve(__dirname, tsconfig)) 9 | 10 | module.exports = require('../base.eslintrc.cjs')(project) 11 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/app/app.ts: -------------------------------------------------------------------------------- 1 | import 'components/a' 2 | import 'components/root' 3 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/b/app/app.ts: -------------------------------------------------------------------------------- 1 | import 'components/b' 2 | import 'components/root' 3 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/b/c/app/app.ts: -------------------------------------------------------------------------------- 1 | import 'components/c' 2 | import 'components/root' 3 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/b/c/components/c.ts: -------------------------------------------------------------------------------- 1 | export default 'c' 2 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/b/c/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "components/*": ["../../../components/*", "./components/*"] 6 | } 7 | }, 8 | "files": ["components/c.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/b/components/b.ts: -------------------------------------------------------------------------------- 1 | export default 'b' 2 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/b/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "components/*": ["../../components/*", "./components/*"] 6 | } 7 | }, 8 | "files": ["components/b.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/components/a.ts: -------------------------------------------------------------------------------- 1 | export default 'a' 2 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/a/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "components/*": ["../components/*", "./components/*"] 6 | } 7 | }, 8 | "files": ["components/a.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/app/app.ts: -------------------------------------------------------------------------------- 1 | import 'components/root' 2 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/components/root.ts: -------------------------------------------------------------------------------- 1 | export default 'root' 2 | -------------------------------------------------------------------------------- /tests/e2e/nearestTsconfig/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "components/*": ["./components/*"] 6 | } 7 | }, 8 | "files": ["components/root.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /tests/e2e/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "private": true 4 | } 5 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | const config = require('../base.eslintrc.cjs')(__dirname) 2 | 3 | module.exports = { 4 | ...config, 5 | rules: { 6 | ...config.rules, 7 | 'import-x/extensions': [ 8 | 2, 9 | 'ignorePackages', 10 | { 11 | ts: 'never', 12 | tsx: 'never', 13 | }, 14 | ], 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/bar/index.tsx: -------------------------------------------------------------------------------- 1 | export default 'bar' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/cjsImportee.cjs: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | module.exports = 'cjsImportee.cjs' 3 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/ctsImportee.cts: -------------------------------------------------------------------------------- 1 | export default 'ctsImportee.cts' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/d-ctsImportee.d.cts: -------------------------------------------------------------------------------- 1 | declare const content: 'yes' 2 | 3 | export = content 4 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/d-mtsImportee.d.mts: -------------------------------------------------------------------------------- 1 | declare const content: 'yes' 2 | 3 | export default content 4 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/dtsImportee.d.ts: -------------------------------------------------------------------------------- 1 | declare const content: 'yes' 2 | 3 | export default content 4 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/foo.cjs/index.ts: -------------------------------------------------------------------------------- 1 | export default 'foo.cjs' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/foo.js/index.ts: -------------------------------------------------------------------------------- 1 | export default 'foo.js' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/foo.jsx/index.ts: -------------------------------------------------------------------------------- 1 | export default 'foo.jsx' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/foo.mjs/index.ts: -------------------------------------------------------------------------------- 1 | export default 'foo.mjs' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/foo/index.ts: -------------------------------------------------------------------------------- 1 | export default 'foo' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee.js' 3 | import './tsxImportee.js' 4 | import './tsxImportee.jsx' 5 | import './dtsImportee.js' 6 | import './dtsImportee.jsx' 7 | import './foo' 8 | import './foo.js' 9 | import './foo.jsx' 10 | import './bar' 11 | 12 | // import using tsconfig.json path mapping 13 | import '#/tsImportee.js' 14 | import '#/tsxImportee.jsx' 15 | import '#/dtsImportee.js' 16 | import '#/dtsImportee.jsx' 17 | import '#/foo' 18 | import '#/foo.js' 19 | import '#/foo.jsx' 20 | import '#/bar' 21 | 22 | // import using tsconfig.json base url 23 | import 'tsImportee.js' 24 | import 'tsxImportee.jsx' 25 | import 'dtsImportee.js' 26 | import 'dtsImportee.jsx' 27 | import 'foo' 28 | import 'foo.js' 29 | import 'foo.jsx' 30 | import 'bar' 31 | 32 | // import from node_module 33 | import 'typescript/lib/typescript.js' 34 | import 'dummy.js' 35 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/jsImportee.js: -------------------------------------------------------------------------------- 1 | export default 'jsImportee.js' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/jsxImportee.jsx: -------------------------------------------------------------------------------- 1 | export default 'jsxImportee.jsx' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/mjsImportee.mjs: -------------------------------------------------------------------------------- 1 | export default 'mjsImportee.mjs' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/mtsImportee.mts: -------------------------------------------------------------------------------- 1 | export default 'mtsImportee.mts' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/test.cjs: -------------------------------------------------------------------------------- 1 | const assert = require('node:assert') 2 | const path = require('node:path') 3 | 4 | // eslint-disable-next-line import-x/extensions 5 | const { resolve } = require('../../..') 6 | 7 | const config = { 8 | project: path.join(__dirname, 'tsconfig.json'), 9 | } 10 | 11 | const file = path.join(__dirname, 'index.ts') 12 | 13 | function assertResolve(id, relativePath) { 14 | const filePath = path.join(__dirname, relativePath) 15 | assert.deepStrictEqual(resolve(id, file, config), { 16 | found: true, 17 | path: filePath, 18 | }) 19 | assert.deepStrictEqual( 20 | resolve(id, file, { ...config, alwaysTryTypes: true }), 21 | { found: true, path: filePath }, 22 | ) 23 | } 24 | 25 | // import relative 26 | 27 | assertResolve('./jsImportee.js', 'jsImportee.js') 28 | 29 | assertResolve('./cjsImportee.cjs', 'cjsImportee.cjs') 30 | 31 | assertResolve('./mjsImportee.mjs', 'mjsImportee.mjs') 32 | 33 | assertResolve('./tsImportee.js', 'tsImportee.ts') 34 | 35 | assertResolve('./tsxImportee.jsx', 'tsxImportee.tsx') 36 | 37 | assertResolve('./ctsImportee.cjs', 'ctsImportee.cts') 38 | 39 | assertResolve('./mtsImportee.mjs', 'mtsImportee.mts') 40 | 41 | assertResolve('./dtsImportee.js', 'dtsImportee.d.ts') 42 | 43 | assertResolve('./dtsImportee.jsx', 'dtsImportee.d.ts') 44 | 45 | assertResolve('./d-ctsImportee.cjs', 'd-ctsImportee.d.cts') 46 | 47 | assertResolve('./d-mtsImportee.mjs', 'd-mtsImportee.d.mts') 48 | 49 | assertResolve('./foo', 'foo/index.ts') 50 | 51 | assertResolve('./foo.js', 'foo.js/index.ts') 52 | 53 | assertResolve('./foo.jsx', 'foo.jsx/index.ts') 54 | 55 | assertResolve('./foo.cjs', 'foo.cjs/index.ts') 56 | 57 | assertResolve('./foo.mjs', 'foo.mjs/index.ts') 58 | 59 | assertResolve('./bar', 'bar/index.tsx') 60 | 61 | // import using tsconfig.json path mapping 62 | 63 | assertResolve('#/tsImportee.js', 'tsImportee.ts') 64 | 65 | assertResolve('#/tsxImportee.jsx', 'tsxImportee.tsx') 66 | 67 | assertResolve('#/cjsImportee.cjs', 'cjsImportee.cjs') 68 | 69 | assertResolve('#/mjsImportee.mjs', 'mjsImportee.mjs') 70 | 71 | assertResolve('#/ctsImportee.cjs', 'ctsImportee.cts') 72 | 73 | assertResolve('#/mtsImportee.mjs', 'mtsImportee.mts') 74 | 75 | assertResolve('#/dtsImportee.js', 'dtsImportee.d.ts') 76 | 77 | assertResolve('#/dtsImportee.jsx', 'dtsImportee.d.ts') 78 | 79 | assertResolve('#/d-ctsImportee.cjs', 'd-ctsImportee.d.cts') 80 | 81 | assertResolve('#/d-mtsImportee.mjs', 'd-mtsImportee.d.mts') 82 | 83 | assertResolve('#/foo', 'foo/index.ts') 84 | 85 | assertResolve('#/foo.js', 'foo.js/index.ts') 86 | 87 | assertResolve('#/foo.jsx', 'foo.jsx/index.ts') 88 | 89 | assertResolve('#/bar', 'bar/index.tsx') 90 | 91 | // import using tsconfig.json base url 92 | 93 | assertResolve('tsImportee.js', 'tsImportee.ts') 94 | 95 | assertResolve('tsxImportee.jsx', 'tsxImportee.tsx') 96 | 97 | assertResolve('cjsImportee.cjs', 'cjsImportee.cjs') 98 | 99 | assertResolve('mjsImportee.mjs', 'mjsImportee.mjs') 100 | 101 | assertResolve('ctsImportee.cjs', 'ctsImportee.cts') 102 | 103 | assertResolve('mtsImportee.mjs', 'mtsImportee.mts') 104 | 105 | assertResolve('dtsImportee.js', 'dtsImportee.d.ts') 106 | 107 | assertResolve('dtsImportee.jsx', 'dtsImportee.d.ts') 108 | 109 | assertResolve('d-ctsImportee.cjs', 'd-ctsImportee.d.cts') 110 | 111 | assertResolve('d-mtsImportee.mjs', 'd-mtsImportee.d.mts') 112 | 113 | assertResolve('foo', 'foo/index.ts') 114 | 115 | assertResolve('foo.js', 'foo.js/index.ts') 116 | 117 | assertResolve('foo.jsx', 'foo.jsx/index.ts') 118 | 119 | assertResolve('bar', 'bar/index.tsx') 120 | 121 | // import from node_module 122 | 123 | assertResolve( 124 | 'typescript/lib/typescript.js', 125 | path.relative(__dirname, require.resolve('typescript/lib/typescript.d.ts')), 126 | ) 127 | 128 | // resolves symlinks by default 129 | assertResolve('dummy.js', '../../../dummy.js/index.js') 130 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'tsImportee.ts' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "react", 4 | "baseUrl": "./", 5 | "paths": { 6 | "#/*": ["*"] 7 | } 8 | }, 9 | "include": ["./**/*"] 10 | } 11 | -------------------------------------------------------------------------------- /tests/e2e/withJsExtension/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'tsxImportee.tsx' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsconfig/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsconfig/importee.js: -------------------------------------------------------------------------------- 1 | export default 'importee' 2 | -------------------------------------------------------------------------------- /tests/e2e/withJsconfig/index.js: -------------------------------------------------------------------------------- 1 | // import using jsconfig.json path mapping 2 | import '#/importee' 3 | -------------------------------------------------------------------------------- /tests/e2e/withJsconfig/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "paths": { 5 | "#/*": ["*"] 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './subfolder/tsImportee' 5 | import './subfolder/tsxImportee' 6 | 7 | // import using tsconfig.json path mapping 8 | import 'folder/tsImportee' 9 | import 'folder/tsImportee.js' 10 | import 'folder/tsxImportee' 11 | import 'folder/tsxImportee.js' 12 | import 'folder/subfolder/tsImportee' 13 | import 'folder/subfolder/tsImportee.js' 14 | import 'folder/subfolder/tsxImportee' 15 | import 'folder/subfolder/tsxImportee.js' 16 | 17 | // import module with typings set in package.json 18 | import 'folder/module' 19 | 20 | // import from node_module 21 | import 'typescript' 22 | import 'dummy.js' 23 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/module/module.d.ts: -------------------------------------------------------------------------------- 1 | export {} 2 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/module/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs", 3 | "private": true, 4 | "typings": "./module.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "jsx": "react", 5 | "paths": { 6 | "folder/*": ["*"], 7 | "*": ["../../node_modules/*"] 8 | } 9 | }, 10 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 11 | } 12 | -------------------------------------------------------------------------------- /tests/e2e/withPaths/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/withPathsAndNestedBaseUrl/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/withPathsAndNestedBaseUrl/other/bar.ts: -------------------------------------------------------------------------------- 1 | // import using tsconfig.json `baseUrl` 2 | import 'foo' 3 | -------------------------------------------------------------------------------- /tests/e2e/withPathsAndNestedBaseUrl/root/foo.ts: -------------------------------------------------------------------------------- 1 | // import using tsconfig.json path mapping 2 | import 'other/bar' 3 | -------------------------------------------------------------------------------- /tests/e2e/withPathsAndNestedBaseUrl/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "root/", 4 | "paths": { 5 | "other/*": ["../other/*"] 6 | } 7 | }, 8 | "files": ["root/foo.ts", "other/bar.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /tests/e2e/withQuerystring/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/withQuerystring/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/e2e/withQuerystring/index.ts: -------------------------------------------------------------------------------- 1 | // import svg without querystring 2 | import './image.svg' 3 | import './subfolder/image.svg' 4 | 5 | // import svg with querystring 6 | import './image.svg?raw' 7 | import './subfolder/image.svg?raw' 8 | -------------------------------------------------------------------------------- /tests/e2e/withQuerystring/subfolder/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/e2e/withQuerystring/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": {}, 3 | "files": ["index.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../base.eslintrc.cjs')(__dirname) 2 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/dtsImportee.d.ts: -------------------------------------------------------------------------------- 1 | declare const content: 'yes' 2 | 3 | export default content 4 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/index.ts: -------------------------------------------------------------------------------- 1 | // import relative 2 | import './tsImportee' 3 | import './tsxImportee' 4 | import './dtsImportee' 5 | import './subfolder/dtsImportee' 6 | import './subfolder/tsImportee' 7 | import './subfolder/tsxImportee' 8 | 9 | // import from node_module 10 | import 'typescript' 11 | import 'dummy.js' 12 | 13 | // import from `@types/` 14 | import 'json5' 15 | 16 | // enable alwaysTryTypes 17 | import 'unist' 18 | 19 | // exports 20 | import '@mozilla/glean/web' 21 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/subfolder/dtsImportee.d.ts: -------------------------------------------------------------------------------- 1 | declare const content: 'yes' 2 | 3 | export default content 4 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/subfolder/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/subfolder/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/tsImportee.ts: -------------------------------------------------------------------------------- 1 | export default 'yes' 2 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "react" 4 | }, 5 | "files": ["index.ts", "tsImportee.ts", "tsxImportee.tsx"] 6 | } 7 | -------------------------------------------------------------------------------- /tests/e2e/withoutPaths/tsxImportee.tsx: -------------------------------------------------------------------------------- 1 | export default 'React Component' 2 | -------------------------------------------------------------------------------- /tests/global.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tests/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.lib", 3 | "compilerOptions": { 4 | "rootDir": "." 5 | }, 6 | "include": ["."] 7 | } 8 | -------------------------------------------------------------------------------- /tests/unit/dts/foo.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/dts/foo.d.ts -------------------------------------------------------------------------------- /tests/unit/malformed-reference/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/malformed-reference/index.ts -------------------------------------------------------------------------------- /tests/unit/malformed-reference/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "references": [ 3 | { 4 | "path": "./non-existed" 5 | } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tests/unit/pnp/.editorconfig: -------------------------------------------------------------------------------- 1 | root=true 2 | 3 | [*] 4 | charset=utf-8 5 | end_of_line=lf 6 | indent_size=2 7 | indent_style=space 8 | insert_final_newline=true 9 | -------------------------------------------------------------------------------- /tests/unit/pnp/.gitattributes: -------------------------------------------------------------------------------- 1 | /.yarn/** linguist-vendored 2 | /.yarn/releases/* binary 3 | /.yarn/plugins/**/* binary 4 | /.pnp.* binary linguist-generated 5 | -------------------------------------------------------------------------------- /tests/unit/pnp/.gitignore: -------------------------------------------------------------------------------- 1 | .yarn/* 2 | !.yarn/patches 3 | !.yarn/plugins 4 | !.yarn/releases 5 | !.yarn/sdks 6 | !.yarn/versions 7 | 8 | # Whether you use PnP or not, the node_modules folder is often used to store 9 | # build artifacts that should be gitignored 10 | node_modules 11 | 12 | # Swap the comments on the following lines if you wish to use zero-installs 13 | # In that case, don't forget to run `yarn config set enableGlobalCache false`! 14 | # Documentation here: https://yarnpkg.com/features/caching#zero-installs 15 | 16 | !.yarn/cache 17 | .pnp.* 18 | -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-analytics-next-npm-11.0.0-dee51f68fd-c5b0fb7f4c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-analytics-next-npm-11.0.0-dee51f68fd-c5b0fb7f4c.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-analytics-next-stable-react-context-npm-1.0.1-7582c45125-b32e35c260.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-analytics-next-stable-react-context-npm-1.0.1-7582c45125-b32e35c260.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-app-provider-npm-2.2.0-c66a549c49-553cf510da.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-app-provider-npm-2.2.0-c66a549c49-553cf510da.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-atlassian-context-npm-0.2.0-2d87bc346f-c9481e62c0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-atlassian-context-npm-0.2.0-2d87bc346f-c9481e62c0.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-css-npm-0.10.6-aef5a93234-16f1fa4b9c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-css-npm-0.10.6-aef5a93234-16f1fa4b9c.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-ds-lib-npm-4.0.0-2657fb4860-3b42595e40.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-ds-lib-npm-4.0.0-2657fb4860-3b42595e40.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-feature-gate-js-client-npm-5.3.1-5ba19e6813-f1deae06d5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-feature-gate-js-client-npm-5.3.1-5ba19e6813-f1deae06d5.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-interaction-context-npm-3.0.0-c7cd6bc1f6-ff1defa453.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-interaction-context-npm-3.0.0-c7cd6bc1f6-ff1defa453.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-link-npm-3.2.0-826b5a551f-f3551a340a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-link-npm-3.2.0-826b5a551f-f3551a340a.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-platform-feature-flags-npm-1.1.1-cd4133dd9e-3bdd0e19b4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-platform-feature-flags-npm-1.1.1-cd4133dd9e-3bdd0e19b4.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-pragmatic-drag-and-drop-npm-1.7.0-2fb827d798-dc5f297086.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-pragmatic-drag-and-drop-npm-1.7.0-2fb827d798-dc5f297086.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-primitives-npm-14.8.0-3b286f743e-08bdc3c6be.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-primitives-npm-14.8.0-3b286f743e-08bdc3c6be.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-tokens-npm-4.9.0-620f17c75a-5158f0c204.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-tokens-npm-4.9.0-620f17c75a-5158f0c204.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@atlaskit-visually-hidden-npm-3.0.3-ce3c05b0a7-6cddb8ff7c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@atlaskit-visually-hidden-npm-3.0.3-ce3c05b0a7-6cddb8ff7c.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-code-frame-npm-7.27.1-4dbcabb137-5dd9a18baa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-code-frame-npm-7.27.1-4dbcabb137-5dd9a18baa.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-generator-npm-7.27.1-12737d533a-c4156434b2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-generator-npm-7.27.1-12737d533a-c4156434b2.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-helper-module-imports-npm-7.27.1-3bf33978f4-e00aace096.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-helper-module-imports-npm-7.27.1-3bf33978f4-e00aace096.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-helper-string-parser-npm-7.27.1-d1471e0598-8bda3448e0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-helper-string-parser-npm-7.27.1-d1471e0598-8bda3448e0.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-helper-validator-identifier-npm-7.27.1-2c3cefd5dc-c558f11c48.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-helper-validator-identifier-npm-7.27.1-2c3cefd5dc-c558f11c48.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-parser-npm-7.27.2-70cd61f3e6-3c06692768.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-parser-npm-7.27.2-70cd61f3e6-3c06692768.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-runtime-npm-7.27.0-67ce9cb54f-35091ea9de.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-runtime-npm-7.27.0-67ce9cb54f-35091ea9de.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-runtime-npm-7.27.1-c9b375440e-530a7332f8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-runtime-npm-7.27.1-c9b375440e-530a7332f8.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-template-npm-7.27.2-77e67eabbd-ed9e902265.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-template-npm-7.27.2-77e67eabbd-ed9e902265.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-traverse-npm-7.27.1-cdef168378-d912110037.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-traverse-npm-7.27.1-cdef168378-d912110037.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@babel-types-npm-7.27.1-2a01e9d02f-ed736f14db.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@babel-types-npm-7.27.1-2a01e9d02f-ed736f14db.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@compiled-react-npm-0.18.4-cec0f2856b-3192db2239.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@compiled-react-npm-0.18.4-cec0f2856b-3192db2239.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-babel-plugin-npm-11.13.5-ca65815e43-8ccbfec7de.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-babel-plugin-npm-11.13.5-ca65815e43-8ccbfec7de.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-cache-npm-11.14.0-83baa0ff98-3fa3e7a431.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-cache-npm-11.14.0-83baa0ff98-3fa3e7a431.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-hash-npm-0.9.2-21b49040cb-0dc254561a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-hash-npm-0.9.2-21b49040cb-0dc254561a.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-memoize-npm-0.9.0-ccd80906b3-13f474a920.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-memoize-npm-0.9.0-ccd80906b3-13f474a920.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-react-npm-11.14.0-2743f93910-d0864f571a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-react-npm-11.14.0-2743f93910-d0864f571a.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-serialize-npm-1.3.3-b390a9707a-b28cb7de59.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-serialize-npm-1.3.3-b390a9707a-b28cb7de59.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-sheet-npm-1.4.0-fb64d8f222-3ca72d1650.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-sheet-npm-1.4.0-fb64d8f222-3ca72d1650.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-unitless-npm-0.10.0-bd15580251-1509431927.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-unitless-npm-0.10.0-bd15580251-1509431927.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-use-insertion-effect-with-fallbacks-npm-1.2.0-a897c3d989-074dbc92b9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-use-insertion-effect-with-fallbacks-npm-1.2.0-a897c3d989-074dbc92b9.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-utils-npm-1.4.2-2cf43fb561-7d0010bf60.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-utils-npm-1.4.2-2cf43fb561-7d0010bf60.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@emotion-weak-memoize-npm-0.4.0-76aafb2333-64376af11f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@emotion-weak-memoize-npm-0.4.0-76aafb2333-64376af11f.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.8-647be6e286-c668feaf86.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.8-647be6e286-c668feaf86.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-2a5aa7b4b5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-2a5aa7b4b5.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-2eb864f276.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-2eb864f276.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-3d1ce6ebc6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-3d1ce6ebc6.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@statsig-client-core-npm-3.17.1-9f8a5579d4-4553ddff9e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@statsig-client-core-npm-3.17.1-9f8a5579d4-4553ddff9e.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@statsig-js-client-npm-3.17.1-ae513a2b32-ffa2218a56.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@statsig-js-client-npm-3.17.1-ae513a2b32-ffa2218a56.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/@types-parse-json-npm-4.0.2-f87f65692e-b1b863ac34.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/@types-parse-json-npm-4.0.2-f87f65692e-b1b863ac34.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/babel-plugin-macros-npm-3.1.0-320e781f4e-c6dfb15de9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/babel-plugin-macros-npm-3.1.0-320e781f4e-c6dfb15de9.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/bind-event-listener-npm-3.0.0-c29621e676-08eadf1c7d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/bind-event-listener-npm-3.0.0-c29621e676-08eadf1c7d.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/callsites-npm-3.1.0-268f989910-fff9227740.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/callsites-npm-3.1.0-268f989910-fff9227740.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/convert-source-map-npm-1.9.0-e294555f4b-281da55454.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/convert-source-map-npm-1.9.0-e294555f4b-281da55454.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/cosmiconfig-npm-7.1.0-13a5090bcd-b923ff6af5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/cosmiconfig-npm-7.1.0-13a5090bcd-b923ff6af5.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/csstype-npm-3.1.3-e9a1c85013-80c089d6f7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/csstype-npm-3.1.3-e9a1c85013-80c089d6f7.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/debug-npm-4.4.1-6eab84b9f7-d2b44bc1af.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/debug-npm-4.4.1-6eab84b9f7-d2b44bc1af.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-ba827f8936.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-ba827f8936.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-9497d4dd30.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-9497d4dd30.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/eventemitter2-npm-4.1.2-5f5ab40d0b-32b5ca5d9d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/eventemitter2-npm-4.1.2-5f5ab40d0b-32b5ca5d9d.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/find-root-npm-1.1.0-a16a94005f-1abc7f3bf2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/find-root-npm-1.1.0-a16a94005f-1abc7f3bf2.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-d8680ee1e5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-d8680ee1e5.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-758f9f258e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-758f9f258e.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/hasown-npm-2.0.2-80fe6c9901-3769d43470.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/hasown-npm-2.0.2-80fe6c9901-3769d43470.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-fe0889169e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-fe0889169e.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/import-fresh-npm-3.3.1-1916794950-bf8cc49487.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/import-fresh-npm-3.3.1-1916794950-bf8cc49487.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-e7fb686a73.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-e7fb686a73.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/is-core-module-npm-2.16.1-a54837229e-898443c147.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/is-core-module-npm-2.16.1-a54837229e-898443c147.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/jsesc-npm-3.1.0-2f4f998cd7-531779df5e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/jsesc-npm-3.1.0-2f4f998cd7-531779df5e.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-140932564c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-140932564c.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-3da6ee62d4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-3da6ee62d4.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/lodash.zip-npm-4.2.0-5299417ec8-e596da80a6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/lodash.zip-npm-4.2.0-5299417ec8-e596da80a6.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-655d110220.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-655d110220.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-d924b57e73.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-d924b57e73.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-1f4df99451.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-1f4df99451.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-c63d6e8000.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-c63d6e8000.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-77947f2253.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-77947f2253.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/path-parse-npm-1.0.7-09564527b7-11ce261f9d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/path-parse-npm-1.0.7-09564527b7-11ce261f9d.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-666f6973f3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-666f6973f3.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-59ece7ca2f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-59ece7ca2f.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/raf-schd-npm-4.0.3-18f72af738-ecabf0957c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/raf-schd-npm-4.0.3-18f72af738-ecabf0957c.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-33977da7a5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-33977da7a5.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/react-uid-npm-2.4.0-54d5631b5d-5e01e8d3a4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/react-uid-npm-2.4.0-54d5631b5d-5e01e8d3a4.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-1b16eb2c4b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-1b16eb2c4b.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-8408eec31a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-8408eec31a.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/resolve-npm-1.22.10-d6fd9cdec7-8967e1f4e2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/resolve-npm-1.22.10-d6fd9cdec7-8967e1f4e2.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/resolve-patch-b5982cfa8c-52a4e505bb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/resolve-patch-b5982cfa8c-52a4e505bb.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/source-map-npm-0.5.7-7c3f035429-904e767bb9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/source-map-npm-0.5.7-7c3f035429-904e767bb9.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/stylis-npm-4.2.0-6b07f11c99-a7128ad5a8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/stylis-npm-4.2.0-6b07f11c99-a7128ad5a8.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-6c40323407.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-6c40323407.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/tiny-invariant-npm-1.3.3-e622f1447c-65af4a0732.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/tiny-invariant-npm-1.3.3-e622f1447c-65af4a0732.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/tslib-npm-2.8.1-66590b21b8-9c4759110a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/tslib-npm-2.8.1-66590b21b8-9c4759110a.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/use-memo-one-npm-1.1.3-b9dc77468a-3d596e65a6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/use-memo-one-npm-1.1.3-b9dc77468a-3d596e65a6.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarn/cache/yaml-npm-1.10.2-0e780aebdf-5c28b9eb7a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/import-js/eslint-import-resolver-typescript/ff0445fab1f545fa1413503d2e854efb224e6f3f/tests/unit/pnp/.yarn/cache/yaml-npm-1.10.2-0e780aebdf-5c28b9eb7a.zip -------------------------------------------------------------------------------- /tests/unit/pnp/.yarnrc.yml: -------------------------------------------------------------------------------- 1 | enableGlobalCache: false 2 | 3 | nodeLinker: pnp 4 | 5 | yarnPath: .yarn/releases/yarn-4.8.1.cjs 6 | -------------------------------------------------------------------------------- /tests/unit/pnp/README.md: -------------------------------------------------------------------------------- 1 | # pnp 2 | -------------------------------------------------------------------------------- /tests/unit/pnp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pnp", 3 | "type": "module", 4 | "packageManager": "yarn@4.8.1", 5 | "devDependencies": { 6 | "@atlaskit/pragmatic-drag-and-drop": "^1.7.0", 7 | "lodash.zip": "^4.2.0" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/unit/pnp/yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 8 6 | cacheKey: 10c0 7 | 8 | "@atlaskit/analytics-next-stable-react-context@npm:1.0.1": 9 | version: 1.0.1 10 | resolution: "@atlaskit/analytics-next-stable-react-context@npm:1.0.1" 11 | dependencies: 12 | tslib: "npm:^2.0.0" 13 | peerDependencies: 14 | react: ^16.8.0 15 | checksum: 10c0/b32e35c2606cf21848f182144f01571de9cc87da5a8fce9f3c2003fa74462d9b7d0dde6bd7dd0dceecb484574cb97d6103343324e9746a2e16d01ba004773ffb 16 | languageName: node 17 | linkType: hard 18 | 19 | "@atlaskit/analytics-next@npm:^11.0.0": 20 | version: 11.0.0 21 | resolution: "@atlaskit/analytics-next@npm:11.0.0" 22 | dependencies: 23 | "@atlaskit/analytics-next-stable-react-context": "npm:1.0.1" 24 | "@atlaskit/platform-feature-flags": "npm:^1.1.0" 25 | "@babel/runtime": "npm:^7.0.0" 26 | prop-types: "npm:^15.5.10" 27 | use-memo-one: "npm:^1.1.1" 28 | peerDependencies: 29 | react: ^18.2.0 30 | react-dom: ^18.2.0 31 | checksum: 10c0/c5b0fb7f4c5e0a814233ecc8096e5576ec5e859b7d77a92ba9b262e8c54df58f68644c22f9729c2749b9dc3dca26b8ed2358a3fe18a3fb187f655a528112f87b 32 | languageName: node 33 | linkType: hard 34 | 35 | "@atlaskit/app-provider@npm:^2.2.0": 36 | version: 2.2.0 37 | resolution: "@atlaskit/app-provider@npm:2.2.0" 38 | dependencies: 39 | "@atlaskit/platform-feature-flags": "npm:^1.1.0" 40 | "@atlaskit/tokens": "npm:^4.9.0" 41 | "@babel/runtime": "npm:^7.0.0" 42 | bind-event-listener: "npm:^3.0.0" 43 | peerDependencies: 44 | react: ^18.2.0 45 | checksum: 10c0/553cf510da6eb59ca697ed76d9bae8c23a9cc8c1206c194cdae848232468a3ef1475421fe4e6e7a77ee1aa36c2671b2d25ca7b01cc239285bb0e131149bbb3e5 46 | languageName: node 47 | linkType: hard 48 | 49 | "@atlaskit/atlassian-context@npm:^0.2.0": 50 | version: 0.2.0 51 | resolution: "@atlaskit/atlassian-context@npm:0.2.0" 52 | dependencies: 53 | "@babel/runtime": "npm:^7.0.0" 54 | peerDependencies: 55 | react: ^18.2.0 56 | checksum: 10c0/c9481e62c0ac8986352c74d95750f2191e9c0cb2c807337987c400ec716884089d2e858a73b79bdb4d47abf04cc4fbe735aa7fdd8072e1a733bacd40e789cdd6 57 | languageName: node 58 | linkType: hard 59 | 60 | "@atlaskit/css@npm:^0.10.0": 61 | version: 0.10.6 62 | resolution: "@atlaskit/css@npm:0.10.6" 63 | dependencies: 64 | "@atlaskit/tokens": "npm:^4.7.0" 65 | "@babel/runtime": "npm:^7.0.0" 66 | "@compiled/react": "npm:^0.18.3" 67 | peerDependencies: 68 | react: ^18.2.0 69 | checksum: 10c0/16f1fa4b9c9f4a06c8aecb7c7360c29981a3e549ee187186da38b151fc336daa709a3a9fff9d83b4bf1ed79c7bcb0d4d28515e804cc478a933f70a0e69fafcc0 70 | languageName: node 71 | linkType: hard 72 | 73 | "@atlaskit/ds-lib@npm:^4.0.0": 74 | version: 4.0.0 75 | resolution: "@atlaskit/ds-lib@npm:4.0.0" 76 | dependencies: 77 | "@atlaskit/platform-feature-flags": "npm:^1.1.0" 78 | "@babel/runtime": "npm:^7.0.0" 79 | bind-event-listener: "npm:^3.0.0" 80 | react-uid: "npm:^2.2.0" 81 | peerDependencies: 82 | react: ^18.2.0 83 | checksum: 10c0/3b42595e40c7d7fa42bd41a07391a0e0d44804cacd1d14bb755e51adc2b865a77fabeb04d9441593251edca356cc6c109aeebc555166584640739840fea72c3c 84 | languageName: node 85 | linkType: hard 86 | 87 | "@atlaskit/feature-gate-js-client@npm:^5.0.0": 88 | version: 5.3.1 89 | resolution: "@atlaskit/feature-gate-js-client@npm:5.3.1" 90 | dependencies: 91 | "@atlaskit/atlassian-context": "npm:^0.2.0" 92 | "@babel/runtime": "npm:^7.0.0" 93 | "@statsig/client-core": "npm:^3.16.0" 94 | "@statsig/js-client": "npm:^3.16.0" 95 | eventemitter2: "npm:^4.1.0" 96 | checksum: 10c0/f1deae06d554fb353d6f36268db3040a490a9ebdd5540bff79c6e2c72cae3037d82b9fc40007fc242a6df12b50c152270e04a4bc882889cb6515eacff1000b01 97 | languageName: node 98 | linkType: hard 99 | 100 | "@atlaskit/interaction-context@npm:^3.0.0": 101 | version: 3.0.0 102 | resolution: "@atlaskit/interaction-context@npm:3.0.0" 103 | dependencies: 104 | "@babel/runtime": "npm:^7.0.0" 105 | peerDependencies: 106 | react: ^18.2.0 107 | checksum: 10c0/ff1defa45387c2479ac7acccec0d8d72e5c4a858a793b2a2e4684958a1749cf45c9005791435b6352dae1a1d2b83dea43bd6583722065ad707029118da74c111 108 | languageName: node 109 | linkType: hard 110 | 111 | "@atlaskit/link@npm:^3.2.0": 112 | version: 3.2.0 113 | resolution: "@atlaskit/link@npm:3.2.0" 114 | dependencies: 115 | "@atlaskit/css": "npm:^0.10.0" 116 | "@atlaskit/platform-feature-flags": "npm:^1.1.0" 117 | "@atlaskit/primitives": "npm:^14.8.0" 118 | "@atlaskit/tokens": "npm:^4.9.0" 119 | "@babel/runtime": "npm:^7.0.0" 120 | "@compiled/react": "npm:^0.18.3" 121 | peerDependencies: 122 | react: ^18.2.0 123 | checksum: 10c0/f3551a340a929eb737b211daf6d10188efc23a531cfab88304ac50b0035d6f32023548e5ccf9cba09585c21e3b54a61f69d157157fc9240b27f80fd2d2acba89 124 | languageName: node 125 | linkType: hard 126 | 127 | "@atlaskit/platform-feature-flags@npm:^1.1.0": 128 | version: 1.1.1 129 | resolution: "@atlaskit/platform-feature-flags@npm:1.1.1" 130 | dependencies: 131 | "@atlaskit/feature-gate-js-client": "npm:^5.0.0" 132 | "@babel/runtime": "npm:^7.0.0" 133 | checksum: 10c0/3bdd0e19b4d4066f9bb5a1ab968ae847ff320c669feac9f5d15bc6de62a232114f5b9e47e9987565eb8c95b2a93d42fd86bc9893e58d37aa99cca4c9a69006ec 134 | languageName: node 135 | linkType: hard 136 | 137 | "@atlaskit/pragmatic-drag-and-drop@npm:^1.7.0": 138 | version: 1.7.0 139 | resolution: "@atlaskit/pragmatic-drag-and-drop@npm:1.7.0" 140 | dependencies: 141 | "@atlaskit/link": "npm:^3.2.0" 142 | "@atlaskit/platform-feature-flags": "npm:^1.1.0" 143 | "@babel/runtime": "npm:^7.0.0" 144 | bind-event-listener: "npm:^3.0.0" 145 | raf-schd: "npm:^4.0.3" 146 | checksum: 10c0/dc5f2970865d7c9986f5c82c11e50fe7410971712ac23d78308163e1402c027fba3d79a752548f5f433918568e0c480099ff117e983eeaff7d45a55fa0290bca 147 | languageName: node 148 | linkType: hard 149 | 150 | "@atlaskit/primitives@npm:^14.8.0": 151 | version: 14.8.0 152 | resolution: "@atlaskit/primitives@npm:14.8.0" 153 | dependencies: 154 | "@atlaskit/analytics-next": "npm:^11.0.0" 155 | "@atlaskit/app-provider": "npm:^2.2.0" 156 | "@atlaskit/css": "npm:^0.10.0" 157 | "@atlaskit/ds-lib": "npm:^4.0.0" 158 | "@atlaskit/interaction-context": "npm:^3.0.0" 159 | "@atlaskit/tokens": "npm:^4.9.0" 160 | "@atlaskit/visually-hidden": "npm:^3.0.0" 161 | "@babel/runtime": "npm:^7.0.0" 162 | "@compiled/react": "npm:^0.18.3" 163 | "@emotion/react": "npm:^11.7.1" 164 | "@emotion/serialize": "npm:^1.1.0" 165 | bind-event-listener: "npm:^3.0.0" 166 | tiny-invariant: "npm:^1.2.0" 167 | peerDependencies: 168 | react: ^18.2.0 169 | checksum: 10c0/08bdc3c6becd2e23b28c57364555caf0357d8ddbcbb9691828815b575e0ca80cf2d1d3329ce00453eb01a96c26c409cd0b5d92f5e7a6a202f2f56037017dfd61 170 | languageName: node 171 | linkType: hard 172 | 173 | "@atlaskit/tokens@npm:^4.7.0, @atlaskit/tokens@npm:^4.9.0": 174 | version: 4.9.0 175 | resolution: "@atlaskit/tokens@npm:4.9.0" 176 | dependencies: 177 | "@atlaskit/ds-lib": "npm:^4.0.0" 178 | "@atlaskit/platform-feature-flags": "npm:^1.1.0" 179 | "@babel/runtime": "npm:^7.0.0" 180 | "@babel/traverse": "npm:^7.23.2" 181 | "@babel/types": "npm:^7.20.0" 182 | bind-event-listener: "npm:^3.0.0" 183 | peerDependencies: 184 | react: ^18.2.0 185 | checksum: 10c0/5158f0c204fd5334ad4316287f3b02057c6a88467c181ba240b43990b0d68ed79f8639624251a5a61f06bc58f75ce8910c035b7671d36b6efc008d1192056e53 186 | languageName: node 187 | linkType: hard 188 | 189 | "@atlaskit/visually-hidden@npm:^3.0.0": 190 | version: 3.0.3 191 | resolution: "@atlaskit/visually-hidden@npm:3.0.3" 192 | dependencies: 193 | "@babel/runtime": "npm:^7.0.0" 194 | "@compiled/react": "npm:^0.18.3" 195 | peerDependencies: 196 | react: ^18.2.0 197 | checksum: 10c0/6cddb8ff7c07c227d50c698110b57342e9c66677888ceca5f262557b164c06f93108f1b76d11536d0d895101b2644897793a7376cd51d8704492815cfb376a85 198 | languageName: node 199 | linkType: hard 200 | 201 | "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.27.1": 202 | version: 7.27.1 203 | resolution: "@babel/code-frame@npm:7.27.1" 204 | dependencies: 205 | "@babel/helper-validator-identifier": "npm:^7.27.1" 206 | js-tokens: "npm:^4.0.0" 207 | picocolors: "npm:^1.1.1" 208 | checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 209 | languageName: node 210 | linkType: hard 211 | 212 | "@babel/generator@npm:^7.27.1": 213 | version: 7.27.1 214 | resolution: "@babel/generator@npm:7.27.1" 215 | dependencies: 216 | "@babel/parser": "npm:^7.27.1" 217 | "@babel/types": "npm:^7.27.1" 218 | "@jridgewell/gen-mapping": "npm:^0.3.5" 219 | "@jridgewell/trace-mapping": "npm:^0.3.25" 220 | jsesc: "npm:^3.0.2" 221 | checksum: 10c0/c4156434b21818f558ebd93ce45f027c53ee570ce55a84fd2d9ba45a79ad204c17e0bff753c886fb6c07df3385445a9e34dc7ccb070d0ac7e80bb91c8b57f423 222 | languageName: node 223 | linkType: hard 224 | 225 | "@babel/helper-module-imports@npm:^7.16.7": 226 | version: 7.27.1 227 | resolution: "@babel/helper-module-imports@npm:7.27.1" 228 | dependencies: 229 | "@babel/traverse": "npm:^7.27.1" 230 | "@babel/types": "npm:^7.27.1" 231 | checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 232 | languageName: node 233 | linkType: hard 234 | 235 | "@babel/helper-string-parser@npm:^7.27.1": 236 | version: 7.27.1 237 | resolution: "@babel/helper-string-parser@npm:7.27.1" 238 | checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 239 | languageName: node 240 | linkType: hard 241 | 242 | "@babel/helper-validator-identifier@npm:^7.27.1": 243 | version: 7.27.1 244 | resolution: "@babel/helper-validator-identifier@npm:7.27.1" 245 | checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 246 | languageName: node 247 | linkType: hard 248 | 249 | "@babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": 250 | version: 7.27.2 251 | resolution: "@babel/parser@npm:7.27.2" 252 | dependencies: 253 | "@babel/types": "npm:^7.27.1" 254 | bin: 255 | parser: ./bin/babel-parser.js 256 | checksum: 10c0/3c06692768885c2f58207fc8c2cbdb4a44df46b7d93135a083f6eaa49310f7ced490ce76043a2a7606cdcc13f27e3d835e141b692f2f6337a2e7f43c1dbb04b4 257 | languageName: node 258 | linkType: hard 259 | 260 | "@babel/runtime@npm:^7.0.0": 261 | version: 7.27.0 262 | resolution: "@babel/runtime@npm:7.27.0" 263 | dependencies: 264 | regenerator-runtime: "npm:^0.14.0" 265 | checksum: 10c0/35091ea9de48bd7fd26fb177693d64f4d195eb58ab2b142b893b7f3fa0f1d7c677604d36499ae0621a3703f35ba0c6a8f6c572cc8f7dc0317213841e493cf663 266 | languageName: node 267 | linkType: hard 268 | 269 | "@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3": 270 | version: 7.27.1 271 | resolution: "@babel/runtime@npm:7.27.1" 272 | checksum: 10c0/530a7332f86ac5a7442250456823a930906911d895c0b743bf1852efc88a20a016ed4cd26d442d0ca40ae6d5448111e02a08dd638a4f1064b47d080e2875dc05 273 | languageName: node 274 | linkType: hard 275 | 276 | "@babel/template@npm:^7.27.1": 277 | version: 7.27.2 278 | resolution: "@babel/template@npm:7.27.2" 279 | dependencies: 280 | "@babel/code-frame": "npm:^7.27.1" 281 | "@babel/parser": "npm:^7.27.2" 282 | "@babel/types": "npm:^7.27.1" 283 | checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 284 | languageName: node 285 | linkType: hard 286 | 287 | "@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.27.1": 288 | version: 7.27.1 289 | resolution: "@babel/traverse@npm:7.27.1" 290 | dependencies: 291 | "@babel/code-frame": "npm:^7.27.1" 292 | "@babel/generator": "npm:^7.27.1" 293 | "@babel/parser": "npm:^7.27.1" 294 | "@babel/template": "npm:^7.27.1" 295 | "@babel/types": "npm:^7.27.1" 296 | debug: "npm:^4.3.1" 297 | globals: "npm:^11.1.0" 298 | checksum: 10c0/d912110037b03b1d70a2436cfd51316d930366a5f54252da2bced1ba38642f644f848240a951e5caf12f1ef6c40d3d96baa92ea6e84800f2e891c15e97b25d50 299 | languageName: node 300 | linkType: hard 301 | 302 | "@babel/types@npm:^7.20.0, @babel/types@npm:^7.27.1": 303 | version: 7.27.1 304 | resolution: "@babel/types@npm:7.27.1" 305 | dependencies: 306 | "@babel/helper-string-parser": "npm:^7.27.1" 307 | "@babel/helper-validator-identifier": "npm:^7.27.1" 308 | checksum: 10c0/ed736f14db2fdf0d36c539c8e06b6bb5e8f9649a12b5c0e1c516fed827f27ef35085abe08bf4d1302a4e20c9a254e762eed453bce659786d4a6e01ba26a91377 309 | languageName: node 310 | linkType: hard 311 | 312 | "@compiled/react@npm:^0.18.3": 313 | version: 0.18.4 314 | resolution: "@compiled/react@npm:0.18.4" 315 | dependencies: 316 | csstype: "npm:^3.1.3" 317 | peerDependencies: 318 | react: ">= 16.12.0" 319 | checksum: 10c0/3192db22392b7be872446eaa84028251aa9fdc8c7c013c4e33079ebf5767e89598aa688988f068e8cd3a196a32d0cf9f993ad41b2a4ef2832bedbf27af7e8c7d 320 | languageName: node 321 | linkType: hard 322 | 323 | "@emotion/babel-plugin@npm:^11.13.5": 324 | version: 11.13.5 325 | resolution: "@emotion/babel-plugin@npm:11.13.5" 326 | dependencies: 327 | "@babel/helper-module-imports": "npm:^7.16.7" 328 | "@babel/runtime": "npm:^7.18.3" 329 | "@emotion/hash": "npm:^0.9.2" 330 | "@emotion/memoize": "npm:^0.9.0" 331 | "@emotion/serialize": "npm:^1.3.3" 332 | babel-plugin-macros: "npm:^3.1.0" 333 | convert-source-map: "npm:^1.5.0" 334 | escape-string-regexp: "npm:^4.0.0" 335 | find-root: "npm:^1.1.0" 336 | source-map: "npm:^0.5.7" 337 | stylis: "npm:4.2.0" 338 | checksum: 10c0/8ccbfec7defd0e513cb8a1568fa179eac1e20c35fda18aed767f6c59ea7314363ebf2de3e9d2df66c8ad78928dc3dceeded84e6fa8059087cae5c280090aeeeb 339 | languageName: node 340 | linkType: hard 341 | 342 | "@emotion/cache@npm:^11.14.0": 343 | version: 11.14.0 344 | resolution: "@emotion/cache@npm:11.14.0" 345 | dependencies: 346 | "@emotion/memoize": "npm:^0.9.0" 347 | "@emotion/sheet": "npm:^1.4.0" 348 | "@emotion/utils": "npm:^1.4.2" 349 | "@emotion/weak-memoize": "npm:^0.4.0" 350 | stylis: "npm:4.2.0" 351 | checksum: 10c0/3fa3e7a431ab6f8a47c67132a00ac8358f428c1b6c8421d4b20de9df7c18e95eec04a5a6ff5a68908f98d3280044f247b4965ac63df8302d2c94dba718769724 352 | languageName: node 353 | linkType: hard 354 | 355 | "@emotion/hash@npm:^0.9.2": 356 | version: 0.9.2 357 | resolution: "@emotion/hash@npm:0.9.2" 358 | checksum: 10c0/0dc254561a3cc0a06a10bbce7f6a997883fd240c8c1928b93713f803a2e9153a257a488537012efe89dbe1246f2abfe2add62cdb3471a13d67137fcb808e81c2 359 | languageName: node 360 | linkType: hard 361 | 362 | "@emotion/memoize@npm:^0.9.0": 363 | version: 0.9.0 364 | resolution: "@emotion/memoize@npm:0.9.0" 365 | checksum: 10c0/13f474a9201c7f88b543e6ea42f55c04fb2fdc05e6c5a3108aced2f7e7aa7eda7794c56bba02985a46d8aaa914fcdde238727a98341a96e2aec750d372dadd15 366 | languageName: node 367 | linkType: hard 368 | 369 | "@emotion/react@npm:^11.7.1": 370 | version: 11.14.0 371 | resolution: "@emotion/react@npm:11.14.0" 372 | dependencies: 373 | "@babel/runtime": "npm:^7.18.3" 374 | "@emotion/babel-plugin": "npm:^11.13.5" 375 | "@emotion/cache": "npm:^11.14.0" 376 | "@emotion/serialize": "npm:^1.3.3" 377 | "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" 378 | "@emotion/utils": "npm:^1.4.2" 379 | "@emotion/weak-memoize": "npm:^0.4.0" 380 | hoist-non-react-statics: "npm:^3.3.1" 381 | peerDependencies: 382 | react: ">=16.8.0" 383 | peerDependenciesMeta: 384 | "@types/react": 385 | optional: true 386 | checksum: 10c0/d0864f571a9f99ec643420ef31fde09e2006d3943a6aba079980e4d5f6e9f9fecbcc54b8f617fe003c00092ff9d5241179149ffff2810cb05cf72b4620cfc031 387 | languageName: node 388 | linkType: hard 389 | 390 | "@emotion/serialize@npm:^1.1.0, @emotion/serialize@npm:^1.3.3": 391 | version: 1.3.3 392 | resolution: "@emotion/serialize@npm:1.3.3" 393 | dependencies: 394 | "@emotion/hash": "npm:^0.9.2" 395 | "@emotion/memoize": "npm:^0.9.0" 396 | "@emotion/unitless": "npm:^0.10.0" 397 | "@emotion/utils": "npm:^1.4.2" 398 | csstype: "npm:^3.0.2" 399 | checksum: 10c0/b28cb7de59de382021de2b26c0c94ebbfb16967a1b969a56fdb6408465a8993df243bfbd66430badaa6800e1834724e84895f5a6a9d97d0d224de3d77852acb4 400 | languageName: node 401 | linkType: hard 402 | 403 | "@emotion/sheet@npm:^1.4.0": 404 | version: 1.4.0 405 | resolution: "@emotion/sheet@npm:1.4.0" 406 | checksum: 10c0/3ca72d1650a07d2fbb7e382761b130b4a887dcd04e6574b2d51ce578791240150d7072a9bcb4161933abbcd1e38b243a6fb4464a7fe991d700c17aa66bb5acc7 407 | languageName: node 408 | linkType: hard 409 | 410 | "@emotion/unitless@npm:^0.10.0": 411 | version: 0.10.0 412 | resolution: "@emotion/unitless@npm:0.10.0" 413 | checksum: 10c0/150943192727b7650eb9a6851a98034ddb58a8b6958b37546080f794696141c3760966ac695ab9af97efe10178690987aee4791f9f0ad1ff76783cdca83c1d49 414 | languageName: node 415 | linkType: hard 416 | 417 | "@emotion/use-insertion-effect-with-fallbacks@npm:^1.2.0": 418 | version: 1.2.0 419 | resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.2.0" 420 | peerDependencies: 421 | react: ">=16.8.0" 422 | checksum: 10c0/074dbc92b96bdc09209871070076e3b0351b6b47efefa849a7d9c37ab142130767609ca1831da0055988974e3b895c1de7606e4c421fecaa27c3e56a2afd3b08 423 | languageName: node 424 | linkType: hard 425 | 426 | "@emotion/utils@npm:^1.4.2": 427 | version: 1.4.2 428 | resolution: "@emotion/utils@npm:1.4.2" 429 | checksum: 10c0/7d0010bf60a2a8c1a033b6431469de4c80e47aeb8fd856a17c1d1f76bbc3a03161a34aeaa78803566e29681ca551e7bf9994b68e9c5f5c796159923e44f78d9a 430 | languageName: node 431 | linkType: hard 432 | 433 | "@emotion/weak-memoize@npm:^0.4.0": 434 | version: 0.4.0 435 | resolution: "@emotion/weak-memoize@npm:0.4.0" 436 | checksum: 10c0/64376af11f1266042d03b3305c30b7502e6084868e33327e944b539091a472f089db307af69240f7188f8bc6b319276fd7b141a36613f1160d73d12a60f6ca1a 437 | languageName: node 438 | linkType: hard 439 | 440 | "@jridgewell/gen-mapping@npm:^0.3.5": 441 | version: 0.3.8 442 | resolution: "@jridgewell/gen-mapping@npm:0.3.8" 443 | dependencies: 444 | "@jridgewell/set-array": "npm:^1.2.1" 445 | "@jridgewell/sourcemap-codec": "npm:^1.4.10" 446 | "@jridgewell/trace-mapping": "npm:^0.3.24" 447 | checksum: 10c0/c668feaf86c501d7c804904a61c23c67447b2137b813b9ce03eca82cb9d65ac7006d766c218685d76e3d72828279b6ee26c347aa1119dab23fbaf36aed51585a 448 | languageName: node 449 | linkType: hard 450 | 451 | "@jridgewell/resolve-uri@npm:^3.1.0": 452 | version: 3.1.2 453 | resolution: "@jridgewell/resolve-uri@npm:3.1.2" 454 | checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e 455 | languageName: node 456 | linkType: hard 457 | 458 | "@jridgewell/set-array@npm:^1.2.1": 459 | version: 1.2.1 460 | resolution: "@jridgewell/set-array@npm:1.2.1" 461 | checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 462 | languageName: node 463 | linkType: hard 464 | 465 | "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": 466 | version: 1.5.0 467 | resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" 468 | checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 469 | languageName: node 470 | linkType: hard 471 | 472 | "@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": 473 | version: 0.3.25 474 | resolution: "@jridgewell/trace-mapping@npm:0.3.25" 475 | dependencies: 476 | "@jridgewell/resolve-uri": "npm:^3.1.0" 477 | "@jridgewell/sourcemap-codec": "npm:^1.4.14" 478 | checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 479 | languageName: node 480 | linkType: hard 481 | 482 | "@statsig/client-core@npm:3.17.1, @statsig/client-core@npm:^3.16.0": 483 | version: 3.17.1 484 | resolution: "@statsig/client-core@npm:3.17.1" 485 | checksum: 10c0/4553ddff9e2df2095ddd571e173706fdee775834b0007691ae0fcd61e25921a95741d0db002668eae4b352543442ce462c45a23e240c39f7fde3f0c937f72768 486 | languageName: node 487 | linkType: hard 488 | 489 | "@statsig/js-client@npm:^3.16.0": 490 | version: 3.17.1 491 | resolution: "@statsig/js-client@npm:3.17.1" 492 | dependencies: 493 | "@statsig/client-core": "npm:3.17.1" 494 | checksum: 10c0/ffa2218a564f62e4245c885ae312a0045548f74987f8b030b685152c92043d767f5623ff6c4c275078ea750ef6440c0eab19304d4602c82c56b05ea94df3d2cb 495 | languageName: node 496 | linkType: hard 497 | 498 | "@types/parse-json@npm:^4.0.0": 499 | version: 4.0.2 500 | resolution: "@types/parse-json@npm:4.0.2" 501 | checksum: 10c0/b1b863ac34a2c2172fbe0807a1ec4d5cb684e48d422d15ec95980b81475fac4fdb3768a8b13eef39130203a7c04340fc167bae057c7ebcafd7dec9fe6c36aeb1 502 | languageName: node 503 | linkType: hard 504 | 505 | "babel-plugin-macros@npm:^3.1.0": 506 | version: 3.1.0 507 | resolution: "babel-plugin-macros@npm:3.1.0" 508 | dependencies: 509 | "@babel/runtime": "npm:^7.12.5" 510 | cosmiconfig: "npm:^7.0.0" 511 | resolve: "npm:^1.19.0" 512 | checksum: 10c0/c6dfb15de96f67871d95bd2e8c58b0c81edc08b9b087dc16755e7157f357dc1090a8dc60ebab955e92587a9101f02eba07e730adc253a1e4cf593ca3ebd3839c 513 | languageName: node 514 | linkType: hard 515 | 516 | "bind-event-listener@npm:^3.0.0": 517 | version: 3.0.0 518 | resolution: "bind-event-listener@npm:3.0.0" 519 | checksum: 10c0/08eadf1c7d3a58633f25c2bbd8dc066f77ef4e5df1049e81ff2f43a40c00f6581aba37387caa4878782b1f1f7c337b827757f52b637052a465ad74a7e1db8def 520 | languageName: node 521 | linkType: hard 522 | 523 | "callsites@npm:^3.0.0": 524 | version: 3.1.0 525 | resolution: "callsites@npm:3.1.0" 526 | checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 527 | languageName: node 528 | linkType: hard 529 | 530 | "convert-source-map@npm:^1.5.0": 531 | version: 1.9.0 532 | resolution: "convert-source-map@npm:1.9.0" 533 | checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b 534 | languageName: node 535 | linkType: hard 536 | 537 | "cosmiconfig@npm:^7.0.0": 538 | version: 7.1.0 539 | resolution: "cosmiconfig@npm:7.1.0" 540 | dependencies: 541 | "@types/parse-json": "npm:^4.0.0" 542 | import-fresh: "npm:^3.2.1" 543 | parse-json: "npm:^5.0.0" 544 | path-type: "npm:^4.0.0" 545 | yaml: "npm:^1.10.0" 546 | checksum: 10c0/b923ff6af581638128e5f074a5450ba12c0300b71302398ea38dbeabd33bbcaa0245ca9adbedfcf284a07da50f99ede5658c80bb3e39e2ce770a99d28a21ef03 547 | languageName: node 548 | linkType: hard 549 | 550 | "csstype@npm:^3.0.2, csstype@npm:^3.1.3": 551 | version: 3.1.3 552 | resolution: "csstype@npm:3.1.3" 553 | checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 554 | languageName: node 555 | linkType: hard 556 | 557 | "debug@npm:^4.3.1": 558 | version: 4.4.1 559 | resolution: "debug@npm:4.4.1" 560 | dependencies: 561 | ms: "npm:^2.1.3" 562 | peerDependenciesMeta: 563 | supports-color: 564 | optional: true 565 | checksum: 10c0/d2b44bc1afd912b49bb7ebb0d50a860dc93a4dd7d946e8de94abc957bb63726b7dd5aa48c18c2386c379ec024c46692e15ed3ed97d481729f929201e671fcd55 566 | languageName: node 567 | linkType: hard 568 | 569 | "error-ex@npm:^1.3.1": 570 | version: 1.3.2 571 | resolution: "error-ex@npm:1.3.2" 572 | dependencies: 573 | is-arrayish: "npm:^0.2.1" 574 | checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce 575 | languageName: node 576 | linkType: hard 577 | 578 | "escape-string-regexp@npm:^4.0.0": 579 | version: 4.0.0 580 | resolution: "escape-string-regexp@npm:4.0.0" 581 | checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 582 | languageName: node 583 | linkType: hard 584 | 585 | "eventemitter2@npm:^4.1.0": 586 | version: 4.1.2 587 | resolution: "eventemitter2@npm:4.1.2" 588 | checksum: 10c0/32b5ca5d9db342e697a857fa61e0349bcba77baca958a2590e7faa30530eaa831d7d620408a11c990e9d1c503a89254423f900085b09b60afa341809c20f57bb 589 | languageName: node 590 | linkType: hard 591 | 592 | "find-root@npm:^1.1.0": 593 | version: 1.1.0 594 | resolution: "find-root@npm:1.1.0" 595 | checksum: 10c0/1abc7f3bf2f8d78ff26d9e00ce9d0f7b32e5ff6d1da2857bcdf4746134c422282b091c672cde0572cac3840713487e0a7a636af9aa1b74cb11894b447a521efa 596 | languageName: node 597 | linkType: hard 598 | 599 | "function-bind@npm:^1.1.2": 600 | version: 1.1.2 601 | resolution: "function-bind@npm:1.1.2" 602 | checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 603 | languageName: node 604 | linkType: hard 605 | 606 | "globals@npm:^11.1.0": 607 | version: 11.12.0 608 | resolution: "globals@npm:11.12.0" 609 | checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 610 | languageName: node 611 | linkType: hard 612 | 613 | "hasown@npm:^2.0.2": 614 | version: 2.0.2 615 | resolution: "hasown@npm:2.0.2" 616 | dependencies: 617 | function-bind: "npm:^1.1.2" 618 | checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 619 | languageName: node 620 | linkType: hard 621 | 622 | "hoist-non-react-statics@npm:^3.3.1": 623 | version: 3.3.2 624 | resolution: "hoist-non-react-statics@npm:3.3.2" 625 | dependencies: 626 | react-is: "npm:^16.7.0" 627 | checksum: 10c0/fe0889169e845d738b59b64badf5e55fa3cf20454f9203d1eb088df322d49d4318df774828e789898dcb280e8a5521bb59b3203385662ca5e9218a6ca5820e74 628 | languageName: node 629 | linkType: hard 630 | 631 | "import-fresh@npm:^3.2.1": 632 | version: 3.3.1 633 | resolution: "import-fresh@npm:3.3.1" 634 | dependencies: 635 | parent-module: "npm:^1.0.0" 636 | resolve-from: "npm:^4.0.0" 637 | checksum: 10c0/bf8cc494872fef783249709385ae883b447e3eb09db0ebd15dcead7d9afe7224dad7bd7591c6b73b0b19b3c0f9640eb8ee884f01cfaf2887ab995b0b36a0cbec 638 | languageName: node 639 | linkType: hard 640 | 641 | "is-arrayish@npm:^0.2.1": 642 | version: 0.2.1 643 | resolution: "is-arrayish@npm:0.2.1" 644 | checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 645 | languageName: node 646 | linkType: hard 647 | 648 | "is-core-module@npm:^2.16.0": 649 | version: 2.16.1 650 | resolution: "is-core-module@npm:2.16.1" 651 | dependencies: 652 | hasown: "npm:^2.0.2" 653 | checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd 654 | languageName: node 655 | linkType: hard 656 | 657 | "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": 658 | version: 4.0.0 659 | resolution: "js-tokens@npm:4.0.0" 660 | checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed 661 | languageName: node 662 | linkType: hard 663 | 664 | "jsesc@npm:^3.0.2": 665 | version: 3.1.0 666 | resolution: "jsesc@npm:3.1.0" 667 | bin: 668 | jsesc: bin/jsesc 669 | checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 670 | languageName: node 671 | linkType: hard 672 | 673 | "json-parse-even-better-errors@npm:^2.3.0": 674 | version: 2.3.1 675 | resolution: "json-parse-even-better-errors@npm:2.3.1" 676 | checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 677 | languageName: node 678 | linkType: hard 679 | 680 | "lines-and-columns@npm:^1.1.6": 681 | version: 1.2.4 682 | resolution: "lines-and-columns@npm:1.2.4" 683 | checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d 684 | languageName: node 685 | linkType: hard 686 | 687 | "lodash.zip@npm:^4.2.0": 688 | version: 4.2.0 689 | resolution: "lodash.zip@npm:4.2.0" 690 | checksum: 10c0/e596da80a6138e369998b50c78b51ed6cf984b4f239e59056aa18dca5972a213c491c511caf5888a2dec603c67265caf942099bec554a86a5c7ff1937d57f0e4 691 | languageName: node 692 | linkType: hard 693 | 694 | "loose-envify@npm:^1.4.0": 695 | version: 1.4.0 696 | resolution: "loose-envify@npm:1.4.0" 697 | dependencies: 698 | js-tokens: "npm:^3.0.0 || ^4.0.0" 699 | bin: 700 | loose-envify: cli.js 701 | checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e 702 | languageName: node 703 | linkType: hard 704 | 705 | "ms@npm:^2.1.3": 706 | version: 2.1.3 707 | resolution: "ms@npm:2.1.3" 708 | checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 709 | languageName: node 710 | linkType: hard 711 | 712 | "object-assign@npm:^4.1.1": 713 | version: 4.1.1 714 | resolution: "object-assign@npm:4.1.1" 715 | checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 716 | languageName: node 717 | linkType: hard 718 | 719 | "parent-module@npm:^1.0.0": 720 | version: 1.0.1 721 | resolution: "parent-module@npm:1.0.1" 722 | dependencies: 723 | callsites: "npm:^3.0.0" 724 | checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 725 | languageName: node 726 | linkType: hard 727 | 728 | "parse-json@npm:^5.0.0": 729 | version: 5.2.0 730 | resolution: "parse-json@npm:5.2.0" 731 | dependencies: 732 | "@babel/code-frame": "npm:^7.0.0" 733 | error-ex: "npm:^1.3.1" 734 | json-parse-even-better-errors: "npm:^2.3.0" 735 | lines-and-columns: "npm:^1.1.6" 736 | checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 737 | languageName: node 738 | linkType: hard 739 | 740 | "path-parse@npm:^1.0.7": 741 | version: 1.0.7 742 | resolution: "path-parse@npm:1.0.7" 743 | checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 744 | languageName: node 745 | linkType: hard 746 | 747 | "path-type@npm:^4.0.0": 748 | version: 4.0.0 749 | resolution: "path-type@npm:4.0.0" 750 | checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c 751 | languageName: node 752 | linkType: hard 753 | 754 | "picocolors@npm:^1.1.1": 755 | version: 1.1.1 756 | resolution: "picocolors@npm:1.1.1" 757 | checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 758 | languageName: node 759 | linkType: hard 760 | 761 | "pnp@workspace:.": 762 | version: 0.0.0-use.local 763 | resolution: "pnp@workspace:." 764 | dependencies: 765 | "@atlaskit/pragmatic-drag-and-drop": "npm:^1.7.0" 766 | lodash.zip: "npm:^4.2.0" 767 | languageName: unknown 768 | linkType: soft 769 | 770 | "prop-types@npm:^15.5.10": 771 | version: 15.8.1 772 | resolution: "prop-types@npm:15.8.1" 773 | dependencies: 774 | loose-envify: "npm:^1.4.0" 775 | object-assign: "npm:^4.1.1" 776 | react-is: "npm:^16.13.1" 777 | checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077 778 | languageName: node 779 | linkType: hard 780 | 781 | "raf-schd@npm:^4.0.3": 782 | version: 4.0.3 783 | resolution: "raf-schd@npm:4.0.3" 784 | checksum: 10c0/ecabf0957c05fad059779bddcd992f1a9d3a35dfea439a6f0935c382fcf4f7f7fa60489e467b4c2db357a3665167d2a379782586b59712bb36c766e02824709b 785 | languageName: node 786 | linkType: hard 787 | 788 | "react-is@npm:^16.13.1, react-is@npm:^16.7.0": 789 | version: 16.13.1 790 | resolution: "react-is@npm:16.13.1" 791 | checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 792 | languageName: node 793 | linkType: hard 794 | 795 | "react-uid@npm:^2.2.0": 796 | version: 2.4.0 797 | resolution: "react-uid@npm:2.4.0" 798 | dependencies: 799 | tslib: "npm:^2.0.0" 800 | peerDependencies: 801 | "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 802 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 803 | peerDependenciesMeta: 804 | "@types/react": 805 | optional: true 806 | checksum: 10c0/5e01e8d3a4144d160af26f7ea8300887ed8379ee14b1fad7979ea755d5bfa4badfdab531cb7d4495488e94083f829bd5b28a8f6661522b11729fceb42dcf73ea 807 | languageName: node 808 | linkType: hard 809 | 810 | "regenerator-runtime@npm:^0.14.0": 811 | version: 0.14.1 812 | resolution: "regenerator-runtime@npm:0.14.1" 813 | checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 814 | languageName: node 815 | linkType: hard 816 | 817 | "resolve-from@npm:^4.0.0": 818 | version: 4.0.0 819 | resolution: "resolve-from@npm:4.0.0" 820 | checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 821 | languageName: node 822 | linkType: hard 823 | 824 | "resolve@npm:^1.19.0": 825 | version: 1.22.10 826 | resolution: "resolve@npm:1.22.10" 827 | dependencies: 828 | is-core-module: "npm:^2.16.0" 829 | path-parse: "npm:^1.0.7" 830 | supports-preserve-symlinks-flag: "npm:^1.0.0" 831 | bin: 832 | resolve: bin/resolve 833 | checksum: 10c0/8967e1f4e2cc40f79b7e080b4582b9a8c5ee36ffb46041dccb20e6461161adf69f843b43067b4a375de926a2cd669157e29a29578191def399dd5ef89a1b5203 834 | languageName: node 835 | linkType: hard 836 | 837 | "resolve@patch:resolve@npm%3A^1.19.0#optional!builtin": 838 | version: 1.22.10 839 | resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" 840 | dependencies: 841 | is-core-module: "npm:^2.16.0" 842 | path-parse: "npm:^1.0.7" 843 | supports-preserve-symlinks-flag: "npm:^1.0.0" 844 | bin: 845 | resolve: bin/resolve 846 | checksum: 10c0/52a4e505bbfc7925ac8f4cd91fd8c4e096b6a89728b9f46861d3b405ac9a1ccf4dcbf8befb4e89a2e11370dacd0160918163885cbc669369590f2f31f4c58939 847 | languageName: node 848 | linkType: hard 849 | 850 | "source-map@npm:^0.5.7": 851 | version: 0.5.7 852 | resolution: "source-map@npm:0.5.7" 853 | checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 854 | languageName: node 855 | linkType: hard 856 | 857 | "stylis@npm:4.2.0": 858 | version: 4.2.0 859 | resolution: "stylis@npm:4.2.0" 860 | checksum: 10c0/a7128ad5a8ed72652c6eba46bed4f416521bc9745a460ef5741edc725252cebf36ee45e33a8615a7057403c93df0866ab9ee955960792db210bb80abd5ac6543 861 | languageName: node 862 | linkType: hard 863 | 864 | "supports-preserve-symlinks-flag@npm:^1.0.0": 865 | version: 1.0.0 866 | resolution: "supports-preserve-symlinks-flag@npm:1.0.0" 867 | checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 868 | languageName: node 869 | linkType: hard 870 | 871 | "tiny-invariant@npm:^1.2.0": 872 | version: 1.3.3 873 | resolution: "tiny-invariant@npm:1.3.3" 874 | checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a 875 | languageName: node 876 | linkType: hard 877 | 878 | "tslib@npm:^2.0.0": 879 | version: 2.8.1 880 | resolution: "tslib@npm:2.8.1" 881 | checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 882 | languageName: node 883 | linkType: hard 884 | 885 | "use-memo-one@npm:^1.1.1": 886 | version: 1.1.3 887 | resolution: "use-memo-one@npm:1.1.3" 888 | peerDependencies: 889 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 890 | checksum: 10c0/3d596e65a6b47b2f1818061599738e00daad1f9a9bb4e5ce1f014b20a35b297e50fe4bf1d8c1699ab43ea97f01f84649a736c15ceff96de83bfa696925f6cc6b 891 | languageName: node 892 | linkType: hard 893 | 894 | "yaml@npm:^1.10.0": 895 | version: 1.10.2 896 | resolution: "yaml@npm:1.10.2" 897 | checksum: 10c0/5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f 898 | languageName: node 899 | linkType: hard 900 | -------------------------------------------------------------------------------- /tests/unit/unit.spec.ts: -------------------------------------------------------------------------------- 1 | import path from 'node:path' 2 | 3 | import { exec } from 'tinyexec' 4 | 5 | import { 6 | createTypeScriptImportResolver, 7 | TSCONFIG_NOT_FOUND_REGEXP, 8 | } from 'eslint-import-resolver-typescript' 9 | 10 | const { dirname } = import.meta 11 | 12 | const TIMEOUT = 60_000 13 | 14 | describe('createTypeScriptImportResolver', async () => { 15 | const resolver = createTypeScriptImportResolver() 16 | 17 | it( 18 | 'should work with pnp', 19 | async () => { 20 | const pnpDir = path.resolve(dirname, 'pnp') 21 | 22 | await exec('yarn', [], { 23 | nodeOptions: { 24 | cwd: pnpDir, 25 | }, 26 | }) 27 | 28 | const testfile = path.resolve(pnpDir, '__test__.js') 29 | 30 | expect(resolver.resolve('pnpapi', testfile)).toMatchInlineSnapshot(` 31 | { 32 | "found": true, 33 | "path": "/tests/unit/pnp/.pnp.cjs", 34 | } 35 | `) 36 | 37 | expect(resolver.resolve('lodash.zip', testfile)).toMatchInlineSnapshot(` 38 | { 39 | "found": true, 40 | "path": "/tests/unit/pnp/.yarn/cache/lodash.zip-npm-4.2.0-5299417ec8-e596da80a6.zip/node_modules/lodash.zip/index.js", 41 | } 42 | `) 43 | 44 | expect( 45 | resolver.resolve('@atlaskit/pragmatic-drag-and-drop/combine', testfile), 46 | ).toMatchInlineSnapshot(` 47 | { 48 | "found": true, 49 | "path": "/tests/unit/pnp/.yarn/cache/@atlaskit-pragmatic-drag-and-drop-npm-1.7.0-2fb827d798-dc5f297086.zip/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/types/entry-point/combine.d.ts", 50 | } 51 | `) 52 | }, 53 | TIMEOUT, 54 | ) 55 | 56 | it('should resolve .d.ts with .ts extension', () => { 57 | const dtsDir = path.resolve(dirname, 'dts') 58 | 59 | const testfile = path.resolve(dtsDir, '__test__.js') 60 | 61 | expect(resolver.resolve('./foo.ts', testfile)).toMatchInlineSnapshot(` 62 | { 63 | "found": true, 64 | "path": "/tests/unit/dts/foo.d.ts", 65 | } 66 | `) 67 | }) 68 | 69 | it('should error on malformed tsconfig reference', () => { 70 | const project = path.resolve(dirname, 'malformed-reference') 71 | 72 | const resolver = createTypeScriptImportResolver({ project }) 73 | 74 | const testfile = path.resolve(project, '__test__.js') 75 | 76 | expect(() => resolver.resolve('index.js', testfile)).toThrowError( 77 | TSCONFIG_NOT_FOUND_REGEXP, 78 | ) 79 | }) 80 | }) 81 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.lib" 3 | } 4 | -------------------------------------------------------------------------------- /tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@1stg/tsconfig/node16", 3 | "compilerOptions": { 4 | // https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping#node-16 5 | "lib": ["ES2021"], 6 | "rootDir": "." 7 | }, 8 | "exclude": [ 9 | "lib", 10 | "tests/e2e/absoluteAlias", 11 | "tests/e2e/withJsExtension/ctsImportee.cts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | 3 | export default defineConfig({ 4 | resolve: { 5 | alias: { 6 | 'eslint-import-resolver-typescript': new URL( 7 | 'src/index.ts', 8 | import.meta.url, 9 | ).pathname, 10 | }, 11 | }, 12 | test: { 13 | globals: true, 14 | coverage: { 15 | enabled: true, 16 | include: ['src/**/*.ts'], 17 | }, 18 | setupFiles: ['vitest.setup.ts'], 19 | }, 20 | }) 21 | -------------------------------------------------------------------------------- /vitest.setup.ts: -------------------------------------------------------------------------------- 1 | import { createSnapshotSerializer } from 'path-serializer' 2 | import { expect } from 'vitest' 3 | 4 | expect.addSnapshotSerializer(createSnapshotSerializer()) 5 | --------------------------------------------------------------------------------