@stormking/emere 1.0.0

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/bin/test.js ADDED
@@ -0,0 +1 @@
1
+ require('../dist/src/main.test.js')
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Module dependencies
3
+ */
4
+ declare var Emitter: any;
5
+ declare var sliced: any;
6
+ declare var debug: any;
7
+ /**
8
+ * Initialize `IPC`
9
+ */
10
+ declare var instance: symbol;
11
+ declare function IPC(process: any): any;
12
+ declare function serializeError(err: any): any;
13
+ declare function unserializeError(err: any): any;
@@ -0,0 +1,145 @@
1
+ 'use strict';
2
+ /**
3
+ * Module dependencies
4
+ */
5
+ var Emitter = require('events').EventEmitter;
6
+ var sliced = require('sliced');
7
+ var debug = require('debug')('nightmare:ipc');
8
+ // If this process has a parent, redirect debug logs to it
9
+ if (process.send) {
10
+ debug = function () {
11
+ process.send(['nightmare:ipc:debug'].concat(sliced(arguments)));
12
+ };
13
+ }
14
+ /**
15
+ * Export `IPC`
16
+ */
17
+ module.exports = IPC;
18
+ /**
19
+ * Initialize `IPC`
20
+ */
21
+ var instance = Symbol();
22
+ function IPC(process) {
23
+ if (process[instance]) {
24
+ return process[instance];
25
+ }
26
+ var emitter = (process[instance] = new Emitter());
27
+ var emit = emitter.emit;
28
+ var callId = 0;
29
+ var responders = {};
30
+ // no parent
31
+ if (!process.send) {
32
+ return emitter;
33
+ }
34
+ process.on('message', function (data) {
35
+ // handle debug logging specially
36
+ if (data[0] === 'nightmare:ipc:debug') {
37
+ debug.apply(null, sliced(data, 1));
38
+ }
39
+ emit.apply(emitter, sliced(data));
40
+ });
41
+ emitter.emit = function () {
42
+ if (process.connected) {
43
+ process.send(sliced(arguments));
44
+ }
45
+ };
46
+ /**
47
+ * Call a responder function in the associated process. (In the process,
48
+ * responders can be registered with `ipc.respondTo()`.) The last argument
49
+ * should be a callback function, which will called with the results of the
50
+ * responder.
51
+ * This returns an event emitter. You can listen for the results of the
52
+ * responder using the `end` event (this is the same as passing a callback).
53
+ * Additionally, you can listen for `data` events, which the responder may
54
+ * send to indicate some sort of progress.
55
+ * @param {String} name Name of the responder function to call
56
+ * @param {...Objects} [arguments] Any number of arguments to send
57
+ * @param {Function} [callback] A callback function that handles the results
58
+ * @return {Emitter}
59
+ */
60
+ emitter.call = function (name) {
61
+ var args = sliced(arguments, 1);
62
+ var callback = args.pop();
63
+ if (typeof callback !== 'function') {
64
+ args.push(callback);
65
+ callback = undefined;
66
+ }
67
+ var id = callId++;
68
+ var progress = new Emitter();
69
+ emitter.on(`CALL_DATA_${id}`, function () {
70
+ progress.emit.apply(progress, ['data'].concat(sliced(arguments)));
71
+ });
72
+ emitter.once(`CALL_RESULT_${id}`, function (err) {
73
+ // unserialize errors
74
+ err = unserializeError(err);
75
+ progress.emit.apply(progress, ['end'].concat(err).concat(sliced(arguments, 1)));
76
+ emitter.removeAllListeners(`CALL_DATA_${id}`);
77
+ progress.removeAllListeners();
78
+ progress = undefined;
79
+ if (callback) {
80
+ callback.apply(null, [err].concat(sliced(arguments, 1)));
81
+ }
82
+ });
83
+ emitter.emit.apply(emitter, ['CALL', id, name].concat(args));
84
+ return progress;
85
+ };
86
+ /**
87
+ * Register a responder to be called from other processes with `ipc.call()`.
88
+ * The responder should be a function that accepts any number of arguments,
89
+ * where the last argument is a callback function. When the responder has
90
+ * finished its work, it MUST call the callback. The first argument should be
91
+ * an error, if any, and the second should be the results.
92
+ * Only one responder can be registered for a given name.
93
+ * @param {String} name The name to register the responder under.
94
+ * @param {Function} responder
95
+ */
96
+ emitter.respondTo = function (name, responder) {
97
+ if (responders[name]) {
98
+ debug(`Replacing responder named "${name}"`);
99
+ }
100
+ responders[name] = responder;
101
+ };
102
+ emitter.on('CALL', function (id, name) {
103
+ var responder = responders[name];
104
+ var done = function (err) {
105
+ err = serializeError(err);
106
+ emitter.emit.apply(emitter, [`CALL_RESULT_${id}`].concat(err).concat(sliced(arguments, 1)));
107
+ };
108
+ done.progress = function () {
109
+ emitter.emit.apply(emitter, [`CALL_DATA_${id}`].concat(sliced(arguments)));
110
+ };
111
+ if (!responder) {
112
+ return done(new Error(`Nothing responds to "${name}"`));
113
+ }
114
+ try {
115
+ responder.apply(null, sliced(arguments, 2).concat([done]));
116
+ }
117
+ catch (error) {
118
+ done(error);
119
+ }
120
+ });
121
+ return emitter;
122
+ }
123
+ function serializeError(err) {
124
+ if (!(err instanceof Error))
125
+ return err;
126
+ return {
127
+ code: err.code,
128
+ message: err.message,
129
+ details: err.detail,
130
+ stack: err.stack || ''
131
+ };
132
+ }
133
+ function unserializeError(err) {
134
+ if (!err || !err.message)
135
+ return err;
136
+ const e = new Error(err.message);
137
+ e.code = err.code || -1;
138
+ if (err.stack)
139
+ e.stack = err.stack;
140
+ if (err.details)
141
+ e.details = err.details;
142
+ if (err.url)
143
+ e.url = err.url;
144
+ return e;
145
+ }
@@ -0,0 +1,9 @@
1
+ export type RunScript = {
2
+ url: string;
3
+ header?: Record<string, string | string[]>;
4
+ waitAfterLoad?: number;
5
+ waitForSelector?: string;
6
+ userAgent?: string;
7
+ timeout?: number;
8
+ };
9
+ export default function run(runScript: RunScript): Promise<any>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_child_process_1 = require("node:child_process");
4
+ const message_1 = require("./message");
5
+ const defaultElectron = require('electron');
6
+ async function run(runScript) {
7
+ // console.log('run emere', runScript);
8
+ const proc = (0, node_child_process_1.spawn)(defaultElectron, [__dirname + '/runner.js'], {
9
+ // cwd: 'node_modules/electron/',
10
+ stdio: [null, 'inherit', 'inherit', 'ipc'],
11
+ // env: process.env
12
+ });
13
+ const cleanup = () => {
14
+ if (!proc.killed) {
15
+ proc.kill('SIGTERM');
16
+ }
17
+ };
18
+ let resolve, reject;
19
+ let p = new Promise((res, rej) => {
20
+ resolve = res;
21
+ reject = rej;
22
+ });
23
+ const host = (0, message_1.init)(proc);
24
+ host.on('request', (msg, cb) => {
25
+ if (msg.action === 'getCommands') {
26
+ cb(null, runScript);
27
+ }
28
+ else if (msg.action === 'returnData') {
29
+ if (msg.params.data) {
30
+ resolve(msg.params.data);
31
+ }
32
+ else {
33
+ reject(new Error(msg.params.error || 'unknown error'));
34
+ }
35
+ cb(null, true);
36
+ cleanup();
37
+ }
38
+ });
39
+ proc.on('close', () => {
40
+ reject(new Error('electron closed without response'));
41
+ });
42
+ const timeout = runScript.timeout || 10000;
43
+ setTimeout(() => {
44
+ cleanup();
45
+ }, timeout);
46
+ return p;
47
+ }
48
+ exports.default = run;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const main_js_1 = __importDefault(require("./main.js"));
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ (async function runTest() {
9
+ let res = await (0, main_js_1.default)({
10
+ url: 'http://example.org',
11
+ waitAfterLoad: 1,
12
+ waitForSelector: 'h1',
13
+ header: {
14
+ 'X-Test': '123'
15
+ }
16
+ });
17
+ // console.log('completed', res);
18
+ (0, node_assert_1.default)(res.includes('<h1>Example Domain</h1>'), 'expect result to include "<h1>Example Domain</h1>"');
19
+ res = await (0, main_js_1.default)({
20
+ url: 'https://choosealicense.com/',
21
+ waitForSelector: 'h1'
22
+ });
23
+ // console.log('completed', res);
24
+ (0, node_assert_1.default)(res.includes('<h1>Choose an open source license</h1>'), 'expect result to include "<h1>Choose an open source license</h1>"');
25
+ })();
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ import EventEmitter from "events";
3
+ type Message = Request | Response;
4
+ type Request = {
5
+ id: string;
6
+ action: string;
7
+ params: any;
8
+ };
9
+ type Response = {
10
+ res: string;
11
+ error?: string;
12
+ data?: any;
13
+ };
14
+ export declare class MessageHost extends EventEmitter {
15
+ #private;
16
+ constructor(proc: any);
17
+ onMessage(m: Message): void;
18
+ sendResponse(id: any, err: any, res: any): void;
19
+ call(action: string, params: any): Promise<any>;
20
+ }
21
+ export declare function init(proc: any): MessageHost;
22
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.init = exports.MessageHost = void 0;
7
+ const crypto_1 = require("crypto");
8
+ const events_1 = __importDefault(require("events"));
9
+ class MessageHost extends events_1.default {
10
+ #_send;
11
+ #open = new Map();
12
+ constructor(proc) {
13
+ super();
14
+ this.#_send = proc.send.bind(proc);
15
+ proc.on('message', this.onMessage.bind(this));
16
+ }
17
+ onMessage(m) {
18
+ // console.log('onMessage', m);
19
+ if ('res' in m) {
20
+ let wrap = this.#open.get(m.res);
21
+ this.#open.delete(m.res);
22
+ if (!wrap) {
23
+ console.error('response has no promise waiting', m);
24
+ return;
25
+ }
26
+ if (m.error)
27
+ wrap.reject(new Error(m.error));
28
+ else
29
+ wrap.resolve(m.data);
30
+ }
31
+ else {
32
+ this.emit('request', m, (err, res) => {
33
+ this.sendResponse(m.id, err, res);
34
+ });
35
+ }
36
+ }
37
+ sendResponse(id, err, res) {
38
+ // console.log('sending response', { id, err, res });
39
+ this.#_send({
40
+ res: id,
41
+ error: err,
42
+ data: res
43
+ });
44
+ }
45
+ async call(action, params) {
46
+ let msg = {
47
+ id: (0, crypto_1.randomBytes)(8).toString('base64'),
48
+ action,
49
+ params
50
+ };
51
+ let wrap = {
52
+ p: null,
53
+ resolve: null,
54
+ reject: null
55
+ };
56
+ wrap.p = new Promise((res, rej) => {
57
+ wrap.resolve = res;
58
+ wrap.reject = rej;
59
+ });
60
+ this.#open.set(msg.id, wrap);
61
+ // console.log('sending request', msg);
62
+ this.#_send(msg);
63
+ return wrap.p;
64
+ }
65
+ }
66
+ exports.MessageHost = MessageHost;
67
+ function init(proc) {
68
+ return new MessageHost(proc);
69
+ }
70
+ exports.init = init;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /* eslint-disable no-console */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const electron_1 = require("electron");
5
+ const { ipcRenderer: ipc, contextBridge: bridge } = require('electron');
6
+ function sleep(ms) {
7
+ return new Promise(res => {
8
+ setTimeout(res, ms);
9
+ });
10
+ }
11
+ function waitUntilTrue(test, repeat, max) {
12
+ const start = Date.now();
13
+ return new Promise((res, rej) => {
14
+ let check = () => {
15
+ let success = test();
16
+ if (success)
17
+ res(true);
18
+ else {
19
+ if (Date.now() - start > max) {
20
+ rej(new Error('timeout'));
21
+ }
22
+ else {
23
+ setTimeout(check, repeat);
24
+ }
25
+ }
26
+ };
27
+ check();
28
+ });
29
+ }
30
+ window.addEventListener('load', async () => {
31
+ let runScript = await electron_1.ipcRenderer.invoke('getCommands');
32
+ if (runScript.waitAfterLoad) {
33
+ await sleep(runScript.waitAfterLoad);
34
+ }
35
+ if (runScript.waitForSelector) {
36
+ await waitUntilTrue(() => !!document.querySelector(runScript.waitForSelector), 400, 10000);
37
+ }
38
+ electron_1.ipcRenderer.send('returnData', document.getElementsByTagName('html')[0].innerHTML);
39
+ });
40
+ Object.defineProperties(window, {
41
+ resolve: {
42
+ value: function (value) {
43
+ ipc.send('response', value);
44
+ },
45
+ },
46
+ reject: {
47
+ value: function (err) {
48
+ ipc.send('error', error(err));
49
+ }
50
+ }
51
+ });
52
+ // Listen for error events
53
+ window.addEventListener('error', function (err) {
54
+ ipc.send('page', 'error', error(err));
55
+ }, true);
56
+ // prevent 'unload' and 'beforeunload' from being bound
57
+ var defaultAddEventListener = window.addEventListener;
58
+ window.addEventListener = function (type) {
59
+ if (type === 'unload' || type === 'beforeunload') {
60
+ return;
61
+ }
62
+ defaultAddEventListener.apply(window, arguments);
63
+ };
64
+ // prevent 'onunload' and 'onbeforeunload' from being set
65
+ Object.defineProperties(window, {
66
+ onunload: {
67
+ enumerable: true,
68
+ writable: false,
69
+ value: null
70
+ },
71
+ onbeforeunload: {
72
+ enumerable: true,
73
+ writable: false,
74
+ value: null
75
+ }
76
+ });
77
+ // listen for console.log
78
+ var defaultLog = console.log;
79
+ console.log = function (...p) {
80
+ ipc.send('console', 'log', ...p);
81
+ return defaultLog.apply(this, p);
82
+ };
83
+ // listen for console.warn
84
+ var defaultWarn = console.warn;
85
+ console.warn = function (...p) {
86
+ ipc.send('console', 'warn', ...p);
87
+ return defaultWarn.apply(this, p);
88
+ };
89
+ // listen for console.error
90
+ var defaultError = console.error;
91
+ console.error = function (...p) {
92
+ ipc.send('console', 'error', ...p);
93
+ return defaultError.apply(this, p);
94
+ };
95
+ // overwrite the default alert
96
+ window.alert = function (message) {
97
+ ipc.send('page', 'alert', message);
98
+ };
99
+ // overwrite the default prompt
100
+ window.prompt = function (message, defaultResponse) {
101
+ ipc.send('page', 'prompt', message, defaultResponse);
102
+ return '';
103
+ };
104
+ // overwrite the default confirm
105
+ window.confirm = function (message, defaultResponse) {
106
+ ipc.send('page', 'confirm', message, defaultResponse);
107
+ return defaultResponse;
108
+ };
109
+ /**
110
+ * Make errors serializeable
111
+ */
112
+ function error(err) {
113
+ return Object.fromEntries(Object.entries(Object.getOwnPropertyDescriptors(err)).map(([k, v]) => [k, v.value]));
114
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const electron_1 = require("electron");
7
+ const cross_fetch_1 = __importDefault(require("cross-fetch"));
8
+ const promises_1 = __importDefault(require("node:fs/promises"));
9
+ const node_os_1 = __importDefault(require("node:os"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const message_1 = require("./message");
12
+ const adblocker_electron_1 = require("@cliqz/adblocker-electron");
13
+ let mainWindow = null;
14
+ async function createWindow() {
15
+ mainWindow = new electron_1.BrowserWindow({
16
+ webPreferences: {
17
+ nodeIntegration: false,
18
+ contextIsolation: true,
19
+ nodeIntegrationInSubFrames: true,
20
+ preload: __dirname + '/preload.js'
21
+ },
22
+ height: 600,
23
+ width: 800,
24
+ show: false
25
+ });
26
+ const cacheFile = node_path_1.default.join(node_os_1.default.tmpdir(), 'electronBlocker.bin');
27
+ const blocker = await adblocker_electron_1.ElectronBlocker.fromLists(cross_fetch_1.default, adblocker_electron_1.fullLists, {
28
+ enableCompression: true,
29
+ }, {
30
+ path: cacheFile,
31
+ read: promises_1.default.readFile,
32
+ write: promises_1.default.writeFile,
33
+ });
34
+ blocker.enableBlockingInSession(mainWindow.webContents.session);
35
+ mainWindow.on('closed', () => {
36
+ mainWindow = null;
37
+ });
38
+ // console.log('runner create window done')
39
+ let runScript = await parent.call('getCommands', null);
40
+ electron_1.ipcMain.handle('getCommands', () => {
41
+ return runScript;
42
+ });
43
+ electron_1.ipcMain.once('returnData', (evt, data) => {
44
+ parent.call('returnData', { data })
45
+ .then(() => {
46
+ mainWindow.close();
47
+ });
48
+ });
49
+ let extraHeaders = '';
50
+ if (runScript.header) {
51
+ extraHeaders = Object.entries(runScript.header).map(e => `${e[0]}: ${e[1]}`).join('\n');
52
+ }
53
+ await mainWindow.loadURL(runScript.url, {
54
+ extraHeaders,
55
+ userAgent: runScript.userAgent
56
+ });
57
+ // process.send({ init: 'done' })
58
+ }
59
+ electron_1.ipcMain.on('console', (evt, ...data) => {
60
+ console.log(data);
61
+ });
62
+ electron_1.ipcMain.on('page', (evt, ...data) => {
63
+ console.log('page', data);
64
+ });
65
+ electron_1.app.on('ready', createWindow);
66
+ electron_1.app.on('window-all-closed', () => {
67
+ if (process.platform !== 'darwin') {
68
+ electron_1.app.quit();
69
+ }
70
+ });
71
+ electron_1.app.on('activate', () => {
72
+ if (mainWindow === null) {
73
+ createWindow();
74
+ }
75
+ });
76
+ const parent = (0, message_1.init)(process);
77
+ // console.log('runner init done');
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_child_process_1 = require("node:child_process");
4
+ const message_1 = require("./message");
5
+ const defaultElectron = require('electron');
6
+ const cwd = process.cwd();
7
+ const proc = (0, node_child_process_1.spawn)(defaultElectron, [cwd + '/dist/src/runner.js'], {
8
+ cwd: 'node_modules/electron/',
9
+ stdio: [null, 'inherit', 'inherit', 'ipc'],
10
+ env: process.env
11
+ });
12
+ // proc.send({ mymessage: 'hello world' })
13
+ // proc.on('message', (m) => {
14
+ // console.log('proc.on message', m);
15
+ // })
16
+ proc.on('close', () => {
17
+ console.log('spawn closed');
18
+ });
19
+ console.log('parent init done');
20
+ const host = (0, message_1.init)(proc);
21
+ host.call('test', { n: 5 })
22
+ .then(res => {
23
+ console.log('res test', res);
24
+ });
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/message.ts","../src/main.ts","../src/main.test.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/dom-events.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/globals.global.d.ts","../node_modules/.pnpm/@types+node@18.15.3/node_modules/@types/node/index.d.ts","../node_modules/.pnpm/electron@23.1.3/node_modules/electron/electron.d.ts","../src/preload.ts","../node_modules/.pnpm/cross-fetch@3.1.5/node_modules/cross-fetch/index.d.ts","../node_modules/.pnpm/@cliqz+adblocker-extended-selectors@1.26.2/node_modules/@cliqz/adblocker-extended-selectors/dist/types/src/types.d.ts","../node_modules/.pnpm/@cliqz+adblocker-extended-selectors@1.26.2/node_modules/@cliqz/adblocker-extended-selectors/dist/types/src/parse.d.ts","../node_modules/.pnpm/@cliqz+adblocker-extended-selectors@1.26.2/node_modules/@cliqz/adblocker-extended-selectors/dist/types/src/eval.d.ts","../node_modules/.pnpm/@cliqz+adblocker-extended-selectors@1.26.2/node_modules/@cliqz/adblocker-extended-selectors/dist/types/src/extended.d.ts","../node_modules/.pnpm/@cliqz+adblocker-extended-selectors@1.26.2/node_modules/@cliqz/adblocker-extended-selectors/dist/types/adblocker.d.ts","../node_modules/.pnpm/@cliqz+adblocker-content@1.26.2/node_modules/@cliqz/adblocker-content/dist/types/adblocker.d.ts","../node_modules/.pnpm/@remusao+smaz@1.9.1/node_modules/@remusao/smaz/dist/types/index.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/compression.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/data-view.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/config.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/events.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/fetch.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/html-filtering.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/domains.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/filters/interface.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/filters/cosmetic.d.ts","../node_modules/.pnpm/@types+har-format@1.2.10/node_modules/@types/har-format/index.d.ts","../node_modules/.pnpm/@types+chrome@0.0.218/node_modules/@types/chrome/har-format/index.d.ts","../node_modules/.pnpm/@types+chrome@0.0.218/node_modules/@types/chrome/chrome-cast/index.d.ts","../node_modules/.pnpm/@types+filewriter@0.0.29/node_modules/@types/filewriter/index.d.ts","../node_modules/.pnpm/@types+filesystem@0.0.32/node_modules/@types/filesystem/index.d.ts","../node_modules/.pnpm/@types+chrome@0.0.218/node_modules/@types/chrome/index.d.ts","../node_modules/.pnpm/@types+firefox-webext-browser@109.0.0/node_modules/@types/firefox-webext-browser/index.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/request.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/filters/network.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/lists.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/resources.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/reverse-index.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/bucket/filters.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/bucket/cosmetic.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/bucket/network.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/map.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/metadata/categories.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/metadata/organizations.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/metadata/patterns.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/metadata.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/engine/engine.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/tokens-buffer.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/utils.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/src/encoding.d.ts","../node_modules/.pnpm/@cliqz+adblocker@1.26.2/node_modules/@cliqz/adblocker/dist/types/adblocker.d.ts","../node_modules/.pnpm/@cliqz+adblocker-electron-preload@1.26.2_electron@23.1.3/node_modules/@cliqz/adblocker-electron-preload/dist/types/preload.d.ts","../node_modules/.pnpm/@cliqz+adblocker-electron@1.26.2_electron@23.1.3/node_modules/@cliqz/adblocker-electron/dist/types/adblocker.d.ts","../src/runner.ts","../src/test.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"9a9a282e571674ab3749add832085f6e8ce71dea450fba4365c35cc768aebfe0","signature":"0ce72e7cf4b897f38bebdd3b53a15970a206d2b580f1c08927eeefedf4aa6aeb"},{"version":"0154ca3e91189e046b68643fd255cea4b98f6578e58a63b74a9d165f1983239c","signature":"2029698112c4a2b0667550fca1a3d0bdc65f54141692d813080404e7dd761b75"},{"version":"b3b2e6695d46d09d8e3efcec3ee4146bcbd8910cccb16cf986878c53820d9557","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"54ba7456adb777a685250cd144115ea51379784012ba1311255b715c6bdcff2a","affectsGlobalScope":true},"11e2d554398d2bd460e7d06b2fa5827a297c8acfbe00b4f894a224ac0862857f",{"version":"e193e634a99c9c1d71f1c6e4e1567a4a73584328d21ea02dd5cddbaad6693f61","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","5450889a3b688f9da80e7c96963b2cfebc6097e8e95790a23a48558b61e6aea7","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"80473bd0dd90ca1e166514c2dfead9d5803f9c51418864ca35abbeec6e6847e1","1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","09326ae5f7e3d49be5cd9ea00eb814770e71870a438faa2efd8bdd9b4db21320",{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c4577fb855ca259bdbf3ea663ca73988ce5f84251a92b4aef80a1f4122b6f98e","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"ff07a9a03c65732ccc59b3c65bc584173da093bd563a6565411c01f5703bd3cb","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d8d555f3d607ecaa18d55de6995ea8f206342ecc93305919eac945c7c78c78c6",{"version":"2c999e0868d6cdca3af49ce8eea7642cb69a07116654205ef82e633e2230f734","affectsGlobalScope":true},{"version":"e95cff00d4be95dab7352777683fd1877a0bf00695f533440ead7470739d5e73","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"409cf8770fbb9f099124e9ca744282ebfd85df2fd3650ae05c4ee3d03af66714","affectsGlobalScope":true},"3bff0a8d75185c03dbd315a546bcf61955c5fe5a01b1a963d89da20977a68a82","cff1fb9b7ab37e13ef21f6c1ca5c34dc1ba2ee18ea3bba66a3e8b7f0540199fb","02bc1b02dd7f6bc0549cd9b8a5daffe06cdfc91c89c70bfd55e92707cf7a4ce9","1d4812918af588deab4fd16cc854010f40ff759dec3b100eb3e420e2534e6f09","f8c61688b7fd59d00fd3338a9b30ae8b8a0a138b5a72b924018c532be67786cf","d3d342c967708469b50a935cce7ff69647110097f59ed7b327bd6c4df8c0c70d","46cb2fd15647a989b19403a74a3729c223be2480417baf0901f0fe02aeec1cfa","13dad93793443055ab4d5f12feedf9053c6c948346821cd09c8f80b47340880a","4def9acfba5bfaa407305b57d95cdd523b25f451cecaa9c6cd970ad6616869a7","5496cdf7ac4be25de0e14cad3f1e0d861ac3d9ca6fab354a88529fb2165fe381","378cd3c878947516ed345fae452cf38a75320e92f46bd88cb65fd62b008a28d9","0f748364852e0be3d7ee0d865905647d4d6d961182bc5a99e24b8dc3616e0a02","f38f632803fcea348bcdd76feee1ea125612a976dfb10d287e9c600b3cd74997","da23f423f1450cd00bcee05601391bef7c7e52b5f9711c369a61244623359ca7","59d1659c06f1c337a4ddc6dc25de0eaa58c9cbe73054dfbda8605a7b4b47d5b2","5dd2fc36e6c3b7c5861584791b58f49b5e33c7e80d9d785bdbe8c4f943fd16d3","edaff827b058523df8cfb6d7812a5084afa6648d4ff5fb01351da8eafe2f0232",{"version":"be7abf1df570aea13a80f9e26c48e4ec51ee5b5c807326fc730eadba8a118905","affectsGlobalScope":true},{"version":"3e0f52d6edf0329a6a82e93d45ef4fa616154280fd4d3f17ac380080f918a6bb","affectsGlobalScope":true},{"version":"b63a86ef33f79196f0af1ddfbefbf2ec6860daa4bd34bb8f6cdf0adc69c2fb1c","affectsGlobalScope":true},{"version":"b61b844b8d784ccf5131fe9780ce8ada9a5ae2f89919e4ac241dbca817dfd980","affectsGlobalScope":true},{"version":"6da64c35ea8ded2daef9a1fdb58c0054f7014d82fe7c3d077fd7848c12298ece","affectsGlobalScope":true},{"version":"3b0a476b76019401cd58c05bb4c19b7808cfbe212de55f7f342fed93e5a5887c","affectsGlobalScope":true},"40dbdb4e19d764fe4bb1064892ebaa6a5a3eb6d133ad48ff9b7161912fabd2ce","7e4d1cfdfc467a5e102cddb6f2405652634a724fed8a9a0e9490ffdac049ad4c","ac8931aed03509a6c56b63671caf1f3930c1adbadec938ac8b4b88d665912b42","bd4dc7f70eb575d54b20ef4d421ab215608b9f6654af9caf4cc72633f31045e7","225bc727c63b09f8e384c8cd4f9d1ba75301999ee8712e95d6821709a9d9cbf7","43a3a51fc94f56bf10fbe6845f05b39f656870bfe0a919a8fead8bd81540e2b3","5974a50710f11c42fe561f820c0701bac0e409017bd7723c0ec77bfddfed600c","81d5ff6b76890a63b168e3d011f092260bb7e87ce9cfd89e93c4019285b5ba27","453fbdaa8447d9648f1a0526c1326ed78c245e211f59390f6abd2cb63b81ebbb","c11b6674c98771c3af7ff439dfd75b07097da557d443bcb2e06a42c3b922529f","df50784a22074be353b13829e2b45a7e9e1c0c4e85df9372f1802a14a600d9e9","4ebe98be94f66a0d760d362c109abbf16a3129f49c8a16bd08f82568591dd810","53f4cd6896de6edb3424941ea42ac3864641b8feb1e1a81a5838b93eae5f87a8","4e627200811c9d20830e6e17b1e8d78adc7f4fac5d7e5c18f3d7c2a556ca72d6","975461c8ac2df6b413c84104b2cf248949923d590013357b92454606fb09e4f2","2a7eaa9da6f621825109518d02c1e3c0b7e02d2e66acb1d4fd33b31ca64cd049","91de30867691dc876d3646c32ad3b762a379fb677cdec65bc6c2d9619ce6e590","64917be14f753840a7a2739907ef072458168752ac0278e957e8422c7f1a732a","917d2a0d7465290dbaea497c77c12e760f9602ac3d267282dccc06d5955230d0","74bc0a2748a9c1b904bf1a81f925bc94927191fa92ec907c93ab541b5f477927",{"version":"5d3547f71ad724f5ddb29bf70ce96c9329e604802e7cafb411a02f105f8923b0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7921a506151afcc3f37cdd4eb35ab2716f0f254c159e19a5e08c1e715bce7195","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"module":1,"noImplicitAny":false,"outDir":"./","sourceMap":false,"strict":false,"target":99},"fileIdsList":[[105,120],[105,121],[105,156,157],[105,116,117,118,119],[105,116],[105],[105,125,127,128,131,139,140,141,142,143,152,154,155],[105,122],[105,124],[105,123],[105,121,124,125,131,143,144],[105,124,125,130],[105,124,125,139,140,143,144],[105,121,125,126,127,128,131,139,140,141,142,145,146,151],[105,124,140,147,148,149,150],[105,124,147],[105,120,124,128,129,130],[105,124,129,130,139],[105,125,131,140],[105,137,138],[105,153],[105,132],[105,133,134,136],[105,135],[59,105],[62,105],[63,68,96,105],[64,75,76,83,93,104,105],[64,65,75,83,105],[66,105],[67,68,76,84,105],[68,93,101,105],[69,71,75,83,105],[70,105],[71,72,105],[75,105],[73,75,105],[75,76,77,93,104,105],[75,76,77,90,93,96,105],[105,109],[71,78,83,93,104,105],[75,76,78,79,83,93,101,104,105],[78,80,93,101,104,105],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111],[75,81,105],[82,104,105],[71,75,83,93,105],[84,105],[85,105],[62,86,105],[87,103,105,109],[88,105],[89,105],[75,90,91,105],[90,92,105,107],[63,75,93,94,95,96,105],[63,93,95,105],[93,94,105],[96,105],[97,105],[75,99,100,105],[99,100,105],[68,83,93,101,105],[102,105],[83,103,105],[63,78,89,104,105],[68,105],[93,105,106],[105,107],[105,108],[63,68,75,77,86,93,104,105,107,109],[93,105,110],[75,76,105,112],[57,59,105],[56,64,105],[68,75,105],[57,105,113],[56,57,77,84,85,105,113,115,158],[75]],"referencedMap":[[121,1],[157,2],[158,3],[120,4],[118,5],[119,6],[117,5],[116,6],[156,7],[123,8],[125,9],[124,10],[155,6],[145,11],[144,12],[146,13],[129,9],[152,14],[147,9],[151,15],[148,16],[149,16],[150,16],[143,12],[126,6],[127,6],[131,17],[130,9],[140,18],[128,6],[141,19],[139,20],[142,9],[153,6],[154,21],[122,6],[134,6],[133,22],[137,23],[136,24],[135,6],[138,6],[132,6],[59,25],[60,25],[62,26],[63,27],[64,28],[65,29],[66,30],[67,31],[68,32],[69,33],[70,34],[71,35],[72,35],[74,36],[73,37],[75,36],[76,38],[77,39],[61,40],[111,6],[78,41],[79,42],[80,43],[112,44],[81,45],[82,46],[83,47],[84,48],[85,49],[86,50],[87,51],[88,52],[89,53],[90,54],[91,54],[92,55],[93,56],[95,57],[94,58],[96,59],[97,60],[98,6],[99,61],[100,62],[101,63],[102,64],[103,65],[104,66],[105,67],[106,68],[107,69],[108,70],[109,71],[110,72],[115,6],[113,73],[11,6],[13,6],[12,6],[2,6],[14,6],[15,6],[16,6],[17,6],[18,6],[19,6],[20,6],[21,6],[3,6],[4,6],[25,6],[22,6],[23,6],[24,6],[26,6],[27,6],[28,6],[5,6],[29,6],[30,6],[31,6],[32,6],[6,6],[36,6],[33,6],[34,6],[35,6],[37,6],[7,6],[38,6],[43,6],[44,6],[39,6],[40,6],[41,6],[42,6],[8,6],[48,6],[45,6],[46,6],[47,6],[49,6],[9,6],[50,6],[51,6],[52,6],[53,6],[54,6],[1,6],[10,6],[55,6],[58,74],[57,75],[56,76],[114,77],[159,78],[160,75]],"exportedModulesMap":[[121,1],[157,2],[158,3],[120,4],[118,5],[119,6],[117,5],[116,6],[156,7],[123,8],[125,9],[124,10],[155,6],[145,11],[144,12],[146,13],[129,9],[152,14],[147,9],[151,15],[148,16],[149,16],[150,16],[143,12],[126,6],[127,6],[131,17],[130,9],[140,18],[128,6],[141,19],[139,20],[142,9],[153,6],[154,21],[122,6],[134,6],[133,22],[137,23],[136,24],[135,6],[138,6],[132,6],[59,25],[60,25],[62,26],[63,27],[64,28],[65,29],[66,30],[67,31],[68,32],[69,33],[70,34],[71,35],[72,35],[74,36],[73,37],[75,36],[76,38],[77,39],[61,40],[111,6],[78,41],[79,42],[80,43],[112,44],[81,45],[82,46],[83,47],[84,48],[85,49],[86,50],[87,51],[88,52],[89,53],[90,54],[91,54],[92,55],[93,56],[95,57],[94,58],[96,59],[97,60],[98,6],[99,61],[100,62],[101,63],[102,64],[103,65],[104,66],[105,67],[106,68],[107,69],[108,70],[109,71],[110,72],[115,6],[113,73],[11,6],[13,6],[12,6],[2,6],[14,6],[15,6],[16,6],[17,6],[18,6],[19,6],[20,6],[21,6],[3,6],[4,6],[25,6],[22,6],[23,6],[24,6],[26,6],[27,6],[28,6],[5,6],[29,6],[30,6],[31,6],[32,6],[6,6],[36,6],[33,6],[34,6],[35,6],[37,6],[7,6],[38,6],[43,6],[44,6],[39,6],[40,6],[41,6],[42,6],[8,6],[48,6],[45,6],[46,6],[47,6],[49,6],[9,6],[50,6],[51,6],[52,6],[53,6],[54,6],[1,6],[10,6],[55,6],[56,79]],"semanticDiagnosticsPerFile":[121,157,158,120,118,119,117,116,156,123,125,124,155,145,144,146,129,152,147,151,148,149,150,143,126,127,131,130,140,128,141,139,142,153,154,122,134,133,137,136,135,138,132,59,60,62,63,64,65,66,67,68,69,70,71,72,74,73,75,76,77,61,111,78,79,80,112,81,82,83,84,85,86,87,88,89,90,91,92,93,95,94,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,115,113,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,58,57,56,114,159,160],"latestChangedDtsFile":"./src/message.d.ts"},"version":"4.9.5"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@stormking/emere",
3
+ "version": "1.0.0",
4
+ "description": "a nightmarejs replacement for scraping websites using electron.",
5
+ "main": "dist/src/main.js",
6
+ "scripts": {
7
+ "test": "node --experimental-json-modules --experimental-specifier-resolution=node --unhandled-rejections=strict bin/test.js",
8
+ "watch": "tsc --watch",
9
+ "build": "tsc"
10
+ },
11
+ "engines": {
12
+ "node": ">=16.0.0"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://gitlab.com/stormking/emere"
17
+ },
18
+ "keywords": ["electron", "scraping", "nightmarejs"],
19
+ "author": "Stormking <sturmspitze@googlemail.com>",
20
+ "license": "ISC",
21
+ "dependencies": {
22
+ "@cliqz/adblocker-electron": "^1.26.2",
23
+ "cross-fetch": "^3.1.5",
24
+ "electron": "^23.1.3"
25
+ },
26
+ "devDependencies": {
27
+ "@types/node": "^18.15.3",
28
+ "ts-node": "^10.9.1",
29
+ "tsx": "^3.12.5",
30
+ "typescript": "^4.9.5"
31
+ }
32
+ }
package/readme.md ADDED
@@ -0,0 +1,5 @@
1
+ # Emere #
2
+
3
+ I wrote this as a replacement for nightmare.js since it hasn't been getting updates for years.
4
+
5
+ It is solely used as a scraping tool for [Feedropolis](https://gitlab.com/stormking/feedropolis) and will not be getting features that are not needed there.
package/tsconfig.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "./dist/",
4
+ "noImplicitAny": false,
5
+ "sourceMap": false,
6
+ "module": "CommonJS",
7
+ "moduleResolution": "Node",
8
+ "target": "ESNext",
9
+ "allowJs": false,
10
+ "declaration":true,
11
+ "strict":false,
12
+ "composite": true,
13
+ "esModuleInterop": true,
14
+ "allowSyntheticDefaultImports": true,
15
+ "resolveJsonModule": true,
16
+ "downlevelIteration": true,
17
+ "noLib": false,
18
+ "lib": [
19
+ "es2020",
20
+ "ESNext",
21
+ "dom"
22
+ ]
23
+ },
24
+ "include":[
25
+ "src/**/*"
26
+ ]
27
+ }