From a80803791ddd3e0faf6fecec740401020d99f3a1 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Wed, 13 Apr 2022 00:55:48 +0900 Subject: [PATCH 01/11] feat: update to TypeScript 4.7-beta --- package.json | 4 ++-- packages/typescript-estree/src/parser.ts | 4 ++-- yarn.lock | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 2f2454b96d2..4cca3969dfb 100644 --- a/package.json +++ b/package.json @@ -112,10 +112,10 @@ "tmp": "^0.2.1", "ts-node": "^10.7.0", "tslint": "^6.1.3", - "typescript": ">=3.3.1 <4.7.0" + "typescript": ">=3.3.1 <4.6.0 || 4.7.0-beta" }, "resolutions": { - "typescript": "4.6.4", + "typescript": "4.7.0-beta", "@types/node": "^17.0.31", "pretty-format": "^28.1.0", "//": "Pin jest to v28 across the repo", diff --git a/packages/typescript-estree/src/parser.ts b/packages/typescript-estree/src/parser.ts index f0e6ce46d3c..45ad09945f6 100644 --- a/packages/typescript-estree/src/parser.ts +++ b/packages/typescript-estree/src/parser.ts @@ -30,12 +30,12 @@ const log = debug('typescript-eslint:typescript-estree:parser'); * This needs to be kept in sync with the top-level README.md in the * typescript-eslint monorepo */ -const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.3.1 <4.7.0'; +const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.3.1 <4.8.0'; /* * The semver package will ignore prerelease ranges, and we don't want to explicitly document every one * List them all separately here, so we can automatically create the full string */ -const SUPPORTED_PRERELEASE_RANGES: string[] = []; +const SUPPORTED_PRERELEASE_RANGES: string[] = ['4.7.0-beta']; const ACTIVE_TYPESCRIPT_VERSION = ts.version; const isRunningSupportedTypeScriptVersion = semver.satisfies( ACTIVE_TYPESCRIPT_VERSION, diff --git a/yarn.lock b/yarn.lock index b61416dee62..a9842296b14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14092,10 +14092,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@*, typescript@4.6.4, "typescript@>=3.3.1 <4.7.0", typescript@^4.4.3, typescript@^4.5.3, typescript@^4.5.5, typescript@~4.6.3: - version "4.6.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" - integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== +typescript@*, typescript@4.7.0-beta, "typescript@>=3.3.1 <4.6.0 || 4.7.0-beta", typescript@^4.4.3, typescript@^4.5.3, typescript@^4.5.5, typescript@~4.6.3: + version "4.7.0-beta" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.0-beta.tgz#15952f24d4177479ca3d19f09436ad8c69a30563" + integrity sha512-m+CNL8lzHyHDxYYDTI+pm5hw5/bufYVGan2bokPyJY/y9C/4W/PCWMtYZ0vV9fLXbEL57elMeoaz9Evxs8UQ+A== ua-parser-js@^0.7.30: version "0.7.31" From 8e3dc0c556a21c37108dc2947cc509301dd795a2 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 16 Apr 2022 13:15:14 +0900 Subject: [PATCH 02/11] chore(ast-spec): remove `api-extractor` temporary --- packages/ast-spec/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json index 72266e30f8f..8fc04c90400 100644 --- a/packages/ast-spec/package.json +++ b/packages/ast-spec/package.json @@ -29,7 +29,7 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { - "build": "tsc -b tsconfig.build.json && api-extractor run --local", + "build": "tsc -b tsconfig.build.json", "clean": "tsc -b tsconfig.build.json --clean", "postclean": "rimraf dist && rimraf _ts3.4 && rimraf .rollup.cache && rimraf coverage", "clean-fixtures": "rimraf -g \"./src/**/fixtures/**/snapshots\"", From 125a0a077f08fd4d9f5d256c46acad6d35fef71e Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 16 Apr 2022 13:22:47 +0900 Subject: [PATCH 03/11] feat(types): run `generate:lib` --- .../scope-manager/src/lib/dom.iterable.ts | 4 ++ packages/scope-manager/src/lib/dom.ts | 48 +++++++++++++++++-- .../scope-manager/src/lib/es2020.bigint.ts | 2 + packages/scope-manager/src/lib/es2020.date.ts | 13 +++++ .../scope-manager/src/lib/es2020.number.ts | 13 +++++ packages/scope-manager/src/lib/es2020.ts | 4 ++ .../scope-manager/src/lib/es2022.object.ts | 2 +- .../scope-manager/src/lib/esnext.bigint.ts | 2 + packages/scope-manager/src/lib/index.ts | 4 ++ packages/scope-manager/src/lib/webworker.ts | 14 +++++- packages/types/src/lib.ts | 2 + 11 files changed, 102 insertions(+), 6 deletions(-) create mode 100644 packages/scope-manager/src/lib/es2020.date.ts create mode 100644 packages/scope-manager/src/lib/es2020.number.ts diff --git a/packages/scope-manager/src/lib/dom.iterable.ts b/packages/scope-manager/src/lib/dom.iterable.ts index c0bddff75dd..094303434e3 100644 --- a/packages/scope-manager/src/lib/dom.iterable.ts +++ b/packages/scope-manager/src/lib/dom.iterable.ts @@ -18,6 +18,7 @@ export const dom_iterable = { DOMStringList: TYPE, DOMTokenList: TYPE, DataTransferItemList: TYPE, + EventCounts: TYPE, FileList: TYPE, FontFaceSet: TYPE, FormData: TYPE, @@ -29,6 +30,9 @@ export const dom_iterable = { Headers: TYPE, IDBDatabase: TYPE, IDBObjectStore: TYPE, + MIDIInputMap: TYPE, + MIDIOutput: TYPE, + MIDIOutputMap: TYPE, MediaKeyStatusMap: TYPE, MediaList: TYPE, MessageEvent: TYPE, diff --git a/packages/scope-manager/src/lib/dom.ts b/packages/scope-manager/src/lib/dom.ts index 8f4910d08f1..e862fbc92d4 100644 --- a/packages/scope-manager/src/lib/dom.ts +++ b/packages/scope-manager/src/lib/dom.ts @@ -127,6 +127,9 @@ export const dom = { LockInfo: TYPE, LockManagerSnapshot: TYPE, LockOptions: TYPE, + MIDIConnectionEventInit: TYPE, + MIDIMessageEventInit: TYPE, + MIDIOptions: TYPE, MediaCapabilitiesDecodingInfo: TYPE, MediaCapabilitiesEncodingInfo: TYPE, MediaCapabilitiesInfo: TYPE, @@ -157,6 +160,7 @@ export const dom = { MouseEventInit: TYPE, MultiCacheQueryOptions: TYPE, MutationObserverInit: TYPE, + NavigationPreloadState: TYPE, NotificationAction: TYPE, NotificationOptions: TYPE, OfflineAudioCompletionEventInit: TYPE, @@ -206,6 +210,10 @@ export const dom = { RTCDataChannelEventInit: TYPE, RTCDataChannelInit: TYPE, RTCDtlsFingerprint: TYPE, + RTCEncodedAudioFrameMetadata: TYPE, + RTCEncodedVideoFrameMetadata: TYPE, + RTCErrorEventInit: TYPE, + RTCErrorInit: TYPE, RTCIceCandidateInit: TYPE, RTCIceCandidatePairStats: TYPE, RTCIceServer: TYPE, @@ -280,7 +288,9 @@ export const dom = { ULongRange: TYPE, UnderlyingSink: TYPE, UnderlyingSource: TYPE, + VideoColorSpaceInit: TYPE, VideoConfiguration: TYPE, + VideoFrameMetadata: TYPE, WaveShaperOptions: TYPE, WebGLContextAttributes: TYPE, WebGLContextEventInit: TYPE, @@ -449,6 +459,7 @@ export const dom = { ElementInternals: TYPE_VALUE, ErrorEvent: TYPE_VALUE, Event: TYPE_VALUE, + EventCounts: TYPE_VALUE, EventListener: TYPE, EventListenerObject: TYPE, EventSourceEventMap: TYPE, @@ -504,7 +515,7 @@ export const dom = { HTMLDataElement: TYPE_VALUE, HTMLDataListElement: TYPE_VALUE, HTMLDetailsElement: TYPE_VALUE, - HTMLDialogElement: TYPE, + HTMLDialogElement: TYPE_VALUE, HTMLDirectoryElement: TYPE_VALUE, HTMLDivElement: TYPE_VALUE, HTMLDocument: TYPE_VALUE, @@ -609,6 +620,17 @@ export const dom = { Location: TYPE_VALUE, Lock: TYPE_VALUE, LockManager: TYPE_VALUE, + MIDIAccessEventMap: TYPE, + MIDIAccess: TYPE_VALUE, + MIDIConnectionEvent: TYPE_VALUE, + MIDIInputEventMap: TYPE, + MIDIInput: TYPE_VALUE, + MIDIInputMap: TYPE_VALUE, + MIDIMessageEvent: TYPE_VALUE, + MIDIOutput: TYPE_VALUE, + MIDIOutputMap: TYPE_VALUE, + MIDIPortEventMap: TYPE, + MIDIPort: TYPE_VALUE, MathMLElementEventMap: TYPE, MathMLElement: TYPE_VALUE, MediaCapabilities: TYPE_VALUE, @@ -653,6 +675,7 @@ export const dom = { MutationObserver: TYPE_VALUE, MutationRecord: TYPE_VALUE, NamedNodeMap: TYPE_VALUE, + NavigationPreloadManager: TYPE_VALUE, Navigator: TYPE_VALUE, NavigatorAutomationInformation: TYPE, NavigatorConcurrentHardware: TYPE, @@ -660,6 +683,7 @@ export const dom = { NavigatorCookies: TYPE, NavigatorID: TYPE, NavigatorLanguage: TYPE, + NavigatorLocks: TYPE, NavigatorNetworkInformation: TYPE, NavigatorOnLine: TYPE, NavigatorPlugins: TYPE, @@ -736,7 +760,12 @@ export const dom = { RTCDataChannelEvent: TYPE_VALUE, RTCDtlsTransportEventMap: TYPE, RTCDtlsTransport: TYPE_VALUE, + RTCEncodedAudioFrame: TYPE_VALUE, + RTCEncodedVideoFrame: TYPE_VALUE, + RTCError: TYPE_VALUE, + RTCErrorEvent: TYPE_VALUE, RTCIceCandidate: TYPE_VALUE, + RTCIceTransportEventMap: TYPE, RTCIceTransport: TYPE_VALUE, RTCPeerConnectionEventMap: TYPE, RTCPeerConnection: TYPE_VALUE, @@ -745,6 +774,8 @@ export const dom = { RTCRtpReceiver: TYPE_VALUE, RTCRtpSender: TYPE_VALUE, RTCRtpTransceiver: TYPE_VALUE, + RTCSctpTransportEventMap: TYPE, + RTCSctpTransport: TYPE_VALUE, RTCSessionDescription: TYPE_VALUE, RTCStatsReport: TYPE_VALUE, RTCTrackEvent: TYPE_VALUE, @@ -934,6 +965,7 @@ export const dom = { VTTCue: TYPE_VALUE, VTTRegion: TYPE_VALUE, ValidityState: TYPE_VALUE, + VideoColorSpace: TYPE_VALUE, VideoPlaybackQuality: TYPE_VALUE, VisualViewportEventMap: TYPE, VisualViewport: TYPE_VALUE, @@ -941,7 +973,6 @@ export const dom = { WEBGL_compressed_texture_astc: TYPE, WEBGL_compressed_texture_etc: TYPE, WEBGL_compressed_texture_etc1: TYPE, - WEBGL_compressed_texture_pvrtc: TYPE, WEBGL_compressed_texture_s3tc: TYPE, WEBGL_compressed_texture_s3tc_srgb: TYPE, WEBGL_debug_renderer_info: TYPE, @@ -1040,6 +1071,7 @@ export const dom = { UnderlyingSourceCancelCallback: TYPE, UnderlyingSourcePullCallback: TYPE, UnderlyingSourceStartCallback: TYPE, + VideoFrameRequestCallback: TYPE, VoidFunction: TYPE, HTMLElementTagNameMap: TYPE, HTMLElementDeprecatedTagNameMap: TYPE, @@ -1055,7 +1087,6 @@ export const dom = { CSSNumberish: TYPE, CanvasImageSource: TYPE, ClipboardItemData: TYPE, - ClipboardItemDataType: TYPE, ClipboardItems: TYPE, ConstrainBoolean: TYPE, ConstrainDOMString: TYPE, @@ -1170,6 +1201,9 @@ export const dom = { KeyUsage: TYPE, LineAlignSetting: TYPE, LockMode: TYPE, + MIDIPortConnectionState: TYPE, + MIDIPortDeviceState: TYPE, + MIDIPortType: TYPE, MediaDecodingType: TYPE, MediaDeviceKind: TYPE, MediaEncodingType: TYPE, @@ -1181,7 +1215,7 @@ export const dom = { MediaSessionAction: TYPE, MediaSessionPlaybackState: TYPE, MediaStreamTrackState: TYPE, - NavigationType: TYPE, + NavigationTimingType: TYPE, NotificationDirection: TYPE, NotificationPermission: TYPE, OrientationLockType: TYPE, @@ -1203,6 +1237,8 @@ export const dom = { RTCDataChannelState: TYPE, RTCDegradationPreference: TYPE, RTCDtlsTransportState: TYPE, + RTCEncodedVideoFrameType: TYPE, + RTCErrorDetailType: TYPE, RTCIceCandidateType: TYPE, RTCIceComponent: TYPE, RTCIceConnectionState: TYPE, @@ -1217,6 +1253,7 @@ export const dom = { RTCPriorityType: TYPE, RTCRtcpMuxPolicy: TYPE, RTCRtpTransceiverDirection: TYPE, + RTCSctpTransportState: TYPE, RTCSdpType: TYPE, RTCSignalingState: TYPE, RTCStatsIceCandidatePairState: TYPE, @@ -1250,7 +1287,10 @@ export const dom = { TouchType: TYPE, TransferFunction: TYPE, UserVerificationRequirement: TYPE, + VideoColorPrimaries: TYPE, VideoFacingModeEnum: TYPE, + VideoMatrixCoefficients: TYPE, + VideoTransferCharacteristics: TYPE, WebGLPowerPreference: TYPE, WorkerType: TYPE, XMLHttpRequestResponseType: TYPE, diff --git a/packages/scope-manager/src/lib/es2020.bigint.ts b/packages/scope-manager/src/lib/es2020.bigint.ts index b9a36a904b9..3444dc701a2 100644 --- a/packages/scope-manager/src/lib/es2020.bigint.ts +++ b/packages/scope-manager/src/lib/es2020.bigint.ts @@ -4,9 +4,11 @@ // npx nx generate-lib @typescript-eslint/scope-manager import { ImplicitLibVariableOptions } from '../variable'; +import { es2020_intl } from './es2020.intl'; import { TYPE, TYPE_VALUE } from './base-config'; export const es2020_bigint = { + ...es2020_intl, BigIntToLocaleStringOptions: TYPE, BigInt: TYPE_VALUE, BigIntConstructor: TYPE, diff --git a/packages/scope-manager/src/lib/es2020.date.ts b/packages/scope-manager/src/lib/es2020.date.ts new file mode 100644 index 00000000000..1a5ed0d23f3 --- /dev/null +++ b/packages/scope-manager/src/lib/es2020.date.ts @@ -0,0 +1,13 @@ +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// RUN THE FOLLOWING COMMAND FROM THE WORKSPACE ROOT TO REGENERATE: +// npx nx generate-lib @typescript-eslint/scope-manager + +import { ImplicitLibVariableOptions } from '../variable'; +import { es2020_intl } from './es2020.intl'; +import { TYPE } from './base-config'; + +export const es2020_date = { + ...es2020_intl, + Date: TYPE, +} as Record; diff --git a/packages/scope-manager/src/lib/es2020.number.ts b/packages/scope-manager/src/lib/es2020.number.ts new file mode 100644 index 00000000000..04ba01bc4bf --- /dev/null +++ b/packages/scope-manager/src/lib/es2020.number.ts @@ -0,0 +1,13 @@ +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// RUN THE FOLLOWING COMMAND FROM THE WORKSPACE ROOT TO REGENERATE: +// npx nx generate-lib @typescript-eslint/scope-manager + +import { ImplicitLibVariableOptions } from '../variable'; +import { es2020_intl } from './es2020.intl'; +import { TYPE } from './base-config'; + +export const es2020_number = { + ...es2020_intl, + Number: TYPE, +} as Record; diff --git a/packages/scope-manager/src/lib/es2020.ts b/packages/scope-manager/src/lib/es2020.ts index 5870ed38981..3a89464f456 100644 --- a/packages/scope-manager/src/lib/es2020.ts +++ b/packages/scope-manager/src/lib/es2020.ts @@ -6,6 +6,8 @@ import { ImplicitLibVariableOptions } from '../variable'; import { es2019 } from './es2019'; import { es2020_bigint } from './es2020.bigint'; +import { es2020_date } from './es2020.date'; +import { es2020_number } from './es2020.number'; import { es2020_promise } from './es2020.promise'; import { es2020_sharedmemory } from './es2020.sharedmemory'; import { es2020_string } from './es2020.string'; @@ -15,6 +17,8 @@ import { es2020_intl } from './es2020.intl'; export const es2020 = { ...es2019, ...es2020_bigint, + ...es2020_date, + ...es2020_number, ...es2020_promise, ...es2020_sharedmemory, ...es2020_string, diff --git a/packages/scope-manager/src/lib/es2022.object.ts b/packages/scope-manager/src/lib/es2022.object.ts index 085508ad391..650a01c3835 100644 --- a/packages/scope-manager/src/lib/es2022.object.ts +++ b/packages/scope-manager/src/lib/es2022.object.ts @@ -7,5 +7,5 @@ import { ImplicitLibVariableOptions } from '../variable'; import { TYPE } from './base-config'; export const es2022_object = { - Object: TYPE, + ObjectConstructor: TYPE, } as Record; diff --git a/packages/scope-manager/src/lib/esnext.bigint.ts b/packages/scope-manager/src/lib/esnext.bigint.ts index 1b8afa30f38..079bc59bf87 100644 --- a/packages/scope-manager/src/lib/esnext.bigint.ts +++ b/packages/scope-manager/src/lib/esnext.bigint.ts @@ -4,9 +4,11 @@ // npx nx generate-lib @typescript-eslint/scope-manager import { ImplicitLibVariableOptions } from '../variable'; +import { es2020_intl } from './es2020.intl'; import { TYPE, TYPE_VALUE } from './base-config'; export const esnext_bigint = { + ...es2020_intl, BigIntToLocaleStringOptions: TYPE, BigInt: TYPE_VALUE, BigIntConstructor: TYPE, diff --git a/packages/scope-manager/src/lib/index.ts b/packages/scope-manager/src/lib/index.ts index 96a840e477c..ab0328f7cf0 100644 --- a/packages/scope-manager/src/lib/index.ts +++ b/packages/scope-manager/src/lib/index.ts @@ -46,11 +46,13 @@ import { es2019_object } from './es2019.object'; import { es2019_string } from './es2019.string'; import { es2019_symbol } from './es2019.symbol'; import { es2020_bigint } from './es2020.bigint'; +import { es2020_date } from './es2020.date'; import { es2020_promise } from './es2020.promise'; import { es2020_sharedmemory } from './es2020.sharedmemory'; import { es2020_string } from './es2020.string'; import { es2020_symbol_wellknown } from './es2020.symbol.wellknown'; import { es2020_intl } from './es2020.intl'; +import { es2020_number } from './es2020.number'; import { es2021_promise } from './es2021.promise'; import { es2021_string } from './es2021.string'; import { es2021_weakref } from './es2021.weakref'; @@ -121,11 +123,13 @@ const lib = { 'es2019.string': es2019_string, 'es2019.symbol': es2019_symbol, 'es2020.bigint': es2020_bigint, + 'es2020.date': es2020_date, 'es2020.promise': es2020_promise, 'es2020.sharedmemory': es2020_sharedmemory, 'es2020.string': es2020_string, 'es2020.symbol.wellknown': es2020_symbol_wellknown, 'es2020.intl': es2020_intl, + 'es2020.number': es2020_number, 'es2021.promise': es2021_promise, 'es2021.string': es2021_string, 'es2021.weakref': es2021_weakref, diff --git a/packages/scope-manager/src/lib/webworker.ts b/packages/scope-manager/src/lib/webworker.ts index d6c158ff9a0..55e4f2b58c5 100644 --- a/packages/scope-manager/src/lib/webworker.ts +++ b/packages/scope-manager/src/lib/webworker.ts @@ -69,6 +69,7 @@ export const webworker = { MediaEncodingConfiguration: TYPE, MessageEventInit: TYPE, MultiCacheQueryOptions: TYPE, + NavigationPreloadState: TYPE, NotificationAction: TYPE, NotificationEventInit: TYPE, NotificationOptions: TYPE, @@ -84,6 +85,8 @@ export const webworker = { PushSubscriptionOptionsInit: TYPE, QueuingStrategy: TYPE, QueuingStrategyInit: TYPE, + RTCEncodedAudioFrameMetadata: TYPE, + RTCEncodedVideoFrameMetadata: TYPE, ReadableStreamDefaultReadDoneResult: TYPE, ReadableStreamDefaultReadValueResult: TYPE, ReadableWritablePair: TYPE, @@ -106,6 +109,7 @@ export const webworker = { Transformer: TYPE, UnderlyingSink: TYPE, UnderlyingSource: TYPE, + VideoColorSpaceInit: TYPE, VideoConfiguration: TYPE, WebGLContextAttributes: TYPE, WebGLContextEventInit: TYPE, @@ -206,9 +210,11 @@ export const webworker = { MessageEvent: TYPE_VALUE, MessagePortEventMap: TYPE, MessagePort: TYPE_VALUE, + NavigationPreloadManager: TYPE_VALUE, NavigatorConcurrentHardware: TYPE, NavigatorID: TYPE, NavigatorLanguage: TYPE, + NavigatorLocks: TYPE, NavigatorNetworkInformation: TYPE, NavigatorOnLine: TYPE, NavigatorStorage: TYPE, @@ -246,6 +252,8 @@ export const webworker = { PushMessageData: TYPE_VALUE, PushSubscription: TYPE_VALUE, PushSubscriptionOptions: TYPE_VALUE, + RTCEncodedAudioFrame: TYPE_VALUE, + RTCEncodedVideoFrame: TYPE_VALUE, ReadableStream: TYPE_VALUE, ReadableStreamDefaultController: TYPE_VALUE, ReadableStreamDefaultReader: TYPE_VALUE, @@ -276,11 +284,11 @@ export const webworker = { TransformStreamDefaultController: TYPE_VALUE, URL: TYPE_VALUE, URLSearchParams: TYPE_VALUE, + VideoColorSpace: TYPE_VALUE, WEBGL_color_buffer_float: TYPE, WEBGL_compressed_texture_astc: TYPE, WEBGL_compressed_texture_etc: TYPE, WEBGL_compressed_texture_etc1: TYPE, - WEBGL_compressed_texture_pvrtc: TYPE, WEBGL_compressed_texture_s3tc: TYPE, WEBGL_compressed_texture_s3tc_srgb: TYPE, WEBGL_debug_renderer_info: TYPE, @@ -421,6 +429,7 @@ export const webworker = { PredefinedColorSpace: TYPE, PremultiplyAlpha: TYPE, PushEncryptionKeyName: TYPE, + RTCEncodedVideoFrameType: TYPE, ReferrerPolicy: TYPE, RequestCache: TYPE, RequestCredentials: TYPE, @@ -433,6 +442,9 @@ export const webworker = { ServiceWorkerState: TYPE, ServiceWorkerUpdateViaCache: TYPE, TransferFunction: TYPE, + VideoColorPrimaries: TYPE, + VideoMatrixCoefficients: TYPE, + VideoTransferCharacteristics: TYPE, WebGLPowerPreference: TYPE, WorkerType: TYPE, XMLHttpRequestResponseType: TYPE, diff --git a/packages/types/src/lib.ts b/packages/types/src/lib.ts index 3e362ad33cb..9310996e516 100644 --- a/packages/types/src/lib.ts +++ b/packages/types/src/lib.ts @@ -47,11 +47,13 @@ type Lib = | 'es2019.string' | 'es2019.symbol' | 'es2020.bigint' + | 'es2020.date' | 'es2020.promise' | 'es2020.sharedmemory' | 'es2020.string' | 'es2020.symbol.wellknown' | 'es2020.intl' + | 'es2020.number' | 'es2021.promise' | 'es2021.string' | 'es2021.weakref' From 0695b33833a64e29590c6a2f847d02a458eb22c5 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sun, 17 Apr 2022 00:25:11 +0900 Subject: [PATCH 04/11] chore(typescript-estree): add `ts.TypeQueryNode` to `EstreeToTsNodeTypes[TSTypeParameterInstantiation]` --- .../typescript-estree/src/ts-estree/estree-to-ts-node-types.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/typescript-estree/src/ts-estree/estree-to-ts-node-types.ts b/packages/typescript-estree/src/ts-estree/estree-to-ts-node-types.ts index 9c71608424b..0398d1991c2 100644 --- a/packages/typescript-estree/src/ts-estree/estree-to-ts-node-types.ts +++ b/packages/typescript-estree/src/ts-estree/estree-to-ts-node-types.ts @@ -217,7 +217,8 @@ export interface EstreeToTsNodeTypes { | ts.JsxOpeningElement | ts.JsxSelfClosingElement | ts.NewExpression - | ts.CallExpression; + | ts.CallExpression + | ts.TypeQueryNode; [AST_NODE_TYPES.TSTypePredicate]: ts.TypePredicateNode; [AST_NODE_TYPES.TSTypeQuery]: ts.TypeQueryNode; [AST_NODE_TYPES.TSTypeReference]: ts.TypeReferenceNode; From 40a51948d4e8ca40c34b4eef4ad8bd2bcc38dcf5 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sun, 17 Apr 2022 13:30:00 +0900 Subject: [PATCH 05/11] fix(utils): fix type errors --- packages/utils/src/ast-utils/helpers.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/utils/src/ast-utils/helpers.ts b/packages/utils/src/ast-utils/helpers.ts index baf4daf6810..fa2b8bb9f5c 100644 --- a/packages/utils/src/ast-utils/helpers.ts +++ b/packages/utils/src/ast-utils/helpers.ts @@ -26,9 +26,7 @@ export const isNodeOfTypeWithConditions = < ): (( node: TSESTree.Node | null | undefined, ) => node is TSESTree.Node & { type: NodeType } & Conditions) => { - const entries = Object.entries(conditions) as ObjectEntries< - TSESTree.Node & { type: NodeType } - >; + const entries = Object.entries(conditions) as ObjectEntries; return ( node: TSESTree.Node | null | undefined, @@ -46,9 +44,7 @@ export const isTokenOfTypeWithConditions = < ): (( token: TSESTree.Token | null | undefined, ) => token is TSESTree.Token & { type: TokenType } & Conditions) => { - const entries = Object.entries(conditions) as ObjectEntries< - TSESTree.Token & { type: TokenType } - >; + const entries = Object.entries(conditions) as ObjectEntries; return ( token: TSESTree.Token | null | undefined, From d74e91f0fe3d422070c3b450bafaa7b627bd9a3b Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sun, 17 Apr 2022 14:29:39 +0900 Subject: [PATCH 06/11] fix(eslint-plugin): avoid syntax errors --- packages/eslint-plugin/src/rules/ban-types.ts | 3 ++- .../src/rules/consistent-indexed-object-style.ts | 2 +- packages/eslint-plugin/src/util/getESLintCoreRule.ts | 12 +++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/eslint-plugin/src/rules/ban-types.ts b/packages/eslint-plugin/src/rules/ban-types.ts index 38224b15ce9..3eb48fb7255 100644 --- a/packages/eslint-plugin/src/rules/ban-types.ts +++ b/packages/eslint-plugin/src/rules/ban-types.ts @@ -185,7 +185,8 @@ export default util.createRule({ customMessage, }, fix: fixWith - ? (fixer): TSESLint.RuleFix => fixer.replaceText(typeNode, fixWith) + ? (fixer: TSESLint.RuleFixer): TSESLint.RuleFix => + fixer.replaceText(typeNode, fixWith) : null, }); } diff --git a/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts b/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts index bd511d0cd0e..5f2a930db49 100644 --- a/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts +++ b/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts @@ -84,7 +84,7 @@ export default createRule({ node, messageId: 'preferRecord', fix: safeFix - ? (fixer): TSESLint.RuleFix => { + ? (fixer: TSESLint.RuleFixer): TSESLint.RuleFix => { const key = sourceCode.getText(keyType.typeAnnotation); const value = sourceCode.getText(valueType.typeAnnotation); const record = member.readonly diff --git a/packages/eslint-plugin/src/util/getESLintCoreRule.ts b/packages/eslint-plugin/src/util/getESLintCoreRule.ts index 5ba9ae36965..a26a0676501 100644 --- a/packages/eslint-plugin/src/util/getESLintCoreRule.ts +++ b/packages/eslint-plugin/src/util/getESLintCoreRule.ts @@ -42,16 +42,18 @@ type RuleId = keyof RuleMap; export const getESLintCoreRule: (ruleId: R) => RuleMap[R] = isESLintV8 - ? (ruleId: R): RuleMap[R] => - ESLintUtils.nullThrows( + ? function (ruleId: R): RuleMap[R] { + return ESLintUtils.nullThrows( // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call require('eslint/use-at-your-own-risk').builtinRules.get( ruleId, ) as RuleMap[R], `ESLint's core rule '${ruleId}' not found.`, - ) - : (ruleId: R): RuleMap[R] => - require(`eslint/lib/rules/${ruleId}`) as RuleMap[R]; + ); + } + : function (ruleId: R): RuleMap[R] { + return require(`eslint/lib/rules/${ruleId}`) as RuleMap[R]; + }; export function maybeGetESLintCoreRule( ruleId: R, From 77ebf2ce17536b2671f2b4e1937dda686d6d50cf Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sun, 17 Apr 2022 14:30:00 +0900 Subject: [PATCH 07/11] fix(eslint-plugin): avoid type errors --- .../eslint-plugin/src/rules/no-unnecessary-type-arguments.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts b/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts index 294adf554ad..e248181a6a5 100644 --- a/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts +++ b/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts @@ -12,7 +12,8 @@ type ParameterCapableTSNode = | ts.TypeReferenceNode | ts.ExpressionWithTypeArguments | ts.JsxOpeningElement - | ts.JsxSelfClosingElement; + | ts.JsxSelfClosingElement + | ts.TypeQueryNode; type MessageIds = 'unnecessaryTypeParameter'; From 2a20e341a108833767c8756464b64d8f7167d8d2 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sun, 17 Apr 2022 14:31:18 +0900 Subject: [PATCH 08/11] test(typescript-estree): update snapshots --- .../tests/lib/__snapshots__/convert.test.ts.snap | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/typescript-estree/tests/lib/__snapshots__/convert.test.ts.snap b/packages/typescript-estree/tests/lib/__snapshots__/convert.test.ts.snap index ef7abcee4f4..0ea5f89cdcd 100644 --- a/packages/typescript-estree/tests/lib/__snapshots__/convert.test.ts.snap +++ b/packages/typescript-estree/tests/lib/__snapshots__/convert.test.ts.snap @@ -49,7 +49,7 @@ Object { "line": 1, }, }, - "nodeCount": 7, + "nodeCount": 8, "parseDiagnostics": Array [], "pragmas": Map {}, "range": Array [ @@ -58,6 +58,7 @@ Object { ], "referencedFiles": Array [], "scriptKind": 4, + "setExternalModuleIndicator": [Function], "statements": Array [ Object { "expression": Object { From 7761028abc0029c2e782d13e7a96ec983565b872 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Thu, 5 May 2022 14:40:05 +0900 Subject: [PATCH 09/11] chore(ast-spec): revert removing `api-extractor` --- packages/ast-spec/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json index 8fc04c90400..72266e30f8f 100644 --- a/packages/ast-spec/package.json +++ b/packages/ast-spec/package.json @@ -29,7 +29,7 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { - "build": "tsc -b tsconfig.build.json", + "build": "tsc -b tsconfig.build.json && api-extractor run --local", "clean": "tsc -b tsconfig.build.json --clean", "postclean": "rimraf dist && rimraf _ts3.4 && rimraf .rollup.cache && rimraf coverage", "clean-fixtures": "rimraf -g \"./src/**/fixtures/**/snapshots\"", From 7fdbf2db6fd6ba60723bd797cd9413c337112c6d Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Fri, 13 May 2022 16:35:36 +0900 Subject: [PATCH 10/11] feat: update to `typescript@4.7.1-rc` --- package.json | 4 ++-- packages/typescript-estree/src/parser.ts | 2 +- packages/utils/src/eslint-utils/applyDefault.ts | 4 +++- yarn.lock | 8 ++++---- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 4cca3969dfb..4a575479313 100644 --- a/package.json +++ b/package.json @@ -112,10 +112,10 @@ "tmp": "^0.2.1", "ts-node": "^10.7.0", "tslint": "^6.1.3", - "typescript": ">=3.3.1 <4.6.0 || 4.7.0-beta" + "typescript": ">=3.3.1 <4.6.0 || 4.7.1-rc" }, "resolutions": { - "typescript": "4.7.0-beta", + "typescript": "4.7.1-rc", "@types/node": "^17.0.31", "pretty-format": "^28.1.0", "//": "Pin jest to v28 across the repo", diff --git a/packages/typescript-estree/src/parser.ts b/packages/typescript-estree/src/parser.ts index 45ad09945f6..a0c952b4db5 100644 --- a/packages/typescript-estree/src/parser.ts +++ b/packages/typescript-estree/src/parser.ts @@ -35,7 +35,7 @@ const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.3.1 <4.8.0'; * The semver package will ignore prerelease ranges, and we don't want to explicitly document every one * List them all separately here, so we can automatically create the full string */ -const SUPPORTED_PRERELEASE_RANGES: string[] = ['4.7.0-beta']; +const SUPPORTED_PRERELEASE_RANGES: string[] = ['4.7.0-beta', '4.7.1-rc']; const ACTIVE_TYPESCRIPT_VERSION = ts.version; const isRunningSupportedTypeScriptVersion = semver.satisfies( ACTIVE_TYPESCRIPT_VERSION, diff --git a/packages/utils/src/eslint-utils/applyDefault.ts b/packages/utils/src/eslint-utils/applyDefault.ts index 6b3282080a8..85cd3b3653b 100644 --- a/packages/utils/src/eslint-utils/applyDefault.ts +++ b/packages/utils/src/eslint-utils/applyDefault.ts @@ -20,7 +20,9 @@ function applyDefault( return options; } - options.forEach((opt, i) => { + // For avoiding the type error + // `This expression is not callable. Type 'unknown' has no call signatures.ts(2349)` + (options as unknown[]).forEach((opt: unknown, i: number) => { if (userOptions[i] !== undefined) { const userOpt = userOptions[i]; diff --git a/yarn.lock b/yarn.lock index a9842296b14..1d57ea920bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14092,10 +14092,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@*, typescript@4.7.0-beta, "typescript@>=3.3.1 <4.6.0 || 4.7.0-beta", typescript@^4.4.3, typescript@^4.5.3, typescript@^4.5.5, typescript@~4.6.3: - version "4.7.0-beta" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.0-beta.tgz#15952f24d4177479ca3d19f09436ad8c69a30563" - integrity sha512-m+CNL8lzHyHDxYYDTI+pm5hw5/bufYVGan2bokPyJY/y9C/4W/PCWMtYZ0vV9fLXbEL57elMeoaz9Evxs8UQ+A== +typescript@*, typescript@4.7.1-rc, "typescript@>=3.3.1 <4.6.0 || 4.7.1-rc", typescript@^4.4.3, typescript@^4.5.3, typescript@^4.5.5, typescript@~4.6.3: + version "4.7.1-rc" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.1-rc.tgz#23a0517d36c56de887b4457f29e2d265647bbd7c" + integrity sha512-EQd2NVelDe6ZVc2sO1CSpuSs+RHzY8c2n/kTNQAHw4um/eAXY+ZY4IKoUpNK0wO6C5hN+XcUXR7yqT8VbwwNIQ== ua-parser-js@^0.7.30: version "0.7.31" From efc1b153d420952bf4b63b9b2e96fe28c41a4678 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Fri, 13 May 2022 16:41:07 +0900 Subject: [PATCH 11/11] chore(eslint-plugin): remove workaround for syntax errors --- packages/eslint-plugin/src/rules/ban-types.ts | 3 +-- .../src/rules/consistent-indexed-object-style.ts | 2 +- packages/eslint-plugin/src/util/getESLintCoreRule.ts | 12 +++++------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/eslint-plugin/src/rules/ban-types.ts b/packages/eslint-plugin/src/rules/ban-types.ts index 3eb48fb7255..38224b15ce9 100644 --- a/packages/eslint-plugin/src/rules/ban-types.ts +++ b/packages/eslint-plugin/src/rules/ban-types.ts @@ -185,8 +185,7 @@ export default util.createRule({ customMessage, }, fix: fixWith - ? (fixer: TSESLint.RuleFixer): TSESLint.RuleFix => - fixer.replaceText(typeNode, fixWith) + ? (fixer): TSESLint.RuleFix => fixer.replaceText(typeNode, fixWith) : null, }); } diff --git a/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts b/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts index 5f2a930db49..bd511d0cd0e 100644 --- a/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts +++ b/packages/eslint-plugin/src/rules/consistent-indexed-object-style.ts @@ -84,7 +84,7 @@ export default createRule({ node, messageId: 'preferRecord', fix: safeFix - ? (fixer: TSESLint.RuleFixer): TSESLint.RuleFix => { + ? (fixer): TSESLint.RuleFix => { const key = sourceCode.getText(keyType.typeAnnotation); const value = sourceCode.getText(valueType.typeAnnotation); const record = member.readonly diff --git a/packages/eslint-plugin/src/util/getESLintCoreRule.ts b/packages/eslint-plugin/src/util/getESLintCoreRule.ts index a26a0676501..5ba9ae36965 100644 --- a/packages/eslint-plugin/src/util/getESLintCoreRule.ts +++ b/packages/eslint-plugin/src/util/getESLintCoreRule.ts @@ -42,18 +42,16 @@ type RuleId = keyof RuleMap; export const getESLintCoreRule: (ruleId: R) => RuleMap[R] = isESLintV8 - ? function (ruleId: R): RuleMap[R] { - return ESLintUtils.nullThrows( + ? (ruleId: R): RuleMap[R] => + ESLintUtils.nullThrows( // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call require('eslint/use-at-your-own-risk').builtinRules.get( ruleId, ) as RuleMap[R], `ESLint's core rule '${ruleId}' not found.`, - ); - } - : function (ruleId: R): RuleMap[R] { - return require(`eslint/lib/rules/${ruleId}`) as RuleMap[R]; - }; + ) + : (ruleId: R): RuleMap[R] => + require(`eslint/lib/rules/${ruleId}`) as RuleMap[R]; export function maybeGetESLintCoreRule( ruleId: R,