-
-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat!: add support for Node.js ESM resolution #4
Conversation
BTW, something weird happened when I ran Was that on purpose? Did I miss something? What I did was revert the doc changes before commiting, but if that was erroneous, please tell me and I'll add them back in another commit. (also please see #5, where I believe this plugin should be renamed) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great, I just have a few minor questions/suggestions. Thanks for the PR! 👍
{ | ||
filename: fixture("test.js"), | ||
code: "import something from 'esm-module/sub';", | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add some invalid cases?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, shit. The failing test opened a hornet's nest of problems. Will get back to you in a few... :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, that "invalid case" test failed because it was valid. The code allows things that Node.js ESM just doesn't allow. So I changed it, and now other tests that passed do NOT pass, because they allowed things that are not allowed! So this is turning into quite the work for me. It'll take me a few days. Will definitely get back to you on this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I should have been clearer. I mean not using the right esm export. e.g.
{"exports": {".": "src/main.js"}}
import mod from "esm-module/src/main"; // => error
import mod from "esm-module/src/main.js"; // => error
import mod from "esm-module/src/not-main.js"; // => error
{ | ||
filename: fixture("test.js"), | ||
code: "import something from 'esm-module/sub';", | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to confirm: is the import()
supported too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. It goes through the exact same mechanism. I'll add a test, just for documentation purposes.
scripts/update.js
Outdated
@@ -4,6 +4,8 @@ | |||
*/ | |||
"use strict" | |||
|
|||
require("./convert-pure-esm-to-cjs") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this could unexpectedly update the import-meta-resolve
, as we are not using package-lock.
I would suggest running a separate script to upgrade it.
b14f43f
to
09108d7
Compare
OK, big change from previous change. The problem in my previous code was that while it passed new ESM resolutions (like resolutions that use the new Note that this means that supporting This could theoretically break existing code, and thus should be a SEMVER_MAJOR change, but only theoretically, because anyway it would break the Node.js code that is running. |
it looks like md files were re-formatted in the new pushed commit, no intentional? |
@aladdin-add Huh. Strange. Not intentional. I did some changes in the md files to remove the |
09108d7
to
2dd5161
Compare
properties: { | ||
tryExtensions: getTryExtensions.schema, | ||
}, | ||
properties: {}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❗️removing the tryExtensions
will be a breaking change.
Just to be sure that I understood the current state:
My current problem is a program that uses Thanks for working on this topic. |
@BePo65 exactly! And what prompted this PR for me is that suddenly there are packages out there with no |
I was wondering if it can be released in a non-major version.
|
Your call! I tend to be strict in my interpretation of semver. But that's me! From my POV, I don't care. We'd really love this PR to be merged, because we are a heavy ESM shop, and this is interfering with our ability to use the nice features of ESM like |
released in v15.0.0, thanks for the awesome work! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [eslint-plugin-n](https://togithub.com/eslint-community/eslint-plugin-n) | [`14.0.0` -> `16.6.2`](https://renovatebot.com/diffs/npm/eslint-plugin-n/14.0.0/16.6.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-n/16.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-n/16.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-n/14.0.0/16.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-n/14.0.0/16.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>eslint-community/eslint-plugin-n (eslint-plugin-n)</summary> ### [`v16.6.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.6.1...16.6.2) - fix: no-callback-literal ignore unknown nodes ([#​163](https://togithub.com/eslint-community/eslint-plugin-n/issues/163)) ([`5fc2198`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5fc2198)) ### [`v16.6.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.6.0...16.6.1) - fix: eslint 7.0 support ([#​156](https://togithub.com/eslint-community/eslint-plugin-n/issues/156)) ([`2419888`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2419888)) ### [`v16.6.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.5.0...16.6.0) - feat: supported new globals added in the new node.js versions ([#​154](https://togithub.com/eslint-community/eslint-plugin-n/issues/154)) ([`7628925`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7628925)) ### [`v16.5.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.5.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.4.0...16.5.0) ##### Features - feat: Add builtins check for ES2021 to no-unsupported-features/es-builtins rule ([#​153](https://togithub.com/eslint-community/eslint-plugin-n/issues/153)) ([`15a5850`](https://togithub.com/eslint-community/eslint-plugin-n/commit/15a5850)) - feat: Add syntax check for ES2021 to no-unsupported-features/es-syntax rule ([#​152](https://togithub.com/eslint-community/eslint-plugin-n/issues/152)) ([`6835a10`](https://togithub.com/eslint-community/eslint-plugin-n/commit/6835a10)) ##### Docs & Chores - docs: Auto-generate configs list with eslint-doc-generator ([#​146](https://togithub.com/eslint-community/eslint-plugin-n/issues/146)) ([`6409e34`](https://togithub.com/eslint-community/eslint-plugin-n/commit/6409e34)) - chore: Configure Renovate ([`0d6a0fe`](https://togithub.com/eslint-community/eslint-plugin-n/commit/0d6a0fe)) ### [`v16.4.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.4.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.3.1...16.4.0) - feat: eslint v9.0.0 compatibility (fixes [#​143](https://togithub.com/eslint-community/eslint-plugin-n/issues/143)) ([#​144](https://togithub.com/eslint-community/eslint-plugin-n/issues/144)) ([`b075568`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b075568)) - docs: add playground (fixes [#​25](https://togithub.com/eslint-community/eslint-plugin-n/issues/25)) ([#​145](https://togithub.com/eslint-community/eslint-plugin-n/issues/145)) ([`8bd6c7e`](https://togithub.com/eslint-community/eslint-plugin-n/commit/8bd6c7e)) ### [`v16.3.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.3.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.3.0...16.3.1) - fix: Change to using is-builtin-module ([#​138](https://togithub.com/eslint-community/eslint-plugin-n/issues/138)) ([`2846f4f`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2846f4f)) ### [`v16.3.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.3.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.2.0...16.3.0) Features: - feat: Export the moduleType from ImportTarget ([#​132](https://togithub.com/eslint-community/eslint-plugin-n/issues/132)) ([`ff01930`](https://togithub.com/eslint-community/eslint-plugin-n/commit/ff01930)) Chores: - chore: Remove unused "meta.docs.category" property ([#​133](https://togithub.com/eslint-community/eslint-plugin-n/issues/133)) ([`22ba54c`](https://togithub.com/eslint-community/eslint-plugin-n/commit/22ba54c)) - docs: Fix spelling in no-callback-literal.md ([#​135](https://togithub.com/eslint-community/eslint-plugin-n/issues/135)) ([`79c8afd`](https://togithub.com/eslint-community/eslint-plugin-n/commit/79c8afd)) - docs: change rule desc input to textarea in new-rule template ([`446e744`](https://togithub.com/eslint-community/eslint-plugin-n/commit/446e744)) - docs: add issue templates ([#​130](https://togithub.com/eslint-community/eslint-plugin-n/issues/130)) ([`2200c43`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2200c43)) - docs: Fix grammatically incorrect `Additional ESLint's rules` ([#​129](https://togithub.com/eslint-community/eslint-plugin-n/issues/129)) ([`fba650a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/fba650a)) ### [`v16.2.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.2.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.1.0...16.2.0) #### Features - feat: detect non-member expressions in n/no-sync ([#​127](https://togithub.com/eslint-community/eslint-plugin-n/issues/127)) ([`6d02512`](https://togithub.com/eslint-community/eslint-plugin-n/commit/6d02512)) #### Bugfixes - fix: Normalise `package.json#files` before checking ignores and whitelist ([#​123](https://togithub.com/eslint-community/eslint-plugin-n/issues/123)) (fixes [#​122](https://togithub.com/eslint-community/eslint-plugin-n/issues/122)) ([`2d43f48`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2d43f48)) #### Docs & Chores - docs: fix repository URL:s, tweak badges + remove old non-working `codecov` ([#​125](https://togithub.com/eslint-community/eslint-plugin-n/issues/125)) ([`5507f43`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5507f43)) - chore: Add a .editorconfig file ([#​126](https://togithub.com/eslint-community/eslint-plugin-n/issues/126)) ([`574df88`](https://togithub.com/eslint-community/eslint-plugin-n/commit/574df88)) - chore: use maintained `npm-run-all` fork ([#​124](https://togithub.com/eslint-community/eslint-plugin-n/issues/124)) ([`98ea90e`](https://togithub.com/eslint-community/eslint-plugin-n/commit/98ea90e)) - ci: fix `actions/setup-node` setup for linting ([`7f54d0c`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7f54d0c)) - chore: remove unused funding.yml ([`4f3891c`](https://togithub.com/eslint-community/eslint-plugin-n/commit/4f3891c)) - docs: Create a shared settings document ([#​115](https://togithub.com/eslint-community/eslint-plugin-n/issues/115)) ([`7d855e6`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7d855e6)) - chore: remove usage of [@​eslint/eslintrc](https://togithub.com/eslint/eslintrc) ([#​116](https://togithub.com/eslint-community/eslint-plugin-n/issues/116)) ([`150b34f`](https://togithub.com/eslint-community/eslint-plugin-n/commit/150b34f)) - build: add node v20 ([#​117](https://togithub.com/eslint-community/eslint-plugin-n/issues/117)) ([`b7d0536`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b7d0536)) ### [`v16.1.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.1.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.0.2...16.1.0) - feat: Allow for automatic ts mapping detection ([#​114](https://togithub.com/eslint-community/eslint-plugin-n/issues/114)) ([`2ab30ce`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2ab30ce)) - feat: add config `flat/recommended` and `flat/mixed-esm-and-cjs` ([#​111](https://togithub.com/eslint-community/eslint-plugin-n/issues/111)) ([`78595c4`](https://togithub.com/eslint-community/eslint-plugin-n/commit/78595c4)) - feat: export flat/recommended-script and flat/recommended-module ([#​113](https://togithub.com/eslint-community/eslint-plugin-n/issues/113)) ([`1f8fdc8`](https://togithub.com/eslint-community/eslint-plugin-n/commit/1f8fdc8)) - feat: add the ability to configure typescript to javascript file extension conversion ([#​112](https://togithub.com/eslint-community/eslint-plugin-n/issues/112)) ([`20d2713`](https://togithub.com/eslint-community/eslint-plugin-n/commit/20d2713)) ### [`v16.0.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.0.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.0.1...16.0.2) - fix: support `node:` prefix ([#​109](https://togithub.com/eslint-community/eslint-plugin-n/issues/109)) ([`fde2ba6`](https://togithub.com/eslint-community/eslint-plugin-n/commit/fde2ba6)) ### [`v16.0.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.0.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.0.0...16.0.1) - fix: Update all dependencies. Fix a few tests where eslint now reports nodeType: null. ([`44cec62`](https://togithub.com/eslint-community/eslint-plugin-n/commit/44cec62)) ### [`v16.0.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.0.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.7.0...16.0.0) #### breaking changes - feat!: update default `ecmaVersion` to 2021 ([#​96](https://togithub.com/eslint-community/eslint-plugin-n/issues/96)) ([`49d3ee7`](https://togithub.com/eslint-community/eslint-plugin-n/commit/49d3ee7)) - feat!: engines.node defaults to 16.0.0 ([#​91](https://togithub.com/eslint-community/eslint-plugin-n/issues/91)) ([`075f0c5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/075f0c5)) - feat!: drop node.js < 16 ([#​90](https://togithub.com/eslint-community/eslint-plugin-n/issues/90)) ([`38a67ef`](https://togithub.com/eslint-community/eslint-plugin-n/commit/38a67ef)) #### features - feat: support eslint.config.js ([#​95](https://togithub.com/eslint-community/eslint-plugin-n/issues/95)) ([`ebc97bf`](https://togithub.com/eslint-community/eslint-plugin-n/commit/ebc97bf)) - feat: upgrade deps to latest ([#​93](https://togithub.com/eslint-community/eslint-plugin-n/issues/93)) ([`aa75610`](https://togithub.com/eslint-community/eslint-plugin-n/commit/aa75610)) ### [`v15.7.0`](https://togithub.com/eslint-community/eslint-plugin-n/compare/17270f8e9d76c10e57041c7a2bed0d9a7a9c4638...fe82e2e0af9ed05833351bf80cfd1134ae9a511d) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.6.1...15.7.0) ### [`v15.6.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.6.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.6.0...15.6.1) - fix: Allow imports of self-referenced package ([#​74](https://togithub.com/eslint-community/eslint-plugin-n/issues/74)) ([`17270f8`](https://togithub.com/eslint-community/eslint-plugin-n/commit/17270f8)) - chore: upgrade eslint-doc-generator v1.4 ([#​76](https://togithub.com/eslint-community/eslint-plugin-n/issues/76)) ([`83446a1`](https://togithub.com/eslint-community/eslint-plugin-n/commit/83446a1)) ### [`v15.6.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.6.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.5.2...15.6.0) - feat: add version as a setting ([#​70](https://togithub.com/eslint-community/eslint-plugin-n/issues/70)) ([`273b937`](https://togithub.com/eslint-community/eslint-plugin-n/commit/273b937)) ### [`v15.5.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.5.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.5.1...15.5.2) - fix: modules support range ([#​71](https://togithub.com/eslint-community/eslint-plugin-n/issues/71)) ([`79b7984`](https://togithub.com/eslint-community/eslint-plugin-n/commit/79b7984)) - chore: update eslint-doc-generator to v1.0.0 ([#​72](https://togithub.com/eslint-community/eslint-plugin-n/issues/72)) ([`27a73d5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/27a73d5)) - build: add node v19(ubuntu) ([#​68](https://togithub.com/eslint-community/eslint-plugin-n/issues/68)) ([`1665777`](https://togithub.com/eslint-community/eslint-plugin-n/commit/1665777)) - docs: cleanup docs, add markdownlint, tweak eslint-doc-generator options ([#​64](https://togithub.com/eslint-community/eslint-plugin-n/issues/64)) ([`bdfd61a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/bdfd61a)) ### [`v15.5.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.5.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.5.0...15.5.1) - fix: consider node: prefix in prefer-global rules ([#​63](https://togithub.com/eslint-community/eslint-plugin-n/issues/63)) ([`dbb7264`](https://togithub.com/eslint-community/eslint-plugin-n/commit/dbb7264)) - chore: upgrade non-major deps ([`b0faa87`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b0faa87)) - chore: Update package.json links to new repository location ([#​62](https://togithub.com/eslint-community/eslint-plugin-n/issues/62)) ([`63fc031`](https://togithub.com/eslint-community/eslint-plugin-n/commit/63fc031)) ### [`v15.5.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.5.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.4.0...15.5.0) - feat: no-unsupported-features support process.report ([#​60](https://togithub.com/eslint-community/eslint-plugin-n/issues/60)) ([`8ce1a64`](https://togithub.com/eslint-community/eslint-plugin-n/commit/8ce1a64)) - docs: automate docs with eslint-doc-generator ([#​61](https://togithub.com/eslint-community/eslint-plugin-n/issues/61)) ([`237b2a1`](https://togithub.com/eslint-community/eslint-plugin-n/commit/237b2a1)) ### [`v15.4.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.4.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.3.0...15.4.0) - feat: Disable the `no-unpublished-x` rules in private packages ([#​57](https://togithub.com/eslint-community/eslint-plugin-n/issues/57)) ([`5ccd0c5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5ccd0c5)) ### [`v15.3.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.3.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.5...15.3.0) - feat: Added supported version for module imports(13.2.0) ([#​52](https://togithub.com/eslint-community/eslint-plugin-n/issues/52)) ([`98b873a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/98b873a)) ### [`v15.2.5`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.5) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.4...15.2.5) - fix: do not crash rule `no-unpublished-require` ([#​49](https://togithub.com/eslint-community/eslint-plugin-n/issues/49)) ([`38b0298`](https://togithub.com/eslint-community/eslint-plugin-n/commit/38b0298)) - chore: tweak eslint config ([`d7b975a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/d7b975a)) - chore: refactor a few rules ([`d879ccb`](https://togithub.com/eslint-community/eslint-plugin-n/commit/d879ccb)) - chore: update a few rules to use messageId ([`c9138e5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/c9138e5)) - fix: upgrade a few (dev)deps to latest ([`b4ec37b`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b4ec37b)) ### [`v15.2.4`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.4) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.3...15.2.4) - fix: range matching fails ([#​31](https://togithub.com/eslint-community/eslint-plugin-n/issues/31)) ([`5a22112`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5a22112)) ### [`v15.2.3`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.3) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.2...15.2.3) - fix: default mapping of sourc .ts import of unspecified extension should be .js ([#​29](https://togithub.com/eslint-community/eslint-plugin-n/issues/29)) ([`3736fa9`](https://togithub.com/eslint-community/eslint-plugin-n/commit/3736fa9)) ### [`v15.2.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.1...15.2.2) - fix: no-missing-import for typescript ([#​24](https://togithub.com/eslint-community/eslint-plugin-n/issues/24)) ([`f65ca8b`](https://togithub.com/eslint-community/eslint-plugin-n/commit/f65ca8b)) ### [`v15.2.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.0...15.2.1) - fix: Add proper file extensions when importing a typescript file from a typescript file ([#​20](https://togithub.com/eslint-community/eslint-plugin-n/issues/20)) ([`c8d0484`](https://togithub.com/eslint-community/eslint-plugin-n/commit/c8d0484)) - chore: upgrade deps to latest ([#​18](https://togithub.com/eslint-community/eslint-plugin-n/issues/18)) ([`88b4d95`](https://togithub.com/eslint-community/eslint-plugin-n/commit/88b4d95)) ### [`v15.2.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.1.0...15.2.0) - feat: exports-style fixable ([#​17](https://togithub.com/eslint-community/eslint-plugin-n/issues/17)) ([`7e2bf41`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7e2bf41)) ### [`v15.1.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.1.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.0.1...15.1.0) - feat: Allow dynamic import for Node.js >=12.17 <13 || >=13.2 ([#​13](https://togithub.com/eslint-community/eslint-plugin-n/issues/13)) ([`caccbef`](https://togithub.com/eslint-community/eslint-plugin-n/commit/caccbef)) ### [`v15.0.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.0.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.0.0...15.0.1) #### What's Changed - ESBuild externals (ESM to CJS bundle) by [@​danielweck](https://togithub.com/danielweck) in [https://github.com/weiran-zsd/eslint-plugin-node/pull/10](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/10) #### New Contributors - [@​danielweck](https://togithub.com/danielweck) made their first contribution in [https://github.com/weiran-zsd/eslint-plugin-node/pull/10](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/10) **Full Changelog**: eslint-community/eslint-plugin-n@15.0.0...15.0.1 ### [`v15.0.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.0.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/14.0.0...15.0.0) #### What's Changed ##### Breaking - removed `tryExtensions` option in the following rules, as they do not work as Node's esm: - file-extension-in-import - no-extraneous-import - no-missing-import - no-unpublished-import ##### Features - add support for Node.js ESM resolution by [@​giltayar](https://togithub.com/giltayar) in [https://github.com/weiran-zsd/eslint-plugin-node/pull/4](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/4) #### New Contributors - [@​giltayar](https://togithub.com/giltayar) made their first contribution in [https://github.com/weiran-zsd/eslint-plugin-node/pull/4](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/4) **Full Changelog**: eslint-community/eslint-plugin-n@14.0.0...15.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/xmldom/xmldom). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [eslint-plugin-n](https://togithub.com/eslint-community/eslint-plugin-n) | devDependencies | major | [`14.0.0` -> `17.4.0`](https://renovatebot.com/diffs/npm/eslint-plugin-n/14.0.0/17.4.0) | --- ### Release Notes <details> <summary>eslint-community/eslint-plugin-n (eslint-plugin-n)</summary> ### [`v17.4.0`](https://togithub.com/eslint-community/eslint-plugin-n/blob/HEAD/CHANGELOG.md#1740-2024-04-30) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/v17.3.1...v17.4.0) ##### 🌟 Features - no-deprecated-api support removed api ([#​240](https://togithub.com/eslint-community/eslint-plugin-n/issues/240)) ([36fd35d](https://togithub.com/eslint-community/eslint-plugin-n/commit/36fd35d9bbbaec43dd911e06bd83625cd1650fb3)) ##### 🩹 Fixes - unsupported-features/node-builtins-modules version comparation ([#​257](https://togithub.com/eslint-community/eslint-plugin-n/issues/257)) ([5c67787](https://togithub.com/eslint-community/eslint-plugin-n/commit/5c67787cb191ff7409fa17ec5b12cfdc3a7a26d3)) ##### 🧹 Chores - Update release manifest (17.3.1) ([#​255](https://togithub.com/eslint-community/eslint-plugin-n/issues/255)) ([cf576cb](https://togithub.com/eslint-community/eslint-plugin-n/commit/cf576cb45bd1f13b675b1612e79f571acfb780af)) ### [`v17.3.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/v17.3.1): Release 17.3.1 [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/v17.3.0...v17.3.1) - Revert "fix: unsupported-features/node-builtins-modules range compare" ([#​254](https://togithub.com/eslint-community/eslint-plugin-n/issues/254)) ([`caecf3e`](https://togithub.com/eslint-community/eslint-plugin-n/commit/caecf3e)) ### [`v17.3.0`](https://togithub.com/eslint-community/eslint-plugin-n/blob/HEAD/CHANGELOG.md#1730-2024-04-24) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/v17.2.1...v17.3.0) ##### 🌟 Features - More es-syntax deprecations ([#​249](https://togithub.com/eslint-community/eslint-plugin-n/issues/249)) ([2ecee79](https://togithub.com/eslint-community/eslint-plugin-n/commit/2ecee796c53733c70ea671a1e029aed9cf06d050)) ##### 🩹 Fixes - unsupported-features/node-builtins-modules range compare ([#​252](https://togithub.com/eslint-community/eslint-plugin-n/issues/252)) ([d50ae85](https://togithub.com/eslint-community/eslint-plugin-n/commit/d50ae85c209a47a8a5d4c1bedaa94e6a77540095)) ##### 🧹 Chores - update outdated funding ([#​246](https://togithub.com/eslint-community/eslint-plugin-n/issues/246)) ([8d711f5](https://togithub.com/eslint-community/eslint-plugin-n/commit/8d711f5446655c9874aeffb2ef28b3c4d8463fb6)) - upgrade globals v15 ([#​241](https://togithub.com/eslint-community/eslint-plugin-n/issues/241)) ([eb11b5b](https://togithub.com/eslint-community/eslint-plugin-n/commit/eb11b5b35a6a797dc7fba6df53b1c4dada3a2a55)) ### [`v17.2.1`](https://togithub.com/eslint-community/eslint-plugin-n/blob/HEAD/CHANGELOG.md#1721-2024-04-15) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/v17.2.0...v17.2.1) ##### 🩹 Fixes - **unsupported-features:** Improve URL module ([#​244](https://togithub.com/eslint-community/eslint-plugin-n/issues/244)) ([6581979](https://togithub.com/eslint-community/eslint-plugin-n/commit/6581979cfb6afa6a50531d37303af24aa7b4db37)), closes [#​243](https://togithub.com/eslint-community/eslint-plugin-n/issues/243) ##### 🧹 Chores - update dependency [@​typescript-eslint/typescript-estree](https://togithub.com/typescript-eslint/typescript-estree) to v7 ([#​236](https://togithub.com/eslint-community/eslint-plugin-n/issues/236)) ([a0b45ee](https://togithub.com/eslint-community/eslint-plugin-n/commit/a0b45ee9c35279c29d3602609dad3b36d95d6f5f)) - update dependency eslint-plugin-eslint-plugin to v6 ([#​237](https://togithub.com/eslint-community/eslint-plugin-n/issues/237)) ([7addf99](https://togithub.com/eslint-community/eslint-plugin-n/commit/7addf998e72d0f8ae92c52b112667bcb2c9558cd)) ### [`v17.2.0`](https://togithub.com/eslint-community/eslint-plugin-n/blob/HEAD/CHANGELOG.md#1720-2024-04-10) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/v17.1.0...v17.2.0) ##### 🌟 Features - **no-missing-imports:** add `tryExtensions` option ([#​228](https://togithub.com/eslint-community/eslint-plugin-n/issues/228)) ([ae5329c](https://togithub.com/eslint-community/eslint-plugin-n/commit/ae5329c06b38da1220a352d4d268cfa8038c0d00)) - **no-unsupported-features:** ✨ Update to node v20.12.0/v21.7.0 ([#​229](https://togithub.com/eslint-community/eslint-plugin-n/issues/229)) ([a8d0539](https://togithub.com/eslint-community/eslint-plugin-n/commit/a8d0539ae99697f0e3441625c61e2e6ed7a10b9a)) ##### 🩹 Fixes - `stream/promises` is stable ([02a264e](https://togithub.com/eslint-community/eslint-plugin-n/commit/02a264e0acb7ba913500e195fe0a2a6aaae74c6e)) - **no-unsupported-features:** `stream/promises` is stable ([#​235](https://togithub.com/eslint-community/eslint-plugin-n/issues/235)) ([02a264e](https://togithub.com/eslint-community/eslint-plugin-n/commit/02a264e0acb7ba913500e195fe0a2a6aaae74c6e)), closes [#​234](https://togithub.com/eslint-community/eslint-plugin-n/issues/234) ### [`v17.1.0`](https://togithub.com/eslint-community/eslint-plugin-n/blob/HEAD/CHANGELOG.md#1710-2024-04-09) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/v17.0.0...v17.1.0) ##### 🌟 Features - add `name` to flat configs ([#​224](https://togithub.com/eslint-community/eslint-plugin-n/issues/224)) ([24512a0](https://togithub.com/eslint-community/eslint-plugin-n/commit/24512a0fe27bcb9b2a0ed20cd83bcbd3c0060d0b)) - **import-target:** Add resolution error reason ([ed7b25c](https://togithub.com/eslint-community/eslint-plugin-n/commit/ed7b25cf4ccb3f27bf89993a7fc8c706e3491ad5)) - remove "is-builtin-module" dependency (fixes [#​232](https://togithub.com/eslint-community/eslint-plugin-n/issues/232)) ([#​227](https://togithub.com/eslint-community/eslint-plugin-n/issues/227)) ([03619ee](https://togithub.com/eslint-community/eslint-plugin-n/commit/03619eed4d24cb8ed79c467fe4a620bd58fea4cd)) ##### 📚 Documentation - add v17 changelog ([#​223](https://togithub.com/eslint-community/eslint-plugin-n/issues/223)) ([4fb36eb](https://togithub.com/eslint-community/eslint-plugin-n/commit/4fb36eb253536b694d16b72d31221c98f1012f9f)) ### [`v17.0.0`](https://togithub.com/eslint-community/eslint-plugin-n/blob/HEAD/CHANGELOG.md#1700-2024-04-08) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.6.2...v17.0.0) ### [`v16.6.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.6.1...16.6.2) - fix: no-callback-literal ignore unknown nodes ([#​163](https://togithub.com/eslint-community/eslint-plugin-n/issues/163)) ([`5fc2198`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5fc2198)) ### [`v16.6.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.6.0...16.6.1) - fix: eslint 7.0 support ([#​156](https://togithub.com/eslint-community/eslint-plugin-n/issues/156)) ([`2419888`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2419888)) ### [`v16.6.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.5.0...16.6.0) - feat: supported new globals added in the new node.js versions ([#​154](https://togithub.com/eslint-community/eslint-plugin-n/issues/154)) ([`7628925`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7628925)) ### [`v16.5.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.5.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.4.0...16.5.0) #### Features - feat: Add builtins check for ES2021 to no-unsupported-features/es-builtins rule ([#​153](https://togithub.com/eslint-community/eslint-plugin-n/issues/153)) ([`15a5850`](https://togithub.com/eslint-community/eslint-plugin-n/commit/15a5850)) - feat: Add syntax check for ES2021 to no-unsupported-features/es-syntax rule ([#​152](https://togithub.com/eslint-community/eslint-plugin-n/issues/152)) ([`6835a10`](https://togithub.com/eslint-community/eslint-plugin-n/commit/6835a10)) #### Docs & Chores - docs: Auto-generate configs list with eslint-doc-generator ([#​146](https://togithub.com/eslint-community/eslint-plugin-n/issues/146)) ([`6409e34`](https://togithub.com/eslint-community/eslint-plugin-n/commit/6409e34)) - chore: Configure Renovate ([`0d6a0fe`](https://togithub.com/eslint-community/eslint-plugin-n/commit/0d6a0fe)) ### [`v16.4.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.4.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.3.1...16.4.0) - feat: eslint v9.0.0 compatibility (fixes [#​143](https://togithub.com/eslint-community/eslint-plugin-n/issues/143)) ([#​144](https://togithub.com/eslint-community/eslint-plugin-n/issues/144)) ([`b075568`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b075568)) - docs: add playground (fixes [#​25](https://togithub.com/eslint-community/eslint-plugin-n/issues/25)) ([#​145](https://togithub.com/eslint-community/eslint-plugin-n/issues/145)) ([`8bd6c7e`](https://togithub.com/eslint-community/eslint-plugin-n/commit/8bd6c7e)) ### [`v16.3.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.3.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.3.0...16.3.1) - fix: Change to using is-builtin-module ([#​138](https://togithub.com/eslint-community/eslint-plugin-n/issues/138)) ([`2846f4f`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2846f4f)) ### [`v16.3.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.3.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.2.0...16.3.0) Features: - feat: Export the moduleType from ImportTarget ([#​132](https://togithub.com/eslint-community/eslint-plugin-n/issues/132)) ([`ff01930`](https://togithub.com/eslint-community/eslint-plugin-n/commit/ff01930)) Chores: - chore: Remove unused "meta.docs.category" property ([#​133](https://togithub.com/eslint-community/eslint-plugin-n/issues/133)) ([`22ba54c`](https://togithub.com/eslint-community/eslint-plugin-n/commit/22ba54c)) - docs: Fix spelling in no-callback-literal.md ([#​135](https://togithub.com/eslint-community/eslint-plugin-n/issues/135)) ([`79c8afd`](https://togithub.com/eslint-community/eslint-plugin-n/commit/79c8afd)) - docs: change rule desc input to textarea in new-rule template ([`446e744`](https://togithub.com/eslint-community/eslint-plugin-n/commit/446e744)) - docs: add issue templates ([#​130](https://togithub.com/eslint-community/eslint-plugin-n/issues/130)) ([`2200c43`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2200c43)) - docs: Fix grammatically incorrect `Additional ESLint's rules` ([#​129](https://togithub.com/eslint-community/eslint-plugin-n/issues/129)) ([`fba650a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/fba650a)) ### [`v16.2.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.2.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.1.0...16.2.0) #### Features - feat: detect non-member expressions in n/no-sync ([#​127](https://togithub.com/eslint-community/eslint-plugin-n/issues/127)) ([`6d02512`](https://togithub.com/eslint-community/eslint-plugin-n/commit/6d02512)) #### Bugfixes - fix: Normalise `package.json#files` before checking ignores and whitelist ([#​123](https://togithub.com/eslint-community/eslint-plugin-n/issues/123)) (fixes [#​122](https://togithub.com/eslint-community/eslint-plugin-n/issues/122)) ([`2d43f48`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2d43f48)) #### Docs & Chores - docs: fix repository URL:s, tweak badges + remove old non-working `codecov` ([#​125](https://togithub.com/eslint-community/eslint-plugin-n/issues/125)) ([`5507f43`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5507f43)) - chore: Add a .editorconfig file ([#​126](https://togithub.com/eslint-community/eslint-plugin-n/issues/126)) ([`574df88`](https://togithub.com/eslint-community/eslint-plugin-n/commit/574df88)) - chore: use maintained `npm-run-all` fork ([#​124](https://togithub.com/eslint-community/eslint-plugin-n/issues/124)) ([`98ea90e`](https://togithub.com/eslint-community/eslint-plugin-n/commit/98ea90e)) - ci: fix `actions/setup-node` setup for linting ([`7f54d0c`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7f54d0c)) - chore: remove unused funding.yml ([`4f3891c`](https://togithub.com/eslint-community/eslint-plugin-n/commit/4f3891c)) - docs: Create a shared settings document ([#​115](https://togithub.com/eslint-community/eslint-plugin-n/issues/115)) ([`7d855e6`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7d855e6)) - chore: remove usage of [@​eslint/eslintrc](https://togithub.com/eslint/eslintrc) ([#​116](https://togithub.com/eslint-community/eslint-plugin-n/issues/116)) ([`150b34f`](https://togithub.com/eslint-community/eslint-plugin-n/commit/150b34f)) - build: add node v20 ([#​117](https://togithub.com/eslint-community/eslint-plugin-n/issues/117)) ([`b7d0536`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b7d0536)) ### [`v16.1.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.1.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.0.2...16.1.0) - feat: Allow for automatic ts mapping detection ([#​114](https://togithub.com/eslint-community/eslint-plugin-n/issues/114)) ([`2ab30ce`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2ab30ce)) - feat: add config `flat/recommended` and `flat/mixed-esm-and-cjs` ([#​111](https://togithub.com/eslint-community/eslint-plugin-n/issues/111)) ([`78595c4`](https://togithub.com/eslint-community/eslint-plugin-n/commit/78595c4)) - feat: export flat/recommended-script and flat/recommended-module ([#​113](https://togithub.com/eslint-community/eslint-plugin-n/issues/113)) ([`1f8fdc8`](https://togithub.com/eslint-community/eslint-plugin-n/commit/1f8fdc8)) - feat: add the ability to configure typescript to javascript file extension conversion ([#​112](https://togithub.com/eslint-community/eslint-plugin-n/issues/112)) ([`20d2713`](https://togithub.com/eslint-community/eslint-plugin-n/commit/20d2713)) ### [`v16.0.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.0.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.0.1...16.0.2) - fix: support `node:` prefix ([#​109](https://togithub.com/eslint-community/eslint-plugin-n/issues/109)) ([`fde2ba6`](https://togithub.com/eslint-community/eslint-plugin-n/commit/fde2ba6)) ### [`v16.0.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.0.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.0.0...16.0.1) - fix: Update all dependencies. Fix a few tests where eslint now reports nodeType: null. ([`44cec62`](https://togithub.com/eslint-community/eslint-plugin-n/commit/44cec62)) ### [`v16.0.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.0.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.7.0...16.0.0) #### breaking changes - feat!: update default `ecmaVersion` to 2021 ([#​96](https://togithub.com/eslint-community/eslint-plugin-n/issues/96)) ([`49d3ee7`](https://togithub.com/eslint-community/eslint-plugin-n/commit/49d3ee7)) - feat!: engines.node defaults to 16.0.0 ([#​91](https://togithub.com/eslint-community/eslint-plugin-n/issues/91)) ([`075f0c5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/075f0c5)) - feat!: drop node.js < 16 ([#​90](https://togithub.com/eslint-community/eslint-plugin-n/issues/90)) ([`38a67ef`](https://togithub.com/eslint-community/eslint-plugin-n/commit/38a67ef)) #### features - feat: support eslint.config.js ([#​95](https://togithub.com/eslint-community/eslint-plugin-n/issues/95)) ([`ebc97bf`](https://togithub.com/eslint-community/eslint-plugin-n/commit/ebc97bf)) - feat: upgrade deps to latest ([#​93](https://togithub.com/eslint-community/eslint-plugin-n/issues/93)) ([`aa75610`](https://togithub.com/eslint-community/eslint-plugin-n/commit/aa75610)) ### [`v15.7.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.7.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.6.1...15.7.0) - feat: no-unpublished-import supports ignoreTypeImport (fixes [#​78](https://togithub.com/eslint-community/eslint-plugin-n/issues/78)) ([#​79](https://togithub.com/eslint-community/eslint-plugin-n/issues/79)) ([`1fc0bf6`](https://togithub.com/eslint-community/eslint-plugin-n/commit/1fc0bf6)) ### [`v15.6.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.6.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.6.0...15.6.1) - fix: Allow imports of self-referenced package ([#​74](https://togithub.com/eslint-community/eslint-plugin-n/issues/74)) ([`17270f8`](https://togithub.com/eslint-community/eslint-plugin-n/commit/17270f8)) - chore: upgrade eslint-doc-generator v1.4 ([#​76](https://togithub.com/eslint-community/eslint-plugin-n/issues/76)) ([`83446a1`](https://togithub.com/eslint-community/eslint-plugin-n/commit/83446a1)) ### [`v15.6.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.6.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.5.2...15.6.0) - feat: add version as a setting ([#​70](https://togithub.com/eslint-community/eslint-plugin-n/issues/70)) ([`273b937`](https://togithub.com/eslint-community/eslint-plugin-n/commit/273b937)) ### [`v15.5.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.5.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.5.1...15.5.2) - fix: modules support range ([#​71](https://togithub.com/eslint-community/eslint-plugin-n/issues/71)) ([`79b7984`](https://togithub.com/eslint-community/eslint-plugin-n/commit/79b7984)) - chore: update eslint-doc-generator to v1.0.0 ([#​72](https://togithub.com/eslint-community/eslint-plugin-n/issues/72)) ([`27a73d5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/27a73d5)) - build: add node v19(ubuntu) ([#​68](https://togithub.com/eslint-community/eslint-plugin-n/issues/68)) ([`1665777`](https://togithub.com/eslint-community/eslint-plugin-n/commit/1665777)) - docs: cleanup docs, add markdownlint, tweak eslint-doc-generator options ([#​64](https://togithub.com/eslint-community/eslint-plugin-n/issues/64)) ([`bdfd61a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/bdfd61a)) ### [`v15.5.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.5.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.5.0...15.5.1) - fix: consider node: prefix in prefer-global rules ([#​63](https://togithub.com/eslint-community/eslint-plugin-n/issues/63)) ([`dbb7264`](https://togithub.com/eslint-community/eslint-plugin-n/commit/dbb7264)) - chore: upgrade non-major deps ([`b0faa87`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b0faa87)) - chore: Update package.json links to new repository location ([#​62](https://togithub.com/eslint-community/eslint-plugin-n/issues/62)) ([`63fc031`](https://togithub.com/eslint-community/eslint-plugin-n/commit/63fc031)) ### [`v15.5.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.5.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.4.0...15.5.0) - feat: no-unsupported-features support process.report ([#​60](https://togithub.com/eslint-community/eslint-plugin-n/issues/60)) ([`8ce1a64`](https://togithub.com/eslint-community/eslint-plugin-n/commit/8ce1a64)) - docs: automate docs with eslint-doc-generator ([#​61](https://togithub.com/eslint-community/eslint-plugin-n/issues/61)) ([`237b2a1`](https://togithub.com/eslint-community/eslint-plugin-n/commit/237b2a1)) ### [`v15.4.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.4.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.3.0...15.4.0) - feat: Disable the `no-unpublished-x` rules in private packages ([#​57](https://togithub.com/eslint-community/eslint-plugin-n/issues/57)) ([`5ccd0c5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5ccd0c5)) ### [`v15.3.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.3.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.5...15.3.0) - feat: Added supported version for module imports(13.2.0) ([#​52](https://togithub.com/eslint-community/eslint-plugin-n/issues/52)) ([`98b873a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/98b873a)) ### [`v15.2.5`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.5) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.4...15.2.5) - fix: do not crash rule `no-unpublished-require` ([#​49](https://togithub.com/eslint-community/eslint-plugin-n/issues/49)) ([`38b0298`](https://togithub.com/eslint-community/eslint-plugin-n/commit/38b0298)) - chore: tweak eslint config ([`d7b975a`](https://togithub.com/eslint-community/eslint-plugin-n/commit/d7b975a)) - chore: refactor a few rules ([`d879ccb`](https://togithub.com/eslint-community/eslint-plugin-n/commit/d879ccb)) - chore: update a few rules to use messageId ([`c9138e5`](https://togithub.com/eslint-community/eslint-plugin-n/commit/c9138e5)) - fix: upgrade a few (dev)deps to latest ([`b4ec37b`](https://togithub.com/eslint-community/eslint-plugin-n/commit/b4ec37b)) ### [`v15.2.4`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.4) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.3...15.2.4) - fix: range matching fails ([#​31](https://togithub.com/eslint-community/eslint-plugin-n/issues/31)) ([`5a22112`](https://togithub.com/eslint-community/eslint-plugin-n/commit/5a22112)) ### [`v15.2.3`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.3) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.2...15.2.3) - fix: default mapping of sourc .ts import of unspecified extension should be .js ([#​29](https://togithub.com/eslint-community/eslint-plugin-n/issues/29)) ([`3736fa9`](https://togithub.com/eslint-community/eslint-plugin-n/commit/3736fa9)) ### [`v15.2.2`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.2) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.1...15.2.2) - fix: no-missing-import for typescript ([#​24](https://togithub.com/eslint-community/eslint-plugin-n/issues/24)) ([`f65ca8b`](https://togithub.com/eslint-community/eslint-plugin-n/commit/f65ca8b)) ### [`v15.2.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.2.0...15.2.1) - fix: Add proper file extensions when importing a typescript file from a typescript file ([#​20](https://togithub.com/eslint-community/eslint-plugin-n/issues/20)) ([`c8d0484`](https://togithub.com/eslint-community/eslint-plugin-n/commit/c8d0484)) - chore: upgrade deps to latest ([#​18](https://togithub.com/eslint-community/eslint-plugin-n/issues/18)) ([`88b4d95`](https://togithub.com/eslint-community/eslint-plugin-n/commit/88b4d95)) ### [`v15.2.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.2.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.1.0...15.2.0) - feat: exports-style fixable ([#​17](https://togithub.com/eslint-community/eslint-plugin-n/issues/17)) ([`7e2bf41`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7e2bf41)) ### [`v15.1.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.1.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.0.1...15.1.0) - feat: Allow dynamic import for Node.js >=12.17 <13 || >=13.2 ([#​13](https://togithub.com/eslint-community/eslint-plugin-n/issues/13)) ([`caccbef`](https://togithub.com/eslint-community/eslint-plugin-n/commit/caccbef)) ### [`v15.0.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.0.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/15.0.0...15.0.1) #### What's Changed - ESBuild externals (ESM to CJS bundle) by [@​danielweck](https://togithub.com/danielweck) in [https://github.com/weiran-zsd/eslint-plugin-node/pull/10](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/10) #### New Contributors - [@​danielweck](https://togithub.com/danielweck) made their first contribution in [https://github.com/weiran-zsd/eslint-plugin-node/pull/10](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/10) **Full Changelog**: eslint-community/eslint-plugin-n@15.0.0...15.0.1 ### [`v15.0.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/15.0.0) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/14.0.0...15.0.0) #### What's Changed ##### Breaking - removed `tryExtensions` option in the following rules, as they do not work as Node's esm: - file-extension-in-import - no-extraneous-import - no-missing-import - no-unpublished-import ##### Features - add support for Node.js ESM resolution by [@​giltayar](https://togithub.com/giltayar) in [https://github.com/weiran-zsd/eslint-plugin-node/pull/4](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/4) #### New Contributors - [@​giltayar](https://togithub.com/giltayar) made their first contribution in [https://github.com/weiran-zsd/eslint-plugin-node/pull/4](https://togithub.com/weiran-zsd/eslint-plugin-node/pull/4) **Full Changelog**: eslint-community/eslint-plugin-n@14.0.0...15.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Adding support for ESM Node.js resolution, for example for packages that have no
main
inpackage.json
.This required me to bring in a package that is similar to
resolve
, but supports modern Node.js ESM resolution. I researched and the only one that fit this purpose wasimport-meta-resolve
.Unfortunately, the package is an ESM only package, and has no CJS import! And even more unfortunately, I couldn't find an "async" entry point in the ESLint plugin so that I could
await import
it. I asked the maintainer of the package to create a CJS entry point (that is also synchronous), but they advised me to build it locally as a CJS, using some bundler (see wooorm/import-meta-resolve#2).This is why there is the dependency on
esbuild
and the shenanigans I do in theupdate
script, whereby I bundle theimport-meta-resolve
package into a file inlib
. I could think of no other way.Fortunately, it works! And I added some tests in this regard.
This fix should probably resolve LOTS of issues surrounding modern package resolution.