Skip to content
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

Merged
merged 5 commits into from Feb 23, 2022

Conversation

giltayar
Copy link

Adding support for ESM Node.js resolution, for example for packages that have no main in package.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 was import-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 the update script, whereby I bundle the import-meta-resolve package into a file in lib. 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.

@giltayar
Copy link
Author

BTW, something weird happened when I ran npm run build. All the docs changed the name of the rule from n to node in the documentation.

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)

@aladdin-add aladdin-add self-requested a review January 23, 2022 15:09
Copy link

@aladdin-add aladdin-add left a 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! 👍

scripts/convert-pure-esm-to-cjs.js Outdated Show resolved Hide resolved
lib/util/import-target.js Outdated Show resolved Hide resolved
lib/rules/no-hide-core-modules.js Outdated Show resolved Hide resolved
lib/util/import-target.js Outdated Show resolved Hide resolved
{
filename: fixture("test.js"),
code: "import something from 'esm-module/sub';",
},

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?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do.

Copy link
Author

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... :-)

Copy link
Author

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.

Copy link

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';",
},

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?

Copy link
Author

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.

@@ -4,6 +4,8 @@
*/
"use strict"

require("./convert-pure-esm-to-cjs")

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.

@giltayar
Copy link
Author

giltayar commented Jan 28, 2022

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 package.json export field), it did not invaliate import-s that are now invalid. For example, import-s that do not have extensions are invalid now from Node v12, and should have failed. They did not. The new commits do this.

Note that this means that supporting tryExtensions in import has no meaning anymore, and thus was removed from import rules (don't worry, it's still there for require rules).

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.

@aladdin-add
Copy link

it looks like md files were re-formatted in the new pushed commit, no intentional?

@giltayar
Copy link
Author

@aladdin-add Huh. Strange. Not intentional. I did some changes in the md files to remove the tryExtensions in the import rules, but that's it. I'll look into it. Please ignore for now?

scripts/update.js Outdated Show resolved Hide resolved
properties: {
tryExtensions: getTryExtensions.schema,
},
properties: {},

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.

@aladdin-add aladdin-add changed the title add support for Node.js ESM resolution feat!: add support for Node.js ESM resolution Feb 7, 2022
@BePo65
Copy link

BePo65 commented Feb 16, 2022

Just to be sure that I understood the current state:

  • 'eslint-plugin-n' V14.0.0 does not support import from packages that have an 'exports' field only
  • this pr would change this, so that packages that have an 'exports' field only can be linted
  • I just have to wait :-)

My current problem is a program that uses got with version 12, which is an esm only package.

Thanks for working on this topic.

@giltayar
Copy link
Author

@BePo65 exactly! And what prompted this PR for me is that suddenly there are packages out there with no main field!

@aladdin-add
Copy link

I was wondering if it can be released in a non-major version.

  1. it is indeed a breaking change to remove tryExtensions supports.
  2. but the option was not actually working as node's esm(technically a bug 😂).

@giltayar
Copy link
Author

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 imports and self-reference of a module. The current code (v10 compatible) kinda works OK, but misses in edge cases, and allows things not allowed in modern ESM (like extensionless paths).

@aladdin-add aladdin-add merged commit d24be36 into eslint-community:master Feb 23, 2022
@aladdin-add
Copy link

released in v15.0.0, thanks for the awesome work!

karfau pushed a commit to xmldom/xmldom that referenced this pull request Mar 26, 2024
[![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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
[#&#8203;143](https://togithub.com/eslint-community/eslint-plugin-n/issues/143))
([#&#8203;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
[#&#8203;25](https://togithub.com/eslint-community/eslint-plugin-n/issues/25))
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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`
([#&#8203;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
([#&#8203;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
([#&#8203;123](https://togithub.com/eslint-community/eslint-plugin-n/issues/123))
(fixes
[#&#8203;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`
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
[@&#8203;eslint/eslintrc](https://togithub.com/eslint/eslintrc)
([#&#8203;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
([#&#8203;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
([#&#8203;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`
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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)
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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)
([#&#8203;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`
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
([#&#8203;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
[@&#8203;danielweck](https://togithub.com/danielweck) in
[eslint-community/eslint-plugin-n#10

#### New Contributors

- [@&#8203;danielweck](https://togithub.com/danielweck) made their first
contribution in
[eslint-community/eslint-plugin-n#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
[@&#8203;giltayar](https://togithub.com/giltayar) in
[eslint-community/eslint-plugin-n#4

#### New Contributors

- [@&#8203;giltayar](https://togithub.com/giltayar) made their first
contribution in
[eslint-community/eslint-plugin-n#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>
kodiakhq bot pushed a commit to cloudquery/setup-cloudquery that referenced this pull request May 6, 2024
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 ([#&#8203;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 ([#&#8203;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) ([#&#8203;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" ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;244](https://togithub.com/eslint-community/eslint-plugin-n/issues/244)) ([6581979](https://togithub.com/eslint-community/eslint-plugin-n/commit/6581979cfb6afa6a50531d37303af24aa7b4db37)), closes [#&#8203;243](https://togithub.com/eslint-community/eslint-plugin-n/issues/243)

##### 🧹 Chores

-   update dependency [@&#8203;typescript-eslint/typescript-estree](https://togithub.com/typescript-eslint/typescript-estree) to v7 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;235](https://togithub.com/eslint-community/eslint-plugin-n/issues/235)) ([02a264e](https://togithub.com/eslint-community/eslint-plugin-n/commit/02a264e0acb7ba913500e195fe0a2a6aaae74c6e)), closes [#&#8203;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 ([#&#8203;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 [#&#8203;232](https://togithub.com/eslint-community/eslint-plugin-n/issues/232)) ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 [#&#8203;143](https://togithub.com/eslint-community/eslint-plugin-n/issues/143)) ([#&#8203;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 [#&#8203;25](https://togithub.com/eslint-community/eslint-plugin-n/issues/25)) ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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` ([#&#8203;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 ([#&#8203;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 ([#&#8203;123](https://togithub.com/eslint-community/eslint-plugin-n/issues/123)) (fixes [#&#8203;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` ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 [@&#8203;eslint/eslintrc](https://togithub.com/eslint/eslintrc) ([#&#8203;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 ([#&#8203;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 ([#&#8203;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` ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 [#&#8203;78](https://togithub.com/eslint-community/eslint-plugin-n/issues/78)) ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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) ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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) ([#&#8203;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` ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 [@&#8203;danielweck](https://togithub.com/danielweck) in [eslint-community/eslint-plugin-n#10

#### New Contributors

-   [@&#8203;danielweck](https://togithub.com/danielweck) made their first contribution in [eslint-community/eslint-plugin-n#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 [@&#8203;giltayar](https://togithub.com/giltayar) in [eslint-community/eslint-plugin-n#4

#### New Contributors

-   [@&#8203;giltayar](https://togithub.com/giltayar) made their first contribution in [eslint-community/eslint-plugin-n#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-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants