- fix: overrides issue
- fix: mocha issue
- fix: great eye node
- chore: update deps. and devDeps.
- fix: disable redundant sonarjs/no-unused-expressions
- chore: update deps. and devDeps.
- fix: cypress issue
- chore: update deps.
- feat:
caughtErrors: none
forno-unused-vars
- fix: apply
no-implicit-globals
rule only if in browser
- fix: apply
lexicalBindings
option only forno-implicit-globals
if in browser - fix: ensure great eye passes on args
- chore: update deps.
- fix: properly disable overly aggressive sonarjs rules
- fix: point to types properly
- chore: update deps.
- fix: properly disable overly aggressive sonarjs rules
- fix: properly disable overly aggressive sonarjs rules
- fix: properly disable overly aggressive sonarjs rules
- fix: properly disable overly aggressive sonarjs rules
- feat: disable overly aggressive sonarjs rules
- fix: Node detection for
requireFlag
- feat: disable overly aggressive sonarjs rules
- fix: disable problematic
sonarjs/sonar-no-fallthrough
rule
- feat: conditional
requireFlag
onrequire-unicode-regexp
- feat: update deps.
- feat: switch to renamed markdown plugin
- chore: update deps.
- chore: update deps.
- fix: disable escompat rules for (Node) overrides files
- feat: add
lintAllEsApis
setting foreslint-plugin-compat
- feat: disable
@brettz9/no-use-ignored-vars
- feat: disable
unicorn/no-anonymous-default-export
for module overrides - chore: update
eslint-plugin-escompat
,eslint-plugin-jsdoc
- feat: loosen some restrictive mocha rules
- chore: uninstall
eslint-plugin-chai-assert-bdd
- fix:
plugins
to includen
in overrides
- fix: make explict that
strict
is global - fix: avoid chai globals
- fix: avoid certain mocha globals that are now imported
- fix: restate
sourceType: "script"
for script-node
- fix: change
cypress/integration
tocypress/e2e
- fix: ensure scripts includes
require
,__dirname
and__filename
- fix: ensure
no-restricted-imports
is off for Node configs (for cases inheriting bare config) - fix: for overrides config, ensure
__dirname
and__filename
are disabled for modules - fix: for scripts, ensure
module
andexports
are at least defined
- feat: add to default Node/default browser folder overrides
- chore: update deps.
- fix(TS): avoid deprecated types
- feat: update Unicorn (uses new rule:
no-length-as-slice-end
)
- feat: add
strict
option forpromise/prefer-await-to-then
- chore: update deps.
- fix:
name
tweaks
- fix: prioritize browser config over cypress (latter has earlier
ecmaVersion
)
- feat: adds escompat
- fix: avoid certain Promise rules in Cypress
- fix: remove/change deprecated rules
- fix: add one missing
name
- feat: add
name
to further configs - chore: bump
semver
and@brettz9/eslint-plugin
- feat: add
name
to configs - fix: disable
import/unambiguous
in Cypress
- fix: disable
import
rule usage in great-eye - fix: ensure great-eye is not used when sauron indicated
- fix: add
server.js
to auto-Node files
- fix: apply Cypress rules to all of
cypress
subdirectories - fix: ensure Node applied to Node RC scripts
- fix: ensure when Node not included that modules does not reference Node rules
BREAKING CHANGE:
Requires Node 18.20.3+
Now to use the main config which is now a function accepting an array of
combinations of the following (and a second optional config for the
babel
option):
"great-eye"|"sauron"|"saruman"|"polyglot"|"bare"|"node"|"browser"| "script"|"module"|"no-overrides"|"no-cypress"|"mocha"|"babel"| "third-party"
Was not able to complete reinclusion for the following due to lack of flat config or ESLint 9 support:
- eslint-plugin-import
- eslint-plugin-escompat (now added)
- eslint-plugin-unsanitized
- @fintechstudios/eslint-plugin-chai-as-promised
- eslint-plugin-mocha-cleanup
Renamed rc
config to overrides
.
Throws if not encountering a browserslist
in package.json
when using
the main browser config.
Adds rules to overrides
for folders, treating folders like public
or
browser
as calling for the browser config. Applies more to the
(auto-Node-based) build
config.
Auto-applies overrides
and cypress
by default.
Renamed third-party config to third-party.js
.
Possibly other changes.
- feat: switch to flat config
- feat: add
bare
andpolyglot
configs - chore: update globals, semver
- chore: some TS work
- feat: detects
sourceType
automatically for .js files too, based onpackage.json
- fix: drop
no-unpublished-import
checks from rc configs - fix: add
eslint.config.js
to ESM configs
- chore: bump devDeps/peerDeps.
- chore: bump devDeps/peerDeps.
- feat(tighten): update unicorn to 50.0.0
- chore: bump devDeps/peerDeps.
- feat(loosen): switch to
markers
for@stylistic/spaced-comment
- chore: bump peerDeps/devDeps
- chore: switch to use stylistic and internal standard (build script is seeing imports as unused despite being used)
- chore: bump peerDeps/devDeps
- fix: update peers.
- feat(
index.js
): addno-object-constructor
- chore: bump peerDeps/devDeps
- chore: bump semver, peerDeps/devDeps
- chore: bump peerDeps/devDeps (including new rule from jsdoc)
- chore: bump peerDeps/devDeps
- chore: bump semver and peerDeps/devDeps
- chore: Update devDeps/peerDeps. (including new rules from Unicorn and jsdoc)
- fix: bump peer for
eslint-plugin-jsdoc
- chore: update
semver
, devDeps. - fix(
index.js
): changetag-lines
tostartLines: null
to keep old behavior
- chore: update
semver
- refactor: disable new, unused JSDoc rules
- fix: add missing cjs extensions to rc.js
- chore: update devDeps/peerDeps.
- chore: update devDeps/peerDeps.
- chore: use new ESLint config package
- fix: update peerDeps.
- feat(
index.js
): enable newimport/no-empty-named-blocks
- feat(
explicitly-unused.js
): disable newimport/consistent-type-specifier-style
rule - chore: update devDeps/peerDeps.
- chore: update devDeps/peerDeps.
- feat(
index.js
): disable a few new Unicorn rules (inherting one other)
- feat(
index.js
): add new built-in rules - feat(
explicitly-unused.js
): disable new unused jsdoc rule - chore: update devDeps.
- feat(
index.js
): add Promise plugin'sno-multiple-resolved
- chore: update devDeps/peerDeps.
- feat(
explicitly-unused.js
): mention new ESLint rule - feat(
index.js
): disable new Unicorn recommended rule and allowno-unnecessary-await
- chore: update semver, devDeps/peerDeps.
- chore: Update devDeps/peerDeps.
- chore: Update devDeps/peerDeps. (including new rule from Unicorn)
- chore(BREAKING): Update to Node 14.19.1
- feat(
index.js
): add newno-constant-binary-expression
rule - chore: Update devDeps/peerDeps.
- feat: update
eslint-config-standard
and per this change, useeslint-plugin-n
in place ofeslint-plugin-node
- feat:
web-ext-config.js
file as CJS - chore: Update devDeps/peerDeps.
- feat(index): support
@uce
as virtual module
- fix(sauron): prevent
object<>
lower-case
- fix(sauron): do allow
object
for now withpreferredTypes
- fix(index, sauron): realign preferences for
Object
, etc., and exempting in@typedef
- fix: Drop preference for
PlainObject
; use TypeScript-compatible JS
- feat: Update devDeps/peerDeps. (including new rules from Unicorn, a couple of which are disabled here)
- feat(
index.js
): add virtual@uce/reactive
toimport/no-unresolved
- feat(
explicitly-unused.js
): addprefer-json-parse-buffer
- refactor: revert Atom release; code not helpful
- fix: bug in
undefined
check
- feat: Attempt Atom-friendly release
- npm: Update devDeps/peerDeps.
- npm: Update devDeps/peerDeps.
- Restore
sonarjs/no-inverted-boolean-check
despite now removal from sonarjs recommended - npm: Update devDeps/peerDeps. (including update from sonarjs)
- npm: Update devDeps/peerDeps. (including new rule from Unicorn)
- Update [
explicitly-unused.js
]: Add newjsdoc/sort-tags
- npm: Update devDeps/peerDeps. (including new rules from Unicorn)
- Update [
explicitly-unused.js
]: Add eslint rule - npm: Update devDeps/peerDeps.
- Enhancement [
index.js
] (tighten): Add Unicorn'sno-empty-file
andprefer-code-point
- npm: Update devDeps/peerDeps.
- Breaking change: Disables
jsdoc/check-examples
due to it not yet working in ESLint 8 (should re-enable when supported) - Enhancement [
index.js
] (tighten): Add new ESLint coreno-unused-private-class-members
rule - Enhancement [
index.js
] (tighten): Add unicornno-invalid-remove-event-listener
andno-useless-fallback-in-spread
rules - Build: Use native ESM
- npm: Update devDeps/peerDeps.
- npm: Update devDeps/peerDeps.
- Fix [
index.js
] (loosen): Disableunicorn/prefer-object-from-entries
- Enhancement [
sauron.js
] (tighten): AddforceReturnsWithAsync
- npm: Update devDeps./peerDeps. (new Unicorn rules)
- Fix: For untyped
Promise
messages, fix casing of "any" - Fix: Clarify that replacing Array could also point to specific array type
- Fix: update devDeps./peerDeps (jsdoc patch)
- Enhancement [
great-eye.js
] (tighten): sethoist: 'all'
forno-shadow
- npm: Update devDeps./peerDeps.
- Enhancement [
sauron.js
] (tighten): SetlexicalBindings
totrue
to avoid browser globals - npm: Update devDeps./peerDeps.
- npm: Update devDeps./peerDeps. (new SonarJS rules)
- Fix: Missing
eslint-plugin-sonarjs
underpeerDependencies
- npm: Update devDeps./peerDeps. (Unicorn patch)
- Breaking change: Restore using
eslint-plugin-sonarjs
which is again being actively updated/maintained.
- Enhancement (
index.js
) [loosen]: Disable somewhat cumbersomeunicorn/prefer-prototype-methods
- npm: Update devDeps./peerDeps. (new Unicorn rules)
- Fix (
node.js
) [loosen]: Disablenode/file-extension-in-import
- Enhancement (
great-eye.js
) [tighten]: Expectunicorn/prefer-object-has-own
- npm: Update devDeps./peerDeps. (new unicorn rules)
- npm: Require latest
eslint-plugin-markdown
(without vulnerabilities)
- npm: Require latest
eslint-config-standard
patch
- npm: Update devDeps./peerDeps. (adds new jsdoc rules)
- npm: Update peerDeps/devDeps
- Enhancement (
index.js
) [tighten]: Addjsdoc/require-asterisk-prefix
- npm: Update peerDeps/devDeps (brings in
unicorn/no-document-cookie
rule)
- npm: Update peerDeps/devDeps
- Fix (
index.js
) [loosen]: Allowfs/promises
- Enhancement (
index.js
) [loosen]: Disable new Unicornprefer-module
andprefer-node-protocol
rules - npm: Update peerDeps/devDeps
- npm: Add
lint
script
- npm: Update peerDeps/devDeps
- Fix (
+script-node.js
) [loosen]: Disableno-process-exit
which the Node plugin adds - npm: Update peerDeps/devDeps
- npm: Update peerDeps/devDeps
- Enhancement (
index.js
) [tighten]: Add Unicorn'sno-static-only-class
- Enhancement (
index.js
) [loosen]: Make explicit avoidal of Unicorn's newprefer-array-flat
until Node 12 - npm: Update
semver
and peerDeps/devDeps.
- npm: Remove now redundant
eslint-plugin-standard
- Fix (
rc.js
and overrides): apply to.mocharc.js
- Fix (
sauron-node-script
/+script-node.js
): AddglobalReturn: true
- npm: Update peerDeps/devDeps.
- Enhancement (
mocha.js
): Addexpect
,assert
,should
globals. - Enhancement (
mocha-plus.js
): Addchai-assert-bdd
plugin
- Enhancement (
node.js
) [tighten]: Resume addingimport/dynamic-require
asnode/global-require
doesn't flag dynamic global requires
- Fix: Override
.ncurc.js
,.3rdparty-eslintrc.js
, and**/jsdoc-config.js
- Add experimental configs
rc-module.js
andrc-script.js
- Enhancement (
node.js
) [loosen]: Addnode/global-require
and instead dropimport/no-dynamic-require
as the redundant one (didn't seem as accurate)
- Enhancement [
sauron-script-overrides.js
]: Add new config - npm: Update peerDeps/devDeps.
- Enhancement [
rc.js
] (loosen): Disablecompat/compat
for RC/build files; check.eslintrc.cjs
also
- Enhancement [
rc.js
] (loosen): Disablenode/no-unpublished-import
for config and build directory files - Refactoring [
node.js
]: Disablenode/no-missing-import
as redundant withimport/no-unresolved
- npm: Add
prepublishOnly
script
- npm: Update devDeps/peerDeps (to allow
rc.js
and its targeting of Markdown pereslint-plugin-markdown
's 2.0 use of ESLint 7's new processor API to be used alongside the updatedeslint-plugin-jsdoc
with its linting of@example
according to the expectations of the same ESLint 7 processor API)
- Fix (
rc.js
): Ensure properly using new Markdown API - Docs: Mention inclusion of "md" in
---ext
if latter is explicit
- Update to use
eslint-plugin-markdown
2.0.0, with its updated use of ESLint's processor API, see https://github.com/eslint/eslint-plugin-markdown/tree/v2.0.0#migrating-from-eslint-plugin-markdown-v1 for migrating. - Update (
rc.js
): Use new Markdown API
- Fix: Avoid
postinstall
script which causes problems for non-pnpm dependents
- Switch from
@mysticatea
to@brettz9
fork (fixes and simplifiespeerDependencies
and removes extra code) - Enhancement (
index.js
) [loosen]: Disable sometimes cumbersomeunicorn/consistent-destructuring
- Enhancement (
index.js
) [loosen]: Addshared-node-browser
env for polyglot-friendly globals (other globals specific to envrionment are not whitelisted); to actually prevent these, will now need to setshared-node-browser
env
tofalse
. - Enhancement (
node.js
) [loosen]: Dropnode/global-require
as redundant withimport/no-dynamic-require
- Enhancement (
node.js
): Based onengines: {node}
setenv: {node: true, es20XX: true}
(extra ES globals as relevant to Node version),parserOptions
ecmaVersion
- pnpm: Switch to pnpm
- npm: Bump semver; peerDeps/devDeps.
- npm: Bump engines to Node 10
Experimental additions:
- Enhancement (
+script-node.js
): Add file for applying script source type with Node; used bysauron-node-script
- Enhancement (
+script.js
): Add file for applying script source type for non-Node; used bysauron-script
- Enhancement (
sauron-node-overrides.js
):sauron-node
withrc
andmocha
- Enhancement (
sauron-node-script-overrides.js
):sauron-node-script
withrc
andmocha
- Enhancement (
sauron-overrides.js
):sauron
withrc
andmocha
- Enhancement (
sauron-script.js
):sauron
with+script.js
file - Enhancement (
+babel.js
): Add file for wrapping a module to support equivalent babel/eslint-parser rules - Enhancement (
mocha.js
): Sets up Mocha (andchai
global) on test directories (via overrides) - Enhancement (
mocha-plus.js
): Strict but reasonable rules for checking Mocha/Chai (not naming "sauron" as not bundling with Sauron) - Enhancement (
cypress.js
): Strict but reasonable rules for checking Cypress - Enhancement (
rc.js
): Add config for usingoverrides
to give Rollup and RC config files to support modules where available (and script where not) - Refactoring (
sauron-node-script.js
): Use new+script-node.js
file
- npm: Update peerDeps/devDeps.
- Breaking enhancement: Switch from SonarJS to Radar, a maintained fork which
doesn't warn when using ESLint 7 for
peerDependencies
. Changesinherited-rules/implicitly-included/sonars-recommended.js
toinherited-rules/implicitly-included/radar-recommended.js
- Enhancement: Enforce type on
yields
- Enhancement [
index.js
] (tighten): Update new jsdoc and Unicorn rules, though disableunicorn/no-array-for-each
- Enhancement [
great-eye.js
] (tighten): Prevent plain use of even subclassedPromise<>
to instead use an interface where the specific resolver and rejector can be documented. - npm: Update peerDeps/devDeps.
- Enhancement [
index.js
] (tighten): Uses all new Unicorn 26.0.0 rules - remark: remove remarkrc
- npm: Update peerDeps/devDeps.
- Enhancement [
index.js
] (tighten): Addno-nonoctal-decimal-escape
andno-unsafe-optional-chaining
- Enhancement [
index.js
] (tighten): Addunicorn/prefer-array-some
,unicorn/prefer-date-now
,unicorn/prefer-default-parameters
- Enhancement [
index.js
] (tighten): Use renamed Unicorn rules - Enhancement [
index.js
]: Avoid new Unicorn rulesno-lonely-if
andempty-brace-spaces
- Update [
explicitly-unused.js
]: Add renamed Unicorn rules - npm: Update peerDeps/devDeps.
- Enhancement [
index.js
]: Apply latest standard; remove now unneededstandard/no-calback-literal
,no-negated-in-lhs
- Enhancement [
explicitly-unused.js
]: Remove disabling ofnode/no-callback-literal
(rule now used) - npm: Update peerDeps/devDeps.
- Enhancement [
index.js
]: AddcheckDefaults
,checkParams
, andcheckProperties
tojsdoc/check-examples
rule - Enhancement [
great-eye.js
]: Addunicorn/numeric-separators-style
(but disable inindex.js
) - npm: Update peerDeps/devDeps.
- npm: Update peerDeps/devDeps.
- Update: Disable new Unicorn and jsdoc rules
- npm: Update peerDeps/devDeps.
- Enhancement [
index.js
] (Tighten): Add Unicorn rulesno-object-as-default-parameter
andprefer-array-find
; add backprefer-flat-map
- npm: Update peerDeps/devDeps.
- npm: Update peerDeps/devDeps.
- Enhancement [
index.js
] (Tighten): Addno-promise-executor-return
,no-unreachable-loop
- npm: Update peerDeps/devDeps.
- Enhancement [
sauron.js
] (Tighten): Addjsdoc/require-throws
- npm: Update peerDeps/devDeps.
- Enhancement [
sauron.js
] (Tighten): Addeslint-comments/require-description
- Linting: As per latest sauron
- npm: Update peerDeps/devDeps.
- Enhancement: [
index.js
] (Tighten): Addno-loss-of-precision
. - npm: Update peerDeps/devDeps.
- Update [
index.js
]: Disable new Unicorn recommended rules - npm: Update devDeps/peerDeps.
- npm: Remove explicit reference to new ESLint 7 recommended rules (will automatically be set)
- Enhancement [
index.js
] (tighten): Adddefault-case-last
andno-useless-backreference
- Update [
explicitly-unused.js
] (loosen): Add disabledno-restricted-exports
(ESLint 7 rule) - npm: Update devDeps/peerDeps
- Update [index.js]: Disable new
unicorn/no-null
- Docs: Update explanation for
regex-shorthand
- npm: Update devDep./peerDep. (unicorn)
- npm: Update devDeps/peerDeps
- Breaking change/Update: Move Node-specific rules out of
index.js
intonode.js
(but as (non-deprecated)eslint-plugin-node
equivalents to ESLint rules) - Update [
explicitly-unused.js
]: Add (disabling of) new project-specificeslint-plugin-node
rules - Enhancement: Add new
sauron-node-script
which overrides use of Modules to allow CommonJS - Refactoring: Simplify by included new
recommended
configs ofsonarjs
andno-use-extend-native
- npm: Update devDeps/peerDeps
- Enhancement [
sauron.js
] (tighten): Addunicorn/prefer-number-properties
- Enhancement [
great-eye.js
] (tighten): Addunicorn/unicorn/prefer-set-has
- Maintenance: 4 sp. for MD files
- npm: Update devDeps./peerDeps.
- Enhancement [
index.js
] (loosen): Surfacestandard
's reasonable dropping of 'no-return-await
(and add toexplicitly-unused
). - npm: Update devDeps./peerDeps.
- Update [
explicitly-unused.js
]: Addunicorn/string-content
and deprecatedunicorn/regex-shorthand
- Enhancement [
index.js
] (tighten): Add recommendedunicorn/better-regex
but with optionsortCharacterClasses
set tofalse
- Optimization: Use strict mode
- Linting: Switch to single quotes; fix indent; add ignore file
- npm: Update devDep/peerDep (unicorn) and
package-lock.json
- npm: Update devDeps/peerDeps
- Enhancement [
sauron.js
] (tighten): Offer replacements forfunction
andarray
lower-cased - npm: Update devDeps
- Fix: Disable Unicorn
prefer-exponentiation-operator
with proper name - npm: Update peerDeps/devDeps
- Enhancement [
sauron.js
] (tighten): Forjsdoc/require-jsdoc
, targetClassDeclaration
,ClassExpression
,MethodDefinition
in addition toFunctionDeclaration
- npm: Update peerDeps/devDeps
- Enhancement [
index.js
] (tighten): Addjsdoc/no-bad-blocks
- Update: Add
jsdoc/no-defaults
- npm: Update peerDeps/devDeps
- Enhancement [
index
] (change): RemovematchingFileName
option onjsdoc/check-examples
in favor of new default which follows path of containing file, though still with ".md" extension - npm: Update peerDeps/devDeps
- Enhancement [
sauron
] (tighten): Addedcontexts: ['any']
forrequire-param-name
,require-param-type
, andrequire-returns-type
so as to document virtual functions (e.g., with@implements
) - Enhancement [
sauron
] (tighten): Addedimplements-on-classes
withcontexts: ['any']
- npm: Update peerDeps/devDeps
- Enhancement [
great-eye
] (tighten): Addjsdoc/require-property-description
- Enhancement [
index
] (tighten): Formatch-description
, add withcontexts: ['any']
- Docs: Explain exclusions
- Enhancement [
index.js
] (tighten): Now includesjsdoc
plugin update, withcheck-property-names
,require-property
,require-property-name
,require-property-type
rules (though disablingrequire-property-description
and avoidingrequire-file-overview
). - Enhancement [
index.js
] (loosen): AddexemptTagContexts
option fortypedef
withobject
orPlainObject
(so can have as a base type without complaint) - npm: Fix build to properly remove files (no current effect)
- npm: Update peerDeps/devDeps
- npm: Update peerDeps/devDeps (including breaking node plugin change)
- Enhancement [
index.js
] (tighten): Now includesunicorn/prefer-modern-dom-apis
by inheritance - Enhancement [
index.js
] (loosen): Now excludesrequire-atomic-updates
which was problematic - Docs: Clarify some missing or misplaced descriptions for rationales on disabled rules
- Enhancement [
explicitly-unused.js
]: Addlines-between-class-members
andrequire-atomic-updates
- npm: Update peerDeps/devDeps
- Fix: Disable
no-process-exit
in Node config
- Fix (loosen): Disable
no-process-exit
sinceunicorn/no-process-exit
allows in CLI apps
- Fix: Ensure
eslint-plugin-no-unsanitized
is added as a peerdep.
- Enhancement [
sauron.js
] (tighten): Add neweslint-plugin-no-unsanitized
rules - npm: Update devDeps/peerDeps
- Enhancement [
index.js
] (loosen): Disableregex-shorthand
until such time as it may provide option not to sort character classes - npm: Update devDeps/peerDeps
- Enhancement [
index.js
] (tighten): Add new unicorn rules (prefer-negative-index
,prefer-trim-start-end
) - npm: Update devDeps/peerDeps
- Enhancement [
index.js
] (tighten): Add new eslint rules (grouped-accessor-pairs
,no-constructor-return
,no-dupe-else-if
,no-setter-return
,prefer-exponentiation-operator
) - Change: Disabled
unicorn/prefer-exponentiation-operator
in favor of now built-inprefer-exponentiation-operator
- npm: Update devDeps/peerDeps
- npm: Update peerDeps/devDeps
- Enhancement [
index.js
] (tighten): By update, gain neweslint-plugin-jsdoc
rules - Maintenance: Add
.editorconfig
- npm: Update peerDeps/devDeps
- Enhancement [
index.js
] (tighten): By update, gain newsonarjs
rules:no-collection-size-mischeck
no-redundant-jump
,no-same-line-conditional
,no-unused-collection
- npm: Update peerDeps/devDeps
- Enhancement [
sauron
] (tighten): Ensure checkingObject
- npm: Update peerDeps/devDeps
- Refactoring [
node
]: Remove redundantplugins: ['node']
(recommended config already includes) - Linting: Dog food our own linting rules
- Docs: Mention use of
plugin:node/recommended-script
- npm: Update peerDeps/devDeps
- Fix [
index.js
]: Ensure is enforcing "single" forquotes
- Enhancement [
index.js
] (loosen): Changequotes
fromstandard
approach to add settingsavoidEscape: true
andallowTemplateLiterals: true
. - npm: update peerDeps/devDeps
- Enhancement [
sauron
] (tighten) Add Unicornprefer-string-slice
rule
- Fix: Remove
unicorn/consistent-function-scoping
as prematurely added
- Breaking change: Require >= node 8.10.0
- Enhancement [
index.js
] (tighten): Add new rules:default-param-last
,no-import-assign
,prefer-regex-literals
- Enhancement [
index.js
] (tighten): Inherit new rules from unicorn:prefer-dataset
,prefer-reflect-apply
- Enhancement [
index.js
]:unicorn/expiring-todo-comments
but allowing for no conditions - Enhancement [
index.js
]: Addno-warning-comments
with terms set tofixme
andxxx
so as to block these (in favor oftodo
) - Enhancement [
great-eye
]:unicorn/expiring-todo-comments
and insisting on conditions - Enhancement [
sauron
]:unicorn/consistent-function-scoping
- Testing: Compare to es2020
- npm: Bump
@mysticatea/eslint-plugin
,eslint-plugin-jsdoc
,eslint-plugin-unicorn
,typescript
,eslint
devDeps/peerDeps
- Enhancement [
index.js
]: Update node plugin with recommended update; addsnode/no-exports-assign
- npm: Update devDeps/peerDeps
- Update: Avoid
node/no-callback-literal
which duplicatesstandard/no-callback-literal
- npm: Update devDeps/peerDeps
- Enhancement [
index.js
] (tighten): remove rulefunction-call-argument-newline
(oppressive)
- Enhancement [
index.js
] (tighten): apply rulefunction-call-argument-newline
set tonever
- Enhancement [
index.js
]: apply ruleno-label-var
for comparison purposes (though already a part ofeslint:recommended
) - Enhancement [
index.js
]: Disableobject-curly-newline
since added to "standard" - npm: Update devDeps/peerDeps
- npm: Update peer and devDeps (including import, jsdoc, and unicorn plugins)
- Fix: Avoid use of now removed template variables in messages calling for replacement
- npm: Update eslint-plugin-jsdoc
- Change: [
index.js
]: Explicitly reject items if we inherit from mysticatea - Enhancement: Add
eslint-conf_eslint-all.js
for showing non-eslint-recommended rules (e.g., by standard) - Build: Update "standard" and eslint-recommended comparison files as "standard" now incorporates more recommended rules (and removes a few of its own redundant ones)
- Build: Only check
explicitly-unused
rules in comparison with unused, not with inherited, as need to see which explicitly unused rules may later become used - Build: Ensure removing files before testing
- npm: Bump peerDeps/devDeps
- Fix [
index.js
]: Disablelines-between-class-members
as inherited now from standard
- npm: Bump eslint-plugin-jsdoc, typescript devDeps/peerDeps
- npm: Bump eslint-plugin-jsdoc devDep/peerDep
- npm: Update eslint-plugin-jsdoc and move from settings to options accordingly; document choice of options
- npm: Bump
eslint-plugin-jsdoc
for dep. fix
- npm: Bump
eslint-plugin-jsdoc
(getting latest jsdoctypeparser for jsdoc type improvements)
- Fix (jsdoc) [
sauron
]:object
andArray
preferredTypes
were reporting parents instead of children - Refactoring: Remove trailing commas
-
Breaking change [
index.js
]: require@extends
in place of@augments
-
Breaking change [
sauron
]:preferredTypes
to prefer Typescript-friendlyany
instead ofAny
-
Change [
index.js
]: Reorderextends
(what should be backward-compatibly) and avoid adding toplugins
except where needed -
Change [
index.js
]: Make explicit deriving frompromise/recommended
,import/recommended
, andjsdoc/recommended
, though disabling rules we don't want (and removing some explicit rule additions which are now inherited); though not currently deriving from itses2019
config, we are disabling some@mysticatea/eslint-plugin
rules, as though we were inheriting only those rules which it doesn't inherit from other plugins/configs. In the absence of inheriting the config, we are also therefore adding some of its rules manually. Should be backward-compatible. -
Update [*]: Fix config extension paths for ESLint 6
-
Fix [
index.js
] (tighten): Ensureno-use-extend-native
is being applied -
Fix [
explicitly-unused.js
]: Remove those which were (or now are) in other configs likesauron
-
Enhancement [
index.js
] (tighten): Add plugin with its recommended rules (sonarjs
), disabling some -
Enhancement [
index.js
] (tighten): Addeslint-plugin-html
plugin (though need to enable for HTML, e.g.,--ext .js,.md,.html
) -
Enhancement [
index.js
] (tighten): Add pluginarray-func/all
with itsall
rules (though disablingarray-func/prefer-array-from
for now) -
Enhancement [
sauron
] (tighten): Addprefer-named-capture-group
-
Enhancement [
great-eye
] (tighten): Addmax-statements
,import/no-unused-modules
, andsonarjs/cognitive-complexity
-
Enhancement [
great-eye
] (tighten): Addimport/no-unused-modules
(withmissingExports
andunusedExports
) -
Enhancement [
great-eye-node
]: Add new config which expands ongreat-eye
andsauron-node
-
Enhancement [
explicitly-unused.js
]: Add unused@mysticatea
andeslint-comments
items and some deprecated rules -
Enhancement [
inherited-rules/implicitly-included
]: Add these auto-built configs to track rules that were inherited (and not disabled) -
Enhancement [
inherited-rules/unused
]: Add space for these auto-built configs (currently none) to track if there are any rules in the plug-ins and configs we have extended but have not either incorporated or explicitly rejected. -
Linting: Fix
.eslintrc
error -
Docs: Indicate how to find which rules were inherited or rejected and to calculate if any inherited ones are missing from our lists; some doc fixes
-
npm: Update devDeps, peerDeps
- Fix: For
Promise
, was reporting parents instead of children
- Tighten: Require
Promise
to have a type - Tighten: Add rules,
unicorn/prefer-event-key
andunicorn/prefer-flat-map
- Tighten: Disallow
.<>
syntax in favor of<>
syntax - npm: Update unicorn, jsdoc, typescript peerDeps/devDeps
- Fix: Issue in formatting of
settings.jsdoc
- Change: Prefer not having
allowAugmentsExtendsWithoutParam
setting or its recommended replacement - Refactoring: Remove now default config
- npm: Update import (patch), jsdoc (feature) plugins
- npm: Update devDep
- Breaking change: Node minimum 6.0.0
- Tighten (
great-eye
): AddpreferredTypes
- Tighten (
sauron
): AddforceRequireReturn
andpreferredTypes
- Tighten: Add
require-returns-check
- Loosen:
allowOverrideWithoutParam
,allowImplementsWithoutParam
,allowAugmentsExtendsWithoutParam
alltrue
by default - Tighten: Set
rejectExampleCodeRegex
to ``^``` to allow avoiding example - Change: Set
matchingFileName
todummy.md
so that it will match any Markdown rules by default - Change (
great-eye
): Switch fromrequire-jsdoc
tojsdoc/require-jsdoc
(former is deprecated); - Remove
valid-jsdoc
in favor of correspondingeslint-plugin-jsdoc
config- Breaking changes relative to
valid-jsdoc
as used previously:jsdoc/check-types
- Per new defaults, useobject
instead ofObject
jsdoc/require-returns
: true only in sauron and as warningjsdoc/require-returns-type
andjsdoc/require-param-type
are only warningsjsdoc/match-description
: Now allowing backtick or digits at beginning of jsdoc descriptions
- Breaking changes relative to
- Integrate eslint-plugin-jsdoc 7.0.0 (listing features/breaking changes only
and only apply if we add by default or if you enable the rule)
which:
- Breaking change: Drops Node v4 support; minimum 6.0.0; updated devDeps, eslint peer dep to >= 5.16.0 (from >= 4.14.0)
- Breaking change: Add
meta.type
(usable by--fix-type
) andmeta.schema
(enforces schema on options) to rules - Breaking change:
check-types
now expects "object" instead of "Object" check-examples
: Change behavior to also check classescheck-types
andno-undefined-types
: utilizesettings.jsdoc.preferredTypes
mapcheck-types
: Add option object withnoDefaults
implements-on-classes
: Add rule to prevent @implements on non-constructor functionsmatch-description
: Added rule (seevalid-jsdoc
note above)no-types
: Add rule to prevent types on @param/@returnsno-undefined-types
: Consider Node.js/Commonjs as module (including variables in module scope as well as global)no-undefined-types
now automatically allowsNaN
andInfinity
typesno-undefined-types
: Add option object withpreferredTypesAreDefined
anddefinedTypes
no-undefined-types
, only check tags expected to have types (as withcheck-types
) or, forvalid-types
, tags expected to have types or namepathsrequire-description
: Add optionscontexts
andnoDefaults
to allow additional contexts (e.g.,ClassDeclaration
)require-example
: ImplementavoidExampleOnConstructors
setting; also skip if possessesinheritdoc
/override
require-hyphen-before-param-description
: checkparam
tagNamePreference
settingrequire-jsdoc
: exempt empty functions optionrequire-param
:ignorePrivate
settingrequire-returns
,require-returns-check
, andrequire-jsdoc
: Treatasync
functions as returning a value (since they return Promises)require-returns
: Allow presence of@interface
to avoid need for@returns
(as@interface implies a class
); Allow presence of ES setter to avoid need for@returns
as setters don't returnrequire-returns
:forceRequireReturns
settingrequire-returns
: Avoid reporting when@implements
is presentrequire-returns-check
: If a return is documented, allow@class
and@interface
(as with@constructor
) to ignore reporting a missing return in body as constructors implicitly return the class; for testing, add getter checkrequire-return-checks
: Prevent from erring within@virtual
/@constructor
and class constructor
- npm: Update eslint-plugin-node
- Integrate eslint-plugin-jsdoc 4.8.4 which allows:
- (Tighten): For
jsdoc/check-types
, checkundefined
andnull
for casing - (Tighten): Add
jsdoc/require-jsdoc
rule (to great-eye only) - (Tighten): For
jsdoc/valid-types
, check namepath type tags for empty or invalid namepaths - (Loosen): Support
@memberof!
withjsdoc/check-tag-names
- This is not in effect, but the rule
jsdoc/no-undefined-types
will loosen the typesundefined
andnull
, and check a variety of tags which define names (e.g.,@class
).
- (Tighten): For
- Tighten: Apply
plugin:node/recommended-module
rules, bringingnode/no-unsupported-features/es-syntax
withignores: ["modules"]
,node/no-unpublished-import
,node/no-deprecated-api
,node/process-exit-as-throw
. - Tighten: Add new Node rule
node/file-extension-in-import
- Tighten: Add
node/prefer-promises/dns
andnode/prefer-promises/fs
in sauron-node - Loosen: Remove
no-process-exit
tonode
-based rules only - npm: Update eslint-plugin-node, eslint-plugin, js-yaml
- npm: Add typescript and plugins node/standard to peerDeps
- npm: Add typescript as devDep
- License: Add file (MIT)
- npm devDep: import, eslint-plugin
- Fail for new
check-syntax
(Closure-specific syntax) - Sauron only:
jsdoc/require-returns
warning - Make explicit lack of acceptance of
jsdoc/check-alignment
andjsdoc/check-indentation
except in theash-nazg/great-eye
- Fix: Mistakenly enabled rather than disabled
prevent-abbreviations
- Fix: Omitted actual
prevent-abbreviations
disabling
- Change (tighten, loosen): Updated
eslint-plugin-compat
to 3.1.0 - Change (tighten, loosen): Updates Unicorn to 8.0.1,
though disabling
prevent-abbreviations
except in thegreat-eye
subconfig - Docs (README): List dependencies alphabetically in list, lb
- npm: Update devDeps
- Change (loosen): Disable cumbersome
@mysticatea/no-use-ignored-vars
- Change (loosen): For
eslint-comments/disable-enable-pair
, set optionallowWholeFile
to true
- Change: Avoid
unicorn/no-unreadable-array-destructuring
rule - Docs: Update explicit listing per jsdoc changes
- Docs: Explain missing included rules
- Fix: Try to workaround problem with recommended comments plugin
- Fix: Add missing
eslint-plugin-eslint-comments
devDep/peerDep
- Enhancement: Add some rules from @mysticatea/eslint-plugin
- npm: Update devDeps/peerDeps
- Breaking change: Move rules (
capitalized-comments
,complexity
,no-magic-numbers
,no-warning-comments
) to new configash-nazg/great-eye
(and addmax-statements-per-line
andno-plusplus
as well as jsdoc rulesrequire-description
,require-param-description
,require-returns-description
andrequire-example
) - Fix: Though not a package, lint
explicitly-unused.js
file - Linting: Fix indent, tab
- npm: Add ESLint config and script for project itself (using double quotes given JSON-ish style)
- npm: Update to versioned
eslint-plugin-jsdoc
- npm: Update devDep
- Enhancement: Add
no-restricted-syntax
with[operator=instanceof]
to forbid use ofinstanceof
(which, unless one is usingSymbol.hasInstance
, is cross-frame unsafe)
- Fix: Add missing
peerDependencies
for new items
- Enhancement: Add
eslint-plugin-no-use-extend-native
and add fromeslint-plugin-unicorn
- Fix: Make devDeps explicitly include
eslint-plugin-node
andeslint-plugin-standard
aseslint-config-standard
currently relying on them.
- Fix: Should need
eslint-config-standard
instead ofeslint-plugin-standard
- Name change/first working version