From 8ae7432ae679d25fe4120e43655b3b3f0ad65033 Mon Sep 17 00:00:00 2001 From: Lusito Date: Sat, 6 Jun 2020 13:34:34 +0200 Subject: [PATCH 1/3] blocking response can also be returned as promise. Resolves #27 --- CONTRIBUTING.md | 1 + fixes.json | 11 +++++++++++ lib/webRequest.d.ts | 21 +++++++++++++-------- src/helpers/fixes.ts | 25 ++++++++++++++++++++----- 4 files changed, 45 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 39ea4b8..1f13116 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -76,6 +76,7 @@ If you use any of the above, it is assumed that the current node is an array. Usually the last part of a key is not a special instruction, but a normal key. These are exceptions: - If the last part is exactly `+[]`, values are appended to an array. +- If the last part is exactly `-[]`, the values are selectors to remove elements from an array. See the instructions to navigate an array above. - If the last part is exactly `!fixAsync`, async functions can be easily fixed. ### Appending to an array instead of setting an attribute. diff --git a/fixes.json b/fixes.json index fe7ee81..ff66a20 100644 --- a/fixes.json +++ b/fixes.json @@ -277,7 +277,18 @@ "optional": true, "description": "If true, the new window will be focused. If false, the new window will be opened in the background and the currently focused window will stay focused. Defaults to true." }, + "webRequest:events.%onBeforeRequest.returns.$ref": "BlockingResponseOrPromise", + "webRequest:events.%onBeforeSendHeaders.returns.$ref": "BlockingResponseOrPromise", + "webRequest:events.%onHeadersReceived.returns.$ref": "BlockingResponseOrPromise", + "webRequest:events.%onAuthRequired.returns.$ref": "BlockingResponseOrPromise", + "webRequest:events.%onAuthRequired.parameters.-[]": ["%callback"], "webRequest:types.+[]": [{ + "type": "choices", + "id": "BlockingResponseOrPromise", + "description": "A BlockingResponse or a Promise", + "choices": [{ "type": "BlockingResponse" }, { "type": "Promise" }] + }, + { "id": "StreamFilterStatus", "type": "string", "enum": [{ diff --git a/lib/webRequest.d.ts b/lib/webRequest.d.ts index 5730167..8219fa9 100644 --- a/lib/webRequest.d.ts +++ b/lib/webRequest.d.ts @@ -271,6 +271,11 @@ export declare namespace WebRequest { thirdParty: UrlClassificationParty; } + /** + * A BlockingResponse or a Promise + */ + type BlockingResponseOrPromise = BlockingResponse | Promise; + /** * "uninitialized": The StreamFilter is not fully initialized. No methods may be called until a "start" event has been received. * "transferringdata": The underlying channel is currently transferring data, which will be dispatched via "data" events. @@ -1332,7 +1337,7 @@ export declare namespace WebRequest { /** * Fired when a request is about to occur. */ - interface onBeforeRequestEvent extends Events.Event<(details: OnBeforeRequestDetailsType) => BlockingResponse | void> { + interface onBeforeRequestEvent extends Events.Event<(details: OnBeforeRequestDetailsType) => BlockingResponseOrPromise | void> { /** * Registers an event listener callback to an event. @@ -1341,13 +1346,13 @@ export declare namespace WebRequest { * @param filter A set of filters that restricts the events that will be sent to this listener. * @param extraInfoSpec Optional. Array of extra information that should be passed to the listener function. */ - addListener(callback: (details: OnBeforeRequestDetailsType) => BlockingResponse | void, filter: RequestFilter, extraInfoSpec?: OnBeforeRequestOptions[]): void; + addListener(callback: (details: OnBeforeRequestDetailsType) => BlockingResponseOrPromise | void, filter: RequestFilter, extraInfoSpec?: OnBeforeRequestOptions[]): void; } /** * Fired before sending an HTTP request, once the request headers are available. This may occur after a TCP connection is made to the server, but before any HTTP data is sent. */ - interface onBeforeSendHeadersEvent extends Events.Event<(details: OnBeforeSendHeadersDetailsType) => BlockingResponse | void> { + interface onBeforeSendHeadersEvent extends Events.Event<(details: OnBeforeSendHeadersDetailsType) => BlockingResponseOrPromise | void> { /** * Registers an event listener callback to an event. @@ -1356,7 +1361,7 @@ export declare namespace WebRequest { * @param filter A set of filters that restricts the events that will be sent to this listener. * @param extraInfoSpec Optional. Array of extra information that should be passed to the listener function. */ - addListener(callback: (details: OnBeforeSendHeadersDetailsType) => BlockingResponse | void, filter: RequestFilter, extraInfoSpec?: OnBeforeSendHeadersOptions[]): void; + addListener(callback: (details: OnBeforeSendHeadersDetailsType) => BlockingResponseOrPromise | void, filter: RequestFilter, extraInfoSpec?: OnBeforeSendHeadersOptions[]): void; } /** @@ -1377,7 +1382,7 @@ export declare namespace WebRequest { /** * Fired when HTTP response headers of a request have been received. */ - interface onHeadersReceivedEvent extends Events.Event<(details: OnHeadersReceivedDetailsType) => BlockingResponse | void> { + interface onHeadersReceivedEvent extends Events.Event<(details: OnHeadersReceivedDetailsType) => BlockingResponseOrPromise | void> { /** * Registers an event listener callback to an event. @@ -1386,13 +1391,13 @@ export declare namespace WebRequest { * @param filter A set of filters that restricts the events that will be sent to this listener. * @param extraInfoSpec Optional. Array of extra information that should be passed to the listener function. */ - addListener(callback: (details: OnHeadersReceivedDetailsType) => BlockingResponse | void, filter: RequestFilter, extraInfoSpec?: OnHeadersReceivedOptions[]): void; + addListener(callback: (details: OnHeadersReceivedDetailsType) => BlockingResponseOrPromise | void, filter: RequestFilter, extraInfoSpec?: OnHeadersReceivedOptions[]): void; } /** * Fired when an authentication failure is received. The listener has three options: it can provide authentication credentials, it can cancel the request and display the error page, or it can take no action on the challenge. If bad user credentials are provided, this may be called multiple times for the same request. */ - interface onAuthRequiredEvent extends Events.Event<(details: OnAuthRequiredDetailsType, callback: ((response: BlockingResponse) => void) | undefined) => BlockingResponse | void> { + interface onAuthRequiredEvent extends Events.Event<(details: OnAuthRequiredDetailsType) => BlockingResponseOrPromise | void> { /** * Registers an event listener callback to an event. @@ -1401,7 +1406,7 @@ export declare namespace WebRequest { * @param filter A set of filters that restricts the events that will be sent to this listener. * @param extraInfoSpec Optional. Array of extra information that should be passed to the listener function. */ - addListener(callback: (details: OnAuthRequiredDetailsType, callback: ((response: BlockingResponse) => void) | undefined) => BlockingResponse | void, filter: RequestFilter, extraInfoSpec?: OnAuthRequiredOptions[]): void; + addListener(callback: (details: OnAuthRequiredDetailsType) => BlockingResponseOrPromise | void, filter: RequestFilter, extraInfoSpec?: OnAuthRequiredOptions[]): void; } /** diff --git a/src/helpers/fixes.ts b/src/helpers/fixes.ts index 2a208ac..dceaf3a 100644 --- a/src/helpers/fixes.ts +++ b/src/helpers/fixes.ts @@ -164,24 +164,20 @@ export const fixes: Fix[] = [{ const id = part.substr(1); assertType(base, 'array'); base = base.find((e: any) => e.id === id); - assertType(base, 'array', 'object'); } else if (part[0] === '%') { const name = part.substr(1); assertType(base, 'array'); base = base.find((e: any) => e.name === name); - assertType(base, 'array', 'object'); - assertType(base, 'array', 'object'); } else if (part[0] === '#') { assertType(base, 'array'); const index = parseInt(part.substr(1)); if (index >= base.length || index < 0) throw new Error('Index out of bounds'); base = base[index]; - assertType(base, 'array', 'object'); } else { base = base[part]; - assertType(base, 'array', 'object'); } + assertType(base, 'array', 'object'); } const lastPart = parts[parts.length - 1]; const value = fixes[path]; @@ -189,6 +185,25 @@ export const fixes: Fix[] = [{ assertType(base, 'array'); assertType(value, 'array'); value.forEach((e: any) => base.push(e)); + } else if(lastPart === "-[]") { + assertType(base, 'array'); + assertType(value, 'array'); + value.reverse().forEach((selector: string) => { + let index; + const rest = selector.substr(1); + if (selector[0] === '$') { + index = base.findIndex((e: any) => e.id === rest); + } else if (selector[0] === '%') { + index = base.findIndex((e: any) => e.name === rest); + } else if (selector[0] === '#') { + index = parseInt(rest); + } else { + throw new Error(`Unknown selector: ${selector}`); + } + if (index >= base.length || index < 0) + throw new Error(`Could not find element by selector: ${selector}`); + base.splice(index, 1); + }); } else if (lastPart === "!fixAsync") { assertEqual(base.async, true); assertType(base.parameters, 'array'); From 07e66ea8512b608a8ad603dc6ba0d6ccef701d73 Mon Sep 17 00:00:00 2001 From: Lusito Date: Sat, 6 Jun 2020 13:36:29 +0200 Subject: [PATCH 2/3] updated schemas --- lib/geckoProfiler.d.ts | 2 +- lib/storage.d.ts | 64 +++++++++++- lib/topSites.d.ts | 2 +- schemas/chrome_settings_overrides.json | 6 +- schemas/geckoProfiler.json | 7 +- schemas/storage.json | 131 ++++++++++++++++++++++++- schemas/top_sites.json | 2 +- 7 files changed, 202 insertions(+), 12 deletions(-) diff --git a/lib/geckoProfiler.d.ts b/lib/geckoProfiler.d.ts index 3a6563d..3e101ce 100644 --- a/lib/geckoProfiler.d.ts +++ b/lib/geckoProfiler.d.ts @@ -8,7 +8,7 @@ import { Events } from "./events"; export declare namespace GeckoProfiler { - type ProfilerFeature = "java" | "js" | "leaf" | "mainthreadio" | "privacy" | "responsiveness" | "screenshots" | "seqstyle" | "stackwalk" | "tasktracer" | "threads" | "trackopts" | "jstracer" | "jsallocations" | "nostacksampling" | "nativeallocations" | "preferencereads" | "ipcmessages"; + type ProfilerFeature = "java" | "js" | "leaf" | "mainthreadio" | "responsiveness" | "screenshots" | "seqstyle" | "stackwalk" | "tasktracer" | "threads" | "jstracer" | "jsallocations" | "nostacksampling" | "nativeallocations" | "preferencereads" | "ipcmessages" | "fileio" | "fileioall" | "noiostacks"; type supports = "windowLength"; diff --git a/lib/storage.d.ts b/lib/storage.d.ts index cb7abdd..5419d98 100644 --- a/lib/storage.d.ts +++ b/lib/storage.d.ts @@ -62,7 +62,49 @@ export declare namespace Storage { clear(): Promise; } - interface SyncStorageArea extends StorageArea { + interface StorageAreaSync { + + /** + * Gets one or more items from storage. + * + * @param keys Optional. A single key to get, list of keys to get, or a dictionary specifying default values (see description of the object). An empty list or object will return an empty result object. Pass in null to get the entire contents of storage. + * @returns Promise Callback with storage items, or on failure (in which case $(ref:runtime.lastError) will be set). + */ + get(keys?: string | string[] | StorageAreaSyncGetKeysC3Type): Promise; + + /** + * Gets the amount of space (in bytes) being used by one or more items. + * + * @param keys Optional. A single key or list of keys to get the total usage for. An empty list will return 0. Pass in null to get the total usage of all of storage. + * @returns Promise Callback with the amount of space being used by storage, or on failure (in which case $(ref:runtime.lastError) will be set). + */ + getBytesInUse(keys?: string | string[]): Promise; + + /** + * Sets multiple items. + * + * @param items

An object which gives each key/value pair to update storage with. Any other key/value pairs in storage will not be affected.

Primitive values such as numbers will serialize as expected. Values with a typeof "object" and "function" will typically serialize to {}, with the exception of Array (serializes as expected), Date, and Regex (serialize using their String representation).

+ * @returns Promise Callback on success, or on failure (in which case $(ref:runtime.lastError) will be set). + */ + set(items: StorageAreaSyncSetItemsType): Promise; + + /** + * Removes one or more items from storage. + * + * @param keys A single key or a list of keys for items to remove. + * @returns Promise Callback on success, or on failure (in which case $(ref:runtime.lastError) will be set). + */ + remove(keys: string | string[]): Promise; + + /** + * Removes all items from storage. + * + * @returns Promise Callback on success, or on failure (in which case $(ref:runtime.lastError) will be set). + */ + clear(): Promise; + } + + interface SyncStorageAreaSync extends StorageAreaSync { /** * The maximum total amount (in bytes) of data that can be stored in sync storage, as measured by the JSON stringification of every value plus every key's length. Updates that would cause this limit to be exceeded fail immediately and set $(ref:runtime.lastError). @@ -112,6 +154,24 @@ export declare namespace Storage { interface StorageAreaSetItemsType { } + /** + * Storage items to return in the callback, where the values are replaced with those from storage if they exist. + */ + interface StorageAreaSyncGetKeysC3Type { + } + + /** + * Object with items in their key-value mappings. + */ + interface StorageAreaSyncGetCallbackItemsType { + } + + /** + *

An object which gives each key/value pair to update storage with. Any other key/value pairs in storage will not be affected.

Primitive values such as numbers will serialize as expected. Values with a typeof "object" and "function" will typically serialize to {}, with the exception of Array (serializes as expected), Date, and Regex (serialize using their String representation).

+ */ + interface StorageAreaSyncSetItemsType { + } + interface Static { /** @@ -122,7 +182,7 @@ export declare namespace Storage { */ onChanged: Events.Event<(changes: {[s:string]:StorageChange}, areaName: string) => void>; - sync: SyncStorageArea; + sync: SyncStorageAreaSync; local: LocalStorageArea; diff --git a/lib/topSites.d.ts b/lib/topSites.d.ts index 06366ac..a03738d 100644 --- a/lib/topSites.d.ts +++ b/lib/topSites.d.ts @@ -80,7 +80,7 @@ export declare namespace TopSites { includeSearchShortcuts?: boolean; /** - * Return the sites that exactly appear on the user's new-tab page. When true, all other options are ignored except limit and includeFavicon. + * Return the sites that exactly appear on the user's new-tab page. When true, all other options are ignored except limit and includeFavicon. If the user disabled newtab Top Sites, the newtab parameter will be ignored. * Optional. */ newtab?: boolean; diff --git a/schemas/chrome_settings_overrides.json b/schemas/chrome_settings_overrides.json index 8aa9b3e..5efe132 100644 --- a/schemas/chrome_settings_overrides.json +++ b/schemas/chrome_settings_overrides.json @@ -33,7 +33,7 @@ "search_url": { "type": "string", "format": "url", - "pattern": "^https://.*$", + "pattern": "^(https://|http://(localhost|127\\.0\\.0\\.1|\\[::1\\])).*$", "preprocess": "localize" }, "favicon_url": { @@ -45,7 +45,7 @@ "suggest_url": { "type": "string", "optional": true, - "pattern": "^https://.*$|^$", + "pattern": "^(https://|http://(localhost|127\\.0\\.0\\.1|\\[::1\\])).*$", "preprocess": "localize" }, "instant_url": { @@ -102,7 +102,7 @@ "type": "string", "optional": true, "format": "url", - "pattern": "^https://.*$", + "pattern": "^(https://|http://(localhost|127\\.0\\.0\\.1|\\[::1\\])).*$", "preprocess": "localize" }, "alternate_urls": { diff --git a/schemas/geckoProfiler.json b/schemas/geckoProfiler.json index 0e4b79f..e30303f 100644 --- a/schemas/geckoProfiler.json +++ b/schemas/geckoProfiler.json @@ -27,20 +27,21 @@ "js", "leaf", "mainthreadio", - "privacy", "responsiveness", "screenshots", "seqstyle", "stackwalk", "tasktracer", "threads", - "trackopts", "jstracer", "jsallocations", "nostacksampling", "nativeallocations", "preferencereads", - "ipcmessages" + "ipcmessages", + "fileio", + "fileioall", + "noiostacks" ] }, { diff --git a/schemas/storage.json b/schemas/storage.json index 4d8074e..fd7134c 100644 --- a/schemas/storage.json +++ b/schemas/storage.json @@ -155,6 +155,135 @@ ] } ] + }, + { + "id": "StorageAreaSync", + "type": "object", + "functions": [ + { + "name": "get", + "type": "function", + "description": "Gets one or more items from storage.", + "async": "callback", + "parameters": [ + { + "name": "keys", + "choices": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } }, + { + "type": "object", + "description": "Storage items to return in the callback, where the values are replaced with those from storage if they exist.", + "additionalProperties": { "type": "any" } + } + ], + "description": "A single key to get, list of keys to get, or a dictionary specifying default values (see description of the object). An empty list or object will return an empty result object. Pass in null to get the entire contents of storage.", + "optional": true + }, + { + "name": "callback", + "type": "function", + "description": "Callback with storage items, or on failure (in which case $(ref:runtime.lastError) will be set).", + "parameters": [ + { + "name": "items", + "type": "object", + "additionalProperties": { "type": "any" }, + "description": "Object with items in their key-value mappings." + } + ] + } + ] + }, + { + "name": "getBytesInUse", + "type": "function", + "description": "Gets the amount of space (in bytes) being used by one or more items.", + "async": "callback", + "parameters": [ + { + "name": "keys", + "choices": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ], + "description": "A single key or list of keys to get the total usage for. An empty list will return 0. Pass in null to get the total usage of all of storage.", + "optional": true + }, + { + "name": "callback", + "type": "function", + "description": "Callback with the amount of space being used by storage, or on failure (in which case $(ref:runtime.lastError) will be set).", + "parameters": [ + { + "name": "bytesInUse", + "type": "integer", + "description": "Amount of space being used in storage, in bytes." + } + ] + } + ] + }, + { + "name": "set", + "type": "function", + "description": "Sets multiple items.", + "async": "callback", + "parameters": [ + { + "name": "items", + "type": "object", + "additionalProperties": { "type": "any" }, + "description": "

An object which gives each key/value pair to update storage with. Any other key/value pairs in storage will not be affected.

Primitive values such as numbers will serialize as expected. Values with a typeof \"object\" and \"function\" will typically serialize to {}, with the exception of Array (serializes as expected), Date, and Regex (serialize using their String representation).

" + }, + { + "name": "callback", + "type": "function", + "description": "Callback on success, or on failure (in which case $(ref:runtime.lastError) will be set).", + "parameters": [], + "optional": true + } + ] + }, + { + "name": "remove", + "type": "function", + "description": "Removes one or more items from storage.", + "async": "callback", + "parameters": [ + { + "name": "keys", + "choices": [ + {"type": "string"}, + {"type": "array", "items": {"type": "string"}} + ], + "description": "A single key or a list of keys for items to remove." + }, + { + "name": "callback", + "type": "function", + "description": "Callback on success, or on failure (in which case $(ref:runtime.lastError) will be set).", + "parameters": [], + "optional": true + } + ] + }, + { + "name": "clear", + "type": "function", + "description": "Removes all items from storage.", + "async": "callback", + "parameters": [ + { + "name": "callback", + "type": "function", + "description": "Callback on success, or on failure (in which case $(ref:runtime.lastError) will be set).", + "parameters": [], + "optional": true + } + ] + } + ] } ], "events": [ @@ -179,7 +308,7 @@ ], "properties": { "sync": { - "$ref": "StorageArea", + "$ref": "StorageAreaSync", "description": "Items in the sync storage area are synced by the browser.", "properties": { "QUOTA_BYTES": { diff --git a/schemas/top_sites.json b/schemas/top_sites.json index 3eab617..dc85b6d 100644 --- a/schemas/top_sites.json +++ b/schemas/top_sites.json @@ -114,7 +114,7 @@ "type": "boolean", "default": false, "optional": true, - "description": "Return the sites that exactly appear on the user's new-tab page. When true, all other options are ignored except limit and includeFavicon." + "description": "Return the sites that exactly appear on the user's new-tab page. When true, all other options are ignored except limit and includeFavicon. If the user disabled newtab Top Sites, the newtab parameter will be ignored." } }, "default": {}, From 98e6f46a8ccb8809a53dcb622957fbc7d6ae8afd Mon Sep 17 00:00:00 2001 From: Lusito Date: Sat, 6 Jun 2020 13:39:23 +0200 Subject: [PATCH 3/3] version bump --- package-lock.json | 32 ++++++++++++++++---------------- package.json | 10 +++++----- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a439a3..7c6f105 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "webextension-polyfill-ts", - "version": "0.16.0", + "version": "0.17.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -70,9 +70,9 @@ "dev": true }, "@types/node": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.5.tgz", - "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==", + "version": "14.0.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.11.tgz", + "integrity": "sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg==", "dev": true }, "@types/responselike": { @@ -226,9 +226,9 @@ } }, "got": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/got/-/got-11.1.4.tgz", - "integrity": "sha512-z94KIXHhFSpJONuY6C6w1wC+igE7P1d0b5h3H2CvrOXn0/tum/OgFblIGUAxI5PBXukGLvKb9MJXVHW8vsYaBA==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/got/-/got-11.3.0.tgz", + "integrity": "sha512-yi/kiZY2tNMtt5IfbfX8UL3hAZWb2gZruxYZ72AY28pU5p0TZjZdl0uRsuaFbnC0JopdUi3I+Mh1F3dPQ9Dh0Q==", "dev": true, "requires": { "@sindresorhus/is": "^2.1.1", @@ -357,9 +357,9 @@ } }, "quick-lru": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.0.tgz", - "integrity": "sha512-WjAKQ9ORzvqjLijJXiXWqc3Gcs1ivoxCj6KJmEjoWBE6OtHwuaDLSAUqGHALUiid7A1KqGqsSHZs8prxF5xxAQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true }, "resolve-alpn": { @@ -403,9 +403,9 @@ } }, "ts-node": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", - "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "requires": { "arg": "^4.1.0", @@ -416,9 +416,9 @@ } }, "typescript": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", - "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", + "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", "dev": true }, "webextension-polyfill": { diff --git a/package.json b/package.json index 05dc887..07395e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "webextension-polyfill-ts", - "version": "0.16.0", + "version": "0.17.0", "description": "webextension-polyfill for TypeScript", "keywords": [ "TypeScript", @@ -33,11 +33,11 @@ "webextension-polyfill": "^0.6.0" }, "devDependencies": { - "@types/node": "^14.0.5", + "@types/node": "^14.0.11", "@types/rimraf": "^3.0.0", - "got": "^11.1.4", + "got": "^11.3.0", "rimraf": "^3.0.2", - "ts-node": "^8.10.1", - "typescript": "^3.9.3" + "ts-node": "^8.10.2", + "typescript": "^3.9.5" } }