Skip to content

Commit 6516cf8

Browse files
committed
chore: add icon & link
1 parent e939b24 commit 6516cf8

21 files changed

+374
-357
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
/*.log
33
/dist
44
/dist-zip
5+
.env

package-lock.json

Lines changed: 13 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@
2424
"dependencies": {
2525
"@babel/polyfill": "^7.8.7",
2626
"@lottiefiles/lottie-player": "^0.5.1",
27+
"@types/node": "^14.0.1",
2728
"axios": "^0.19.0",
2829
"concurrently": "^5.2.0",
30+
"dotenv": "^8.2.0",
31+
"fs": "0.0.1-security",
2932
"lottie-vuejs": "^0.3.7",
3033
"postcss-cli": "^7.1.0",
3134
"postcss-loader": "^3.0.0",

src/background.js

Lines changed: 105 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,120 @@
1-
"use strict";
1+
'use strict'
22
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4-
return new (P || (P = Promise))(function (resolve, reject) {
5-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8-
step((generator = generator.apply(thisArg, _arguments || [])).next());
9-
});
10-
};
11-
Object.defineProperty(exports, "__esModule", { value: true });
12-
const axios_1 = require("axios");
13-
const store_1 = require("./store");
3+
function adopt (value) { return value instanceof P ? value : new P(function (resolve) { resolve(value) }) }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled (value) { try { step(generator.next(value)) } catch (e) { reject(e) } }
6+
function rejected (value) { try { step(generator.throw(value)) } catch (e) { reject(e) } }
7+
function step (result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected) }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next())
9+
})
10+
}
11+
Object.defineProperty(exports, '__esModule', { value: true })
12+
const axios_1 = require('axios')
13+
const store_1 = require('./store')
1414
// array to save domain for checking if allready post
15-
const domainsVisited = [];
16-
const browser = require('webextension-polyfill');
17-
const map = store_1.default.getters.dataInfo;
15+
const domainsVisited = []
16+
const browser = require('webextension-polyfill')
17+
const map = store_1.default.getters.dataInfo
1818
// send url to analyzer
19-
function sendUrl(url, domain, tabId) {
20-
return __awaiter(this, void 0, void 0, function* () {
21-
// loading
22-
store_1.default.commit('SET_ISLOADING', true);
23-
yield axios_1.default({
24-
method: 'GET',
25-
url: `https://vue-telemetry.netlify.com/api/analyze?url=${url}&src=extension`,
26-
auth: {
27-
username: 'nuxt-admin',
28-
password: 'vue-telemetry-protected-area',
29-
},
30-
}).then(({ data }) => {
31-
// delete useless jsonKey
32-
delete data.url;
33-
delete data.hostname;
34-
delete data.domain;
35-
delete data.screenshot;
36-
delete data.meta;
37-
setMapData(domain, data);
38-
}).catch(() => {
39-
browser.browserAction.setIcon({
40-
tabId,
41-
path: {
42-
16: 'icons/icon-vue-telemetry-404error-128.png',
43-
32: 'icons/icon-vue-telemetry-404error-128.png',
44-
},
45-
});
46-
setMapData(domain, 'error');
47-
});
48-
store_1.default.commit('SET_ISLOADING', false);
49-
});
19+
function sendUrl (url, domain, tabId) {
20+
return __awaiter(this, void 0, void 0, function * () {
21+
// loading
22+
store_1.default.commit('SET_ISLOADING', true)
23+
yield axios_1.default({
24+
method: 'GET',
25+
url: `https://vue-telemetry.netlify.com/api/analyze?url=${url}&src=extension`,
26+
auth: {
27+
username: 'nuxt-admin',
28+
password: 'vue-telemetry-protected-area'
29+
}
30+
}).then(({ data }) => {
31+
// delete useless jsonKey
32+
delete data.url
33+
delete data.hostname
34+
delete data.domain
35+
delete data.screenshot
36+
delete data.meta
37+
setMapData(domain, data)
38+
}).catch(() => {
39+
browser.browserAction.setIcon({
40+
tabId,
41+
path: {
42+
16: 'icons/icon-vue-telemetry-404error-128.png',
43+
32: 'icons/icon-vue-telemetry-404error-128.png'
44+
}
45+
})
46+
setMapData(domain, 'error')
47+
})
48+
store_1.default.commit('SET_ISLOADING', false)
49+
})
5050
}
5151
// when tab created
52-
function handleCreated(tab) {
53-
setMapData(tab.url, 'noVue');
54-
store_1.default.commit('SET_CURRENTDOMAIN', 'noVue');
52+
function handleCreated (tab) {
53+
setMapData(tab.url, 'noVue')
54+
store_1.default.commit('SET_CURRENTDOMAIN', 'noVue')
5555
}
5656
// when tab clicked
57-
function handleActivated() {
58-
return __awaiter(this, void 0, void 0, function* () {
59-
// get active tab
60-
browser.tabs.query({ currentWindow: true, active: true }).then((tabsArray) => {
61-
if (/^chrome/.test(tabsArray[0].url) || /^about/.test(tabsArray[0].url)) {
62-
store_1.default.commit('SET_CURRENTDOMAIN', 'noVue');
63-
setMapData(tabsArray[0].url, 'noVue');
64-
}
65-
else {
66-
detectVue(tabsArray[0].id, tabsArray[0].url);
67-
}
68-
});
69-
});
57+
function handleActivated () {
58+
return __awaiter(this, void 0, void 0, function * () {
59+
// get active tab
60+
browser.tabs.query({ currentWindow: true, active: true }).then((tabsArray) => {
61+
if (/^chrome/.test(tabsArray[0].url) || /^about/.test(tabsArray[0].url)) {
62+
store_1.default.commit('SET_CURRENTDOMAIN', 'noVue')
63+
setMapData(tabsArray[0].url, 'noVue')
64+
} else {
65+
detectVue(tabsArray[0].id, tabsArray[0].url)
66+
}
67+
})
68+
})
7069
}
7170
// when tab updated
72-
function handleUpdated(tabId, changeInfo, tabInfo) {
73-
return __awaiter(this, void 0, void 0, function* () {
74-
console.log('handleUpdated');
75-
if (changeInfo.status == 'complete') {
76-
detectVue(tabId, tabInfo.url);
77-
}
78-
});
71+
function handleUpdated (tabId, changeInfo, tabInfo) {
72+
return __awaiter(this, void 0, void 0, function * () {
73+
console.log('handleUpdated')
74+
if (changeInfo.status == 'complete') {
75+
detectVue(tabId, tabInfo.url)
76+
}
77+
})
7978
}
80-
browser.tabs.onCreated.addListener(handleCreated);
81-
browser.tabs.onActivated.addListener(handleActivated);
82-
browser.tabs.onUpdated.addListener(handleUpdated);
79+
browser.tabs.onCreated.addListener(handleCreated)
80+
browser.tabs.onActivated.addListener(handleActivated)
81+
browser.tabs.onUpdated.addListener(handleUpdated)
8382
// detect vue by calling detector and sendUrl
84-
function detectVue(tabId, url) {
85-
return __awaiter(this, void 0, void 0, function* () {
86-
yield hasVue(tabId).then(({ response }) => {
87-
store_1.default.commit('SET_CURRENTDOMAIN', response.vueInfo.domain);
88-
if (response.vueInfo.hasVue) {
89-
browser.browserAction.setIcon({
90-
tabId,
91-
path: {
92-
16: 'icons/icon-robot-128.png',
93-
32: 'icons/icon-robot-128.png',
94-
},
95-
});
96-
}
97-
if (!domainsVisited.includes(response.vueInfo.domain)) {
98-
domainsVisited.push(response.vueInfo.domain);
99-
if (response.vueInfo.hasVue) {
100-
sendUrl(url, response.vueInfo.domain, tabId);
101-
}
102-
else {
103-
setMapData(response.vueInfo.domain, 'noVue');
104-
store_1.default.commit('SET_CURRENTDOMAIN', 'noVue');
105-
}
106-
}
107-
});
108-
});
83+
function detectVue (tabId, url) {
84+
return __awaiter(this, void 0, void 0, function * () {
85+
yield hasVue(tabId).then(({ response }) => {
86+
store_1.default.commit('SET_CURRENTDOMAIN', response.vueInfo.domain)
87+
if (response.vueInfo.hasVue) {
88+
browser.browserAction.setIcon({
89+
tabId,
90+
path: {
91+
16: 'icons/icon-robot-128.png',
92+
32: 'icons/icon-robot-128.png'
93+
}
94+
})
95+
}
96+
if (!domainsVisited.includes(response.vueInfo.domain)) {
97+
domainsVisited.push(response.vueInfo.domain)
98+
if (response.vueInfo.hasVue) {
99+
sendUrl(url, response.vueInfo.domain, tabId)
100+
} else {
101+
setMapData(response.vueInfo.domain, 'noVue')
102+
store_1.default.commit('SET_CURRENTDOMAIN', 'noVue')
103+
}
104+
}
105+
})
106+
})
109107
}
110108
// check vue in detector.js and get response
111-
function hasVue(tabId) {
112-
return new Promise((resolve) => {
113-
browser.tabs.sendMessage(tabId, { greeting: '' }).then((response) => {
114-
console.log('response', response);
115-
resolve(response);
116-
});
117-
});
109+
function hasVue (tabId) {
110+
return new Promise((resolve) => {
111+
browser.tabs.sendMessage(tabId, { greeting: '' }).then((response) => {
112+
console.log('response', response)
113+
resolve(response)
114+
})
115+
})
118116
}
119-
function setMapData(domain, data) {
120-
map[domain] = data;
121-
store_1.default.commit('SET_DATAINFO', map);
117+
function setMapData (domain, data) {
118+
map[domain] = data
119+
store_1.default.commit('SET_DATAINFO', map)
122120
}

src/content.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
browser.runtime.onMessage.addListener((_) => {
2-
detectVue();
3-
return Promise.resolve({ response: document.querySelectorAll('*') });
4-
});
2+
detectVue()
3+
return Promise.resolve({ response: document.querySelectorAll('*') })
4+
})
55

6-
function detectVue() {
7-
return window.Vue || window.$nuxt || [...document.querySelectorAll('*')].map((el) => Boolean(el.__vue__)).filter(Boolean).length;
6+
function detectVue () {
7+
return window.Vue || window.$nuxt || [...document.querySelectorAll('*')].map((el) => Boolean(el.__vue__)).filter(Boolean).length
88
}

0 commit comments

Comments
 (0)