[Bug fix] Fix custom domains not working after conversion to typescript. (#6)

* added dotenv dev dependency, to prevent being dependent on IDE to set env variables

* added biomejs to dev dependencies, was missing

* fixed custom domains not working after ts conversion

* fixed a bug where you could not add multiple custom domains, because the script was trying to register multiple content scripts with same id
This commit is contained in:
Michael Goodman 2024-07-04 10:41:49 +03:00 committed by Philipp Kief
parent 3c08d6e060
commit 0d067d0394
No known key found for this signature in database
GPG Key ID: CC872C197CBB41C8
12 changed files with 291 additions and 11 deletions

2
.env.example Normal file
View File

@ -0,0 +1,2 @@
# Github token is used for scripts/build-languages.ts
GITHUB_TOKEN=

2
.gitignore vendored
View File

@ -15,3 +15,5 @@ node_modules
.DS_Store
.eslintcache
Thumbs.db
.env

247
package-lock.json generated
View File

@ -14,10 +14,12 @@
"webextension-polyfill": "0.12.0"
},
"devDependencies": {
"@biomejs/biome": "1.8.3",
"@octokit/core": "3.5.1",
"@types/fs-extra": "11.0.4",
"@types/json-stable-stringify": "1.0.36",
"@types/webextension-polyfill": "0.10.7",
"dotenv": "16.4.5",
"esbuild": "0.21.5",
"fs-extra": "11.2.0",
"husky": "9.0.11",
@ -109,6 +111,161 @@
"node": ">=6.9.0"
}
},
"node_modules/@biomejs/biome": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.8.3.tgz",
"integrity": "sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==",
"dev": true,
"hasInstallScript": true,
"bin": {
"biome": "bin/biome"
},
"engines": {
"node": ">=14.21.3"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/biome"
},
"optionalDependencies": {
"@biomejs/cli-darwin-arm64": "1.8.3",
"@biomejs/cli-darwin-x64": "1.8.3",
"@biomejs/cli-linux-arm64": "1.8.3",
"@biomejs/cli-linux-arm64-musl": "1.8.3",
"@biomejs/cli-linux-x64": "1.8.3",
"@biomejs/cli-linux-x64-musl": "1.8.3",
"@biomejs/cli-win32-arm64": "1.8.3",
"@biomejs/cli-win32-x64": "1.8.3"
}
},
"node_modules/@biomejs/cli-darwin-arm64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.8.3.tgz",
"integrity": "sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-darwin-x64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.8.3.tgz",
"integrity": "sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-arm64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.8.3.tgz",
"integrity": "sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-arm64-musl": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.3.tgz",
"integrity": "sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-x64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.8.3.tgz",
"integrity": "sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-x64-musl": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.8.3.tgz",
"integrity": "sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-win32-arm64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.8.3.tgz",
"integrity": "sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-win32-x64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.3.tgz",
"integrity": "sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
@ -3864,6 +4021,18 @@
}
]
},
"node_modules/dotenv": {
"version": "16.4.5",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://dotenvx.com"
}
},
"node_modules/dtrace-provider": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",
@ -10149,6 +10318,78 @@
"regenerator-runtime": "^0.14.0"
}
},
"@biomejs/biome": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.8.3.tgz",
"integrity": "sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==",
"dev": true,
"requires": {
"@biomejs/cli-darwin-arm64": "1.8.3",
"@biomejs/cli-darwin-x64": "1.8.3",
"@biomejs/cli-linux-arm64": "1.8.3",
"@biomejs/cli-linux-arm64-musl": "1.8.3",
"@biomejs/cli-linux-x64": "1.8.3",
"@biomejs/cli-linux-x64-musl": "1.8.3",
"@biomejs/cli-win32-arm64": "1.8.3",
"@biomejs/cli-win32-x64": "1.8.3"
}
},
"@biomejs/cli-darwin-arm64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.8.3.tgz",
"integrity": "sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==",
"dev": true,
"optional": true
},
"@biomejs/cli-darwin-x64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.8.3.tgz",
"integrity": "sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==",
"dev": true,
"optional": true
},
"@biomejs/cli-linux-arm64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.8.3.tgz",
"integrity": "sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==",
"dev": true,
"optional": true
},
"@biomejs/cli-linux-arm64-musl": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.3.tgz",
"integrity": "sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==",
"dev": true,
"optional": true
},
"@biomejs/cli-linux-x64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.8.3.tgz",
"integrity": "sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==",
"dev": true,
"optional": true
},
"@biomejs/cli-linux-x64-musl": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.8.3.tgz",
"integrity": "sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==",
"dev": true,
"optional": true
},
"@biomejs/cli-win32-arm64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.8.3.tgz",
"integrity": "sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==",
"dev": true,
"optional": true
},
"@biomejs/cli-win32-x64": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.3.tgz",
"integrity": "sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==",
"dev": true,
"optional": true
},
"@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
@ -12460,6 +12701,12 @@
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"dev": true
},
"dotenv": {
"version": "16.4.5",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
"dev": true
},
"dtrace-provider": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",

View File

@ -22,10 +22,12 @@
"webextension-polyfill": "0.12.0"
},
"devDependencies": {
"@biomejs/biome": "1.8.3",
"@octokit/core": "3.5.1",
"@types/fs-extra": "11.0.4",
"@types/json-stable-stringify": "1.0.36",
"@types/webextension-polyfill": "0.10.7",
"dotenv": "16.4.5",
"esbuild": "0.21.5",
"fs-extra": "11.2.0",
"husky": "9.0.11",
@ -39,7 +41,7 @@
"web-ext": "8.2.0"
},
"scripts": {
"prebuild": "rimraf *.zip ./dist",
"prebuild": "rimraf --glob *.zip ./dist",
"build": "run-s build-languages build-src bundle",
"build-languages": "ts-node ./scripts/build-languages.ts",
"build-src": "ts-node ./scripts/build-src.ts",

View File

@ -1,3 +1,4 @@
import 'dotenv/config';
import * as path from 'path';
import * as fs from 'fs-extra';
import sharp from 'sharp';

View File

@ -1,3 +1,4 @@
import 'dotenv/config';
import * as path from 'path';
import { Octokit } from '@octokit/core';
import * as fs from 'fs-extra';

View File

@ -1,3 +1,4 @@
import 'dotenv/config';
import * as path from 'path';
import * as esbuild from 'esbuild';
import * as fs from 'fs-extra';

View File

@ -1,3 +1,4 @@
import 'dotenv/config';
import * as path from 'path';
import * as fs from 'fs/promises';

View File

@ -1,3 +1,4 @@
import 'dotenv/config';
import * as path from 'path';
import * as fs from 'fs/promises';

View File

@ -15,7 +15,7 @@ Browser.runtime.onMessage.addListener((message: Message) => {
origins: [`*://${message.data.host}/*`],
};
Browser.permissions.request(perm).then((granted: boolean) => {
Browser.permissions.request(perm).then(async (granted: boolean) => {
if (!granted) {
return;
}
@ -28,14 +28,37 @@ Browser.runtime.onMessage.addListener((message: Message) => {
},
});
// register content script for future
return Browser.scripting.registerContentScripts([
const scripts = await Browser.scripting.getRegisteredContentScripts({
ids: ['material-icons'],
});
const pattern: string = `*://${message.data.host}/*`;
if (!scripts.length) {
// register content script for future use
return Browser.scripting.registerContentScripts([
{
id: 'material-icons',
js: ['./main.js'],
css: ['./injected-styles.css'],
matches: [pattern],
runAt: 'document_start',
},
]);
}
const matches = scripts[0].matches ?? [];
// if we somehow already registered the script for requested origin, skip it
if (matches.includes(pattern)) {
return;
}
// add new origin to content script
return Browser.scripting.updateContentScripts([
{
id: 'github-material-icons',
js: ['./main.js'],
css: ['./injected-styles.css'],
matches: [`*://${message.data.host}/*`],
runAt: 'document_start',
id: 'material-icons',
matches: [...matches, pattern],
},
]);
});

View File

@ -69,7 +69,7 @@ Browser.runtime.onMessage.addListener(
if (message.cmd === 'guessProvider') {
const result = handlers[message.cmd](
(message.args || []) as unknown as Possibilities
(message.args || [])[0] as unknown as Possibilities
);
return sendResponse(result);
}

View File

@ -190,7 +190,6 @@ function requestAccess(tab: Browser.Tabs.Tab) {
event: 'request-access',
data: {
tabId: tab.id,
url: tab.url,
host,
},
});