Upgrading eslint-scope from 8.x to 9.x
Comparison of the public API of eslint-scope 8.4.0 and 9.1.2, computed automatically from their TypeScript types. A changed signature is a candidate for a breaking change, not a certainty.
Summary
| Removed import paths | 0 |
|---|---|
| Removed exports | 0 |
| Changed signatures | 1 |
| Removed class or interface members | 4 |
| Changed class or interface members | 45 |
| Newly deprecated | 48 |
| Requirement changes (engines, peer dependencies) | 1 |
| New exports | 13 |
Removed exports
None detected.
Changed signatures
| export | Before | After |
|---|---|---|
eslint-scope · Definition | class | ({ type: "CatchClause"; node: ESTree.CatchClause; parent: null; } | { type: "ClassName"; node: any; parent: null; } | { type: "FunctionName"; node: any; parent: null; } | { type: "ImplicitGlobalVariable"; node: any; parent: null; } | { type: "ImportBinding"; node: any; parent: ESTree.ImportDeclaration; } | { type: "Parameter"; node: any; parent: null; } | { type: "Variable"; node: ESTree.VariableDeclarator; parent: ESTree.VariableDeclaration; }) & { name: ESTree.Identifier; index: number | null; kind: string | null; } |
Removed class or interface members
| member | import | Before |
|---|---|---|
Scope.implicit | eslint-scope | { left: TReference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; } |
BlockScope.implicit | eslint-scope | { left: Reference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; } |
ModuleScope.implicit | eslint-scope | { left: Reference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; } |
FunctionScope.implicit | eslint-scope | { left: Reference[]; set: Map<string, Variable<Reference>>; variables: Variable<Reference>[]; } |
Changed class or interface members
| member | Before | After |
|---|---|---|
Scope.set | eslint.Scope.Scope | Map<string, TVariable> |
Scope.type | eslint.Scope.Scope | "function" | "module" | "block" | "catch" | "class" | "class-field-initializer" | "class-static-block" | "for" | "function-expression-name" | "global" | "switch" | "with" |
Scope.taints | Map<string, Variable<Reference>> | Map<string, TVariable> |
Scope.resolve | (ref: Reference, noChain?: boolean | undefined): void | (ident: ESTree.Identifier): TReference | null |
Scope.through | eslint.Scope.Scope | TReference[] |
Scope.constructor | <TVariable extends Variable = Variable<Reference>, TReference extends Reference = Reference>(scopeManager: ScopeManager, type: string, upper: Scope<Variable<Reference>, Reference> | null, block: ESTree.Node, isMethodDefinition: boolean): Scope<TVariable, TReference> | <TVariable extends Variable = Variable<Reference>, TReference extends Reference = Reference>(scopeManager: ScopeManager, type: "function" | "module" | "block" | "catch" | "class" | "class-field-initializer" | "class-static-block" | "for" | "function-expression-name" | "global" | "switch" | "with", u… |
Scope.variableScope | Scope<TVariable, TReference> | Scope<Variable<Reference>, Reference> |
Variable.defs | eslint.Scope.Definition[] | Definition[] |
Reference.init | boolean | boolean | undefined |
Reference.isRead | eslint.Scope.Reference | (): boolean |
Reference.isWrite | eslint.Scope.Reference | (): boolean |
Reference.partial | boolean | boolean | undefined |
Reference.identifier | ESTree.Identifier | any |
Reference.constructor | (identifier: ESTree.Identifier, scope: Scope<Variable<Reference>, Reference>, flag: number, writeExpr: any, maybeImplicitGlobal: boolean, partial: boolean, init: boolean): Reference | (ident: any, scope: Scope<Variable<Reference>, Reference>, flag: number, writeExpr: any, maybeImplicitGlobal: { pattern: ESTree.Pattern; node: ESTree.Node; } | null, partial: boolean, init: boolean): Reference |
BlockScope.set | eslint.Scope.Scope | Map<string, Variable<Reference>> |
BlockScope.resolve | (ref: Reference, noChain?: boolean | undefined): void | (ident: ESTree.Identifier): Reference | null |
BlockScope.through | eslint.Scope.Scope | Reference[] |
BlockScope.constructor | (scopeManager: ScopeManager, upper: Scope<Variable<Reference>, Reference>, block: ESTree.Node): BlockScope | (scopeManager: ScopeManager, upperScope: Scope<Variable<Reference>, Reference>, block: ESTree.Node): BlockScope |
BlockScope.variableScope | BlockScope | Scope<Variable<Reference>, Reference> |
BlockScope.isThisMaterialized | (): boolean | (): true |
BlockScope.functionExpressionScope | boolean | false |
BlockScope.isArgumentsMaterialized | (): boolean | (): true |
GlobalScope.set | eslint.Scope.Scope | Map<string, Variable<Reference>> |
GlobalScope.resolve | (ref: Reference, noChain?: boolean | undefined): void | (ident: ESTree.Identifier): Reference | null |
GlobalScope.through | eslint.Scope.Scope | Reference[] |
GlobalScope.variableScope | GlobalScope | Scope<Variable<Reference>, Reference> |
GlobalScope.isThisMaterialized | (): boolean | (): true |
GlobalScope.functionExpressionScope | boolean | false |
GlobalScope.isArgumentsMaterialized | (): boolean | (): true |
ModuleScope.set | eslint.Scope.Scope | Map<string, Variable<Reference>> |
ModuleScope.resolve | (ref: Reference, noChain?: boolean | undefined): void | (ident: ESTree.Identifier): Reference | null |
ModuleScope.through | eslint.Scope.Scope | Reference[] |
ModuleScope.constructor | (scopeManager: ScopeManager, upper: Scope<Variable<Reference>, Reference>, block: ESTree.Node): ModuleScope | (scopeManager: ScopeManager, upperScope: Scope<Variable<Reference>, Reference>, block: ESTree.Node): ModuleScope |
ModuleScope.variableScope | ModuleScope | Scope<Variable<Reference>, Reference> |
ModuleScope.isThisMaterialized | (): boolean | (): true |
ModuleScope.functionExpressionScope | boolean | false |
ModuleScope.isArgumentsMaterialized | (): boolean | (): true |
ScopeManager.globalScope | GlobalScope | GlobalScope | null |
FunctionScope.set | eslint.Scope.Scope | Map<string, Variable<Reference>> |
FunctionScope.resolve | (ref: Reference, noChain?: boolean | undefined): void | (ident: ESTree.Identifier): Reference | null |
FunctionScope.through | eslint.Scope.Scope | Reference[] |
FunctionScope.constructor | (scopeManager: ScopeManager, upper: Scope<Variable<Reference>, Reference>, block: ESTree.Node, isMethodDefinition: boolean): FunctionScope | (scopeManager: ScopeManager, upperScope: Scope<Variable<Reference>, Reference>, block: ESTree.Node, isMethodDefinition: boolean): FunctionScope |
FunctionScope.variableScope | FunctionScope | Scope<Variable<Reference>, Reference> |
FunctionScope.functionExpressionScope | boolean | false |
AnalyzeOptions.childVisitorKeys | any | { readonly [type: string]: readonly string[]; } | null | undefined |
Newly deprecated
| export | @deprecated |
|---|---|
eslint-scope · Scope.taints | — |
eslint-scope · Scope.dynamic | — |
eslint-scope · Scope.resolve | — |
eslint-scope · Scope.isStatic | — |
eslint-scope · Scope.thisFound | — |
eslint-scope · Scope.isUsedName | — |
eslint-scope · Scope.isThisMaterialized | — |
eslint-scope · Scope.directCallToEvalScope | — |
eslint-scope · Scope.isArgumentsMaterialized | — |
eslint-scope · Variable.stack | — |
eslint-scope · Variable.tainted | — |
eslint-scope · Reference.partial | — |
eslint-scope · Reference.tainted | — |
eslint-scope · Reference.isStatic | — |
eslint-scope · BlockScope.taints | — |
eslint-scope · BlockScope.dynamic | — |
eslint-scope · BlockScope.resolve | — |
eslint-scope · BlockScope.isStatic | — |
eslint-scope · BlockScope.thisFound | — |
eslint-scope · BlockScope.isUsedName | — |
eslint-scope · BlockScope.directCallToEvalScope | — |
eslint-scope · GlobalScope.taints | — |
eslint-scope · GlobalScope.dynamic | — |
eslint-scope · GlobalScope.resolve | — |
eslint-scope · GlobalScope.isStatic | — |
eslint-scope · GlobalScope.thisFound | — |
eslint-scope · GlobalScope.isUsedName | — |
eslint-scope · GlobalScope.directCallToEvalScope | — |
eslint-scope · ModuleScope.taints | — |
eslint-scope · ModuleScope.dynamic | — |
eslint-scope · ModuleScope.resolve | — |
eslint-scope · ModuleScope.isStatic | — |
eslint-scope · ModuleScope.thisFound | — |
eslint-scope · ModuleScope.isUsedName | — |
eslint-scope · ModuleScope.directCallToEvalScope | — |
eslint-scope · ScopeManager.isModule | — |
eslint-scope · ScopeManager.acquireAll | — |
eslint-scope · ScopeManager.isImpliedStrict | — |
eslint-scope · ScopeManager.isStrictModeSupported | — |
eslint-scope · FunctionScope.taints | — |
eslint-scope · FunctionScope.dynamic | — |
eslint-scope · FunctionScope.resolve | — |
eslint-scope · FunctionScope.isStatic | — |
eslint-scope · FunctionScope.thisFound | — |
eslint-scope · FunctionScope.isUsedName | — |
eslint-scope · FunctionScope.isThisMaterialized | — |
eslint-scope · FunctionScope.directCallToEvalScope | — |
eslint-scope · FunctionScope.isArgumentsMaterialized | — |
Requirement changes (engines, peer dependencies)
| Before | After | |
|---|---|---|
engines.node | ^18.18.0 || ^20.9.0 || >=21.1.0 | ^20.19.0 || ^22.13.0 || >=24 |
New exports (13)
| import | export | kind |
|---|---|---|
eslint-scope | version | variable |
eslint-scope | ForScope | class |
eslint-scope | WithScope | class |
eslint-scope | CatchScope | class |
eslint-scope | ClassScope | class |
eslint-scope | Referencer | class |
eslint-scope | SwitchScope | class |
eslint-scope | JSXIdentifier | interface |
eslint-scope | PatternVisitor | class |
eslint-scope | ClassStaticBlockScope | class |
eslint-scope | PatternVisitorCallback | type |
eslint-scope | ClassFieldInitializerScope | class |
eslint-scope | FunctionExpressionNameScope | class |
Frequently asked questions
What are the breaking changes when upgrading eslint-scope from 8 to 9?
Between eslint-scope 8.4.0 and 9.1.2, Vigia found 0 removed exports, 1 changed signatures and 49 removed or changed class or interface members.
What became deprecated in eslint-scope 9?
48 exports or members are newly marked as deprecated in eslint-scope 9.1.2.
For agents
GET https://vigia.coredls.cloud/v1/packages/npm/eslint-scope/upgrade?from=8.4.0&to=9.1.2