jumpy-lion 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-controller.d.ts.map +1 -1
- package/dist/browser-controller.js +62 -32
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +3 -1
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +36 -9
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/browser.d.ts +1 -0
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +7 -2
- package/dist/browser-process/browser.js.map +1 -1
- package/dist/crawler.d.ts +32 -9
- package/dist/crawler.d.ts.map +1 -1
- package/dist/crawler.js +16 -6
- package/dist/crawler.js.map +1 -1
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.js +7 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.js +18 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.d.ts +83 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.js +1258 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.js +76 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.js +15 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js +77 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js +19 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js.map +1 -0
- package/dist/fingerprinting/canvas-fingerprint.d.ts +3 -1
- package/dist/fingerprinting/canvas-fingerprint.d.ts.map +1 -1
- package/dist/fingerprinting/canvas-fingerprint.js +56 -58
- package/dist/fingerprinting/canvas-fingerprint.js.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.d.ts +0 -1
- package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.js +2 -5
- package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
- package/dist/launcher-wrap.d.ts +2 -2
- package/dist/launcher-wrap.d.ts.map +1 -1
- package/dist/launcher-wrap.js.map +1 -1
- package/dist/page.d.ts +12 -1
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +224 -4
- package/dist/page.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const D = { enable: chrome.runtime.getURL("img/icon-32.png"), disable: chrome.runtime.getURL("img/icon-32-disabled.png") };
|
|
2
|
+
async function m() { var e; const t = await chrome.tabs.query({ active: !0, currentWindow: !0 }), o = t == null ? void 0 : t[0]; if (!o)
|
|
3
|
+
return; if (!o.url || !o.url.match(/^https?:\/\//)) {
|
|
4
|
+
chrome.action.setIcon({ path: D.disable, tabId: o.id });
|
|
5
|
+
return;
|
|
6
|
+
} const n = (e = o.url.match(/^https?:\/\/([^\/]+)/)) == null ? void 0 : e[1]; if (!n) {
|
|
7
|
+
chrome.action.setIcon({ path: D.disable, tabId: o.id });
|
|
8
|
+
return;
|
|
9
|
+
} const i = "disabled:" + n; if ((await chrome.storage.sync.get([i]))[i]) {
|
|
10
|
+
chrome.action.setIcon({ path: D.disable, tabId: o.id });
|
|
11
|
+
return;
|
|
12
|
+
} chrome.action.setIcon({ path: D.enable, tabId: o.id }); }
|
|
13
|
+
let u = null, f = null, I = !1;
|
|
14
|
+
function g(t) { if (I)
|
|
15
|
+
return; I = !0; const o = new Promise((i, r) => { const e = indexedDB.open("db", 4); e.onupgradeneeded = function () { if (!e.result.objectStoreNames.contains("detections")) {
|
|
16
|
+
let c = e.result.createObjectStore("detections", { keyPath: "key" });
|
|
17
|
+
c.createIndex("tabId", ["tab.id", "updatedAt"], { unique: !1 }), c.createIndex("host", ["host", "updatedAt"], { unique: !1 }), c.createIndex("updatedAt", "updatedAt", { unique: !1 });
|
|
18
|
+
} }, e.onsuccess = function () { u = e.result, i(null); }; }), n = new Promise((i, r) => { const e = indexedDB.open("stats", 2); e.onupgradeneeded = function () { e.result.objectStoreNames.contains("stats") || e.result.createObjectStore("stats", { keyPath: "host" }).createIndex("updatedAt", "updatedAt", { unique: !1 }); }, e.onsuccess = function () { f = e.result, i(null); }; }); Promise.all([o, n]).then(() => { I = !1, A(), setInterval(A, 1e3 * 60 * 60 * 1), t && t(); }); }
|
|
19
|
+
function A() { if (!u)
|
|
20
|
+
return; const t = u.transaction("detections", "readwrite"), o = t.objectStore("detections").index("updatedAt").openCursor(null, "next"); o.onsuccess = function (n) { const i = o.result; i && i.value.updatedAt < Date.now() - 1e3 * 60 * 60 * 24 * 30 ? (i.delete(), i.continue()) : t.commit(); }, o.onerror = function (n) { t.abort(); }; }
|
|
21
|
+
function S(t, o, n, i, r) { if (!u || !f)
|
|
22
|
+
return; const e = t + "@" + o, c = o == null ? void 0 : o.split("/")[2], s = u.transaction("detections", "readwrite"), a = s.objectStore("detections"), h = a.get(e); h.onsuccess = function (y) { let d = h.result; d ? (d.detections.push(i), d.updatedAt = Date.now()) : d = { key: e, url: o, host: c, origins: n, tab: { id: r.id, favIconUrl: r.favIconUrl, title: r.title }, detections: [i], updatedAt: Date.now() }; const b = a.put(d); b.onsuccess = function () { s.commit(); }, b.onerror = function (B) { s.abort(); }; }, h.onerror = function (y) { s.abort(); }; const l = f.transaction("stats", "readwrite"), w = l.objectStore("stats"), p = w.get(c); p.onsuccess = function (y) { let d = p.result; d ? (d.count++, d.countByType[i.type]++, d.updatedAt = Date.now()) : d = { host: c, count: 1, countByType: { CANVAS: i.type === "CANVAS" ? 1 : 0, WEBGL: i.type === "WEBGL" ? 1 : 0, FONT: i.type === "FONT" ? 1 : 0, AUDIO: i.type === "AUDIO" ? 1 : 0 }, updatedAt: Date.now() }; const b = w.put(d); b.onsuccess = function () { l.commit(); }, b.onerror = function (B) { l.abort(); }; }, p.onerror = function (y) { l.abort(); }; }
|
|
23
|
+
function v(t, o, n, i, r) { if (r.incognito) {
|
|
24
|
+
chrome.storage.session.get(["detections:" + r.id], function (e) { const c = e["detections:" + r.id] || []; let s = !1; for (let a = 0; a < c.length; a++)
|
|
25
|
+
if (c[a].key === t + "@" + o) {
|
|
26
|
+
c[a].detections.push(i), c[a].updatedAt = Date.now(), s = !0;
|
|
27
|
+
break;
|
|
28
|
+
} if (!s) {
|
|
29
|
+
const a = { key: t + "@" + o, url: o, host: o == null ? void 0 : o.split("/")[2], origins: n, tab: { id: r.id, favIconUrl: r.favIconUrl, title: r.title }, detections: [i], updatedAt: Date.now() };
|
|
30
|
+
c.push(a);
|
|
31
|
+
} chrome.storage.session.set({ ["detections:" + r.id]: c }); });
|
|
32
|
+
return;
|
|
33
|
+
} u ? S(t, o, n, i, r) : g(() => { S(t, o, n, i, r); }); }
|
|
34
|
+
async function x(t, o = !1) { return o ? new Promise(n => { chrome.storage.session.get(["detections:" + t], function (i) { if (i) {
|
|
35
|
+
const r = i["detections:" + t] || [];
|
|
36
|
+
n(r);
|
|
37
|
+
}
|
|
38
|
+
else
|
|
39
|
+
n([]); }); }) : new Promise(n => { chrome.storage.session.get(["tab-started:" + t], function (i) { const r = i["tab-started:" + t]; if (!r) {
|
|
40
|
+
n([]);
|
|
41
|
+
return;
|
|
42
|
+
} const e = function () { if (!u)
|
|
43
|
+
return; const c = u.transaction("detections", "readonly"), s = c.objectStore("detections").index("tabId").openCursor(IDBKeyRange.bound([t, r], [t, Date.now()]), "prev"), a = []; s.onsuccess = function (h) { const l = s.result; l ? (a.push(l.value), l.continue()) : (c.abort(), n(a)); }, s.onerror = function (h) { c.abort(), n([]); }; }; u ? e() : g(() => { e(); }); }); }); }
|
|
44
|
+
async function j(t, o = Date.now()) { return new Promise(n => { const i = function () { if (!u)
|
|
45
|
+
return; const r = u.transaction("detections", "readonly"), e = r.objectStore("detections").index("host").openCursor(IDBKeyRange.bound([t, 0], [t, o]), "prev"), c = []; e.onsuccess = function (s) { const a = e.result; if (a) {
|
|
46
|
+
if (c.push(a.value), c.length >= 5) {
|
|
47
|
+
r.abort(), n(c);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
a.continue();
|
|
51
|
+
}
|
|
52
|
+
else
|
|
53
|
+
r.abort(), n(c); }, e.onerror = function (s) { r.abort(), n([]); }; }; u ? i() : g(() => { i(); }); }); }
|
|
54
|
+
async function k(t) { if (!f || !u)
|
|
55
|
+
return; const o = f.transaction("stats", "readwrite"), i = o.objectStore("stats").delete(t); i.onsuccess = function (s) { o.commit(); }, i.onerror = function (s) { o.abort(); }; const r = u.transaction("detections", "readwrite"), c = r.objectStore("detections").index("host").openCursor(t); c.onsuccess = function (s) { const a = c.result; a ? (a.delete(), a.continue()) : r.commit(); }, c.onerror = function (s) { r.abort(); }; }
|
|
56
|
+
async function L() { return new Promise(t => { f ? o() : g(() => { o(); }); function o() { if (!f)
|
|
57
|
+
return; const n = f.transaction("stats", "readonly"), i = n.objectStore("stats").index("updatedAt").openCursor(null, "prev"), r = []; i.onsuccess = function (e) { const c = i.result; c ? (r.push(c.value), c.continue()) : (n.abort(), t(r)); }, i.onerror = function (e) { n.abort(), t([]); }; } }); }
|
|
58
|
+
chrome.runtime.onStartup.addListener(function () { g(), m(), chrome.storage.local.get(["reload"], function (t) { t.reload && chrome.storage.local.remove(["reload"]).then(() => { chrome.tabs.query({ active: !0, currentWindow: !0 }).then(o => { o.forEach(n => { chrome.tabs.reload(n.id); }); }); }); }); });
|
|
59
|
+
chrome.tabs.onActivated.addListener(function () { m(); });
|
|
60
|
+
const P = function (t, o, n) { var i, r; if (!t || !t.action)
|
|
61
|
+
return n({ result: "no action" }), !0; if (t.action === "setDisabled") {
|
|
62
|
+
const e = "disabled:" + t.host;
|
|
63
|
+
return t.disabled ? (chrome.storage.sync.set({ [e]: t.disabled }, () => { m().then(() => { n({ result: "ok" }); }).catch(c => { n({ result: "error" }); }); }), !0) : (chrome.storage.sync.remove(e, () => { m().then(() => { n({ result: "ok" }); }).catch(c => { n({ result: "error" }); }); }), !0);
|
|
64
|
+
} if (t.action === "getDisabled") {
|
|
65
|
+
const e = "disabled:" + t.host;
|
|
66
|
+
return chrome.storage.sync.get([e], function (c) { n({ disabled: c[e] }); }), !0;
|
|
67
|
+
} if (t.action === "getWhiteList")
|
|
68
|
+
return chrome.storage.sync.get(null, function (e) { const c = []; Object.keys(e).sort().forEach(s => { s.startsWith("disabled:") && c.push(s.replace("disabled:", "")); }), n({ whiteList: c }); }), !0; if (t.action === "scriptLoaded") {
|
|
69
|
+
const e = (i = o.tab) == null ? void 0 : i.id;
|
|
70
|
+
return e && chrome.storage.session.get(["hosts:" + e], function (c) { const s = c["hosts:" + e] || []; s.includes(t.host) || (s.push(t.host), chrome.storage.session.set({ ["hosts:" + e]: s }).then(() => { })); }), !0;
|
|
71
|
+
} if (t.action === "getHosts") {
|
|
72
|
+
const e = t.tabID;
|
|
73
|
+
return e && chrome.storage.session.get(["hosts:" + e], function (c) { const s = c["hosts:" + e] || []; n({ hosts: s }); }), !0;
|
|
74
|
+
} return t.action === "resetDetection" ? o.frameId ? (n({ result: "ok" }), !0) : (o.tab && o.tab.id && (chrome.storage.session.remove(["hosts:" + o.tab.id]).then(() => { }), chrome.storage.session.set({ ["tab-started:" + o.tab.id]: Date.now() }), o.tab.incognito && chrome.storage.session.remove("detections:" + o.tab.id)), m().then(() => { var e; chrome.action.setBadgeText({ text: "", tabId: (e = o.tab) == null ? void 0 : e.id }), n({ result: "ok" }); }).catch(e => { n({ result: "error" }); }), !0) : t.action === "setDetected" ? o.tab ? (o.tab, chrome.action.setBadgeText({ text: "!", tabId: o.tab.id }), chrome.action.setBadgeBackgroundColor({ color: "#FF0000", tabId: (r = o.tab) == null ? void 0 : r.id }), v(o.documentId, t.src, t.origins, t.detection, o.tab), chrome.storage.sync.get("totalDetected", function (e) { const c = e.totalDetected || 0; chrome.storage.sync.set({ totalDetected: c + 1 }); }), n({ result: "ok" }), !0) : !1 : t.action === "getTabDetection" ? (x(t.tabId, t.isIncognito).then(e => { n(e); }).catch(e => { n([]); }), !0) : t.action === "getHostDetection" ? (j(t.host, t.upBound).then(e => { n(e); }).catch(e => { n([]); }), !0) : t.action === "removeHostStats" ? (k(t.host).finally(() => { n(); }), !0) : t.action === "getHostStats" ? (L().then(e => { n(e); }).catch(e => { n([]); }), !0) : !1; };
|
|
75
|
+
chrome.runtime.onMessage.hasListeners() || chrome.runtime.onMessage.addListener(P);
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=chunk-b4410958.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-b4410958.js","sourceRoot":"","sources":["../../../../src/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-dfed3562.d.ts","sourceRoot":"","sources":["../../../../src/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { d as N, o as c, c as d, a as e, r as j, b as _, _ as W, e as v, g as O, f as R, h as $, i as w, w as q, j as P, t, u as n, S as J, D as K, n as M, F as C, k as L, m as Q, l as S, p as H, q as X, s as Y, v as Z } from "./chunk-3a7b59dd.js";
|
|
2
|
+
const ee = N({ __name: "Modal", props: { show: { type: Boolean, default: !1 } }, emits: ["close"], setup(T) { return (a, h) => T.show ? (c(), d("div", { key: 0, class: "modal", onClick: h[1] || (h[1] = b => a.$emit("close")) }, [e("div", { class: "modal-content", onClick: h[0] || (h[0] = b => b.stopPropagation()) }, [j(a.$slots, "default", {}, void 0, !0)])])) : _("", !0); } });
|
|
3
|
+
const te = W(ee, [["__scopeId", "data-v-e3ce65c1"]]), se = { key: 0, class: "modal-body" }, oe = { class: "modal-title" }, ae = { class: "title" }, ne = ["src"], ie = ["href"], le = { class: "section-title" }, ce = { class: "prevented-fingerprints" }, de = { key: 0, class: "stat-number" }, ue = { class: "label" }, re = { class: "number" }, _e = { key: 1, class: "stat-number" }, ve = { class: "label" }, he = { class: "number" }, ge = { key: 2, class: "stat-number" }, pe = { class: "label" }, me = { class: "number" }, be = { key: 3, class: "stat-number" }, ye = { class: "label" }, fe = { class: "number" }, ke = { key: 4, class: "stat-number" }, we = { class: "label" }, Me = { class: "number" }, Ce = { key: 0, class: "section-title" }, Le = { class: "info" }, Se = { key: 0 }, Te = ["src"], Be = { class: "layout" }, De = { class: "header" }, Ae = { class: "description" }, Oe = ["href"], $e = { class: "shadow-text" }, He = { class: "top-content" }, Ne = { class: "top-content-col" }, We = { class: "card-title" }, Fe = { class: "total-number" }, xe = { class: "top-content-col" }, ze = { class: "card-title" }, Ve = { class: "total-number" }, Ie = { class: "tabs" }, Ue = { class: "table-header row" }, Ee = { class: "header-host" }, Ge = { class: "header-count" }, je = { class: "updated-at-col" }, Re = { class: "hidden-small white-list-col" }, qe = { class: "delete-col" }, Pe = { class: "table-body" }, Je = ["onClick"], Ke = ["src"], Qe = { class: "updated-at-col" }, Xe = { class: "hidden-small white-list-col" }, Ye = ["onClick", "title"], Ze = { key: 1 }, et = { class: "delete-col" }, tt = ["onClick"], st = { class: "table-header row" }, ot = { class: "header-host" }, at = { class: "delete-col" }, nt = { class: "table-body" }, it = { class: "row-host" }, lt = ["src"], ct = { class: "delete-col" }, dt = ["onClick"], ut = N({ __name: "Options", setup(T) { const a = window.chrome, h = a.i18n.getMessage("ExtensionName"); document.title = h; const b = v(0), y = v([]), g = v([]); function F(s) { a.runtime.sendMessage({ action: "setDisabled", host: s, disabled: !1 }, () => { }); } let x = Q(300); a.storage.sync.onChanged.addListener(s => { for (const i in s)
|
|
4
|
+
if (i.startsWith("disabled:")) {
|
|
5
|
+
const o = i.slice(9);
|
|
6
|
+
if (s[i].newValue) {
|
|
7
|
+
const u = g.value.concat(o);
|
|
8
|
+
g.value = u.sort();
|
|
9
|
+
}
|
|
10
|
+
else
|
|
11
|
+
g.value = g.value.filter(u => u !== o);
|
|
12
|
+
}
|
|
13
|
+
else
|
|
14
|
+
i === "totalDetected" && x(() => { b.value = s.totalDetected.newValue || 0, O().then(o => { var r; y.value = o || [], k.value && o.length && o[0].host === ((r = l.value) == null ? void 0 : r.host) && D(o[0]); }); }); }), R(async () => { a.storage.sync.get("totalDetected", s => { b.value = s.totalDetected || 0; }), a.runtime.sendMessage({ action: "getWhiteList" }, s => { s && (g.value = s.whiteList); }), a.storage.session.get("activeTab", s => { s.activeTab && (p.value = s.activeTab); }), O().then(s => { y.value = s; }); }); const p = v("stats"), B = s => { s !== p.value && (a.storage.session.set({ activeTab: s }), p.value = s); }; function z(s) { Y(s), y.value = y.value.filter(i => i.host !== s); } function V(s) { a.runtime.sendMessage({ action: "setDisabled", host: s, disabled: !0 }, () => { }); } const k = v(!1), l = v(null), m = v([]), f = v(0); function D(s) { l.value = s, $(s.host).then(i => { const o = []; for (const r of i)
|
|
15
|
+
o.push(...r.detections); i.length ? f.value = i[i.length - 1].updatedAt - 1 : f.value = 0, m.value = o; }), k.value = !0; } function I() { k.value = !1, l.value = null, m.value = [], f.value = 0; } function U(s) { const i = s.target; i.scrollTop + i.clientHeight >= i.scrollHeight && E(); } function E() { !l.value || !l.value.host || !f.value || $(l.value.host, f.value - 1).then(s => { const i = []; for (const o of s)
|
|
16
|
+
i.push(...o.detections), f.value = o.updatedAt; m.value = m.value.concat(i); }); } const G = s => { const i = s.target; window.open("about:blank").document.write("<img src='" + i.src + "' alt='from canvas'/>"); }; return (s, i) => (c(), d(C, null, [w(te, { show: k.value, onClose: I }, { default: q(() => { var o, r; return [l.value ? (c(), d("div", se, [e("div", oe, [e("div", ae, [e("img", { class: "host-img", loading: "lazy", src: n(S)(l.value.host, 32), width: "32", height: "32" }, null, 8, ne), e("a", { href: "https://" + l.value.host, target: "_blank", rel: "noopener noreferrer" }, t(l.value.host) + " ⧉ ", 9, ie)]), e("button", { class: "btn close", onClick: i[0] || (i[0] = u => k.value = !1) }, "x")]), e("div", le, t(n(a).i18n.getMessage("NumberOfFingerprints")), 1), e("div", ce, [Object.keys(l.value.countByType).filter(u => { var A; return (A = l.value) == null ? void 0 : A.countByType[u]; }).length > 1 ? (c(), d("div", de, [e("div", ue, t(n(a).i18n.getMessage("Total")), 1), e("div", re, t(l.value.count.toLocaleString()), 1)])) : _("", !0), l.value.countByType.AUDIO ? (c(), d("div", _e, [e("div", ve, t(n(a).i18n.getMessage("Audio")), 1), e("div", he, t(l.value.countByType.AUDIO.toLocaleString()), 1)])) : _("", !0), l.value.countByType.CANVAS ? (c(), d("div", ge, [e("div", pe, t(n(a).i18n.getMessage("Canvas")), 1), e("div", me, t(l.value.countByType.CANVAS.toLocaleString()), 1)])) : _("", !0), l.value.countByType.FONT ? (c(), d("div", be, [e("div", ye, t(n(a).i18n.getMessage("Font")), 1), e("div", fe, t(l.value.countByType.FONT.toLocaleString()), 1)])) : _("", !0), l.value.countByType.WEBGL ? (c(), d("div", ke, [e("div", we, t(n(a).i18n.getMessage("WebGL")), 1), e("div", Me, t(l.value.countByType.WEBGL.toLocaleString()), 1)])) : _("", !0)]), (o = m.value) != null && o.length ? (c(), d("div", Ce, t(n(a).i18n.getMessage("History")) + " (" + t(n(a).i18n.getMessage("Last30Days")) + ") ", 1)) : _("", !0), (r = m.value) != null && r.length ? (c(), d("div", { key: 1, onScroll: U, class: "history" }, [(c(!0), d(C, null, L(m.value, u => (c(), d("div", { class: "history-row", key: u.occurredAt }, [e("div", Le, [e("span", null, t(n(H)(u.occurredAt)), 1), u.canvasSize ? (c(), d("span", Se, "(" + t(u.canvasSize) + ")", 1)) : _("", !0), e("span", null, t(u.type), 1)]), u.canvas ? (c(), d("img", { key: 0, class: "canvas", onClick: G, src: u.canvas }, null, 8, Te)) : _("", !0)]))), 128))], 32)) : _("", !0)])) : _("", !0)]; }), _: 1 }, 8, ["show"]), e("main", Be, [e("div", De, [e("div", null, [w(P, { width: 48 }), e("div", Ae, [e("span", null, t(n(h)), 1), e("a", { target: "_blank", href: n(X) }, t(n(a).i18n.getMessage("MakeBy")), 9, Oe)])]), e("div", null, [e("span", $e, t(n(a).i18n.getMessage("RateUs")), 1), w(J, { "font-size": "1.4rem" }), w(K)])]), e("div", He, [e("div", Ne, [e("div", We, t(n(a).i18n.getMessage("NumberOfFingerprints")), 1), e("div", Fe, t(b.value.toLocaleString()), 1)]), e("div", xe, [e("div", ze, t(n(a).i18n.getMessage("NumberOfHosts")), 1), e("div", Ve, t(y.value.length.toLocaleString()), 1)])]), e("div", Ie, [e("div", { class: M(["tab-item", p.value == "stats" ? "active" : "inactive"]), onClick: i[1] || (i[1] = o => B("stats")) }, " Statistics ", 2), e("div", { class: M(["tab-item", p.value == "white-list" ? "active" : "inactive"]), onClick: i[2] || (i[2] = o => B("white-list")) }, " White list ", 2)]), e("div", { class: M(["body", p.value == "stats" ? "show" : "hide"]) }, [e("div", Ue, [e("div", Ee, t(n(a).i18n.getMessage("Host")), 1), e("div", Ge, t(n(a).i18n.getMessage("Count")), 1), e("div", je, t(n(a).i18n.getMessage("UpdatedAt")), 1), e("div", Re, t(n(a).i18n.getMessage("WhiteList")), 1), e("div", qe, t(n(a).i18n.getMessage("Delete")), 1)]), e("div", Pe, [(c(!0), d(C, null, L(y.value, o => (c(), d("div", { key: o.host, class: "row data-row" }, [e("div", { class: "row-host clickable", onClick: r => D(o) }, [e("img", { class: "host-img", loading: "lazy", src: n(S)(o.host, 24), width: "24", height: "24" }, null, 8, Ke), e("span", null, t(o.host), 1)], 8, Je), e("div", null, t(o.count.toLocaleString()), 1), e("div", Qe, t(n(H)(o.updatedAt).slice(0, 19)), 1), e("div", Xe, [g.value.includes(o.host) ? (c(), d("span", Ze, t(n(a).i18n.getMessage("Added")), 1)) : (c(), d("button", { key: 0, class: "btn add-btn", onClick: r => V(o.host), title: n(a).i18n.getMessage("AddToWhiteList") }, t(n(a).i18n.getMessage("Add")), 9, Ye))]), e("div", et, [e("button", { class: "btn delete-btn", onClick: r => z(o.host) }, "✖", 8, tt)])]))), 128))])], 2), e("div", { class: M(["body", p.value == "white-list" ? "show" : "hide"]) }, [e("div", st, [e("div", ot, t(n(a).i18n.getMessage("Host")), 1), e("div", at, t(n(a).i18n.getMessage("Delete")), 1)]), e("div", nt, [(c(!0), d(C, null, L(g.value, o => (c(), d("div", { key: o, class: "row data-row" }, [e("div", it, [e("img", { class: "host-img", loading: "lazy", src: n(S)(o, 24), width: "24", height: "24" }, null, 8, lt), e("span", null, t(o), 1)]), e("div", ct, [e("button", { class: "btn delete-btn", onClick: r => F(o) }, "✖", 8, dt)])]))), 128))])], 2)])], 64)); } });
|
|
17
|
+
const rt = W(ut, [["__scopeId", "data-v-40977f35"]]);
|
|
18
|
+
Z(rt).mount("#app");
|
|
19
|
+
//# sourceMappingURL=chunk-dfed3562.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-dfed3562.js","sourceRoot":"","sources":["../../../../src/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import type CdpPage from "../page.js";
|
|
2
|
+
export declare const canvasMaskingScript = "\n(function() {\n const getImageData = CanvasRenderingContext2D.prototype.getImageData;\n // create a noise effect\n const noisify = function(canvas, context) {\n if (context) {\n const shift = {\n 'r': Math.floor(Math.random() * 10) - 5,\n 'g': Math.floor(Math.random() * 10) - 5,\n 'b': Math.floor(Math.random() * 10) - 5,\n 'a': Math.floor(Math.random() * 10) - 5\n };\n \n const width = canvas.width;\n const height = canvas.height;\n \n if (width && height) {\n const imageData = getImageData.apply(context, [0, 0, width, height]);\n \n for (let i = 0; i < height; i++) {\n for (let j = 0; j < width; j++) {\n const n = ((i * (width * 4)) + (j * 4));\n imageData.data[n + 0] = imageData.data[n + 0] + shift.r;\n imageData.data[n + 1] = imageData.data[n + 1] + shift.g;\n imageData.data[n + 2] = imageData.data[n + 2] + shift.b;\n imageData.data[n + 3] = imageData.data[n + 3] + shift.a;\n }\n }\n \n context.putImageData(imageData, 0, 0);\n }\n }\n };\n \n HTMLCanvasElement.prototype.toBlob = new Proxy(HTMLCanvasElement.prototype.toBlob, {\n apply(target, self, args) {\n noisify(self, self.getContext(\"2d\"));\n return Reflect.apply(target, self, args);\n }\n });\n \n HTMLCanvasElement.prototype.toDataURL = new Proxy(HTMLCanvasElement.prototype.toDataURL, {\n apply(target, self, args) {\n noisify(self, self.getContext(\"2d\"));\n return Reflect.apply(target, self, args);\n }\n });\n \n CanvasRenderingContext2D.prototype.getImageData = new Proxy(CanvasRenderingContext2D.prototype.getImageData, {\n apply(target, self, args) {\n noisify(self.canvas, self);\n return Reflect.apply(target, self, args);\n }\n });\n})();\n";
|
|
3
|
+
export declare function maskCanvasFingerprint(page: CdpPage): Promise<void>;
|
|
2
4
|
//# sourceMappingURL=canvas-fingerprint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-fingerprint.d.ts","sourceRoot":"","sources":["../../src/fingerprinting/canvas-fingerprint.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"canvas-fingerprint.d.ts","sourceRoot":"","sources":["../../src/fingerprinting/canvas-fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,mBAAmB,8oEAuD/B,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAExE"}
|
|
@@ -1,62 +1,60 @@
|
|
|
1
1
|
export const canvasMaskingScript = `
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
(function() {
|
|
3
|
+
const getImageData = CanvasRenderingContext2D.prototype.getImageData;
|
|
4
|
+
// create a noise effect
|
|
5
|
+
const noisify = function(canvas, context) {
|
|
6
|
+
if (context) {
|
|
7
|
+
const shift = {
|
|
8
|
+
'r': Math.floor(Math.random() * 10) - 5,
|
|
9
|
+
'g': Math.floor(Math.random() * 10) - 5,
|
|
10
|
+
'b': Math.floor(Math.random() * 10) - 5,
|
|
11
|
+
'a': Math.floor(Math.random() * 10) - 5
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const width = canvas.width;
|
|
15
|
+
const height = canvas.height;
|
|
16
|
+
|
|
17
|
+
if (width && height) {
|
|
18
|
+
const imageData = getImageData.apply(context, [0, 0, width, height]);
|
|
19
|
+
|
|
20
|
+
for (let i = 0; i < height; i++) {
|
|
21
|
+
for (let j = 0; j < width; j++) {
|
|
22
|
+
const n = ((i * (width * 4)) + (j * 4));
|
|
23
|
+
imageData.data[n + 0] = imageData.data[n + 0] + shift.r;
|
|
24
|
+
imageData.data[n + 1] = imageData.data[n + 1] + shift.g;
|
|
25
|
+
imageData.data[n + 2] = imageData.data[n + 2] + shift.b;
|
|
26
|
+
imageData.data[n + 3] = imageData.data[n + 3] + shift.a;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
context.putImageData(imageData, 0, 0);
|
|
31
|
+
}
|
|
28
32
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return Reflect.apply(target, self, args);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
HTMLCanvasElement.prototype.toBlob = new Proxy(HTMLCanvasElement.prototype.toBlob, {
|
|
36
|
+
apply(target, self, args) {
|
|
37
|
+
noisify(self, self.getContext("2d"));
|
|
38
|
+
return Reflect.apply(target, self, args);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
HTMLCanvasElement.prototype.toDataURL = new Proxy(HTMLCanvasElement.prototype.toDataURL, {
|
|
43
|
+
apply(target, self, args) {
|
|
44
|
+
noisify(self, self.getContext("2d"));
|
|
45
|
+
return Reflect.apply(target, self, args);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
CanvasRenderingContext2D.prototype.getImageData = new Proxy(CanvasRenderingContext2D.prototype.getImageData, {
|
|
50
|
+
apply(target, self, args) {
|
|
51
|
+
noisify(self.canvas, self);
|
|
52
|
+
return Reflect.apply(target, self, args);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
})();
|
|
56
|
+
`;
|
|
57
|
+
export async function maskCanvasFingerprint(page) {
|
|
58
|
+
await page.client.Page.addScriptToEvaluateOnNewDocument({ source: canvasMaskingScript });
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
-
})();
|
|
61
|
-
`;
|
|
62
60
|
//# sourceMappingURL=canvas-fingerprint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-fingerprint.js","sourceRoot":"","sources":["../../src/fingerprinting/canvas-fingerprint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas-fingerprint.js","sourceRoot":"","sources":["../../src/fingerprinting/canvas-fingerprint.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDlC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAa;IACvD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAC3F,CAAC"}
|
|
@@ -18,7 +18,6 @@ export declare class CdpFingerprintInjector {
|
|
|
18
18
|
private page;
|
|
19
19
|
constructor(page: CdpPage);
|
|
20
20
|
static injectFingerprint(page: CdpPage, fingerprint: BrowserFingerprintWithHeaders, options?: AttachOptions): Promise<void>;
|
|
21
|
-
private maskCanvasFingerprint;
|
|
22
21
|
private setUserAgent;
|
|
23
22
|
private setViewport;
|
|
24
23
|
private setExtraHTTPHeaders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint-injector.d.ts","sourceRoot":"","sources":["../../src/fingerprinting/fingerprint-injector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAI3E,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AAIrC,UAAU,QAAQ;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,aAAa;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAMD,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,IAAI,CAAU;gBAEV,IAAI,EAAE,OAAO;WAKZ,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAKnH,
|
|
1
|
+
{"version":3,"file":"fingerprint-injector.d.ts","sourceRoot":"","sources":["../../src/fingerprinting/fingerprint-injector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAI3E,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AAIrC,UAAU,QAAQ;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,aAAa;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAMD,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,IAAI,CAAU;gBAEV,IAAI,EAAE,OAAO;WAKZ,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAKnH,YAAY;YAIZ,WAAW;YAaX,mBAAmB;YAInB,iBAAiB;YAejB,mBAAmB;IAMpB,YAAY,CACrB,6BAA6B,EAAE,6BAA6B,EAC5D,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,IAAI,CAAC;CA6BnB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { log } from 'crawlee';
|
|
2
2
|
import { FingerprintInjector } from 'fingerprint-injector';
|
|
3
3
|
import { gotScraping } from 'got-scraping';
|
|
4
|
-
import {
|
|
4
|
+
import { maskCanvasFingerprint } from './canvas-fingerprint.js';
|
|
5
5
|
export class CdpFingerprintInjector {
|
|
6
6
|
constructor(page) {
|
|
7
7
|
Object.defineProperty(this, "injector", {
|
|
@@ -23,9 +23,6 @@ export class CdpFingerprintInjector {
|
|
|
23
23
|
const handler = new CdpFingerprintInjector(page);
|
|
24
24
|
return handler.attachToPage(fingerprint, options);
|
|
25
25
|
}
|
|
26
|
-
async maskCanvasFingerprint() {
|
|
27
|
-
await this.page.client.Page.addScriptToEvaluateOnNewDocument({ source: canvasMaskingScript });
|
|
28
|
-
}
|
|
29
26
|
async setUserAgent(userAgent) {
|
|
30
27
|
await this.page.client.Network.setUserAgentOverride({ userAgent });
|
|
31
28
|
}
|
|
@@ -77,7 +74,7 @@ export class CdpFingerprintInjector {
|
|
|
77
74
|
this.setViewport(),
|
|
78
75
|
this.setExtraHTTPHeaders(filteredHeaders),
|
|
79
76
|
this.page.client.Page.addScriptToEvaluateOnNewDocument({ source: content }),
|
|
80
|
-
this.
|
|
77
|
+
maskCanvasFingerprint(this.page),
|
|
81
78
|
];
|
|
82
79
|
await Promise.all(fingerprintModifications);
|
|
83
80
|
log.debug('Fingerprint attached with settings:', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint-injector.js","sourceRoot":"","sources":["../../src/fingerprinting/fingerprint-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fingerprint-injector.js","sourceRoot":"","sources":["../../src/fingerprinting/fingerprint-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAsBhE,MAAM,OAAO,sBAAsB;IAI/B,YAAY,IAAa;QAHjB;;;;;WAA8B;QAC9B;;;;;WAAc;QAGlB,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAa,EAAE,WAA0C,EAAE,OAAuB;QAC7G,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,SAAiB;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAmB;QACzC,MAAM,eAAe,GAAa;YAC9B,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,iBAAiB,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK;SAChB,CAAA;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC/D,iDAAiD;QACjD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,aAAoB,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAA+B;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,QAAiB;QAC7C,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;gBAC/B,GAAG,EAAE,wBAAwB;gBAC7B,QAAQ;gBACR,YAAY,EAAE,MAAM;aACvB,CAAC,CAAC;YAEH,OAAQ,QAAQ,CAAC,IAAuB,CAAC,QAAQ,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;YACjD,UAAU,EAAE,QAAQ;SACvB,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,YAAY,CACrB,6BAA4D,EAC5D,OAAuB;QAEvB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,6BAA6B,CAAC;QAE/D,MAAM,mBAAmB,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,cAAc,CAAC;QACzE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnG,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,mBAAmB,GAAI,IAAI,CAAC,QAAgB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACpF,MAAM,eAAe,GAAI,IAAI,CAAC,QAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;QAEjF,MAAM,wBAAwB,GAAG;YAC7B,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAChD,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC3E,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CAAA;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAE5C,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE;YAC7C,KAAK,EAAE,OAAO,EAAE,QAAQ;YACxB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/dist/launcher-wrap.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Options, Client } from "chrome-remote-interface";
|
|
2
|
-
import type
|
|
2
|
+
import type CdpPage from "./page.js";
|
|
3
3
|
export interface LaunchReturn extends Client {
|
|
4
|
-
newPage: () => Promise<
|
|
4
|
+
newPage: () => Promise<CdpPage>;
|
|
5
5
|
}
|
|
6
6
|
export declare class CdpLauncher {
|
|
7
7
|
launch(options: Options): Promise<LaunchReturn>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher-wrap.d.ts","sourceRoot":"","sources":["../src/launcher-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"launcher-wrap.d.ts","sourceRoot":"","sources":["../src/launcher-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,YAAa,SAAQ,MAAM;IACxC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACnC;AACD,qBAAa,WAAW;IACd,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;CAOxD;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher-wrap.js","sourceRoot":"","sources":["../src/launcher-wrap.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,yBAAyB,CAAC,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"launcher-wrap.js","sourceRoot":"","sources":["../src/launcher-wrap.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,yBAAyB,CAAC,CAAC,yBAAyB;AAOpE,MAAM,OAAO,WAAW;IACpB,KAAK,CAAC,MAAM,CAAC,OAAgB;QACzB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC;QAChE,oBAAoB;QACpB,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA,CAAC,CAAC,CAAA;QAE7F,OAAO,GAAmB,CAAA;IAC9B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
package/dist/page.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import
|
|
2
|
+
import CDP from 'chrome-remote-interface';
|
|
3
3
|
export interface WaitForResponseOptions {
|
|
4
4
|
urlPattern: string | RegExp;
|
|
5
5
|
timeout?: number;
|
|
@@ -32,9 +32,14 @@ export interface EvaluateResult {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
export default class CdpPage extends EventEmitter {
|
|
35
|
+
_rawClient: CDP.Client;
|
|
35
36
|
client: CDP.Client;
|
|
36
37
|
private loadedUrl;
|
|
38
|
+
isReconnecting: boolean;
|
|
39
|
+
private enabledDomains;
|
|
40
|
+
private connectionMonitor?;
|
|
37
41
|
constructor(client: CDP.Client);
|
|
42
|
+
private _attachConnectionMonitor;
|
|
38
43
|
static create(client: CDP.Client): Promise<CdpPage>;
|
|
39
44
|
private initialize;
|
|
40
45
|
url(): Promise<string>;
|
|
@@ -86,5 +91,11 @@ export default class CdpPage extends EventEmitter {
|
|
|
86
91
|
* @returns - The result of the evaluation.
|
|
87
92
|
*/
|
|
88
93
|
$$eval<T>(selector: string, pageFunction: (elements: HTMLElement[], ...args: any[]) => T, ...args: any[]): Promise<T>;
|
|
94
|
+
/**
|
|
95
|
+
* Enables a CDP domain only if it hasn't been enabled yet
|
|
96
|
+
* @private
|
|
97
|
+
*/
|
|
98
|
+
private _enableDomain;
|
|
99
|
+
reconnectSession(retries?: number): Promise<void>;
|
|
89
100
|
}
|
|
90
101
|
//# sourceMappingURL=page.d.ts.map
|
package/dist/page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"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"}
|