Merge pull request 'chore(package.json): początek dodawania abstrakcji w build-time' (#125) from refactor/build_time_abstraction into develop
Reviewed-on: #125
This commit is contained in:
commit
f1b1b6e720
7
.gitignore
vendored
7
.gitignore
vendored
@ -5,3 +5,10 @@ sidebar.js
|
|||||||
lib/*
|
lib/*
|
||||||
/yarn-error.log
|
/yarn-error.log
|
||||||
/rentgen.zip
|
/rentgen.zip
|
||||||
|
|
||||||
|
# Generated PNG icons (build artifacts)
|
||||||
|
/assets/icons/*.png
|
||||||
|
/assets/icon-addon-*.png
|
||||||
|
|
||||||
|
# Exception: do not ignore the `browser-api` directory inside `lib`
|
||||||
|
!/lib/browser-api/
|
54
lib/browser-api/chrome.ts
Normal file
54
lib/browser-api/chrome.ts
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/**
|
||||||
|
* Chrome Browser API Implementation
|
||||||
|
*
|
||||||
|
* Mapuje Chrome chrome.* API na nasze ujednolicone BrowserAPI
|
||||||
|
*/
|
||||||
|
|
||||||
|
import type { BrowserAPI } from './types';
|
||||||
|
|
||||||
|
// Chrome używa globalnego obiektu `chrome`
|
||||||
|
declare const chrome: any;
|
||||||
|
|
||||||
|
export const chromeAPI: BrowserAPI = {
|
||||||
|
// Tabs API - chrome.tabs.* → tabs.*
|
||||||
|
tabs: {
|
||||||
|
query: chrome.tabs.query,
|
||||||
|
onUpdated: {
|
||||||
|
addListener: chrome.tabs.onUpdated.addListener,
|
||||||
|
removeListener: chrome.tabs.onUpdated.removeListener,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
// Badge API - Chrome używa action (nie browserAction)
|
||||||
|
badge: {
|
||||||
|
setBadgeText: chrome.action.setBadgeText,
|
||||||
|
setTitle: chrome.action.setTitle,
|
||||||
|
setBadgeBackgroundColor: chrome.action.setBadgeBackgroundColor,
|
||||||
|
},
|
||||||
|
|
||||||
|
// WebRequest API - chrome.webRequest.* → webRequest.*
|
||||||
|
webRequest: {
|
||||||
|
onBeforeRequest: {
|
||||||
|
addListener: chrome.webRequest.onBeforeRequest.addListener,
|
||||||
|
},
|
||||||
|
onBeforeSendHeaders: {
|
||||||
|
addListener: chrome.webRequest.onBeforeSendHeaders.addListener,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
// Cookies API - chrome.cookies.* → cookies.*
|
||||||
|
cookies: {
|
||||||
|
getAll: chrome.cookies.getAll,
|
||||||
|
remove: chrome.cookies.remove,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Extension API - chrome.extension.* → extension.*
|
||||||
|
extension: {
|
||||||
|
getBackgroundPage: chrome.extension.getBackgroundPage,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Windows API - chrome.windows.* → windows.*
|
||||||
|
windows: {
|
||||||
|
WINDOW_ID_CURRENT: chrome.windows.WINDOW_ID_CURRENT,
|
||||||
|
},
|
||||||
|
};
|
54
lib/browser-api/firefox.ts
Normal file
54
lib/browser-api/firefox.ts
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/**
|
||||||
|
* Firefox Browser API Implementation
|
||||||
|
*
|
||||||
|
* Mapuje Firefox browser.* API na nasze ujednolicone BrowserAPI
|
||||||
|
*/
|
||||||
|
|
||||||
|
import type { BrowserAPI } from './types';
|
||||||
|
|
||||||
|
// Firefox używa globalnego obiektu `browser`
|
||||||
|
declare const browser: any;
|
||||||
|
|
||||||
|
export const firefoxAPI: BrowserAPI = {
|
||||||
|
// Tabs API - direct mapping
|
||||||
|
tabs: {
|
||||||
|
query: browser.tabs.query,
|
||||||
|
onUpdated: {
|
||||||
|
addListener: browser.tabs.onUpdated.addListener,
|
||||||
|
removeListener: browser.tabs.onUpdated.removeListener,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
// Badge API - Firefox używa browserAction
|
||||||
|
badge: {
|
||||||
|
setBadgeText: browser.browserAction.setBadgeText,
|
||||||
|
setTitle: browser.browserAction.setTitle,
|
||||||
|
setBadgeBackgroundColor: browser.browserAction.setBadgeBackgroundColor,
|
||||||
|
},
|
||||||
|
|
||||||
|
// WebRequest API - direct mapping
|
||||||
|
webRequest: {
|
||||||
|
onBeforeRequest: {
|
||||||
|
addListener: browser.webRequest.onBeforeRequest.addListener,
|
||||||
|
},
|
||||||
|
onBeforeSendHeaders: {
|
||||||
|
addListener: browser.webRequest.onBeforeSendHeaders.addListener,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
// Cookies API - direct mapping
|
||||||
|
cookies: {
|
||||||
|
getAll: browser.cookies.getAll,
|
||||||
|
remove: browser.cookies.remove,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Extension API - direct mapping
|
||||||
|
extension: {
|
||||||
|
getBackgroundPage: browser.extension.getBackgroundPage,
|
||||||
|
},
|
||||||
|
|
||||||
|
// Windows API - direct mapping
|
||||||
|
windows: {
|
||||||
|
WINDOW_ID_CURRENT: browser.windows.WINDOW_ID_CURRENT,
|
||||||
|
},
|
||||||
|
};
|
27
lib/browser-api/index.ts
Normal file
27
lib/browser-api/index.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* Browser API Abstraction - Main Export
|
||||||
|
*
|
||||||
|
* Eksportuje właściwą implementację na podstawie TARGET build variable
|
||||||
|
*/
|
||||||
|
|
||||||
|
import type { BrowserAPI } from './types';
|
||||||
|
|
||||||
|
// Build-time selection of browser API implementation
|
||||||
|
let browserApi: BrowserAPI;
|
||||||
|
|
||||||
|
// TARGET jest ustawiane przez esbuild.config.js na podstawie npm script
|
||||||
|
if (process.env.TARGET === 'chrome') {
|
||||||
|
// Chrome build - używamy chrome adapter
|
||||||
|
const { chromeAPI } = require('./chrome');
|
||||||
|
browserApi = chromeAPI;
|
||||||
|
} else {
|
||||||
|
// Firefox build (default) - używamy firefox adapter
|
||||||
|
const { firefoxAPI } = require('./firefox');
|
||||||
|
browserApi = firefoxAPI;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Eksportuj jako default export
|
||||||
|
export default browserApi;
|
||||||
|
|
||||||
|
// Re-export typów dla wygody
|
||||||
|
export * from './types';
|
124
lib/browser-api/types.ts
Normal file
124
lib/browser-api/types.ts
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
/**
|
||||||
|
* Browser API Abstraction - Typy na podstawie faktycznego użycia w kodzie
|
||||||
|
*
|
||||||
|
* Przeanalizowane pliki:
|
||||||
|
* - util.ts: tabs.query, Tab.id
|
||||||
|
* - tab-dropdown.tsx: tabs.query, Tab.id, Tab.title
|
||||||
|
* - toolbar.tsx: tabs.query, tabs.onUpdated, Tab.url, windows.WINDOW_ID_CURRENT
|
||||||
|
* - memory.ts: browserAction.*, webRequest.*, cookies.*, extension.*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// === Tab API (util.ts, tab-dropdown.tsx, toolbar.tsx) ===
|
||||||
|
export interface Tab {
|
||||||
|
id?: number; // util.ts: tab.id, tab-dropdown.tsx: tab.id
|
||||||
|
title?: string; // tab-dropdown.tsx: tab.title
|
||||||
|
url?: string; // toolbar.tsx: tab.url
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TabQuery {
|
||||||
|
currentWindow?: boolean; // util.ts, tab-dropdown.tsx
|
||||||
|
active?: boolean; // toolbar.tsx
|
||||||
|
windowId?: number; // toolbar.tsx
|
||||||
|
}
|
||||||
|
|
||||||
|
// === Badge/BrowserAction API (memory.ts) ===
|
||||||
|
export interface BadgeTextDetails {
|
||||||
|
text: string; // memory.ts: setBadgeText
|
||||||
|
tabId?: number; // memory.ts: setBadgeText (optional)
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BadgeTitleDetails {
|
||||||
|
title: string; // memory.ts: setTitle
|
||||||
|
tabId?: number; // memory.ts: setTitle (optional)
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BadgeColorDetails {
|
||||||
|
color: string; // memory.ts: setBadgeBackgroundColor
|
||||||
|
}
|
||||||
|
|
||||||
|
// === WebRequest API (memory.ts) ===
|
||||||
|
export interface RequestDetails {
|
||||||
|
requestId: string; // memory.ts: request.requestId
|
||||||
|
requestHeaders?: RequestHeader[]; // memory.ts: request.requestHeaders
|
||||||
|
// Note: ExtendedRequest konstruktor używa więcej pól,
|
||||||
|
// ale tu skupiamy się na tym co bezpośrednio używa browser API
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RequestHeader {
|
||||||
|
name: string;
|
||||||
|
value?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RequestFilter {
|
||||||
|
urls: string[]; // memory.ts: { urls: ['<all_urls>'] }
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RequestListener = (details: RequestDetails) => void;
|
||||||
|
|
||||||
|
// === Cookies API (memory.ts) ===
|
||||||
|
export interface Cookie {
|
||||||
|
name: string; // memory.ts: cookie.name
|
||||||
|
domain: string; // memory.ts: cookie.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CookieQuery {
|
||||||
|
domain?: string; // memory.ts: { domain: shorthost }
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CookieRemove {
|
||||||
|
name: string; // memory.ts: { name: cookie.name, url: ... }
|
||||||
|
url: string; // memory.ts: { url: `https://${cookie.domain}` }
|
||||||
|
}
|
||||||
|
|
||||||
|
// === Main Browser API Interface ===
|
||||||
|
export interface BrowserAPI {
|
||||||
|
// Tabs API
|
||||||
|
tabs: {
|
||||||
|
query(queryInfo: TabQuery): Promise<Tab[]>;
|
||||||
|
onUpdated: {
|
||||||
|
addListener(listener: (tabId: number, changeInfo: any, tab: Tab) => void): void;
|
||||||
|
removeListener(listener: (tabId: number, changeInfo: any, tab: Tab) => void): void;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Badge API (Firefox: browserAction, Chrome: action)
|
||||||
|
badge: {
|
||||||
|
setBadgeText(details: BadgeTextDetails): void;
|
||||||
|
setTitle(details: BadgeTitleDetails): void;
|
||||||
|
setBadgeBackgroundColor(details: BadgeColorDetails): void;
|
||||||
|
};
|
||||||
|
|
||||||
|
// WebRequest API
|
||||||
|
webRequest: {
|
||||||
|
onBeforeRequest: {
|
||||||
|
addListener(
|
||||||
|
listener: RequestListener,
|
||||||
|
filter: RequestFilter,
|
||||||
|
extraInfoSpec?: string[]
|
||||||
|
): void;
|
||||||
|
};
|
||||||
|
onBeforeSendHeaders: {
|
||||||
|
addListener(
|
||||||
|
listener: RequestListener,
|
||||||
|
filter: RequestFilter,
|
||||||
|
extraInfoSpec?: string[]
|
||||||
|
): void;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Cookies API
|
||||||
|
cookies: {
|
||||||
|
getAll(details: CookieQuery): Promise<Cookie[]>;
|
||||||
|
remove(details: CookieRemove): Promise<Cookie | null>;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Extension API
|
||||||
|
extension: {
|
||||||
|
getBackgroundPage(): Window | null;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Windows API
|
||||||
|
windows: {
|
||||||
|
WINDOW_ID_CURRENT: number;
|
||||||
|
};
|
||||||
|
}
|
63
package-lock.json
generated
63
package-lock.json
generated
@ -19,6 +19,7 @@
|
|||||||
"tai-password-strength": "^1.1.3"
|
"tai-password-strength": "^1.1.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/chrome": "^0.1.3",
|
||||||
"@types/events": "^3.0.0",
|
"@types/events": "^3.0.0",
|
||||||
"@types/react-dom": "^17.0.9",
|
"@types/react-dom": "^17.0.9",
|
||||||
"addons-linter": "^4.7.0",
|
"addons-linter": "^4.7.0",
|
||||||
@ -319,6 +320,16 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/chrome": {
|
||||||
|
"version": "0.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.1.3.tgz",
|
||||||
|
"integrity": "sha512-KVOIHEKjDZXMg8c18Ir3kbLc+bb8JxZjNJv27Wen3F0I/eeTyrYm7tWOjGhoBjI9fFQfjsTSyFcENBo9Wbl5kw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@types/filesystem": "*",
|
||||||
|
"@types/har-format": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/decompress": {
|
"node_modules/@types/decompress": {
|
||||||
"version": "4.2.4",
|
"version": "4.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.4.tgz",
|
||||||
@ -347,6 +358,21 @@
|
|||||||
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
|
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/filesystem": {
|
||||||
|
"version": "0.0.36",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz",
|
||||||
|
"integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@types/filewriter": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/filewriter": {
|
||||||
|
"version": "0.0.33",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz",
|
||||||
|
"integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/@types/got": {
|
"node_modules/@types/got": {
|
||||||
"version": "8.3.6",
|
"version": "8.3.6",
|
||||||
"resolved": "https://registry.npmjs.org/@types/got/-/got-8.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/got/-/got-8.3.6.tgz",
|
||||||
@ -357,6 +383,12 @@
|
|||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/har-format": {
|
||||||
|
"version": "1.2.16",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.16.tgz",
|
||||||
|
"integrity": "sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/@types/minimatch": {
|
"node_modules/@types/minimatch": {
|
||||||
"version": "3.0.5",
|
"version": "3.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
|
||||||
@ -7390,6 +7422,16 @@
|
|||||||
"defer-to-connect": "^1.0.1"
|
"defer-to-connect": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/chrome": {
|
||||||
|
"version": "0.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.1.3.tgz",
|
||||||
|
"integrity": "sha512-KVOIHEKjDZXMg8c18Ir3kbLc+bb8JxZjNJv27Wen3F0I/eeTyrYm7tWOjGhoBjI9fFQfjsTSyFcENBo9Wbl5kw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/filesystem": "*",
|
||||||
|
"@types/har-format": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/decompress": {
|
"@types/decompress": {
|
||||||
"version": "4.2.4",
|
"version": "4.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.4.tgz",
|
||||||
@ -7418,6 +7460,21 @@
|
|||||||
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
|
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@types/filesystem": {
|
||||||
|
"version": "0.0.36",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz",
|
||||||
|
"integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/filewriter": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/filewriter": {
|
||||||
|
"version": "0.0.33",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz",
|
||||||
|
"integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@types/got": {
|
"@types/got": {
|
||||||
"version": "8.3.6",
|
"version": "8.3.6",
|
||||||
"resolved": "https://registry.npmjs.org/@types/got/-/got-8.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/got/-/got-8.3.6.tgz",
|
||||||
@ -7428,6 +7485,12 @@
|
|||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/har-format": {
|
||||||
|
"version": "1.2.16",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.16.tgz",
|
||||||
|
"integrity": "sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@types/minimatch": {
|
"@types/minimatch": {
|
||||||
"version": "3.0.5",
|
"version": "3.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
|
||||||
|
11
package.json
11
package.json
@ -1,15 +1,23 @@
|
|||||||
{
|
{
|
||||||
"name": "rentgen",
|
"name": "rentgen",
|
||||||
"version": "0.1.10",
|
"version": "0.1.10",
|
||||||
"description": "Rentgen is an add-on prepared for Firefox-based browsers. This extension will automatically visualize all the data that a given website sends to third parties.",
|
"description": "Rentgen is an add-on prepared for both Firefox-based and Chromium-based browsers. This extension will automatically visualize all the data that a given website sends to third parties.",
|
||||||
"main": "esbuild.config.js",
|
"main": "esbuild.config.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node esbuild.config.js",
|
"build": "node esbuild.config.js",
|
||||||
|
"build:firefox": "TARGET=firefox node esbuild.config.js",
|
||||||
|
"build:chrome": "TARGET=chrome node esbuild.config.js",
|
||||||
"watch": "node esbuild.config.js --watch",
|
"watch": "node esbuild.config.js --watch",
|
||||||
|
"watch:firefox": "TARGET=firefox node esbuild.config.js --watch",
|
||||||
|
"watch:chrome": "TARGET=chrome node esbuild.config.js --watch",
|
||||||
"ext-test": "web-ext run",
|
"ext-test": "web-ext run",
|
||||||
"build-addon": "npm i && npm run build && npm run create-package",
|
"build-addon": "npm i && npm run build && npm run create-package",
|
||||||
|
"build-addon:firefox": "npm i && npm run build:firefox && npm run create-package:firefox",
|
||||||
|
"build-addon:chrome": "npm i && npm run build:chrome && npm run create-package:chrome",
|
||||||
"create-package": "web-ext build --ignore-files '!**/node_modules' '!**/node_modules/**/react-dom' '!**/node_modules/**/react-dom/umd' '!**/node_modules/**/*/react-dom.production.min.js' '!**/node_modules/**/react' '!**/node_modules/**/react/umd' '!**/node_modules/**/*/react.production.min.js' '!**/node_modules/**/survey-react' '!**/node_modules/**/survey-react/*.min.js' '!**/node_modules/**/survey-react/*.min.css' --overwrite-dest",
|
"create-package": "web-ext build --ignore-files '!**/node_modules' '!**/node_modules/**/react-dom' '!**/node_modules/**/react-dom/umd' '!**/node_modules/**/*/react-dom.production.min.js' '!**/node_modules/**/react' '!**/node_modules/**/react/umd' '!**/node_modules/**/*/react.production.min.js' '!**/node_modules/**/survey-react' '!**/node_modules/**/survey-react/*.min.js' '!**/node_modules/**/survey-react/*.min.css' --overwrite-dest",
|
||||||
|
"create-package:firefox": "cd dist-firefox && web-ext build --overwrite-dest --artifacts-dir ../web-ext-artifacts",
|
||||||
|
"create-package:chrome": "cd dist-chrome && 7z a -tzip ../web-ext-artifacts/rentgen-chrome-0.1.10.zip * && cd ..",
|
||||||
"typecheck": "tsc --noEmit",
|
"typecheck": "tsc --noEmit",
|
||||||
"lint": "web-ext lint"
|
"lint": "web-ext lint"
|
||||||
},
|
},
|
||||||
@ -43,6 +51,7 @@
|
|||||||
"tracking"
|
"tracking"
|
||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/chrome": "^0.1.3",
|
||||||
"@types/events": "^3.0.0",
|
"@types/events": "^3.0.0",
|
||||||
"@types/react-dom": "^17.0.9",
|
"@types/react-dom": "^17.0.9",
|
||||||
"addons-linter": "^4.7.0",
|
"addons-linter": "^4.7.0",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user