mirror of https://github.com/gorhill/uBlock.git
Fix npm test suite
Related commits: - https://github.com/gorhill/uBlock/commit/02cba63331 - https://github.com/gorhill/uBlock/commit/41693407b2
This commit is contained in:
parent
160d7f3c33
commit
818cb2d801
|
@ -1,5 +1,6 @@
|
||||||
*.bak
|
*.bak
|
||||||
*.pem
|
*.pem
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
node_modules/
|
||||||
/dist/build/
|
/dist/build/
|
||||||
/tmp/
|
/tmp/
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"root": true,
|
||||||
|
"env": {
|
||||||
|
"es2021": true,
|
||||||
|
"node": true
|
||||||
|
},
|
||||||
|
"extends": "eslint:recommended",
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": 12,
|
||||||
|
"sourceType": "module"
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"eqeqeq": [ "warn", "always" ],
|
||||||
|
"indent": [
|
||||||
|
"warn",
|
||||||
|
4,
|
||||||
|
{
|
||||||
|
"ArrayExpression": "first",
|
||||||
|
"CallExpression": { "arguments": "first" },
|
||||||
|
"MemberExpression": "off",
|
||||||
|
"ObjectExpression": "off",
|
||||||
|
"ignoreComments": true,
|
||||||
|
"ignoredNodes": [
|
||||||
|
"AssignmentExpression:has(Literal)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"getter-return": "off",
|
||||||
|
"no-control-regex": "off",
|
||||||
|
"no-empty": [ "error", { "allowEmptyCatch": true } ],
|
||||||
|
"no-promise-executor-return": [ "error" ],
|
||||||
|
"no-template-curly-in-string": [ "error" ],
|
||||||
|
"no-unreachable-loop": [ "error" ],
|
||||||
|
"no-useless-backreference": [ "error" ],
|
||||||
|
"no-useless-escape": "off",
|
||||||
|
"require-atomic-updates": [ "warn" ]
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,31 +19,40 @@
|
||||||
Home: https://github.com/gorhill/uBlock
|
Home: https://github.com/gorhill/uBlock
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* globals WebAssembly */
|
import * as s14e from './js/s14e-serializer.js';
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
import { createRequire } from 'module';
|
|
||||||
|
|
||||||
import { readFileSync } from 'fs';
|
|
||||||
import { dirname, resolve } from 'path';
|
|
||||||
import { domainToASCII, fileURLToPath } from 'url';
|
|
||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
||||||
|
|
||||||
import publicSuffixList from './lib/publicsuffixlist/publicsuffixlist.js';
|
|
||||||
|
|
||||||
import snfe from './js/static-net-filtering.js';
|
|
||||||
import { FilteringContext } from './js/filtering-context.js';
|
|
||||||
import { LineIterator } from './js/text-utils.js';
|
|
||||||
import * as sfp from './js/static-filtering-parser.js';
|
import * as sfp from './js/static-filtering-parser.js';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
CompiledListReader,
|
CompiledListReader,
|
||||||
CompiledListWriter,
|
CompiledListWriter,
|
||||||
} from './js/static-filtering-io.js';
|
} from './js/static-filtering-io.js';
|
||||||
|
import {
|
||||||
|
TextDecoder,
|
||||||
|
TextEncoder,
|
||||||
|
} from 'util';
|
||||||
|
import {
|
||||||
|
dirname,
|
||||||
|
resolve
|
||||||
|
} from 'path';
|
||||||
|
import {
|
||||||
|
domainToASCII,
|
||||||
|
fileURLToPath
|
||||||
|
} from 'url';
|
||||||
|
|
||||||
|
import { FilteringContext } from './js/filtering-context.js';
|
||||||
|
import { LineIterator } from './js/text-utils.js';
|
||||||
|
import { createRequire } from 'module';
|
||||||
|
import publicSuffixList from './lib/publicsuffixlist/publicsuffixlist.js';
|
||||||
|
import { readFileSync } from 'fs';
|
||||||
|
import snfe from './js/static-net-filtering.js';
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
|
|
||||||
|
// https://stackoverflow.com/questions/69187442/const-utf8encoder-new-textencoder-in-node-js
|
||||||
|
globalThis.TextDecoder = TextDecoder;
|
||||||
|
globalThis.TextEncoder = TextEncoder;
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
@ -241,11 +250,13 @@ class StaticNetFilteringEngine {
|
||||||
}
|
}
|
||||||
|
|
||||||
serialize() {
|
serialize() {
|
||||||
return snfe.serialize();
|
const data = snfe.serialize();
|
||||||
|
return s14e.serialize(data, { compress: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
deserialize(serialized) {
|
deserialize(serialized) {
|
||||||
return snfe.unserialize(serialized);
|
const data = s14e.deserialize(serialized);
|
||||||
|
return snfe.unserialize(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static async create({ noPSL = false } = {}) {
|
static async create({ noPSL = false } = {}) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/gorhill/uBlock#readme",
|
"homepage": "https://github.com/gorhill/uBlock#readme",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0.0",
|
"node": ">=18.0.0",
|
||||||
"npm": ">=6.14.4"
|
"npm": ">=6.14.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
@ -249,8 +249,29 @@ const toArrayBufferViewConstructor = {
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
const textDecoder = new TextDecoder();
|
const textCodec = {
|
||||||
const textEncoder = new TextEncoder();
|
decoder: null,
|
||||||
|
encoder: null,
|
||||||
|
decode(...args) {
|
||||||
|
if ( this.decoder === null ) {
|
||||||
|
this.decoder = new globalThis.TextDecoder();
|
||||||
|
}
|
||||||
|
return this.decoder.decode(...args);
|
||||||
|
},
|
||||||
|
encode(...args) {
|
||||||
|
if ( this.encoder === null ) {
|
||||||
|
this.encoder = new globalThis.TextEncoder();
|
||||||
|
}
|
||||||
|
return this.encoder.encode(...args);
|
||||||
|
},
|
||||||
|
encodeInto(...args) {
|
||||||
|
if ( this.encoder === null ) {
|
||||||
|
this.encoder = new globalThis.TextEncoder();
|
||||||
|
}
|
||||||
|
return this.encoder.encodeInto(...args);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
const isInteger = Number.isInteger;
|
const isInteger = Number.isInteger;
|
||||||
|
|
||||||
const writeRefs = new Map();
|
const writeRefs = new Map();
|
||||||
|
@ -269,7 +290,7 @@ const uint8InputFromAsciiStr = s => {
|
||||||
if ( uint8Input === null || uint8Input.length < s.length ) {
|
if ( uint8Input === null || uint8Input.length < s.length ) {
|
||||||
uint8Input = new Uint8Array(s.length + 0x03FF & ~0x03FF);
|
uint8Input = new Uint8Array(s.length + 0x03FF & ~0x03FF);
|
||||||
}
|
}
|
||||||
textEncoder.encodeInto(s, uint8Input);
|
textCodec.encodeInto(s, uint8Input);
|
||||||
return uint8Input;
|
return uint8Input;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -407,7 +428,7 @@ const denseArrayBufferToStr = (arrbuf, details) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return textDecoder.decode(output);
|
return textCodec.decode(output);
|
||||||
};
|
};
|
||||||
|
|
||||||
const BASE88_POW1 = NUMSAFECHARS;
|
const BASE88_POW1 = NUMSAFECHARS;
|
||||||
|
@ -489,7 +510,7 @@ const sparseArrayBufferToStr = (arrbuf, details) => {
|
||||||
uint8out[j++] = SEPARATORCHARCODE;
|
uint8out[j++] = SEPARATORCHARCODE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return textDecoder.decode(uint8out);
|
return textCodec.decode(uint8out);
|
||||||
};
|
};
|
||||||
|
|
||||||
const sparseArrayBufferFromStr = (sparseStr, arrbuf) => {
|
const sparseArrayBufferFromStr = (sparseStr, arrbuf) => {
|
||||||
|
@ -1060,7 +1081,7 @@ export const serialize = (data, options = {}) => {
|
||||||
writeBuffer.length = 0;
|
writeBuffer.length = 0;
|
||||||
if ( shouldCompress(s, options) === false ) { return s; }
|
if ( shouldCompress(s, options) === false ) { return s; }
|
||||||
const lz4Util = new LZ4BlockJS();
|
const lz4Util = new LZ4BlockJS();
|
||||||
const uint8ArrayBefore = textEncoder.encode(s);
|
const uint8ArrayBefore = textCodec.encode(s);
|
||||||
const uint8ArrayAfter = lz4Util.encode(uint8ArrayBefore, 0);
|
const uint8ArrayAfter = lz4Util.encode(uint8ArrayBefore, 0);
|
||||||
const lz4 = {
|
const lz4 = {
|
||||||
size: uint8ArrayBefore.length,
|
size: uint8ArrayBefore.length,
|
||||||
|
@ -1087,7 +1108,7 @@ export const deserialize = s => {
|
||||||
readStr = '';
|
readStr = '';
|
||||||
const lz4Util = new LZ4BlockJS();
|
const lz4Util = new LZ4BlockJS();
|
||||||
const uint8ArrayAfter = lz4Util.decode(lz4.data, 0, lz4.size);
|
const uint8ArrayAfter = lz4Util.decode(lz4.data, 0, lz4.size);
|
||||||
s = textDecoder.decode(new Uint8Array(uint8ArrayAfter));
|
s = textCodec.decode(new Uint8Array(uint8ArrayAfter));
|
||||||
}
|
}
|
||||||
if ( s.startsWith(MAGICPREFIX) === false ) { return; }
|
if ( s.startsWith(MAGICPREFIX) === false ) { return; }
|
||||||
refCounter = 1;
|
refCounter = 1;
|
||||||
|
|
|
@ -14,6 +14,7 @@ cp src/js/filtering-context.js $DES/js
|
||||||
cp src/js/hnswitches.js $DES/js
|
cp src/js/hnswitches.js $DES/js
|
||||||
cp src/js/hntrie.js $DES/js
|
cp src/js/hntrie.js $DES/js
|
||||||
cp src/js/redirect-resources.js $DES/js
|
cp src/js/redirect-resources.js $DES/js
|
||||||
|
cp src/js/s14e-serializer.js $DES/js
|
||||||
cp src/js/static-dnr-filtering.js $DES/js
|
cp src/js/static-dnr-filtering.js $DES/js
|
||||||
cp src/js/static-filtering-parser.js $DES/js
|
cp src/js/static-filtering-parser.js $DES/js
|
||||||
cp src/js/static-net-filtering.js $DES/js
|
cp src/js/static-net-filtering.js $DES/js
|
||||||
|
|
Loading…
Reference in New Issue