@ -0,0 +1,20 @@
|
|||||||
|
class Browser {
|
||||||
|
constructor(options) {
|
||||||
|
this.options = options;
|
||||||
|
|
||||||
|
this.window = null;
|
||||||
|
this.document = null;
|
||||||
|
this.statusCode = null;
|
||||||
|
this.contentType = null;
|
||||||
|
this.headers = null;
|
||||||
|
this.statusCode = null;
|
||||||
|
this.contentType = null;
|
||||||
|
this.html = null;
|
||||||
|
this.js = null;
|
||||||
|
this.links = null;
|
||||||
|
this.scripts = null;
|
||||||
|
this.cookies = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Browser;
|
@ -0,0 +1,121 @@
|
|||||||
|
const Zombie = require('zombie');
|
||||||
|
const Browser = require('../browser');
|
||||||
|
|
||||||
|
class ZombieBrowser extends Browser {
|
||||||
|
constructor(options) {
|
||||||
|
super(options);
|
||||||
|
|
||||||
|
this.browser = new Zombie({
|
||||||
|
proxy: options.proxy,
|
||||||
|
silent: true,
|
||||||
|
strictSSL: false,
|
||||||
|
userAgent: options.userAgent,
|
||||||
|
waitDuration: options.maxWait,
|
||||||
|
});
|
||||||
|
|
||||||
|
this.browser.on('authenticate', (auth) => {
|
||||||
|
auth.username = this.options.username;
|
||||||
|
auth.password = this.options.password;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
visit(url) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
this.browser.visit(url, () => {
|
||||||
|
const resource = this.browser.resources.length
|
||||||
|
? this.browser.resources.filter(_resource => _resource.response).shift() : null;
|
||||||
|
|
||||||
|
this.window = this.browser.window;
|
||||||
|
this.document = this.browser.document;
|
||||||
|
this.headers = this.getHeaders();
|
||||||
|
this.statusCode = resource ? resource.response.status : 0;
|
||||||
|
this.contentType = this.headers['content-type'] ? this.headers['content-type'].shift() : null;
|
||||||
|
this.html = this.getHtml();
|
||||||
|
this.js = this.getJs();
|
||||||
|
this.links = this.getLinks();
|
||||||
|
this.scripts = this.getScripts();
|
||||||
|
this.cookies = this.getCookies();
|
||||||
|
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getHeaders() {
|
||||||
|
const headers = {};
|
||||||
|
|
||||||
|
const resource = this.browser.resources.length
|
||||||
|
? this.browser.resources.filter(_resource => _resource.response).shift() : null;
|
||||||
|
|
||||||
|
if (resource) {
|
||||||
|
// eslint-disable-next-line no-underscore-dangle
|
||||||
|
resource.response.headers._headers.forEach((header) => {
|
||||||
|
if (!headers[header[0]]) {
|
||||||
|
headers[header[0]] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
headers[header[0]].push(header[1]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
getHtml() {
|
||||||
|
let html = '';
|
||||||
|
|
||||||
|
if (this.browser.document && this.browser.document.documentElement) {
|
||||||
|
try {
|
||||||
|
html = this.browser.html();
|
||||||
|
} catch (error) {
|
||||||
|
this.log(error.message, 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
getScripts() {
|
||||||
|
let scripts = [];
|
||||||
|
|
||||||
|
if (this.browser.document && this.browser.document.scripts) {
|
||||||
|
scripts = Array.prototype.slice
|
||||||
|
.apply(this.browser.document.scripts)
|
||||||
|
.filter(script => script.src)
|
||||||
|
.map(script => script.src);
|
||||||
|
}
|
||||||
|
|
||||||
|
return scripts;
|
||||||
|
}
|
||||||
|
|
||||||
|
getJs() {
|
||||||
|
return this.browser.window;
|
||||||
|
}
|
||||||
|
|
||||||
|
getLinks() {
|
||||||
|
let links = [];
|
||||||
|
|
||||||
|
if (this.browser.document) {
|
||||||
|
links = Array.from(this.browser.document.getElementsByTagName('a'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return links;
|
||||||
|
}
|
||||||
|
|
||||||
|
getCookies() {
|
||||||
|
const cookies = [];
|
||||||
|
|
||||||
|
if (this.browser.cookies) {
|
||||||
|
this.browser.cookies.forEach(cookie => cookies.push({
|
||||||
|
name: cookie.key,
|
||||||
|
value: cookie.value,
|
||||||
|
domain: cookie.domain,
|
||||||
|
path: cookie.path,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
return cookies;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = ZombieBrowser;
|
@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
const Wappalyzer = require('./driver');
|
||||||
|
const Browser = require('./browsers/zombie');
|
||||||
|
|
||||||
|
const args = process.argv.slice(2);
|
||||||
|
|
||||||
|
const url = args.shift() || '';
|
||||||
|
|
||||||
|
if (!url) {
|
||||||
|
process.stderr.write('No URL specified\n');
|
||||||
|
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
const options = {};
|
||||||
|
|
||||||
|
let arg;
|
||||||
|
|
||||||
|
do {
|
||||||
|
arg = args.shift();
|
||||||
|
|
||||||
|
const matches = /--([^=]+)=(.+)/.exec(arg);
|
||||||
|
|
||||||
|
if (matches) {
|
||||||
|
const key = matches[1].replace(/-\w/g, _matches => _matches[1].toUpperCase());
|
||||||
|
const value = matches[2];
|
||||||
|
|
||||||
|
options[key] = value;
|
||||||
|
}
|
||||||
|
} while (arg);
|
||||||
|
|
||||||
|
const wappalyzer = new Wappalyzer(Browser, url, options);
|
||||||
|
|
||||||
|
wappalyzer.analyze()
|
||||||
|
.then((json) => {
|
||||||
|
process.stdout.write(`${JSON.stringify(json)}\n`);
|
||||||
|
|
||||||
|
process.exit(0);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
process.stderr.write(`${error}\n`);
|
||||||
|
|
||||||
|
process.exit(1);
|
||||||
|
});
|
@ -1,45 +1,16 @@
|
|||||||
#!/usr/bin/env node
|
const Driver = require('./driver');
|
||||||
|
const ZombieBrowser = require('./browsers/zombie');
|
||||||
|
|
||||||
|
class Wappalyzer {
|
||||||
|
constructor(pageUrl, options) {
|
||||||
|
this.browser = ZombieBrowser;
|
||||||
|
|
||||||
const Wappalyzer = require('./driver');
|
return new Driver(this.browser, pageUrl, options);
|
||||||
|
|
||||||
const args = process.argv.slice(2);
|
|
||||||
|
|
||||||
const url = args.shift() || '';
|
|
||||||
|
|
||||||
if (!url) {
|
|
||||||
process.stderr.write('No URL specified\n');
|
|
||||||
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
const options = {};
|
|
||||||
|
|
||||||
let arg;
|
|
||||||
|
|
||||||
do {
|
|
||||||
arg = args.shift();
|
|
||||||
|
|
||||||
const matches = /--([^=]+)=(.+)/.exec(arg);
|
|
||||||
|
|
||||||
if (matches) {
|
|
||||||
const key = matches[1].replace(/-\w/g, _matches => _matches[1].toUpperCase());
|
|
||||||
const value = matches[2];
|
|
||||||
|
|
||||||
options[key] = value;
|
|
||||||
}
|
}
|
||||||
} while (arg);
|
}
|
||||||
|
|
||||||
const wappalyzer = new Wappalyzer(url, options);
|
|
||||||
|
|
||||||
wappalyzer.analyze()
|
|
||||||
.then((json) => {
|
|
||||||
process.stdout.write(`${JSON.stringify(json)}\n`);
|
|
||||||
|
|
||||||
process.exit(0);
|
Wappalyzer.browsers = {
|
||||||
})
|
zombie: ZombieBrowser,
|
||||||
.catch((error) => {
|
};
|
||||||
process.stderr.write(`${error}\n`);
|
|
||||||
|
|
||||||
process.exit(1);
|
module.exports = Wappalyzer;
|
||||||
});
|
|
||||||
|
@ -1,73 +1,82 @@
|
|||||||
{
|
{
|
||||||
"github": { "message": "Fork Wappalyzer no GitHub!" },
|
"github": { "message": "Fork Wappalyzer no GitHub!" },
|
||||||
"noAppsDetected": { "message": "Não foi detectada nenhuma tecnologia." },
|
"noAppsDetected": { "message": "Não foi detectada nenhuma tecnologia." },
|
||||||
"nothingToDo": { "message": "Nada a fazer aqui." },
|
"nothingToDo": { "message": "Nada a fazer aqui." },
|
||||||
"optionDynamicIcon": { "message": "Utilizar o ícone da tecnologia em vez do logótipo do Wappalyzer" },
|
"optionDynamicIcon": { "message": "Utilizar o ícone da tecnologia em vez do logótipo do Wappalyzer" },
|
||||||
"optionTracking": { "message": "Envie anonimamente tecnologias identificadas para wappalyzer.com" },
|
"optionTracking": { "message": "Envie anonimamente tecnologias identificadas para wappalyzer.com" },
|
||||||
"optionUpgradeMessage": { "message": "Fale-me sobre actualizações" },
|
"optionUpgradeMessage": { "message": "Fale-me sobre actualizações" },
|
||||||
"options": { "message": "Opções" },
|
"options": { "message": "Opções" },
|
||||||
"optionsSave": { "message": "Opções de Guardar" },
|
"optionsSave": { "message": "Opções de Guardar" },
|
||||||
"optionsSaved": { "message": "Guardado" },
|
"optionsSaved": { "message": "Guardado" },
|
||||||
"twitter": { "message": "Seguir Wappalyzer no Twitter" },
|
"twitter": { "message": "Seguir Wappalyzer no Twitter" },
|
||||||
"website": { "message": "Ir para wappalyzer.com" },
|
"website": { "message": "Ir para wappalyzer.com" },
|
||||||
"categoryPin": { "message": "Mostrar sempre ícone" },
|
"categoryPin": { "message": "Mostrar sempre ícone" },
|
||||||
"categoryName1": { "message": "CMS" },
|
"termsAccept": { "message": "Aceitar" },
|
||||||
"categoryName2": { "message": "Fórum" },
|
"termsContent": { "message": "Esta extensão envia informações anónimas sobre os sites que visitas, incluindo o nome de domínio e as tecnologias identificadas, para o <a href='https://www.wappalyzer.com'>wappalyzer.com</a>. Isso pode ser desativado nas configurações." },
|
||||||
"categoryName3": { "message": "Gestor de Base de Dados" },
|
"privacyPolicy": { "message": "Políticas de Privacidade" },
|
||||||
"categoryName4": { "message": "Ferramenta de Documentação" },
|
"categoryName1": { "message": "CMS" },
|
||||||
"categoryName5": { "message": "Widget" },
|
"categoryName2": { "message": "Fórum" },
|
||||||
"categoryName6": { "message": "Comércio Eletrónico" },
|
"categoryName3": { "message": "Gestor de Base de Dados" },
|
||||||
"categoryName7": { "message": "Galeria de Fotos" },
|
"categoryName4": { "message": "Ferramenta de Documentação" },
|
||||||
"categoryName8": { "message": "Wikis" },
|
"categoryName5": { "message": "Widget" },
|
||||||
"categoryName9": { "message": "Painéis de Hospedagem" },
|
"categoryName6": { "message": "Ecommerce" },
|
||||||
"categoryName10": { "message": "Analítica" },
|
"categoryName7": { "message": "Galeria de Fotos" },
|
||||||
"categoryName11": { "message": "Blog" },
|
"categoryName8": { "message": "Wikis" },
|
||||||
"categoryName12": { "message": "Framework JavaScript" },
|
"categoryName9": { "message": "Painéis de Hospedagem" },
|
||||||
"categoryName13": { "message": "Rastreador de Problemas" },
|
"categoryName10": { "message": "Analítica" },
|
||||||
"categoryName14": { "message": "Leitor Vídeo" },
|
"categoryName11": { "message": "Blog" },
|
||||||
"categoryName15": { "message": "Sistema de Comentários" },
|
"categoryName12": { "message": "Framework JavaScript" },
|
||||||
"categoryName16": { "message": "Captcha" },
|
"categoryName13": { "message": "Localizador de Problemas" },
|
||||||
"categoryName17": { "message": "Script de Tipos de Letra" },
|
"categoryName14": { "message": "Leitor Vídeo" },
|
||||||
"categoryName18": { "message": "Framework Web" },
|
"categoryName15": { "message": "Sistema de Comentários" },
|
||||||
"categoryName19": { "message": "Diversos" },
|
"categoryName16": { "message": "Captcha" },
|
||||||
"categoryName20": { "message": "Editor" },
|
"categoryName17": { "message": "Tipos de Letra" },
|
||||||
"categoryName21": { "message": "LMS" },
|
"categoryName18": { "message": "Framework Web" },
|
||||||
"categoryName22": { "message": "Servidor Web" },
|
"categoryName19": { "message": "Diversos" },
|
||||||
"categoryName23": { "message": "Ferramenta de Cache" },
|
"categoryName20": { "message": "Editor" },
|
||||||
"categoryName24": { "message": "Editor WYSIWYG" },
|
"categoryName21": { "message": "LMS" },
|
||||||
"categoryName25": { "message": "Gráficos JavaScript" },
|
"categoryName22": { "message": "Servidor Web" },
|
||||||
"categoryName26": { "message": "Framework Mobile" },
|
"categoryName23": { "message": "Ferramenta de Cache" },
|
||||||
"categoryName27": { "message": "Linguagem de Programação" },
|
"categoryName24": { "message": "Editor WYSIWYG" },
|
||||||
"categoryName28": { "message": "Sistema Operativo" },
|
"categoryName25": { "message": "Gráficos JavaScript" },
|
||||||
"categoryName29": { "message": "Motor de Busca" },
|
"categoryName26": { "message": "Framework Mobile" },
|
||||||
"categoryName30": { "message": "Web Mail" },
|
"categoryName27": { "message": "Linguagem de Programação" },
|
||||||
"categoryName31": { "message": "CDN" },
|
"categoryName28": { "message": "Sistema Operativo" },
|
||||||
"categoryName32": { "message": "Automação de Marketing" },
|
"categoryName29": { "message": "Motor de Busca" },
|
||||||
"categoryName33": { "message": "Extensão de Servidor Web" },
|
"categoryName30": { "message": "WebMail" },
|
||||||
"categoryName34": { "message": "Base de Dados" },
|
"categoryName31": { "message": "CDN" },
|
||||||
"categoryName35": { "message": "Mapa" },
|
"categoryName32": { "message": "Automação de Marketing" },
|
||||||
"categoryName36": { "message": "Rede de Publicidade" },
|
"categoryName33": { "message": "Extensão de Servidor Web" },
|
||||||
"categoryName37": { "message": "Serviço de Rede" },
|
"categoryName34": { "message": "Base de Dados" },
|
||||||
"categoryName38": { "message": "Servidor de Média" },
|
"categoryName35": { "message": "Mapa" },
|
||||||
"categoryName39": { "message": "Webcam" },
|
"categoryName36": { "message": "Rede de Publicidade" },
|
||||||
"categoryName40": { "message": "Impressão" },
|
"categoryName37": { "message": "Serviço de Rede" },
|
||||||
"categoryName41": { "message": "Processador de Pagamento" },
|
"categoryName38": { "message": "Servidor de Média" },
|
||||||
"categoryName42": { "message": "Gestor de Etiquetas" },
|
"categoryName39": { "message": "Webcam" },
|
||||||
"categoryName43": { "message": "Sistema de Subscrição Paga" },
|
"categoryName40": { "message": "Impressão" },
|
||||||
"categoryName44": { "message": "Sistema Build/CI" },
|
"categoryName41": { "message": "Processador de Pagamento" },
|
||||||
"categoryName45": { "message": "Sistema SCADA" },
|
"categoryName42": { "message": "Gestor de Etiquetas" },
|
||||||
"categoryName46": { "message": "Acesso Remoto" },
|
"categoryName43": { "message": "Sistema de Subscrição Paga" },
|
||||||
"categoryName47": { "message": "Ferramenta de Desenvolvimento" },
|
"categoryName44": { "message": "Sistema Build/CI" },
|
||||||
"categoryName48": { "message": "Rede de Armazenamento" },
|
"categoryName45": { "message": "Sistema SCADA" },
|
||||||
"categoryName49": { "message": "Leitores de Feed" },
|
"categoryName46": { "message": "Acesso Remoto" },
|
||||||
"categoryName50": { "message": "Sistema de Gestão de Documentos" },
|
"categoryName47": { "message": "Ferramenta de Desenvolvimento" },
|
||||||
"categoryName51": { "message": "Criador de Páginas de Destino" },
|
"categoryName48": { "message": "Rede de Armazenamento" },
|
||||||
"categoryName52": { "message": "Chat ao Vivo" },
|
"categoryName49": { "message": "Leitores de Feed" },
|
||||||
"categoryName53": { "message": "CRM" },
|
"categoryName50": { "message": "Sistema de Gestão de Documentos" },
|
||||||
"categoryName54": { "message": "SEO" },
|
"categoryName51": { "message": "Criador de Páginas de Destino" },
|
||||||
"categoryName55": { "message": "Contabilidade" },
|
"categoryName52": { "message": "Chat ao Vivo" },
|
||||||
"categoryName56": { "message": "Cryptominer" },
|
"categoryName53": { "message": "CRM" },
|
||||||
"categoryName57": { "message": "Gerador de Site Estático" },
|
"categoryName54": { "message": "SEO" },
|
||||||
"categoryName58": { "message": "User Onboarding" },
|
"categoryName55": { "message": "Contabilidade" },
|
||||||
"categoryName59": { "message": "JavaScript Libraries" }
|
"categoryName56": { "message": "Cryptominer" },
|
||||||
|
"categoryName57": { "message": "Gerador de Site Estático" },
|
||||||
|
"categoryName58": { "message": "User Onboarding" },
|
||||||
|
"categoryName59": { "message": "Bibliotecas de JavaScript" },
|
||||||
|
"categoryName60": { "message": "Containers" },
|
||||||
|
"categoryName61": { "message": "SaaS" },
|
||||||
|
"categoryName62": { "message": "PaaS" },
|
||||||
|
"categoryName63": { "message": "IaaS" },
|
||||||
|
"categoryName64": { "message": "Reverse Proxy" },
|
||||||
|
"categoryName65": { "message": "Load Balancer" }
|
||||||
}
|
}
|
||||||
|
@ -1,78 +1,84 @@
|
|||||||
{
|
{
|
||||||
"name": "Wappalyzer",
|
"name": "Wappalyzer",
|
||||||
"short_name": "Wappalyzer",
|
"short_name": "Wappalyzer",
|
||||||
"author": "Elbert Alias",
|
"author": "Elbert Alias",
|
||||||
"homepage_url": "https://www.wappalyzer.com",
|
"homepage_url": "https://www.wappalyzer.com",
|
||||||
"description": "Identify web technologies",
|
"description": "Identify web technologies",
|
||||||
"version": "5.5.4",
|
"version": "5.8.2",
|
||||||
"default_locale": "en",
|
"default_locale": "en",
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"icons": {
|
"icons": {
|
||||||
"16": "images/icon_16.png",
|
"16": "images/icon_16.png",
|
||||||
"19": "images/icon_19.png",
|
"19": "images/icon_19.png",
|
||||||
"32": "images/icon_32.png",
|
"32": "images/icon_32.png",
|
||||||
"38": "images/icon_38.png",
|
"38": "images/icon_38.png",
|
||||||
"128": "images/icon_128.png"
|
"128": "images/icon_128.png"
|
||||||
},
|
},
|
||||||
"page_action": {
|
"page_action": {
|
||||||
"default_icon": {
|
"default_icon": {
|
||||||
"16": "images/icon_16.png",
|
"16": "images/icon_16.png",
|
||||||
"19": "images/icon_19.png",
|
"19": "images/icon_19.png",
|
||||||
"32": "images/icon_32.png",
|
"32": "images/icon_32.png",
|
||||||
"38": "images/icon_38.png",
|
"38": "images/icon_38.png",
|
||||||
"128": "images/icon_128.png"
|
"128": "images/icon_128.png"
|
||||||
},
|
},
|
||||||
"default_title": "Wappalyzer",
|
"default_title": "Wappalyzer",
|
||||||
"default_popup": "html/popup.html"
|
"default_popup": "html/popup.html"
|
||||||
},
|
},
|
||||||
"background": {
|
"background": {
|
||||||
"page": "html/background.html"
|
"page": "html/background.html"
|
||||||
|
|
||||||
},
|
},
|
||||||
"content_scripts": [
|
"content_scripts": [
|
||||||
{
|
{
|
||||||
"matches": [
|
"matches": [
|
||||||
"http://*/*",
|
|
||||||
"https://*/*"
|
|
||||||
],
|
|
||||||
"js": [
|
|
||||||
"node_modules/webextension-polyfill/dist/browser-polyfill.js",
|
|
||||||
"js/content.js"
|
|
||||||
],
|
|
||||||
"run_at": "document_idle"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matches": [
|
|
||||||
"http://*/*",
|
"http://*/*",
|
||||||
"https://*/*"
|
"https://*/*"
|
||||||
],
|
],
|
||||||
"exclude_matches": [
|
"js": [
|
||||||
"https://*.modirum.com/*",
|
"node_modules/webextension-polyfill/dist/browser-polyfill.js",
|
||||||
"https://www.alphaecommerce.gr/*"
|
"js/content.js"
|
||||||
],
|
],
|
||||||
"js": [
|
"run_at": "document_idle"
|
||||||
"js/lib/iframe.js"
|
},
|
||||||
],
|
{
|
||||||
"run_at": "document_start",
|
"matches": [
|
||||||
"all_frames": true
|
"http://*/*",
|
||||||
}
|
"https://*/*"
|
||||||
],
|
],
|
||||||
"web_accessible_resources": [
|
"exclude_matches": [
|
||||||
"js/inject.js"
|
"https://*.modirum.com/*",
|
||||||
],
|
"https://www.alphaecommerce.gr/*"
|
||||||
"options_page": "html/options.html",
|
],
|
||||||
"options_ui": {
|
"js": [
|
||||||
"page": "html/options.html",
|
"node_modules/webextension-polyfill/dist/browser-polyfill.js",
|
||||||
"open_in_tab": false
|
"js/lib/iframe.js"
|
||||||
},
|
],
|
||||||
"permissions": [
|
"run_at": "document_start",
|
||||||
|
"all_frames": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"web_accessible_resources": [
|
||||||
|
"js/inject.js"
|
||||||
|
],
|
||||||
|
"options_ui": {
|
||||||
|
"page": "html/options.html",
|
||||||
|
"open_in_tab": false
|
||||||
|
},
|
||||||
|
"permissions": [
|
||||||
"cookies",
|
"cookies",
|
||||||
"storage",
|
"storage",
|
||||||
"tabs",
|
"tabs",
|
||||||
"webRequest",
|
"webRequest",
|
||||||
"webNavigation",
|
"webNavigation",
|
||||||
"http://*/*",
|
"http://*/*",
|
||||||
"https://*/*"
|
"https://*/*"
|
||||||
],
|
],
|
||||||
"content_security_policy": "script-src 'self'; object-src 'self'"
|
"content_security_policy": "script-src 'self'; object-src 'self'",
|
||||||
|
"applications": {
|
||||||
|
"gecko": {
|
||||||
|
"id": "wappalyzer@crunchlabz.com",
|
||||||
|
"strict_min_version": "60.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"webextension-polyfill": "^0.2.1"
|
"webextension-polyfill": "^0.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 779 B |
Before Width: | Height: | Size: 682 B |
After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 384 B |
After Width: | Height: | Size: 950 B |
After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 274 B |
Before Width: | Height: | Size: 743 B |
Before Width: | Height: | Size: 642 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 100 B |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 256 B |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 988 B |
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 728 B |
After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 671 B After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 649 B After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 497 B |
Before Width: | Height: | Size: 430 B |
Before Width: | Height: | Size: 902 B |
After Width: | Height: | Size: 599 B |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 711 B |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 432 B |
Before Width: | Height: | Size: 812 B |
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 334 B |
After Width: | Height: | Size: 771 B |
Before Width: | Height: | Size: 520 B |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 11 KiB |