Skip to content

Commit e31755c

Browse files
committed
add service worker types
1 parent 9c824b7 commit e31755c

File tree

7 files changed

+422
-34
lines changed

7 files changed

+422
-34
lines changed

baselines/dom.generated.d.ts

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ interface ClientData {
151151
}
152152

153153
interface ClientQueryOptions {
154-
includeReserved?: boolean;
155154
includeUncontrolled?: boolean;
156155
type?: ClientTypes;
157156
}
@@ -373,14 +372,15 @@ interface ExtendableMessageEventInit extends ExtendableEventInit {
373372
data?: any;
374373
lastEventId?: string;
375374
origin?: string;
376-
ports?: MessagePort[] | null;
377-
source?: object | ServiceWorker | MessagePort | null;
375+
ports?: MessagePort[];
376+
source?: object | ServiceWorker | MessagePort;
378377
}
379378

380379
interface FetchEventInit extends ExtendableEventInit {
381380
clientId?: string;
381+
preloadResponse: Promise<any>;
382382
request: Request;
383-
reservedClientId?: string;
383+
resultingClientId?: string;
384384
targetClientId?: string;
385385
}
386386

@@ -962,6 +962,11 @@ interface MutationObserverInit {
962962
subtree?: boolean;
963963
}
964964

965+
interface NavigationPreloadState {
966+
enabled?: boolean;
967+
headerValue?: string;
968+
}
969+
965970
interface NotificationAction {
966971
action: string;
967972
icon?: string;
@@ -1530,6 +1535,8 @@ interface RTCTransportStats extends RTCStats {
15301535

15311536
interface RegistrationOptions {
15321537
scope?: string;
1538+
type?: WorkerType;
1539+
updateViaCache?: ServiceWorkerUpdateViaCache;
15331540
}
15341541

15351542
interface RequestInit {
@@ -2902,13 +2909,13 @@ declare var CSSSupportsRule: {
29022909
};
29032910

29042911
interface Cache {
2905-
add(request: Request | string): Promise<void>;
2906-
addAll(requests: (Request | string)[]): Promise<void>;
2907-
delete(request: Request | string, options?: CacheQueryOptions): Promise<boolean>;
2908-
keys(request?: Request | string, options?: CacheQueryOptions): Promise<Request[]>;
2909-
match(request: Request | string, options?: CacheQueryOptions): Promise<Response>;
2910-
matchAll(request?: Request | string, options?: CacheQueryOptions): Promise<Response[]>;
2911-
put(request: Request | string, response: Response): Promise<void>;
2912+
add(request: RequestInfo): Promise<void>;
2913+
addAll(requests: RequestInfo[]): Promise<void>;
2914+
delete(request: RequestInfo, options?: CacheQueryOptions): Promise<boolean>;
2915+
keys(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;
2916+
match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;
2917+
matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;
2918+
put(request: RequestInfo, response: Response): Promise<void>;
29122919
}
29132920

29142921
declare var Cache: {
@@ -2920,7 +2927,7 @@ interface CacheStorage {
29202927
delete(cacheName: string): Promise<boolean>;
29212928
has(cacheName: string): Promise<boolean>;
29222929
keys(): Promise<string[]>;
2923-
match(request: Request | string, options?: CacheQueryOptions): Promise<any>;
2930+
match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;
29242931
open(cacheName: string): Promise<Cache>;
29252932
}
29262933

@@ -4589,6 +4596,7 @@ interface DocumentEvent {
45894596
createEvent(eventInterface: "ErrorEvent"): ErrorEvent;
45904597
createEvent(eventInterface: "Event"): Event;
45914598
createEvent(eventInterface: "Events"): Event;
4599+
createEvent(eventInterface: "ExtendableMessageEvent"): ExtendableMessageEvent;
45924600
createEvent(eventInterface: "FocusEvent"): FocusEvent;
45934601
createEvent(eventInterface: "FocusNavigationEvent"): FocusNavigationEvent;
45944602
createEvent(eventInterface: "GamepadEvent"): GamepadEvent;
@@ -9613,6 +9621,18 @@ declare var NamedNodeMap: {
96139621
new(): NamedNodeMap;
96149622
};
96159623

9624+
interface NavigationPreloadManager {
9625+
disable(): Promise<void>;
9626+
enable(): Promise<void>;
9627+
getState(): Promise<NavigationPreloadState>;
9628+
setHeaderValue(value: string): Promise<void>;
9629+
}
9630+
9631+
declare var NavigationPreloadManager: {
9632+
prototype: NavigationPreloadManager;
9633+
new(): NavigationPreloadManager;
9634+
};
9635+
96169636
interface Navigator extends NavigatorID, NavigatorOnLine, NavigatorContentUtils, NavigatorStorageUtils, MSNavigatorDoNotTrack, MSFileSaver, NavigatorBeacon, NavigatorConcurrentHardware, NavigatorUserMedia, NavigatorLanguage {
96179637
readonly activeVRDisplays: ReadonlyArray<VRDisplay>;
96189638
readonly authentication: WebAuthentication;
@@ -13333,18 +13353,18 @@ declare var ServiceWorker: {
1333313353

1333413354
interface ServiceWorkerContainerEventMap {
1333513355
"controllerchange": Event;
13336-
"message": ServiceWorkerMessageEvent;
13356+
"message": ExtendableMessageEvent;
1333713357
"messageerror": MessageEvent;
1333813358
}
1333913359

1334013360
interface ServiceWorkerContainer extends EventTarget {
1334113361
readonly controller: ServiceWorker | null;
1334213362
oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
13343-
onmessage: ((this: ServiceWorkerContainer, ev: ServiceWorkerMessageEvent) => any) | null;
13363+
onmessage: ((this: ServiceWorkerContainer, ev: ExtendableMessageEvent) => any) | null;
1334413364
onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
1334513365
readonly ready: Promise<ServiceWorkerRegistration>;
1334613366
getRegistration(clientURL?: string): Promise<ServiceWorkerRegistration | undefined>;
13347-
getRegistrations(): Promise<ServiceWorkerRegistration[]>;
13367+
getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;
1334813368
register(scriptURL: string, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;
1334913369
startMessages(): void;
1335013370
addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -13378,10 +13398,12 @@ interface ServiceWorkerRegistrationEventMap {
1337813398
interface ServiceWorkerRegistration extends EventTarget {
1337913399
readonly active: ServiceWorker | null;
1338013400
readonly installing: ServiceWorker | null;
13401+
readonly navigationPreload: NavigationPreloadManager;
1338113402
onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;
1338213403
readonly pushManager: PushManager;
1338313404
readonly scope: string;
1338413405
readonly sync: SyncManager;
13406+
readonly updateViaCache: ServiceWorkerUpdateViaCache;
1338513407
readonly waiting: ServiceWorker | null;
1338613408
getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;
1338713409
showNotification(title: string, options?: NotificationOptions): Promise<void>;
@@ -16641,6 +16663,7 @@ type RequestRedirect = "follow" | "error" | "manual";
1664116663
type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
1664216664
type ScopedCredentialType = "ScopedCred";
1664316665
type ServiceWorkerState = "installing" | "installed" | "activating" | "activated" | "redundant";
16666+
type ServiceWorkerUpdateViaCache = "imports" | "all" | "none";
1664416667
type TextTrackKind = "subtitles" | "captions" | "descriptions" | "chapters" | "metadata";
1664516668
type TextTrackMode = "disabled" | "hidden" | "showing";
1664616669
type TouchType = "direct" | "stylus";
@@ -16649,4 +16672,5 @@ type VRDisplayEventReason = "mounted" | "navigation" | "requested" | "unmounted"
1664916672
type VREye = "left" | "right";
1665016673
type VideoFacingModeEnum = "user" | "environment" | "left" | "right";
1665116674
type VisibilityState = "hidden" | "visible" | "prerender" | "unloaded";
16675+
type WorkerType = "classic" | "module";
1665216676
type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";

baselines/webworker.generated.d.ts

Lines changed: 72 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ interface CacheQueryOptions {
1919
}
2020

2121
interface ClientQueryOptions {
22-
includeReserved?: boolean;
2322
includeUncontrolled?: boolean;
2423
type?: ClientTypes;
2524
}
@@ -55,14 +54,15 @@ interface ExtendableMessageEventInit extends ExtendableEventInit {
5554
data?: any;
5655
lastEventId?: string;
5756
origin?: string;
58-
ports?: MessagePort[] | null;
59-
source?: Client | ServiceWorker | MessagePort | null;
57+
ports?: MessagePort[];
58+
source?: Client | ServiceWorker | MessagePort;
6059
}
6160

6261
interface FetchEventInit extends ExtendableEventInit {
6362
clientId?: string;
63+
preloadResponse: Promise<any>;
6464
request: Request;
65-
reservedClientId?: string;
65+
resultingClientId?: string;
6666
targetClientId?: string;
6767
}
6868

@@ -98,6 +98,11 @@ interface MessageEventInit extends EventInit {
9898
source?: object | null;
9999
}
100100

101+
interface NavigationPreloadState {
102+
enabled?: boolean;
103+
headerValue?: string;
104+
}
105+
101106
interface NotificationAction {
102107
action: string;
103108
icon?: string;
@@ -161,6 +166,12 @@ interface PushSubscriptionOptionsInit {
161166
userVisibleOnly?: boolean;
162167
}
163168

169+
interface RegistrationOptions {
170+
scope?: string;
171+
type?: WorkerType;
172+
updateViaCache?: ServiceWorkerUpdateViaCache;
173+
}
174+
164175
interface RequestInit {
165176
body?: BodyInit | null;
166177
cache?: RequestCache;
@@ -248,13 +259,13 @@ interface Body {
248259
}
249260

250261
interface Cache {
251-
add(request: Request | string): Promise<void>;
252-
addAll(requests: (Request | string)[]): Promise<void>;
253-
delete(request: Request | string, options?: CacheQueryOptions): Promise<boolean>;
254-
keys(request?: Request | string, options?: CacheQueryOptions): Promise<Request[]>;
255-
match(request: Request | string, options?: CacheQueryOptions): Promise<Response>;
256-
matchAll(request?: Request | string, options?: CacheQueryOptions): Promise<Response[]>;
257-
put(request: Request | string, response: Response): Promise<void>;
262+
add(request: RequestInfo): Promise<void>;
263+
addAll(requests: RequestInfo[]): Promise<void>;
264+
delete(request: RequestInfo, options?: CacheQueryOptions): Promise<boolean>;
265+
keys(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;
266+
match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;
267+
matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;
268+
put(request: RequestInfo, response: Response): Promise<void>;
258269
}
259270

260271
declare var Cache: {
@@ -266,7 +277,7 @@ interface CacheStorage {
266277
delete(cacheName: string): Promise<boolean>;
267278
has(cacheName: string): Promise<boolean>;
268279
keys(): Promise<string[]>;
269-
match(request: Request | string, options?: CacheQueryOptions): Promise<any>;
280+
match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;
270281
open(cacheName: string): Promise<Cache>;
271282
}
272283

@@ -277,7 +288,6 @@ declare var CacheStorage: {
277288

278289
interface Client {
279290
readonly id: string;
280-
readonly reserved: boolean;
281291
readonly type: ClientTypes;
282292
readonly url: string;
283293
postMessage(message: any, transfer?: any[]): void;
@@ -291,7 +301,7 @@ declare var Client: {
291301
interface Clients {
292302
claim(): Promise<void>;
293303
get(id: string): Promise<any>;
294-
matchAll(options?: ClientQueryOptions): Promise<Client[]>;
304+
matchAll(options?: ClientQueryOptions): Promise<ReadonlyArray<Client>>;
295305
openWindow(url: string): Promise<WindowClient | null>;
296306
}
297307

@@ -553,7 +563,7 @@ interface ExtendableMessageEvent extends ExtendableEvent {
553563
readonly data: any;
554564
readonly lastEventId: string;
555565
readonly origin: string;
556-
readonly ports: ReadonlyArray<MessagePort> | null;
566+
readonly ports: ReadonlyArray<MessagePort>;
557567
readonly source: Client | ServiceWorker | MessagePort | null;
558568
}
559569

@@ -564,8 +574,9 @@ declare var ExtendableMessageEvent: {
564574

565575
interface FetchEvent extends ExtendableEvent {
566576
readonly clientId: string;
577+
readonly preloadResponse: Promise<any>;
567578
readonly request: Request;
568-
readonly reservedClientId: string;
579+
readonly resultingClientId: string;
569580
readonly targetClientId: string;
570581
respondWith(r: Promise<Response>): void;
571582
}
@@ -977,6 +988,18 @@ declare var MessagePort: {
977988
new(): MessagePort;
978989
};
979990

991+
interface NavigationPreloadManager {
992+
disable(): Promise<void>;
993+
enable(): Promise<void>;
994+
getState(): Promise<NavigationPreloadState>;
995+
setHeaderValue(value: string): Promise<void>;
996+
}
997+
998+
declare var NavigationPreloadManager: {
999+
prototype: NavigationPreloadManager;
1000+
new(): NavigationPreloadManager;
1001+
};
1002+
9801003
interface NavigatorBeacon {
9811004
sendBeacon(url: string, data?: Blob | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | FormData | string | null): boolean;
9821005
}
@@ -1358,6 +1381,33 @@ declare var ServiceWorker: {
13581381
new(): ServiceWorker;
13591382
};
13601383

1384+
interface ServiceWorkerContainerEventMap {
1385+
"controllerchange": Event;
1386+
"message": ExtendableMessageEvent;
1387+
"messageerror": MessageEvent;
1388+
}
1389+
1390+
interface ServiceWorkerContainer extends EventTarget {
1391+
readonly controller: ServiceWorker | null;
1392+
oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
1393+
onmessage: ((this: ServiceWorkerContainer, ev: ExtendableMessageEvent) => any) | null;
1394+
onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
1395+
readonly ready: Promise<ServiceWorkerRegistration>;
1396+
getRegistration(clientURL?: string): Promise<ServiceWorkerRegistration | undefined>;
1397+
getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;
1398+
register(scriptURL: string, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;
1399+
startMessages(): void;
1400+
addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1401+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1402+
removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1403+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1404+
}
1405+
1406+
declare var ServiceWorkerContainer: {
1407+
prototype: ServiceWorkerContainer;
1408+
new(): ServiceWorkerContainer;
1409+
};
1410+
13611411
interface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
13621412
"activate": ExtendableEvent;
13631413
"fetch": FetchEvent;
@@ -1403,10 +1453,12 @@ interface ServiceWorkerRegistrationEventMap {
14031453
interface ServiceWorkerRegistration extends EventTarget {
14041454
readonly active: ServiceWorker | null;
14051455
readonly installing: ServiceWorker | null;
1456+
readonly navigationPreload: NavigationPreloadManager;
14061457
onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;
14071458
readonly pushManager: PushManager;
14081459
readonly scope: string;
14091460
readonly sync: SyncManager;
1461+
readonly updateViaCache: ServiceWorkerUpdateViaCache;
14101462
readonly waiting: ServiceWorker | null;
14111463
getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;
14121464
showNotification(title: string, options?: NotificationOptions): Promise<void>;
@@ -1547,7 +1599,7 @@ interface WindowClient extends Client {
15471599
readonly focused: boolean;
15481600
readonly visibilityState: VisibilityState;
15491601
focus(): Promise<WindowClient>;
1550-
navigate(url: string): Promise<WindowClient>;
1602+
navigate(url: string): Promise<WindowClient | null>;
15511603
}
15521604

15531605
declare var WindowClient: {
@@ -1623,6 +1675,7 @@ declare var WorkerLocation: {
16231675
};
16241676

16251677
interface WorkerNavigator extends NavigatorID, NavigatorOnLine, NavigatorBeacon, NavigatorConcurrentHardware {
1678+
readonly serviceWorker: ServiceWorkerContainer;
16261679
}
16271680

16281681
declare var WorkerNavigator: {
@@ -1851,5 +1904,7 @@ type RequestMode = "navigate" | "same-origin" | "no-cors" | "cors";
18511904
type RequestRedirect = "follow" | "error" | "manual";
18521905
type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
18531906
type ServiceWorkerState = "installing" | "installed" | "activating" | "activated" | "redundant";
1907+
type ServiceWorkerUpdateViaCache = "imports" | "all" | "none";
18541908
type VisibilityState = "hidden" | "visible" | "prerender" | "unloaded";
1909+
type WorkerType = "classic" | "module";
18551910
type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";

inputfiles/addedTypes.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,15 @@
4242
"interface": {}
4343
},
4444
"enums": {
45-
"enum": {}
45+
"enum": {
46+
"WorkerType": {
47+
"name": "WorkerType",
48+
"value": [
49+
"classic",
50+
"module"
51+
]
52+
}
53+
}
4654
},
4755
"interfaces": {
4856
"interface": {

0 commit comments

Comments
 (0)