From 5aee1b687047a3281d7f677ea50ffa19e7a9d778 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Thu, 17 Oct 2024 16:28:57 +0800 Subject: [PATCH] Housekeeping --- Build/lib/aho-corasick.test.ts | 14 +- Build/lib/create-file.test.ts | 4 +- Build/lib/stable-sort-domain.test.ts | 20 +- Build/lib/trie.test.ts | 142 +++++------ package.json | 9 +- pnpm-lock.yaml | 362 +++++++++++++++++++++------ 6 files changed, 382 insertions(+), 169 deletions(-) diff --git a/Build/lib/aho-corasick.test.ts b/Build/lib/aho-corasick.test.ts index 83a75f96..085aae6a 100644 --- a/Build/lib/aho-corasick.test.ts +++ b/Build/lib/aho-corasick.test.ts @@ -1,17 +1,17 @@ import { describe, it } from 'mocha'; -import { expect } from 'chai'; +import { expect } from 'expect'; import createKeywordFilter from './aho-corasick'; describe('AhoCorasick', () => { it('basic', () => { let kwfilter = createKeywordFilter(['ap', 'an']); - expect(kwfilter('bananan')).to.equal(true); - expect(kwfilter('apple')).to.equal(true); - expect(kwfilter('melon')).to.equal(false); + expect(kwfilter('bananan')).toBe(true); + expect(kwfilter('apple')).toBe(true); + expect(kwfilter('melon')).toBe(false); kwfilter = createKeywordFilter(['cdn', 'sukka']); - expect(kwfilter('bananan')).to.equal(false); - expect(kwfilter('apple')).to.equal(false); - expect(kwfilter('melon')).to.equal(false); + expect(kwfilter('bananan')).toBe(false); + expect(kwfilter('apple')).toBe(false); + expect(kwfilter('melon')).toBe(false); }); }); diff --git a/Build/lib/create-file.test.ts b/Build/lib/create-file.test.ts index 8fd26eee..b0b68da3 100644 --- a/Build/lib/create-file.test.ts +++ b/Build/lib/create-file.test.ts @@ -1,4 +1,4 @@ -import { expect } from 'chai'; +import { expect } from 'expect'; import { fileEqual } from './create-file'; // eslint-disable-next-line @typescript-eslint/require-await -- async iterable @@ -9,7 +9,7 @@ const createSource = async function *(input: string[]) { }; async function test(a: string[], b: string[], expected: boolean) { - expect((await fileEqual(a, createSource(b)))).to.eq(expected); + expect((await fileEqual(a, createSource(b)))).toBe(expected); } describe('fileEqual', () => { diff --git a/Build/lib/stable-sort-domain.test.ts b/Build/lib/stable-sort-domain.test.ts index 3f48878f..08ee65d1 100644 --- a/Build/lib/stable-sort-domain.test.ts +++ b/Build/lib/stable-sort-domain.test.ts @@ -1,5 +1,5 @@ import { describe, it } from 'mocha'; -import { expect } from 'chai'; +import { expect } from 'expect'; import { sortDomains } from './stable-sort-domain'; describe('sortDomains', () => { @@ -8,7 +8,7 @@ describe('sortDomains', () => { '.s3-website.ap-northeast-3.amazonaws.com', '.s3.dualstack.ap-south-1.amazonaws.com', '.s3-website.af-south-1.amazonaws.com' - ])).to.deep.equal([ + ])).toStrictEqual([ '.s3-website.af-south-1.amazonaws.com', '.s3.dualstack.ap-south-1.amazonaws.com', '.s3-website.ap-northeast-3.amazonaws.com' @@ -18,7 +18,7 @@ describe('sortDomains', () => { '.s3.dualstack.ap-south-1.amazonaws.com', '.s3-website.ap-northeast-3.amazonaws.com', '.s3-website.af-south-1.amazonaws.com' - ])).to.deep.equal([ + ])).toStrictEqual([ '.s3-website.af-south-1.amazonaws.com', '.s3.dualstack.ap-south-1.amazonaws.com', '.s3-website.ap-northeast-3.amazonaws.com' @@ -27,7 +27,7 @@ describe('sortDomains', () => { expect(sortDomains([ '.s3-website-us-west-2.amazonaws.com', '.s3-1.amazonaws.com' - ])).to.deep.equal([ + ])).toStrictEqual([ '.s3-1.amazonaws.com', '.s3-website-us-west-2.amazonaws.com' ]); @@ -35,7 +35,7 @@ describe('sortDomains', () => { expect(sortDomains([ '.s3-1.amazonaws.com', '.s3-website-us-west-2.amazonaws.com' - ])).to.deep.equal([ + ])).toStrictEqual([ '.s3-1.amazonaws.com', '.s3-website-us-west-2.amazonaws.com' ]); @@ -46,7 +46,7 @@ describe('sortDomains', () => { '.s3-accesspoint.dualstack.us-west-2.amazonaws.com', '.s3.dualstack.us-west-2.amazonaws.com' ]) - ).to.deep.equal([ + ).toStrictEqual([ '.s3.dualstack.us-west-2.amazonaws.com', '.s3-deprecated.us-west-2.amazonaws.com', '.s3-accesspoint.dualstack.us-west-2.amazonaws.com' @@ -58,7 +58,7 @@ describe('sortDomains', () => { '.s3-accesspoint.dualstack.us-west-2.amazonaws.com', '.s3.dualstack.us-west-2.amazonaws.com' ]) - ).to.deep.equal([ + ).toStrictEqual([ '.s3.dualstack.us-west-2.amazonaws.com', '.s3-deprecated.us-west-2.amazonaws.com', '.s3-accesspoint.dualstack.us-west-2.amazonaws.com' @@ -69,7 +69,7 @@ describe('sortDomains', () => { '.ec2-25-58-215-234.us-east-2.compute.amazonaws.com', '.ec2-13-58-215-234.us-east-2.compute.amazonaws.com' ]) - ).to.deep.equal([ + ).toStrictEqual([ '.ec2-13-58-215-234.us-east-2.compute.amazonaws.com', '.ec2-25-58-215-234.us-east-2.compute.amazonaws.com' ]); @@ -80,7 +80,7 @@ describe('sortDomains', () => { '.notice.samsungcloudsolution.com', 'samsungqbe.com', 'samsungcloudsolution.com' - ])).to.deep.equal([ + ])).toStrictEqual([ 'samsungqbe.com', 'samsungcloudsolution.com', '.notice.samsungcloudsolution.com' @@ -117,7 +117,7 @@ describe('sortDomains', () => { '.rwww.samsungotn.net', '.samsungpoland.com.pl' ]) - ).to.deep.equal([ + ).toStrictEqual([ '.gld.samsungosp.com', '.rwww.samsungotn.net', 'samsungqbe.com', diff --git a/Build/lib/trie.test.ts b/Build/lib/trie.test.ts index e48e56d7..67b71e44 100644 --- a/Build/lib/trie.test.ts +++ b/Build/lib/trie.test.ts @@ -1,10 +1,10 @@ import { createTrie } from './trie'; import { describe, it } from 'mocha'; -import { expect } from 'chai'; +import { expect } from 'expect'; // describe('hostname to tokens', () => { // it('should split hostname into tokens.', () => { -// expect(hostnameToTokens('.blog.skk.moe')).to.deep.equal([ +// expect(hostnameToTokens('.blog.skk.moe')).toStrictEqual([ // '.', // 'blog', // '.', @@ -13,7 +13,7 @@ import { expect } from 'chai'; // 'moe' // ]); -// expect(hostnameToTokens('blog.skk.moe')).to.deep.equal([ +// expect(hostnameToTokens('blog.skk.moe')).toStrictEqual([ // 'blog', // '.', // 'skk', @@ -21,13 +21,13 @@ import { expect } from 'chai'; // 'moe' // ]); -// expect(hostnameToTokens('skk.moe')).to.deep.equal([ +// expect(hostnameToTokens('skk.moe')).toStrictEqual([ // 'skk', // '.', // 'moe' // ]); -// expect(hostnameToTokens('moe')).to.deep.equal([ +// expect(hostnameToTokens('moe')).toStrictEqual([ // 'moe' // ]); // }); @@ -41,14 +41,14 @@ describe('Trie', () => { trie.add('skk.moe'); trie.add('anotherskk.moe'); - expect(trie.size).to.equal(3); + expect(trie.size).toBe(3); - expect(trie.has('a.skk.moe'), 'a.skk.moe').to.equal(true); - expect(trie.has('skk.moe'), 'skk.moe').to.equal(true); - expect(trie.has('anotherskk.moe'), 'anotherskk.moe').to.equal(true); - expect(trie.has('example.com'), 'example.com').to.equal(false); - expect(trie.has('skk.mo'), 'skk.mo').to.equal(false); - expect(trie.has('another.skk.moe'), 'another.skk.moe').to.equal(false); + expect(trie.has('a.skk.moe')).toBe(true); + expect(trie.has('skk.moe')).toBe(true); + expect(trie.has('anotherskk.moe')).toBe(true); + expect(trie.has('example.com')).toBe(false); + expect(trie.has('skk.mo')).toBe(false); + expect(trie.has('another.skk.moe')).toBe(false); }); it('adding the same item several times should not increase size.', () => { @@ -59,19 +59,19 @@ describe('Trie', () => { // eslint-disable-next-line sukka/no-element-overwrite -- deliberately do testing trie.add('skk.moe'); - expect(trie.size).to.equal(2); - expect(trie.has('skk.moe')).to.equal(true); + expect(trie.size).toBe(2); + expect(trie.has('skk.moe')).toBe(true); }); it('should be possible to set the null sequence.', () => { const trie = createTrie(null, false); trie.add(''); - expect(trie.has('')).to.equal(true); + expect(trie.has('')).toBe(true); const trie2 = createTrie(null, true); trie2.add(''); - expect(trie2.has('')).to.equal(true); + expect(trie2.has('')).toBe(true); }); it('should be possible to delete items.', () => { @@ -82,20 +82,20 @@ describe('Trie', () => { trie.add('example.com'); trie.add('moe.sb'); - expect(trie.delete('')).to.equal(false); - expect(trie.delete('')).to.equal(false); - expect(trie.delete('example.org')).to.equal(false); + expect(trie.delete('')).toBe(false); + expect(trie.delete('')).toBe(false); + expect(trie.delete('example.org')).toBe(false); - expect(trie.delete('skk.moe')).to.equal(true); - expect(trie.has('skk.moe')).to.equal(false); - expect(trie.has('moe.sb')).to.equal(true); + expect(trie.delete('skk.moe')).toBe(true); + expect(trie.has('skk.moe')).toBe(false); + expect(trie.has('moe.sb')).toBe(true); - expect(trie.size).to.equal(3); + expect(trie.size).toBe(3); - expect(trie.delete('example.com')).to.equal(true); - expect(trie.size).to.equal(2); - expect(trie.delete('moe.sb')).to.equal(true); - expect(trie.size).to.equal(1); + expect(trie.delete('example.com')).toBe(true); + expect(trie.size).toBe(2); + expect(trie.delete('moe.sb')).toBe(true); + expect(trie.size).toBe(1); }); it('should be possible to check the existence of a sequence in the Trie.', () => { @@ -103,10 +103,10 @@ describe('Trie', () => { trie.add('example.org.skk.moe'); - expect(trie.has('example.org.skk.moe')).to.equal(true); - expect(trie.has('skk.moe')).to.equal(false); - expect(trie.has('example.org')).to.equal(false); - expect(trie.has('')).to.equal(false); + expect(trie.has('example.org.skk.moe')).toBe(true); + expect(trie.has('skk.moe')).toBe(false); + expect(trie.has('example.org')).toBe(false); + expect(trie.has('')).toBe(false); }); it('should be possible to retrieve items matching the given prefix.', () => { @@ -117,12 +117,12 @@ describe('Trie', () => { trie.add('cdn.example.com'); trie.add('example.org'); - expect(trie.find('example.com'), 'example.com').to.deep.equal(['example.com', 'cdn.example.com', 'blog.example.com']); - expect(trie.find('com'), 'com').to.deep.equal(['example.com', 'cdn.example.com', 'blog.example.com']); - expect(trie.find('.example.com'), '.example.com').to.deep.equal(['cdn.example.com', 'blog.example.com']); - expect(trie.find('org'), 'prg').to.deep.equal(['example.org']); - expect(trie.find('example.net'), 'example.net').to.deep.equal([]); - expect(trie.find(''), '').to.deep.equal(['example.org', 'example.com', 'cdn.example.com', 'blog.example.com']); + expect(trie.find('example.com')).toStrictEqual(['example.com', 'cdn.example.com', 'blog.example.com']); + expect(trie.find('com')).toStrictEqual(['example.com', 'cdn.example.com', 'blog.example.com']); + expect(trie.find('.example.com')).toStrictEqual(['cdn.example.com', 'blog.example.com']); + expect(trie.find('org')).toStrictEqual(['example.org']); + expect(trie.find('example.net')).toStrictEqual([]); + expect(trie.find('')).toStrictEqual(['example.org', 'example.com', 'cdn.example.com', 'blog.example.com']); }); it('should be possible to retrieve items matching the given prefix even with a smol trie', () => { @@ -134,23 +134,23 @@ describe('Trie', () => { trie.add('cdn.example.com'); trie.add('example.org'); - expect(trie.find('example.com')).to.deep.equal(['.example.com']); - expect(trie.find('com')).to.deep.equal(['.example.com']); - expect(trie.find('.example.com')).to.deep.equal(['.example.com']); - expect(trie.find('org')).to.deep.equal(['example.org']); - expect(trie.find('example.net')).to.deep.equal([]); - expect(trie.find('')).to.deep.equal(['example.org', '.example.com']); + expect(trie.find('example.com')).toStrictEqual(['.example.com']); + expect(trie.find('com')).toStrictEqual(['.example.com']); + expect(trie.find('.example.com')).toStrictEqual(['.example.com']); + expect(trie.find('org')).toStrictEqual(['example.org']); + expect(trie.find('example.net')).toStrictEqual([]); + expect(trie.find('')).toStrictEqual(['example.org', '.example.com']); }); it('should be possible to create a trie from an arbitrary iterable.', () => { let trie = createTrie(['skk.moe', 'blog.skk.moe'], false); - expect(trie.size).to.equal(2); - expect(trie.has('skk.moe')).to.equal(true); + expect(trie.size).toBe(2); + expect(trie.has('skk.moe')).toBe(true); trie = createTrie(new Set(['skk.moe', 'example.com']), false); - expect(trie.size).to.equal(2); - expect(trie.has('skk.moe')).to.equal(true); + expect(trie.size).toBe(2); + expect(trie.has('skk.moe')).toBe(true); }); }); @@ -158,27 +158,27 @@ describe('surge domainset dedupe', () => { it('should not remove same entry', () => { const trie = createTrie(['.skk.moe', 'noc.one'], false); - expect(trie.find('.skk.moe')).to.deep.equal(['.skk.moe']); - expect(trie.find('noc.one')).to.deep.equal(['noc.one']); + expect(trie.find('.skk.moe')).toStrictEqual(['.skk.moe']); + expect(trie.find('noc.one')).toStrictEqual(['noc.one']); }); it('should match subdomain - 1', () => { const trie = createTrie(['www.noc.one', 'www.sukkaw.com', 'blog.skk.moe', 'image.cdn.skk.moe', 'cdn.sukkaw.net'], false); - expect(trie.find('.skk.moe')).to.deep.equal(['image.cdn.skk.moe', 'blog.skk.moe']); - expect(trie.find('.sukkaw.com')).to.deep.equal(['www.sukkaw.com']); + expect(trie.find('.skk.moe')).toStrictEqual(['image.cdn.skk.moe', 'blog.skk.moe']); + expect(trie.find('.sukkaw.com')).toStrictEqual(['www.sukkaw.com']); }); it('should match subdomain - 2', () => { const trie = createTrie(['www.noc.one', 'www.sukkaw.com', '.skk.moe', 'blog.skk.moe', 'image.cdn.skk.moe', 'cdn.sukkaw.net'], false); - expect(trie.find('.skk.moe')).to.deep.equal(['.skk.moe', 'image.cdn.skk.moe', 'blog.skk.moe']); - expect(trie.find('.sukkaw.com')).to.deep.equal(['www.sukkaw.com']); + expect(trie.find('.skk.moe')).toStrictEqual(['.skk.moe', 'image.cdn.skk.moe', 'blog.skk.moe']); + expect(trie.find('.sukkaw.com')).toStrictEqual(['www.sukkaw.com']); }); it('should not remove non-subdomain', () => { const trie = createTrie(['skk.moe', 'sukkaskk.moe'], false); - expect(trie.find('.skk.moe')).to.deep.equal([]); + expect(trie.find('.skk.moe')).toStrictEqual([]); }); }); @@ -190,7 +190,7 @@ describe('smol tree', () => { '.blog.sub.example.com', 'sub.example.com', 'cdn.sub.example.com', '.sub.example.com' ], true); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ '.sub.example.com', 'cdn.noc.one', 'www.noc.one', '.skk.moe' @@ -202,7 +202,7 @@ describe('smol tree', () => { '.skk.moe', 'blog.skk.moe', '.cdn.skk.moe', 'skk.moe' ], true); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ '.skk.moe' ]); }); @@ -212,12 +212,12 @@ describe('smol tree', () => { '.blog.sub.example.com', 'cdn.sub.example.com', '.sub.example.com' ], true); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ '.sub.example.com' ]); trie.add('.sub.example.com'); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ '.sub.example.com' ]); }); @@ -230,7 +230,7 @@ describe('smol tree', () => { 'px.cdn.creative.medialytics.com' ], true); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'cdn.creative.medialytics.com', 'px.cdn.creative.medialytics.com', 'commercial.shouji.360.cn', @@ -246,7 +246,7 @@ describe('smol tree', () => { 'blog.skk.moe' ], true); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'anotherskk.moe', 'blog.anotherskk.moe', 'skk.moe', @@ -265,7 +265,7 @@ describe('smol tree', () => { 'img.skk.local' ], true); - expect(trie.dump(), '1').to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'img.skk.local', 'blog.img.skk.local', '.cdn.local', @@ -277,7 +277,7 @@ describe('smol tree', () => { trie.whitelist('.skk.moe'); - expect(trie.dump(), '2').to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'img.skk.local', 'blog.img.skk.local', '.cdn.local', @@ -286,7 +286,7 @@ describe('smol tree', () => { ]); trie.whitelist('anotherskk.moe'); - expect(trie.dump(), '3').to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'img.skk.local', 'blog.img.skk.local', '.cdn.local', @@ -296,25 +296,25 @@ describe('smol tree', () => { trie.add('anotherskk.moe'); trie.whitelist('.anotherskk.moe'); - expect(trie.dump(), '4').to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'img.skk.local', 'blog.img.skk.local', '.cdn.local' ]); trie.whitelist('img.skk.local'); - expect(trie.dump(), '5').to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'blog.img.skk.local', '.cdn.local' ]); trie.whitelist('cdn.local'); - expect(trie.dump(), '6').to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'blog.img.skk.local' ]); trie.whitelist('.skk.local'); - expect(trie.dump(), '7').to.deep.equal([]); + expect(trie.dump()).toStrictEqual([]); }); it('should whitelist trie correctly', () => { @@ -327,22 +327,22 @@ describe('smol tree', () => { 'cdn.example.com' ], true); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'cdn.example.com', 'blog.cdn.example.com', '.skk.moe', '.t.co' ]); trie.whitelist('.t.co'); - expect(trie.dump()).to.deep.equal([ + expect(trie.dump()).toStrictEqual([ 'cdn.example.com', 'blog.cdn.example.com', '.skk.moe' ]); trie.whitelist('skk.moe'); - expect(trie.dump()).to.deep.equal(['cdn.example.com', 'blog.cdn.example.com']); + expect(trie.dump()).toStrictEqual(['cdn.example.com', 'blog.cdn.example.com']); trie.whitelist('cdn.example.com'); - expect(trie.dump()).to.deep.equal(['blog.cdn.example.com']); + expect(trie.dump()).toStrictEqual(['blog.cdn.example.com']); }); }); diff --git a/package.json b/package.json index dc44fb2f..f41a69b9 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "cli-table3": "^0.6.5", "csv-parse": "^5.5.6", "fast-cidr-tools": "^0.3.1", - "fdir": "^6.4.1", + "fdir": "^6.4.2", "foxact": "^0.2.39", "hash-wasm": "^4.11.0", "json-stringify-pretty-compact": "^3.0.0", @@ -51,23 +51,22 @@ "@swc/core": "^1.7.36", "@types/better-sqlite3": "^7.6.11", "@types/cacache": "^17.0.2", - "@types/chai": "^4.3.20", "@types/make-fetch-happen": "^10.0.4", "@types/mocha": "^10.0.9", - "@types/node": "^22.7.5", + "@types/node": "^22.7.6", "@types/node-fetch": "2", "@types/punycode": "^2.1.4", "@types/tar-fs": "^2.0.4", "@types/tar-stream": "^3.1.3", - "chai": "4", "eslint": "^9.12.0", "eslint-config-sukka": "^6.7.0", "eslint-formatter-sukka": "^6.7.0", + "expect": "^29.7.0", "mitata": "^1.0.10", "mocha": "^10.7.3", "typescript": "^5.6.3" }, - "packageManager": "pnpm@9.12.1", + "packageManager": "pnpm@9.12.2", "resolutions": { "has": "npm:@nolyfill/has@latest" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0bbad8d..61cb001b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: ^0.3.1 version: 0.3.1 fdir: - specifier: ^6.4.1 - version: 6.4.1(picomatch@4.0.2) + specifier: ^6.4.2 + version: 6.4.2(picomatch@4.0.2) foxact: specifier: ^0.2.39 version: 0.2.39 @@ -104,9 +104,6 @@ importers: '@types/cacache': specifier: ^17.0.2 version: 17.0.2 - '@types/chai': - specifier: ^4.3.20 - version: 4.3.20 '@types/make-fetch-happen': specifier: ^10.0.4 version: 10.0.4 @@ -114,8 +111,8 @@ importers: specifier: ^10.0.9 version: 10.0.9 '@types/node': - specifier: ^22.7.5 - version: 22.7.5 + specifier: ^22.7.6 + version: 22.7.6 '@types/node-fetch': specifier: '2' version: 2.6.11 @@ -128,9 +125,6 @@ importers: '@types/tar-stream': specifier: ^3.1.3 version: 3.1.3 - chai: - specifier: '4' - version: 4.4.1 eslint: specifier: ^9.12.0 version: 9.12.0 @@ -140,6 +134,9 @@ importers: eslint-formatter-sukka: specifier: ^6.7.0 version: 6.7.0 + expect: + specifier: ^29.7.0 + version: 29.7.0 mitata: specifier: ^1.0.10 version: 1.0.10 @@ -155,6 +152,18 @@ packages: '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + engines: {node: '>=6.9.0'} + '@cliqz/adblocker-content@1.34.0': resolution: {integrity: sha512-5LcV8UZv49RWwtpom9ve4TxJIFKd+bjT59tS/2Z2c22Qxx5CW1ncO/T+ybzk31z422XplQfd0ZE6gMGGKs3EMg==} @@ -250,6 +259,18 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jsdevtools/ez-spawn@3.0.4': resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} engines: {node: '>=10'} @@ -357,6 +378,9 @@ packages: '@remusao/trie@1.5.0': resolution: {integrity: sha512-UX+3utJKgwCsg6sUozjxd38gNMVRXrY4TNX9VvCdSrlZBS1nZjRPi98ON3QjRAdf6KCguJFyQARRsulTeqQiPg==} + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@stylistic/eslint-plugin-js@2.8.0': resolution: {integrity: sha512-/e7pSzVMrwBd6yzSDsKHwax3TS96+pd/xSKzELaTkOuYqUhYfj/becWdfDbFSBGQD7BBBCiiE4L8L2cUfu5h+A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -474,9 +498,6 @@ packages: '@types/cacache@17.0.2': resolution: {integrity: sha512-IrqHzVX2VRMDQQKa7CtKRnuoCLdRJiLW6hWU+w7i7+AaQ0Ii5bKwJxd5uRK4zBCyrHd3tG6G8zOm2LplxbSfQg==} - '@types/chai@4.3.20': - resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} - '@types/chrome@0.0.278': resolution: {integrity: sha512-PDIJodOu7o54PpSOYLybPW/MDZBCjM1TKgf31I3Q/qaEbNpIH09rOM3tSEH3N7Q+FAqb1933LhF8ksUPYeQLNg==} @@ -498,6 +519,15 @@ packages: '@types/har-format@1.2.16': resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -510,8 +540,8 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@22.7.5': - resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + '@types/node@22.7.6': + resolution: {integrity: sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==} '@types/punycode@2.1.4': resolution: {integrity: sha512-trzh6NzBnq8yw5e35f8xe8VTYjqM3NE7bohBtvDVf/dtUer3zYTLK1Ka3DG3p7bdtoaOHZucma6FfVKlQ134pQ==} @@ -522,12 +552,21 @@ packages: '@types/ssri@7.1.5': resolution: {integrity: sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw==} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/tar-fs@2.0.4': resolution: {integrity: sha512-ipPec0CjTmVDWE+QKr9cTmIIoTl7dFG/yARCM5MqK8i6CNLIG1P8x4kwDsOQY1ChZOZjH0wO9nvfgBvWl4R3kA==} '@types/tar-stream@3.1.3': resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@typescript-eslint/eslint-plugin@8.8.1': resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -645,10 +684,18 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -660,9 +707,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -744,17 +788,14 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -766,6 +807,10 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + ci-info@4.0.0: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} @@ -780,10 +825,16 @@ packages: cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -833,10 +884,6 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} - engines: {node: '>=6'} - deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -855,6 +902,10 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -889,6 +940,14 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -1029,6 +1088,10 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fast-cidr-tools@0.3.1: resolution: {integrity: sha512-CixbR87xxUYpoZBR6xyFmOkhoOnd8YtmSW956evigw+AOc20fXAn3FXGL5eFAPpGcrs7qzOOEjEPxVMnvRJ87Q==} engines: {node: '>=16'} @@ -1052,8 +1115,8 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - fdir@6.4.1: - resolution: {integrity: sha512-upAYvbFc8GU44qWv+r6YnWp3h13/hPFOnpCsuahbxFGmOCm7sc5UT1SytkHLS7Go/UwvhVD9k4dF6PJxpIjqAA==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -1124,9 +1187,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} @@ -1164,6 +1224,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1261,6 +1325,29 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1306,9 +1393,6 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -1469,9 +1553,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1496,6 +1577,10 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + proc-log@5.0.0: resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -1524,6 +1609,9 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -1609,6 +1697,10 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -1638,6 +1730,10 @@ packages: stable-hash@0.0.4: resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + streamx@2.20.0: resolution: {integrity: sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==} @@ -1676,6 +1772,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -1852,6 +1952,20 @@ snapshots: '@antfu/utils@0.7.10': {} + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/highlight@7.25.7': + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@cliqz/adblocker-content@1.34.0': dependencies: '@cliqz/adblocker-extended-selectors': 1.34.0 @@ -1980,6 +2094,23 @@ snapshots: dependencies: minipass: 7.1.2 + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.7.6 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + '@jsdevtools/ez-spawn@3.0.4': dependencies: call-me-maybe: 1.0.2 @@ -2077,6 +2208,8 @@ snapshots: '@remusao/trie@1.5.0': {} + '@sinclair/typebox@0.27.8': {} + '@stylistic/eslint-plugin-js@2.8.0(eslint@9.12.0)': dependencies: eslint: 9.12.0 @@ -2181,13 +2314,11 @@ snapshots: '@types/better-sqlite3@7.6.11': dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.6 '@types/cacache@17.0.2': dependencies: - '@types/node': 22.7.5 - - '@types/chai@4.3.20': {} + '@types/node': 22.7.6 '@types/chrome@0.0.278': dependencies: @@ -2211,6 +2342,16 @@ snapshots: '@types/har-format@1.2.16': {} + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + '@types/json-schema@7.0.15': {} '@types/make-fetch-happen@10.0.4': @@ -2223,10 +2364,10 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.6 form-data: 4.0.1 - '@types/node@22.7.5': + '@types/node@22.7.6': dependencies: undici-types: 6.19.8 @@ -2236,16 +2377,24 @@ snapshots: '@types/ssri@7.1.5': dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.6 + + '@types/stack-utils@2.0.3': {} '@types/tar-fs@2.0.4': dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.6 '@types/tar-stream': 3.1.3 '@types/tar-stream@3.1.3': dependencies: - '@types/node': 22.7.5 + '@types/node': 22.7.6 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)': dependencies: @@ -2393,10 +2542,16 @@ snapshots: ansi-regex@6.1.0: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + ansi-styles@5.2.0: {} + ansi-styles@6.2.1: {} anymatch@3.1.3: @@ -2406,8 +2561,6 @@ snapshots: argparse@2.0.1: {} - assertion-error@1.1.0: {} - async-sema@3.1.1: {} asynckit@0.4.0: {} @@ -2504,25 +2657,17 @@ snapshots: camelcase@6.3.0: {} - chai@4.4.1: + chalk@2.4.2: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -2539,6 +2684,8 @@ snapshots: chownr@3.0.0: {} + ci-info@3.9.0: {} + ci-info@4.0.0: {} cli-table3@0.6.5: @@ -2555,10 +2702,16 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} colorette@2.0.20: {} @@ -2595,10 +2748,6 @@ snapshots: dependencies: mimic-response: 3.1.0 - deep-eql@4.1.4: - dependencies: - type-detect: 4.0.8 - deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -2609,6 +2758,8 @@ snapshots: detect-libc@2.0.3: {} + diff-sequences@29.6.3: {} + diff@5.2.0: {} doctrine@3.0.0: @@ -2639,6 +2790,10 @@ snapshots: escalade@3.1.2: {} + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + escape-string-regexp@4.0.0: {} eslint-compat-utils@0.5.1(eslint@9.12.0): @@ -2861,6 +3016,14 @@ snapshots: expand-template@2.0.3: {} + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + fast-cidr-tools@0.3.1: {} fast-deep-equal@3.1.3: {} @@ -2883,7 +3046,7 @@ snapshots: dependencies: reusify: 1.0.4 - fdir@6.4.1(picomatch@4.0.2): + fdir@6.4.2(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -2942,8 +3105,6 @@ snapshots: get-caller-file@2.0.5: {} - get-func-name@2.0.2: {} - get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -2983,6 +3144,8 @@ snapshots: graphemer@1.4.0: {} + has-flag@3.0.0: {} + has-flag@4.0.0: {} hash-wasm@4.11.0: {} @@ -3069,6 +3232,45 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.25.7 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 22.7.6 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + js-tokens@4.0.0: {} + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -3112,10 +3314,6 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 - lru-cache@10.4.3: {} make-fetch-happen@14.0.2: @@ -3301,8 +3499,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - pathval@1.1.1: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -3329,6 +3525,12 @@ snapshots: prelude-ls@1.2.1: {} + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + proc-log@5.0.0: {} promise-retry@2.0.1: @@ -3358,6 +3560,8 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + react-is@18.3.1: {} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -3436,6 +3640,8 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 + slash@3.0.0: {} + smart-buffer@4.2.0: {} socks-proxy-agent@8.0.4: @@ -3466,6 +3672,10 @@ snapshots: stable-hash@0.0.4: {} + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + streamx@2.20.0: dependencies: fast-fifo: 1.3.2 @@ -3506,6 +3716,10 @@ snapshots: strip-json-comments@3.1.1: {} + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0