diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2024-02-02 22:57:27 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-03 03:57:27 +0000 | 
| commit | d7db65a9b3b8d941c6934597862b8010a1ccac64 (patch) | |
| tree | 5b406707f95243d786be048f8fc20c5fe90d48ae | |
| parent | 17ffea6cb907c12c1af47d3f6f27126f126b168f (diff) | |
Chrome types update (#614)
* Update chrome types
* Fix issues
* Update manifest author
| -rw-r--r-- | dev/data/manifest-variants.json | 18 | ||||
| -rw-r--r-- | ext/js/background/offscreen-proxy.js | 8 | ||||
| -rw-r--r-- | package-lock.json | 14 | ||||
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | types/dev/manifest.d.ts | 10 | 
5 files changed, 38 insertions, 14 deletions
| diff --git a/dev/data/manifest-variants.json b/dev/data/manifest-variants.json index b0cc70a7..93841f46 100644 --- a/dev/data/manifest-variants.json +++ b/dev/data/manifest-variants.json @@ -4,7 +4,9 @@          "name": "Yomitan",          "version": "$YOMITAN_VERSION",          "description": "Japanese dictionary with Anki integration", -        "author": "TheMoeWay", +        "author": { +            "email": "themoeway@googlegroups.com" +        },          "icons": {              "16": "images/icon16.png",              "19": "images/icon19.png", @@ -179,6 +181,13 @@              "fileName": "yomitan-firefox.zip",              "modifications": [                  { +                    "action": "set", +                    "path": [ +                        "author" +                    ], +                    "value": "TheMoeWay" +                }, +                {                      "action": "delete",                      "path": [                          "background", @@ -313,6 +322,13 @@              "name": "safari",              "modifications": [                  { +                    "action": "set", +                    "path": [ +                        "author" +                    ], +                    "value": "TheMoeWay" +                }, +                {                      "action": "remove",                      "path": [                          "optional_permissions" diff --git a/ext/js/background/offscreen-proxy.js b/ext/js/background/offscreen-proxy.js index 716deddd..8c3f63c9 100644 --- a/ext/js/background/offscreen-proxy.js +++ b/ext/js/background/offscreen-proxy.js @@ -59,7 +59,6 @@ export class OffscreenProxy {       */      async _hasOffscreenDocument() {          const offscreenUrl = chrome.runtime.getURL('offscreen.html'); -        // @ts-expect-error - API not defined yet          if (!chrome.runtime.getContexts) { // chrome version below 116              // Clients: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/clients              // @ts-expect-error - Types not set up for service workers yet @@ -68,12 +67,13 @@ export class OffscreenProxy {              return await matchedClients.some((client) => client.url === offscreenUrl);          } -        // @ts-expect-error - API not defined yet          const contexts = await chrome.runtime.getContexts({ -            contextTypes: ['OFFSCREEN_DOCUMENT'], +            contextTypes: [ +                /** @type {chrome.runtime.ContextType} */ ('OFFSCREEN_DOCUMENT') +            ],              documentUrls: [offscreenUrl]          }); -        return !!contexts.length; +        return contexts.length > 0;      }      /** diff --git a/package-lock.json b/package-lock.json index 8dc1b509..ecbe54c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@                  "@stylistic/stylelint-plugin": "^2.0.0",                  "@types/assert": "^1.5.10",                  "@types/browserify": "^12.0.40", -                "@types/chrome": "^0.0.254", +                "@types/chrome": "^0.0.260",                  "@types/css": "^0.0.37",                  "@types/events": "^3.0.3",                  "@types/firefox-webext-browser": "^120.0.0", @@ -1359,9 +1359,9 @@              }          },          "node_modules/@types/chrome": { -            "version": "0.0.254", -            "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.254.tgz", -            "integrity": "sha512-svkOGKwA+6ZZuk9xtrYun8MYpNY/9hD17rgZ19v3KunhsK1ZOKaMESw12/1AXLh1u3UPA8jQIRi2370DXv9wgw==", +            "version": "0.0.260", +            "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.260.tgz", +            "integrity": "sha512-lX6QpgfsZRTDpNcCJ+3vzfFnFXq9bScFRTlfhbK5oecSAjamsno+ejFTCbNtc5O/TPnVK9Tja/PyecvWQe0F2w==",              "dev": true,              "dependencies": {                  "@types/filesystem": "*", @@ -7108,9 +7108,9 @@              }          },          "@types/chrome": { -            "version": "0.0.254", -            "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.254.tgz", -            "integrity": "sha512-svkOGKwA+6ZZuk9xtrYun8MYpNY/9hD17rgZ19v3KunhsK1ZOKaMESw12/1AXLh1u3UPA8jQIRi2370DXv9wgw==", +            "version": "0.0.260", +            "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.260.tgz", +            "integrity": "sha512-lX6QpgfsZRTDpNcCJ+3vzfFnFXq9bScFRTlfhbK5oecSAjamsno+ejFTCbNtc5O/TPnVK9Tja/PyecvWQe0F2w==",              "dev": true,              "requires": {                  "@types/filesystem": "*", diff --git a/package.json b/package.json index 7497e857..7c56f8e1 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@          "@stylistic/stylelint-plugin": "^2.0.0",          "@types/assert": "^1.5.10",          "@types/browserify": "^12.0.40", -        "@types/chrome": "^0.0.254", +        "@types/chrome": "^0.0.260",          "@types/css": "^0.0.37",          "@types/events": "^3.0.3",          "@types/firefox-webext-browser": "^120.0.0", diff --git a/types/dev/manifest.d.ts b/types/dev/manifest.d.ts index ef2c831c..f07b2355 100644 --- a/types/dev/manifest.d.ts +++ b/types/dev/manifest.d.ts @@ -15,7 +15,15 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -export type Manifest = chrome.runtime.Manifest; +/** + * These overrides provide compatibility between the default chrome types and the minor + * differences that other browsers such as Firefox use. + */ +export type ManifestOverrides = { +    author?: chrome.runtime.Manifest['author'] | string; +}; + +export type Manifest = Omit<chrome.runtime.Manifest, keyof ManifestOverrides> & ManifestOverrides;  export type ManifestConfig = {      manifest: Manifest; |