Skip to content

Commit da9770b

Browse files
committed
Merge main
2 parents 1e27598 + 720ff42 commit da9770b

19 files changed

+547
-271
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
registry-url: "https://registry.npmjs.org"
1919
cache: npm
2020

21+
- run: git pull --tags
2122
- run: npm install
2223
- run: npm run build
2324
- run: npm test

.github/workflows/test_typescript.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
name: Runs with TypeScript Tests
2-
on: [push, pull_request]
2+
on:
3+
push:
4+
paths:
5+
- "baselines/*"
6+
pull_request:
7+
paths:
8+
- "baselines/*"
9+
310

411
jobs:
512
test:

README.md

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ This tool is used to generate the web-based `lib.dom.d.ts` file which is include
44

55
## Why is my fancy API still not available here?
66

7-
A feature needs to be supported by more than two major browser engines to be included here, to make sure there is a good consensus among vendors: __Gecko__ (Firefox), __Blink__ (Chrome/Edge), and __WebKit__ (Safari).
7+
A feature needs to be supported by two or more major browser engines to be included here, to make sure there is a good consensus among vendors: __Gecko__ (Firefox), __Blink__ (Chrome/Edge), and __WebKit__ (Safari).
88

9-
If the condition is met but still is not available here, please [file an issue](hthttps://github.com/microsoft/TypeScript-DOM-lib-generator/issues/new).
9+
If the condition is met but still is not available here, first check the heuristics below and then please [file an issue](hthttps://github.com/microsoft/TypeScript-DOM-lib-generator/issues/new).
1010

1111
## Build Instructions
1212

@@ -28,13 +28,13 @@ To test:
2828
npm run test
2929
```
3030

31-
To deploy:
3231

33-
```sh
34-
npm run migrate
35-
```
32+
## `@types/[lib]` to TypeScript Versions
3633

37-
The script will look in for a clone of the TypeScript repo in "../TypeScript", or "./TypeScript" to move the generated files in.
34+
| `@types/[lib]` version | TypeScript Version | Minimum TypeScript Support |
35+
| ---------------------------------------------------------------------- | ----------- | -------------- |
36+
| `@types/web` [0.0.1](https://www.npmjs.com/package/@types/web/v/0.0.1) | ~4.3 | 4.4 |
37+
| `@types/web` [0.0.2](https://www.npmjs.com/package/@types/web/v/0.0.2) | ~4.4 beta | 4.4 |
3838

3939
## Contribution Guidelines
4040

@@ -116,3 +116,26 @@ To give you a sense of whether we will accept changes, you can use these heurist
116116
- `removedTypes.json`: types that are defined in the spec file but should be removed.
117117
- `comments.json`: comment strings to be embedded in the generated .js files.
118118
- `deprecatedMessage.json`: the reason why one type is deprecated. The reason why it is a separate file rather than merge in comment.json is mdn/apiDescriptions.json would also possibly be deprecated.
119+
120+
## Deployment to TypeScript
121+
122+
To migrate the *.d.ts files into TypeScript:
123+
124+
1. Run:
125+
126+
```sh
127+
npm run migrate -- [previous_types_web_version]
128+
```
129+
130+
The script will look in for a clone of the TypeScript repo in "../TypeScript", or "./TypeScript" to move the generated files in. Or migrate the files manually, you do you.
131+
132+
1. Update the README table with the mappings for versions in the `@types/[lib]`. E.g. TS 4.5 -> `@types/web` `0.0.23`.
133+
134+
1. Generate a CHANGELOG for the releases:
135+
136+
```sh
137+
# lib from to
138+
npm run ts-changelog -- @types/web 0.0.2 0.0.23
139+
```
140+
141+
1. Add the CHANGELOG to the release issue

baselines/dom.generated.d.ts

Lines changed: 62 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3760,6 +3760,28 @@ declare var DOMImplementation: {
37603760
};
37613761

37623762
interface DOMMatrix extends DOMMatrixReadOnly {
3763+
a: number;
3764+
b: number;
3765+
c: number;
3766+
d: number;
3767+
e: number;
3768+
f: number;
3769+
m11: number;
3770+
m12: number;
3771+
m13: number;
3772+
m14: number;
3773+
m21: number;
3774+
m22: number;
3775+
m23: number;
3776+
m24: number;
3777+
m31: number;
3778+
m32: number;
3779+
m33: number;
3780+
m34: number;
3781+
m41: number;
3782+
m42: number;
3783+
m43: number;
3784+
m44: number;
37633785
invertSelf(): DOMMatrix;
37643786
multiplySelf(other?: DOMMatrixInit): DOMMatrix;
37653787
preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;
@@ -3863,6 +3885,10 @@ declare var DOMParser: {
38633885
};
38643886

38653887
interface DOMPoint extends DOMPointReadOnly {
3888+
w: number;
3889+
x: number;
3890+
y: number;
3891+
z: number;
38663892
}
38673893

38683894
declare var DOMPoint: {
@@ -3906,6 +3932,10 @@ declare var DOMQuad: {
39063932
};
39073933

39083934
interface DOMRect extends DOMRectReadOnly {
3935+
height: number;
3936+
width: number;
3937+
x: number;
3938+
y: number;
39093939
}
39103940

39113941
declare var DOMRect: {
@@ -4409,6 +4439,8 @@ interface Document extends Node, DocumentAndElementEventHandlers, DocumentOrShad
44094439
/** @deprecated */
44104440
captureEvents(): void;
44114441
/** @deprecated */
4442+
caretRangeFromPoint(x: number, y: number): Range | null;
4443+
/** @deprecated */
44124444
clear(): void;
44134445
/**
44144446
* Closes an output stream and forces the sent data to display.
@@ -4694,6 +4726,8 @@ interface DocumentAndElementEventHandlers {
46944726

46954727
/** A minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn't part of the active document tree structure, changes made to the fragment don't affect the document, cause reflow, or incur any performance impact that can occur when changes are made. */
46964728
interface DocumentFragment extends Node, NonElementParentNode, ParentNode {
4729+
readonly ownerDocument: Document;
4730+
getElementById(elementId: string): HTMLElement | null;
46974731
}
46984732

46994733
declare var DocumentFragment: {
@@ -9749,7 +9783,7 @@ interface MediaKeySessionEventMap {
97499783

97509784
/** This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM). */
97519785
interface MediaKeySession extends EventTarget {
9752-
readonly closed: Promise<undefined>;
9786+
readonly closed: Promise<MediaKeySessionClosedReason>;
97539787
readonly expiration: number;
97549788
readonly keyStatuses: MediaKeyStatusMap;
97559789
onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null;
@@ -10146,22 +10180,22 @@ interface MimeType {
1014610180
* Returns the MIME type's description.
1014710181
* @deprecated
1014810182
*/
10149-
readonly description: undefined;
10183+
readonly description: string;
1015010184
/**
1015110185
* Returns the Plugin object that implements this MIME type.
1015210186
* @deprecated
1015310187
*/
10154-
readonly enabledPlugin: undefined;
10188+
readonly enabledPlugin: Plugin;
1015510189
/**
1015610190
* Returns the MIME type's typical file extensions, in a comma-separated list.
1015710191
* @deprecated
1015810192
*/
10159-
readonly suffixes: undefined;
10193+
readonly suffixes: string;
1016010194
/**
1016110195
* Returns the MIME type.
1016210196
* @deprecated
1016310197
*/
10164-
readonly type: undefined;
10198+
readonly type: string;
1016510199
}
1016610200

1016710201
/** @deprecated */
@@ -10178,10 +10212,10 @@ interface MimeTypeArray {
1017810212
/** @deprecated */
1017910213
readonly length: number;
1018010214
/** @deprecated */
10181-
item(index: number): any;
10215+
item(index: number): MimeType | null;
1018210216
/** @deprecated */
10183-
namedItem(name: string): any;
10184-
[index: number]: any;
10217+
namedItem(name: string): MimeType | null;
10218+
[index: number]: MimeType;
1018510219
}
1018610220

1018710221
/** @deprecated */
@@ -10226,11 +10260,17 @@ declare var MouseEvent: {
1022610260
* @deprecated DOM4 [DOM] provides a new mechanism using a MutationObserver interface which addresses the use cases that mutation events solve, but in a more performant manner. Thus, this specification describes mutation events for reference and completeness of legacy behavior, but deprecates the use of the MutationEvent interface.
1022710261
*/
1022810262
interface MutationEvent extends Event {
10263+
/** @deprecated */
1022910264
readonly attrChange: number;
10265+
/** @deprecated */
1023010266
readonly attrName: string;
10267+
/** @deprecated */
1023110268
readonly newValue: string;
10269+
/** @deprecated */
1023210270
readonly prevValue: string;
10271+
/** @deprecated */
1023310272
readonly relatedNode: Node | null;
10273+
/** @deprecated */
1023410274
initMutationEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, relatedNodeArg?: Node | null, prevValueArg?: string, newValueArg?: string, attrNameArg?: string, attrChangeArg?: number): void;
1023510275
readonly ADDITION: number;
1023610276
readonly MODIFICATION: number;
@@ -10405,7 +10445,6 @@ interface NavigatorOnLine {
1040510445
readonly onLine: boolean;
1040610446
}
1040710447

10408-
/** @deprecated */
1040910448
interface NavigatorPlugins {
1041010449
/** @deprecated */
1041110450
readonly mimeTypes: MimeTypeArray;
@@ -11365,30 +11404,30 @@ interface Plugin {
1136511404
* Returns the plugin's description.
1136611405
* @deprecated
1136711406
*/
11368-
readonly description: undefined;
11407+
readonly description: string;
1136911408
/**
1137011409
* Returns the plugin library's filename, if applicable on the current platform.
1137111410
* @deprecated
1137211411
*/
11373-
readonly filename: undefined;
11412+
readonly filename: string;
1137411413
/**
1137511414
* Returns the number of MIME types, represented by MimeType objects, supported by the plugin.
1137611415
* @deprecated
1137711416
*/
11378-
readonly length: undefined;
11417+
readonly length: number;
1137911418
/**
1138011419
* Returns the plugin's name.
1138111420
* @deprecated
1138211421
*/
11383-
readonly name: undefined;
11422+
readonly name: string;
1138411423
/**
1138511424
* Returns the specified MimeType object.
1138611425
* @deprecated
1138711426
*/
11388-
item(index: number): void;
11427+
item(index: number): MimeType | null;
1138911428
/** @deprecated */
11390-
namedItem(name: string): void;
11391-
[index: number]: undefined;
11429+
namedItem(name: string): MimeType | null;
11430+
[index: number]: MimeType;
1139211431
}
1139311432

1139411433
/** @deprecated */
@@ -11405,12 +11444,12 @@ interface PluginArray {
1140511444
/** @deprecated */
1140611445
readonly length: number;
1140711446
/** @deprecated */
11408-
item(index: number): any;
11447+
item(index: number): Plugin | null;
1140911448
/** @deprecated */
11410-
namedItem(name: string): any;
11449+
namedItem(name: string): Plugin | null;
1141111450
/** @deprecated */
1141211451
refresh(): void;
11413-
[index: number]: any;
11452+
[index: number]: Plugin;
1141411453
}
1141511454

1141611455
/** @deprecated */
@@ -11681,6 +11720,7 @@ interface RTCPeerConnectionEventMap {
1168111720
"connectionstatechange": Event;
1168211721
"datachannel": RTCDataChannelEvent;
1168311722
"icecandidate": RTCPeerConnectionIceEvent;
11723+
"icecandidateerror": Event;
1168411724
"iceconnectionstatechange": Event;
1168511725
"icegatheringstatechange": Event;
1168611726
"negotiationneeded": Event;
@@ -11700,6 +11740,7 @@ interface RTCPeerConnection extends EventTarget {
1170011740
onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
1170111741
ondatachannel: ((this: RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;
1170211742
onicecandidate: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any) | null;
11743+
onicecandidateerror: ((this: RTCPeerConnection, ev: Event) => any) | null;
1170311744
oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
1170411745
onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
1170511746
onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;
@@ -18778,6 +18819,7 @@ type MediaDecodingType = "file" | "media-source" | "webrtc";
1877818819
type MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput";
1877918820
type MediaEncodingType = "record" | "webrtc";
1878018821
type MediaKeyMessageType = "individualization-request" | "license-release" | "license-renewal" | "license-request";
18822+
type MediaKeySessionClosedReason = "closed-by-application" | "hardware-context-reset" | "internal-error" | "release-acknowledged" | "resource-evicted";
1878118823
type MediaKeySessionType = "persistent-license" | "temporary";
1878218824
type MediaKeyStatus = "expired" | "internal-error" | "output-downscaled" | "output-restricted" | "released" | "status-pending" | "usable" | "usable-in-future";
1878318825
type MediaKeysRequirement = "not-allowed" | "optional" | "required";
@@ -18793,7 +18835,7 @@ type OscillatorType = "custom" | "sawtooth" | "sine" | "square" | "triangle";
1879318835
type OverSampleType = "2x" | "4x" | "none";
1879418836
type PanningModelType = "HRTF" | "equalpower";
1879518837
type PaymentComplete = "fail" | "success" | "unknown";
18796-
type PermissionName = "gamepad" | "geolocation" | "notifications" | "persistent-storage" | "push";
18838+
type PermissionName = "gamepad" | "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock";
1879718839
type PermissionState = "denied" | "granted" | "prompt";
1879818840
type PlaybackDirection = "alternate" | "alternate-reverse" | "normal" | "reverse";
1879918841
type PositionAlignSetting = "auto" | "center" | "line-left" | "line-right";

baselines/dom.iterable.generated.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ interface MessageEvent<T = any> {
141141
}
142142

143143
interface MimeTypeArray {
144-
[Symbol.iterator](): IterableIterator<any>;
144+
[Symbol.iterator](): IterableIterator<MimeType>;
145145
}
146146

147147
interface NamedNodeMap {
@@ -186,11 +186,11 @@ interface NodeListOf<TNode extends Node> {
186186
}
187187

188188
interface Plugin {
189-
[Symbol.iterator](): IterableIterator<undefined>;
189+
[Symbol.iterator](): IterableIterator<MimeType>;
190190
}
191191

192192
interface PluginArray {
193-
[Symbol.iterator](): IterableIterator<any>;
193+
[Symbol.iterator](): IterableIterator<Plugin>;
194194
}
195195

196196
interface RTCStatsReport extends ReadonlyMap<string, any> {

baselines/serviceworker.generated.d.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1010,6 +1010,28 @@ declare var DOMException: {
10101010
};
10111011

10121012
interface DOMMatrix extends DOMMatrixReadOnly {
1013+
a: number;
1014+
b: number;
1015+
c: number;
1016+
d: number;
1017+
e: number;
1018+
f: number;
1019+
m11: number;
1020+
m12: number;
1021+
m13: number;
1022+
m14: number;
1023+
m21: number;
1024+
m22: number;
1025+
m23: number;
1026+
m24: number;
1027+
m31: number;
1028+
m32: number;
1029+
m33: number;
1030+
m34: number;
1031+
m41: number;
1032+
m42: number;
1033+
m43: number;
1034+
m44: number;
10131035
invertSelf(): DOMMatrix;
10141036
multiplySelf(other?: DOMMatrixInit): DOMMatrix;
10151037
preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;
@@ -1085,6 +1107,10 @@ declare var DOMMatrixReadOnly: {
10851107
};
10861108

10871109
interface DOMPoint extends DOMPointReadOnly {
1110+
w: number;
1111+
x: number;
1112+
y: number;
1113+
z: number;
10881114
}
10891115

10901116
declare var DOMPoint: {
@@ -1125,6 +1151,10 @@ declare var DOMQuad: {
11251151
};
11261152

11271153
interface DOMRect extends DOMRectReadOnly {
1154+
height: number;
1155+
width: number;
1156+
x: number;
1157+
y: number;
11281158
}
11291159

11301160
declare var DOMRect: {
@@ -5680,7 +5710,7 @@ type MediaDecodingType = "file" | "media-source" | "webrtc";
56805710
type MediaEncodingType = "record" | "webrtc";
56815711
type NotificationDirection = "auto" | "ltr" | "rtl";
56825712
type NotificationPermission = "default" | "denied" | "granted";
5683-
type PermissionName = "gamepad" | "geolocation" | "notifications" | "persistent-storage" | "push";
5713+
type PermissionName = "gamepad" | "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock";
56845714
type PermissionState = "denied" | "granted" | "prompt";
56855715
type PredefinedColorSpace = "display-p3" | "srgb";
56865716
type PremultiplyAlpha = "default" | "none" | "premultiply";

0 commit comments

Comments
 (0)