From 50b5fad19c6768d8182675cfa1883f6fb3e57dab Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Mon, 18 Sep 2023 18:36:11 +0200 Subject: [PATCH 1/3] Replace tslint with eslint --- .eslintrc.js | 29 + package.json | 4 +- packages/adblocker-content/package.json | 6 +- .../adblocker-electron-example/package.json | 5 +- .../adblocker-electron-preload/package.json | 6 +- packages/adblocker-electron/package.json | 6 +- .../adblocker-extended-selectors/package.json | 6 +- .../adblocker-playwright-example/package.json | 5 +- packages/adblocker-playwright/adblocker.ts | 1 + packages/adblocker-playwright/package.json | 5 +- .../adblocker-puppeteer-example/package.json | 5 +- packages/adblocker-puppeteer/adblocker.ts | 1 + packages/adblocker-puppeteer/package.json | 6 +- .../package.json | 6 +- .../package.json | 5 +- packages/adblocker-webextension/package.json | 6 +- packages/adblocker/package.json | 6 +- .../adblocker/src/engine/bucket/cosmetic.ts | 1 + packages/adblocker/src/html-filtering.ts | 2 +- packages/adblocker/src/resources.ts | 1 + packages/adblocker/src/utils.ts | 1 + tslint.json | 20 - yarn.lock | 703 ++++++++++++++---- 23 files changed, 620 insertions(+), 216 deletions(-) create mode 100644 .eslintrc.js delete mode 100644 tslint.json diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000000..92d0bcac77 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,29 @@ +/* eslint-env node */ +module.exports = { + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-type-checked", + ], + parser: "@typescript-eslint/parser", + parserOptions: { + tsconfigRootDir: __dirname, + project: ["./packages/*/tsconfig.json"], + }, + plugins: ["@typescript-eslint"], + root: true, + rules: { + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/unbound-method": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-redundant-type-constituents": "off", + "@typescript-eslint/no-duplicate-type-constituents": "off", + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/no-floating-promises": "off", + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/no-misused-promises": "off", + "@typescript-eslint/require-await": "off", + }, +}; diff --git a/package.json b/package.json index ca4816e03f..1db517074d 100644 --- a/package.json +++ b/package.json @@ -72,13 +72,15 @@ "@remusao/auto-config": "^1.1.2", "@types/benchmark": "^2.1.3", "@types/node": "^20.6.2", + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", "auto": "^11.0.4", "benchmark": "^2.1.4", "chalk": "^5.3.0", + "eslint": "^8.49.0", "lerna": "^7.3.0", "patch-package": "^8.0.0", "prettier": "^3.0.3", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "auto": { diff --git a/packages/adblocker-content/package.json b/packages/adblocker-content/package.json index a53a24adf2..e9685d97f7 100644 --- a/packages/adblocker-content/package.json +++ b/packages/adblocker-content/package.json @@ -24,7 +24,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json && rollup --config ./rollup.config.ts --configPlugin typescript", "prepack": "yarn run bundle" @@ -39,13 +39,11 @@ "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-typescript": "^11.1.3", "@types/node": "^20.6.2", + "eslint": "^8.49.0", "rimraf": "^5.0.1", "rollup": "^3.29.2", "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-terser": "^7.0.2", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-electron-example/package.json b/packages/adblocker-electron-example/package.json index 45bf049cbd..f2fb3a3347 100644 --- a/packages/adblocker-electron-example/package.json +++ b/packages/adblocker-electron-example/package.json @@ -20,7 +20,7 @@ }, "scripts": { "start": "electron index.js", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json" + "lint": "eslint index.ts" }, "bugs": { "url": "https://github.com/cliqz-oss/adblocker/issues" @@ -67,8 +67,7 @@ }, "devDependencies": { "@types/node-fetch": "^3.0.3", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", + "eslint": "^8.49.0", "typescript": "^5.2.2" } } diff --git a/packages/adblocker-electron-preload/package.json b/packages/adblocker-electron-preload/package.json index e7dcfa3798..dbfec6e516 100644 --- a/packages/adblocker-electron-preload/package.json +++ b/packages/adblocker-electron-preload/package.json @@ -27,7 +27,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint preload.ts", "build": "tsc --build ./tsconfig.json && rollup --config ./rollup.config.ts --configPlugin typescript", "bundle": "yarn build", "prepack": "yarn run bundle" @@ -44,12 +44,10 @@ "@rollup/plugin-typescript": "^11.1.3", "@types/chrome": "^0.0.246", "electron": "^26.2.1", + "eslint": "^8.49.0", "rimraf": "^5.0.1", "rollup": "^3.29.2", "rollup-plugin-sourcemaps": "^0.6.3", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-electron/package.json b/packages/adblocker-electron/package.json index ec6bfaab19..2ceb8dd8f8 100644 --- a/packages/adblocker-electron/package.json +++ b/packages/adblocker-electron/package.json @@ -27,7 +27,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json", "prepack": "yarn run bundle", @@ -46,13 +46,11 @@ "@types/mocha": "^10.0.1", "chai": "^4.3.8", "electron": "^26.2.1", + "eslint": "^8.49.0", "mocha": "^10.2.0", "nyc": "^15.1.0", "rimraf": "^5.0.1", "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-extended-selectors/package.json b/packages/adblocker-extended-selectors/package.json index cccb583e7b..96c7303972 100644 --- a/packages/adblocker-extended-selectors/package.json +++ b/packages/adblocker-extended-selectors/package.json @@ -24,7 +24,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint src adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json", "prepack": "yarn run bundle", @@ -41,14 +41,12 @@ "@types/node": "^20.6.2", "chai": "^4.3.8", "chai-as-promised": "^7.1.1", + "eslint": "^8.49.0", "jsdom": "^22.1.0", "mocha": "^10.2.0", "nyc": "^15.1.0", "rimraf": "^5.0.1", "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-playwright-example/package.json b/packages/adblocker-playwright-example/package.json index 31a409f6c3..e1b44d2068 100644 --- a/packages/adblocker-playwright-example/package.json +++ b/packages/adblocker-playwright-example/package.json @@ -19,7 +19,7 @@ }, "scripts": { "start": "ts-node --project ./tsconfig.json index.ts", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json" + "lint": "eslint index.ts" }, "bugs": { "url": "https://github.com/cliqz-oss/adblocker/issues" @@ -32,8 +32,7 @@ }, "devDependencies": { "@types/node-fetch": "^3.0.3", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", + "eslint": "^8.49.0", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-playwright/adblocker.ts b/packages/adblocker-playwright/adblocker.ts index 2e03a3b2c9..e78bd9e855 100644 --- a/packages/adblocker-playwright/adblocker.ts +++ b/packages/adblocker-playwright/adblocker.ts @@ -266,6 +266,7 @@ export class PlaywrightBlocker extends FiltersEngine { } await sleep(500); + // eslint-disable-next-line no-constant-condition } while (true); }; diff --git a/packages/adblocker-playwright/package.json b/packages/adblocker-playwright/package.json index befd01840b..219af1f262 100644 --- a/packages/adblocker-playwright/package.json +++ b/packages/adblocker-playwright/package.json @@ -24,7 +24,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json", "prepack": "yarn run bundle", @@ -45,12 +45,11 @@ "@types/chai": "^4.3.6", "@types/mocha": "^10.0.1", "chai": "^4.3.8", + "eslint": "^8.49.0", "mocha": "^10.2.0", "nyc": "^15.1.0", "playwright": "^1.38.0", "rimraf": "^5.0.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-puppeteer-example/package.json b/packages/adblocker-puppeteer-example/package.json index 5c8e37b3de..92ca83f8bd 100644 --- a/packages/adblocker-puppeteer-example/package.json +++ b/packages/adblocker-puppeteer-example/package.json @@ -19,7 +19,7 @@ }, "scripts": { "start": "ts-node --project ./tsconfig.json index.ts", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json" + "lint": "eslint index.ts" }, "bugs": { "url": "https://github.com/cliqz-oss/adblocker/issues" @@ -32,8 +32,7 @@ }, "devDependencies": { "@types/node-fetch": "^3.0.3", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", + "eslint": "^8.49.0", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-puppeteer/adblocker.ts b/packages/adblocker-puppeteer/adblocker.ts index 422120a87f..e39017a19f 100644 --- a/packages/adblocker-puppeteer/adblocker.ts +++ b/packages/adblocker-puppeteer/adblocker.ts @@ -276,6 +276,7 @@ export class PuppeteerBlocker extends FiltersEngine { } await sleep(500); + // eslint-disable-next-line no-constant-condition } while (true); }; diff --git a/packages/adblocker-puppeteer/package.json b/packages/adblocker-puppeteer/package.json index 1bb1b06f49..9210f7eceb 100644 --- a/packages/adblocker-puppeteer/package.json +++ b/packages/adblocker-puppeteer/package.json @@ -24,7 +24,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json", "prepack": "yarn run bundle", @@ -45,14 +45,12 @@ "@types/chai": "^4.3.6", "@types/mocha": "^10.0.1", "chai": "^4.3.8", + "eslint": "^8.49.0", "mocha": "^10.2.0", "nyc": "^15.1.0", "puppeteer": "21.2.1", "rimraf": "^5.0.1", "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-webextension-cosmetics/package.json b/packages/adblocker-webextension-cosmetics/package.json index 5a0ba46da1..54f8c86ec1 100644 --- a/packages/adblocker-webextension-cosmetics/package.json +++ b/packages/adblocker-webextension-cosmetics/package.json @@ -24,7 +24,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json && rollup --config ./rollup.config.ts --configPlugin typescript", "prepack": "yarn run bundle", @@ -77,6 +77,7 @@ "@types/sinon": "^10.0.16", "@types/sinon-chai": "^3.2.9", "chai": "^4.3.8", + "eslint": "^8.49.0", "jsdom": "^22.1.0", "mocha": "^10.2.0", "nyc": "^15.1.0", @@ -87,9 +88,6 @@ "sinon": "^16.0.0", "sinon-chai": "^3.7.0", "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "dependencies": { diff --git a/packages/adblocker-webextension-example/package.json b/packages/adblocker-webextension-example/package.json index 23940c4298..13c862b490 100644 --- a/packages/adblocker-webextension-example/package.json +++ b/packages/adblocker-webextension-example/package.json @@ -20,7 +20,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint background.ts content-script.ts", "build": "tsc --build ./tsconfig.json", "bundle": "rollup --config ./rollup.config.ts --configPlugin typescript", "watch": "rollup --config ./rollup.config.ts --configPlugin typescript --watch", @@ -41,11 +41,10 @@ "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-typescript": "^11.1.3", "@types/chrome": "^0.0.246", + "eslint": "^8.49.0", "rimraf": "^5.0.1", "rollup": "^3.29.2", "rollup-plugin-sourcemaps": "^0.6.3", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", "typescript": "^5.2.2" }, "contributors": [ diff --git a/packages/adblocker-webextension/package.json b/packages/adblocker-webextension/package.json index c22c90aba8..9061f0928a 100644 --- a/packages/adblocker-webextension/package.json +++ b/packages/adblocker-webextension/package.json @@ -21,7 +21,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json && rollup --config ./rollup.config.ts --configPlugin typescript", "prepack": "yarn run bundle", @@ -39,6 +39,7 @@ "@types/chai": "^4.3.6", "@types/mocha": "^10.0.1", "chai": "^4.3.8", + "eslint": "^8.49.0", "mocha": "^10.2.0", "nyc": "^15.1.0", "rimraf": "^5.0.1", @@ -46,9 +47,6 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-terser": "^7.0.2", "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "dependencies": { diff --git a/packages/adblocker/package.json b/packages/adblocker/package.json index e5d4e4ef99..90c5d18d01 100644 --- a/packages/adblocker/package.json +++ b/packages/adblocker/package.json @@ -24,7 +24,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "tslint --config ../../tslint.json --project ./tsconfig.json", + "lint": "eslint src adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json && rollup --config ./rollup.config.ts --configPlugin typescript", "prepack": "yarn run bundle", @@ -89,6 +89,7 @@ "chai": "^4.3.8", "chai-as-promised": "^7.1.1", "concurrently": "^8.2.1", + "eslint": "^8.49.0", "mocha": "^10.2.0", "nyc": "^15.1.0", "rimraf": "^5.0.1", @@ -96,9 +97,6 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-terser": "^7.0.2", "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-no-unused-expression-chai": "^0.1.4", "typescript": "^5.2.2" }, "dependencies": { diff --git a/packages/adblocker/src/engine/bucket/cosmetic.ts b/packages/adblocker/src/engine/bucket/cosmetic.ts index fd3ebf0cfc..ef8a4edbb5 100644 --- a/packages/adblocker/src/engine/bucket/cosmetic.ts +++ b/packages/adblocker/src/engine/bucket/cosmetic.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/unbound-method */ /*! * Copyright (c) 2017-present Cliqz GmbH. All rights reserved. * diff --git a/packages/adblocker/src/html-filtering.ts b/packages/adblocker/src/html-filtering.ts index d9879fc2a3..6c3f8df445 100644 --- a/packages/adblocker/src/html-filtering.ts +++ b/packages/adblocker/src/html-filtering.ts @@ -139,7 +139,7 @@ type Patterns = readonly [readonly string[], readonly RegExp[]][]; export function extractSelectorsFromRules(filter: HTMLSelector[]): Patterns { const patterns: [string[], RegExp[]][] = []; - for (const [_, selectors] of filter) { + for (const [, selectors] of filter) { const plainPatterns: string[] = []; const regexpPatterns: RegExp[] = []; diff --git a/packages/adblocker/src/resources.ts b/packages/adblocker/src/resources.ts index 619d9fcb54..8061cc361c 100644 --- a/packages/adblocker/src/resources.ts +++ b/packages/adblocker/src/resources.ts @@ -90,6 +90,7 @@ export default class Resources { } // The resource containing javascirpts to be injected + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const js: Map = typeToResource.get('application/javascript') || new Map(); for (const [key, value] of js.entries()) { if (key.endsWith('.js')) { diff --git a/packages/adblocker/src/utils.ts b/packages/adblocker/src/utils.ts index b6aba6a51f..99816eb84b 100644 --- a/packages/adblocker/src/utils.ts +++ b/packages/adblocker/src/utils.ts @@ -405,6 +405,7 @@ export function binLookup(arr: Uint32Array, elt: number): boolean { return binSearch(arr, elt) !== -1; } +// eslint-disable-next-line no-control-regex const hasUnicodeRe = /[^\u0000-\u00ff]/; export function hasUnicode(str: string): boolean { return hasUnicodeRe.test(str); diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 56141f0bac..0000000000 --- a/tslint.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": [ - "tslint:recommended", - "tslint-config-prettier", - "tslint-no-unused-expression-chai" - ], - "linterOptions": { - "exclude": ["node_modules/**"] - }, - "rules": { - "arrow-parens": [2, "as-needed", { "requireForBlockBody": true }], - "interface-name": false, - "max-classes-per-file": false, - "no-bitwise": false, - "prefer-for-of": false, - "no-console": false, - "max-line-length": false, - "quotemark": [true, "single", "avoid-escape", "avoid-template"] - } -} diff --git a/yarn.lock b/yarn.lock index 411b8f1e0a..4e5a0979b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 6 cacheKey: 8 +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -389,13 +396,11 @@ __metadata: "@rollup/plugin-node-resolve": ^15.2.1 "@rollup/plugin-typescript": ^11.1.3 "@types/node": ^20.6.2 + eslint: ^8.49.0 rimraf: ^5.0.1 rollup: ^3.29.2 rollup-plugin-sourcemaps: ^0.6.3 rollup-plugin-terser: ^7.0.2 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -407,10 +412,9 @@ __metadata: "@cliqz/adblocker-electron": ^1.26.7 "@types/node-fetch": ^3.0.3 electron: ^26.2.1 + eslint: ^8.49.0 node-fetch: ^3.3.2 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -425,12 +429,10 @@ __metadata: "@rollup/plugin-typescript": ^11.1.3 "@types/chrome": ^0.0.246 electron: ^26.2.1 + eslint: ^8.49.0 rimraf: ^5.0.1 rollup: ^3.29.2 rollup-plugin-sourcemaps: ^0.6.3 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 peerDependencies: electron: ">11" @@ -447,14 +449,12 @@ __metadata: "@types/mocha": ^10.0.1 chai: ^4.3.8 electron: ^26.2.1 + eslint: ^8.49.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^5.0.1 tldts-experimental: ^6.0.14 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 peerDependencies: electron: ">11" @@ -472,14 +472,12 @@ __metadata: "@types/node": ^20.6.2 chai: ^4.3.8 chai-as-promised: ^7.1.1 + eslint: ^8.49.0 jsdom: ^22.1.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^5.0.1 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -490,11 +488,10 @@ __metadata: dependencies: "@cliqz/adblocker-playwright": ^1.26.7 "@types/node-fetch": ^3.0.3 + eslint: ^8.49.0 node-fetch: ^3.3.2 playwright: ^1.38.0 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -508,13 +505,12 @@ __metadata: "@types/chai": ^4.3.6 "@types/mocha": ^10.0.1 chai: ^4.3.8 + eslint: ^8.49.0 mocha: ^10.2.0 nyc: ^15.1.0 playwright: ^1.38.0 rimraf: ^5.0.1 tldts-experimental: ^6.0.14 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 typescript: ^5.2.2 peerDependencies: playwright: ^1.x @@ -527,11 +523,10 @@ __metadata: dependencies: "@cliqz/adblocker-puppeteer": ^1.26.7 "@types/node-fetch": ^3.0.3 + eslint: ^8.49.0 node-fetch: ^3.3.2 puppeteer: 21.2.1 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -545,15 +540,13 @@ __metadata: "@types/chai": ^4.3.6 "@types/mocha": ^10.0.1 chai: ^4.3.8 + eslint: ^8.49.0 mocha: ^10.2.0 nyc: ^15.1.0 puppeteer: 21.2.1 rimraf: ^5.0.1 tldts-experimental: ^6.0.14 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 peerDependencies: puppeteer: ">5" @@ -575,6 +568,7 @@ __metadata: "@types/sinon": ^10.0.16 "@types/sinon-chai": ^3.2.9 chai: ^4.3.8 + eslint: ^8.49.0 jsdom: ^22.1.0 mocha: ^10.2.0 nyc: ^15.1.0 @@ -585,9 +579,6 @@ __metadata: sinon: ^16.0.0 sinon-chai: ^3.7.0 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -602,11 +593,10 @@ __metadata: "@rollup/plugin-node-resolve": ^15.2.1 "@rollup/plugin-typescript": ^11.1.3 "@types/chrome": ^0.0.246 + eslint: ^8.49.0 rimraf: ^5.0.1 rollup: ^3.29.2 rollup-plugin-sourcemaps: ^0.6.3 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 typescript: ^5.2.2 webextension-polyfill-ts: ^0.26.0 languageName: unknown @@ -623,6 +613,7 @@ __metadata: "@types/chai": ^4.3.6 "@types/mocha": ^10.0.1 chai: ^4.3.8 + eslint: ^8.49.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^5.0.1 @@ -631,9 +622,6 @@ __metadata: rollup-plugin-terser: ^7.0.2 tldts-experimental: ^6.0.14 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 webextension-polyfill-ts: ^0.26.0 languageName: unknown @@ -660,6 +648,7 @@ __metadata: chai: ^4.3.8 chai-as-promised: ^7.1.1 concurrently: ^8.2.1 + eslint: ^8.49.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^5.0.1 @@ -668,9 +657,6 @@ __metadata: rollup-plugin-terser: ^7.0.2 tldts-experimental: ^6.0.14 ts-node: ^10.9.1 - tslint: ^6.1.3 - tslint-config-prettier: ^1.18.0 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -717,6 +703,73 @@ __metadata: languageName: node linkType: hard +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.8.1 + resolution: "@eslint-community/regexpp@npm:4.8.1" + checksum: 82d62c845ef42b810f268cfdc84d803a2da01735fb52e902fd34bdc09f92464a094fd8e4802839874b000b2f73f67c972859e813ba705233515d3e954f234bf2 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.6.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 + languageName: node + linkType: hard + +"@eslint/js@npm:8.49.0": + version: 8.49.0 + resolution: "@eslint/js@npm:8.49.0" + checksum: a6601807c8aeeefe866926ad92ed98007c034a735af20ff709009e39ad1337474243d47908500a3bde04e37bfba16bcf1d3452417f962e1345bc8756edd6b830 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.11.11": + version: 0.11.11 + resolution: "@humanwhocodes/config-array@npm:0.11.11" + dependencies: + "@humanwhocodes/object-schema": ^1.2.1 + debug: ^4.1.1 + minimatch: ^3.0.5 + checksum: db84507375ab77b8ffdd24f498a5b49ad6b64391d30dd2ac56885501d03964d29637e05b1ed5aefa09d57ac667e28028bc22d2da872bfcd619652fbdb5f4ca19 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^1.2.1": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 + languageName: node + linkType: hard + "@hutson/parse-repository-url@npm:^3.0.0": version: 3.0.2 resolution: "@hutson/parse-repository-url@npm:3.0.2" @@ -930,7 +983,7 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.3": +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: @@ -1913,6 +1966,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.12": + version: 7.0.13 + resolution: "@types/json-schema@npm:7.0.13" + checksum: 345df21a678fa72fb389f35f33de77833d09d4a142bb2bcb27c18690efa4cf70fc2876e43843cefb3fbdb9fcb12cd3e970a90936df30f53bbee899865ff605ab + languageName: node + linkType: hard + "@types/keyv@npm:^3.1.4": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" @@ -1996,6 +2056,13 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.5.0": + version: 7.5.2 + resolution: "@types/semver@npm:7.5.2" + checksum: 743aa8a2b58e20b329c19bd2459152cb049d12fafab7279b90ac11e0f268c97efbcb606ea0c681cca03f79015381b40d9b1244349b354270bec3f939ed49f6e9 + languageName: node + linkType: hard + "@types/sinon-chai@npm:^3.2.9": version: 3.2.9 resolution: "@types/sinon-chai@npm:3.2.9" @@ -2038,6 +2105,128 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:^6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.7.0" + dependencies: + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.7.0 + "@typescript-eslint/type-utils": 6.7.0 + "@typescript-eslint/utils": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 48393749c5c1f67acf71795551c6065586198530006189c48636e32caea4d1285624c16c047164f9d29055e26c4f90fca964c5a2b5c0e9b6d9ed87acd74ca0d6 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/parser@npm:6.7.0" + dependencies: + "@typescript-eslint/scope-manager": 6.7.0 + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/typescript-estree": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 21d52a49abf78a3b037261c01f1f4d2d550919ddc906ebb058db3410a706457ac3a7d082716328ce98a6741d4e77c945b71ff386d9047c5a2e5beef23e14ab45 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/scope-manager@npm:6.7.0" + dependencies: + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 + checksum: f6ea33c647783d53d98938bd5d3fc94c9a5ebc83bd64cf379215863921dd1c57e66c33af7948d6ac1884623e1917a3b42565e6d02e1fd7adfbce4b3424a2382e + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/type-utils@npm:6.7.0" + dependencies: + "@typescript-eslint/typescript-estree": 6.7.0 + "@typescript-eslint/utils": 6.7.0 + debug: ^4.3.4 + ts-api-utils: ^1.0.1 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 15ae33a6981721f83b2ac612a7597a4fcb2d9d9bfedce54707e5228bec2774fd99ba54ffce89924ae36b61488c7b6c0c2165a6d361be5cd4cefebefad8b02a01 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/types@npm:6.7.0" + checksum: fb76031432a009813d559b1cc63091eb5434279012cdb98de62fcd556910663c6a1b506e0a77c4f86e223a5e2c00e76a2d1d2170802c75168008d19a52a51fca + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.7.0" + dependencies: + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/visitor-keys": 6.7.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: 9bd57910085f0dd97d7083e0468c34e0753d20d36d3ffaa4ba111f13cc4986743374f5aed928e645ea982cf2ed9a8141598bee41393cad0abee001f0842ad117 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/utils@npm:6.7.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.7.0 + "@typescript-eslint/types": 6.7.0 + "@typescript-eslint/typescript-estree": 6.7.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: b2a2857ec856d1752e77c2a274a12513372311c300f9ec57ed7bf7411eb9ea34b85a8e7810a5c48fff0e3966b71d63d77e38c5c7bca1d5c004bede5638619a00 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:6.7.0": + version: 6.7.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.7.0" + dependencies: + "@typescript-eslint/types": 6.7.0 + eslint-visitor-keys: ^3.4.1 + checksum: cd85722d26ccfa23a76e5cb5aa0229f89eb3c4f1ed87d71a0f902db15f420f3f3e94cbd16dc711039f611ac60b1e7d0fee9ee78c48c88310a5f1926a2bc8778e + languageName: node + linkType: hard + "@yarnpkg/lockfile@npm:^1.1.0": version: 1.1.0 resolution: "@yarnpkg/lockfile@npm:1.1.0" @@ -2092,6 +2281,15 @@ __metadata: languageName: node linkType: hard +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + "acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" @@ -2099,7 +2297,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.8.2": +"acorn@npm:^8.4.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -2115,13 +2313,15 @@ __metadata: "@remusao/auto-config": ^1.1.2 "@types/benchmark": ^2.1.3 "@types/node": ^20.6.2 + "@typescript-eslint/eslint-plugin": ^6.7.0 + "@typescript-eslint/parser": ^6.7.0 auto: ^11.0.4 benchmark: ^2.1.4 chalk: ^5.3.0 + eslint: ^8.49.0 lerna: ^7.3.0 patch-package: ^8.0.0 prettier: ^3.0.3 - tslint-no-unused-expression-chai: ^0.1.4 typescript: ^5.2.2 languageName: unknown linkType: soft @@ -2170,6 +2370,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + "ansi-colors@npm:4.1.1": version: 4.1.1 resolution: "ansi-colors@npm:4.1.1" @@ -2613,13 +2825,6 @@ __metadata: languageName: node linkType: hard -"builtin-modules@npm:^1.1.1": - version: 1.1.1 - resolution: "builtin-modules@npm:1.1.1" - checksum: 0fbf69ffe77fecf11c441b9a7d1e664bb8119a7d3004831d9bd6ce0eacfd5d121ed4b667172870b5f66ecfce4bd54f7c20060d21c339c29049a7a5dd2bb7bf8c - languageName: node - linkType: hard - "builtin-modules@npm:^3.3.0": version: 3.3.0 resolution: "builtin-modules@npm:3.3.0" @@ -2779,7 +2984,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.3.0, chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -3069,7 +3274,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.12.1, commander@npm:^2.20.0": +"commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e @@ -3309,7 +3514,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -3377,7 +3582,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -3459,6 +3664,13 @@ __metadata: languageName: node linkType: hard +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + "deepmerge@npm:^4.0.0, deepmerge@npm:^4.2.2": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" @@ -3619,6 +3831,15 @@ __metadata: languageName: node linkType: hard +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + "domexception@npm:^4.0.0": version: 4.0.0 resolution: "domexception@npm:4.0.0" @@ -3861,6 +4082,81 @@ __metadata: languageName: node linkType: hard +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + +"eslint@npm:^8.49.0": + version: 8.49.0 + resolution: "eslint@npm:8.49.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.2 + "@eslint/js": 8.49.0 + "@humanwhocodes/config-array": ^0.11.11 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 4dfe257e1e42da2f9da872b05aaaf99b0f5aa022c1a91eee8f2af1ab72651b596366320c575ccd4e0469f7b4c97aff5bb85ae3323ebd6a293c3faef4028b0d81 + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: ^8.9.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 + languageName: node + linkType: hard + "esprima@npm:^4.0.0, esprima@npm:^4.0.1": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -3871,7 +4167,25 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^5.2.0": +"esquery@npm:^1.4.2": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" + dependencies: + estraverse: ^5.1.0 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b @@ -3975,6 +4289,13 @@ __metadata: languageName: node linkType: hard +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + "fast-fifo@npm:^1.1.0, fast-fifo@npm:^1.2.0": version: 1.3.2 resolution: "fast-fifo@npm:1.3.2" @@ -4015,6 +4336,20 @@ __metadata: languageName: node linkType: hard +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.15.0 resolution: "fastq@npm:1.15.0" @@ -4061,6 +4396,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + "filelist@npm:^1.0.4": version: 1.0.4 resolution: "filelist@npm:1.0.4" @@ -4099,7 +4443,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:5.0.0": +"find-up@npm:5.0.0, find-up@npm:^5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" dependencies: @@ -4137,6 +4481,17 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^3.0.4": + version: 3.1.0 + resolution: "flat-cache@npm:3.1.0" + dependencies: + flatted: ^3.2.7 + keyv: ^4.5.3 + rimraf: ^3.0.2 + checksum: 99312601d5b90f44aef403f17f056dc09be7e437703740b166cdc9386d99e681f74e6b6e8bd7d010bda66904ea643c9527276b1b80308a2119741d94108a4d8f + languageName: node + linkType: hard + "flat@npm:^5.0.2": version: 5.0.2 resolution: "flat@npm:5.0.2" @@ -4146,6 +4501,13 @@ __metadata: languageName: node linkType: hard +"flatted@npm:^3.2.7": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 + languageName: node + linkType: hard + "follow-redirects@npm:^1.15.0": version: 1.15.2 resolution: "follow-redirects@npm:1.15.2" @@ -4525,6 +4887,15 @@ __metadata: languageName: node linkType: hard +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + "glob@npm:7.1.4": version: 7.1.4 resolution: "glob@npm:7.1.4" @@ -4568,7 +4939,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -4628,6 +4999,15 @@ __metadata: languageName: node linkType: hard +"globals@npm:^13.19.0": + version: 13.21.0 + resolution: "globals@npm:13.21.0" + dependencies: + type-fest: ^0.20.2 + checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773 + languageName: node + linkType: hard + "globalthis@npm:^1.0.1": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -4637,7 +5017,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:11.1.0": +"globby@npm:11.1.0, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -4700,6 +5080,13 @@ __metadata: languageName: node linkType: hard +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + "handlebars@npm:^4.7.7": version: 4.7.8 resolution: "handlebars@npm:4.7.8" @@ -4971,7 +5358,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.4, ignore@npm:^5.2.0": +"ignore@npm:^5.0.4, ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef @@ -5185,7 +5572,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.1, is-glob@npm:~4.0.1": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -5229,6 +5616,13 @@ __metadata: languageName: node linkType: hard +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + "is-plain-obj@npm:^1.0.0, is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -5606,6 +6000,20 @@ __metadata: languageName: node linkType: hard +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + languageName: node + linkType: hard + "json-stable-stringify@npm:^1.0.2": version: 1.0.2 resolution: "json-stable-stringify@npm:1.0.2" @@ -5684,7 +6092,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.0.0": +"keyv@npm:^4.0.0, keyv@npm:^4.5.3": version: 4.5.3 resolution: "keyv@npm:4.5.3" dependencies: @@ -5794,6 +6202,16 @@ __metadata: languageName: node linkType: hard +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + languageName: node + linkType: hard + "libnpmaccess@npm:7.0.2": version: 7.0.2 resolution: "libnpmaccess@npm:7.0.2" @@ -5921,6 +6339,13 @@ __metadata: languageName: node linkType: hard +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + languageName: node + linkType: hard + "lodash@npm:^4.17.21, lodash@npm:^4.17.4": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -6188,7 +6613,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -6357,17 +6782,6 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^0.5.3": - version: 0.5.6 - resolution: "mkdirp@npm:0.5.6" - dependencies: - minimist: ^1.2.6 - bin: - mkdirp: bin/cmd.js - checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 - languageName: node - linkType: hard - "mkdirp@npm:^1.0.3": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" @@ -6473,6 +6887,13 @@ __metadata: languageName: node linkType: hard +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + "negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" @@ -7002,6 +7423,20 @@ __metadata: languageName: node linkType: hard +"optionator@npm:^0.9.3": + version: 0.9.3 + resolution: "optionator@npm:0.9.3" + dependencies: + "@aashutoshrathi/word-wrap": ^1.2.3 + deep-is: ^0.1.3 + fast-levenshtein: ^2.0.6 + levn: ^0.4.1 + prelude-ls: ^1.2.1 + type-check: ^0.4.0 + checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a + languageName: node + linkType: hard + "ora@npm:^5.4.1": version: 5.4.1 resolution: "ora@npm:5.4.1" @@ -7533,6 +7968,13 @@ __metadata: languageName: node linkType: hard +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + languageName: node + linkType: hard + "prettier@npm:^3.0.3": version: 3.0.3 resolution: "prettier@npm:3.0.3" @@ -7665,7 +8107,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.1, punycode@npm:^2.3.0": +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.0": version: 2.3.0 resolution: "punycode@npm:2.3.0" checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 @@ -7990,7 +8432,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.22.1, resolve@npm:^1.3.2": +"resolve@npm:^1.10.0, resolve@npm:^1.22.1": version: 1.22.6 resolution: "resolve@npm:1.22.6" dependencies: @@ -8012,7 +8454,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.3.2#~builtin": +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": version: 1.22.6 resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=c3c19d" dependencies: @@ -8238,7 +8680,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.6.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -8267,7 +8709,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -8707,7 +9149,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:3.1.1": +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -8925,6 +9367,13 @@ __metadata: languageName: node linkType: hard +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + "through2@npm:^2.0.0": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -9043,6 +9492,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^1.0.1": + version: 1.0.3 + resolution: "ts-api-utils@npm:1.0.3" + peerDependencies: + typescript: ">=4.2.0" + checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6 + languageName: node + linkType: hard + "ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" @@ -9127,13 +9585,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.13.0, tslib@npm:^1.8.1": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd - languageName: node - linkType: hard - "tslib@npm:^2, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -9141,73 +9592,6 @@ __metadata: languageName: node linkType: hard -"tslint-config-prettier@npm:^1.18.0": - version: 1.18.0 - resolution: "tslint-config-prettier@npm:1.18.0" - bin: - tslint-config-prettier-check: bin/check.js - checksum: f0c548a7a520f9247f8e4ddba1136f300d1b2ec48a8255b030c05e35866cc22c105d9120540dd5ee82e2a04a769d82f5d098b7eaf6928820f6dba1badad6704c - languageName: node - linkType: hard - -"tslint-no-unused-expression-chai@npm:^0.1.4": - version: 0.1.4 - resolution: "tslint-no-unused-expression-chai@npm:0.1.4" - dependencies: - tsutils: ^3.0.0 - peerDependencies: - tslint: ">=5.1.0" - checksum: 937217dbd84a0fde653cc936b25fd7df7579478bbabc44a8999d905f64ce756bb805aedba1abaa2efef604daa21fb490fe2e7da7280d1991497152b64376ff48 - languageName: node - linkType: hard - -"tslint@npm:^6.1.3": - version: 6.1.3 - resolution: "tslint@npm:6.1.3" - dependencies: - "@babel/code-frame": ^7.0.0 - builtin-modules: ^1.1.1 - chalk: ^2.3.0 - commander: ^2.12.1 - diff: ^4.0.1 - glob: ^7.1.1 - js-yaml: ^3.13.1 - minimatch: ^3.0.4 - mkdirp: ^0.5.3 - resolve: ^1.3.2 - semver: ^5.3.0 - tslib: ^1.13.0 - tsutils: ^2.29.0 - peerDependencies: - typescript: ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - bin: - tslint: bin/tslint - checksum: 7348b7abd6b8939f0b295c4dddbb104adfe2e96c9cc5be4a946a87a28df648bde61046cfb07951708938192f553eba6254f7729b85fd230efebbd72f7988255e - languageName: node - linkType: hard - -"tsutils@npm:^2.29.0": - version: 2.29.0 - resolution: "tsutils@npm:2.29.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - checksum: 5d681bab79979e3b4d61dd0d1e6c1dd6a79b5608cf8dec5a5ee599ac8b5921107870bcf037140b8dce85a479df78aee0ffa61c1b3d8e5660748af36551946616 - languageName: node - linkType: hard - -"tsutils@npm:^3.0.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 - languageName: node - linkType: hard - "tuf-js@npm:^1.1.7": version: 1.1.7 resolution: "tuf-js@npm:1.1.7" @@ -9219,6 +9603,15 @@ __metadata: languageName: node linkType: hard +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: ^1.2.1 + checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + languageName: node + linkType: hard + "type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.5, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" @@ -9240,6 +9633,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 + languageName: node + linkType: hard + "type-fest@npm:^0.21.1, type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -9411,6 +9811,15 @@ __metadata: languageName: node linkType: hard +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + "url-join@npm:^4.0.0": version: 4.0.1 resolution: "url-join@npm:4.0.1" From 6b2a89c6320be98a93d6a9114f812d4a8ea88334 Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Mon, 18 Sep 2023 19:06:06 +0200 Subject: [PATCH 2/3] Eslint handles prettier --- .eslintrc.js | 7 +- package.json | 2 + .../adblocker-extended-selectors/src/parse.ts | 3 +- .../adblocker-extended-selectors/src/types.ts | 2 +- packages/adblocker-playwright/adblocker.ts | 7 +- packages/adblocker-puppeteer/adblocker.ts | 7 +- packages/adblocker-webextension/adblocker.ts | 29 +- .../src/codebooks/cosmetic-selector.ts | 4 +- .../adblocker/src/codebooks/network-csp.ts | 4 +- .../adblocker/src/codebooks/network-filter.ts | 4 +- .../src/codebooks/network-hostname.ts | 4 +- .../src/codebooks/network-redirect.ts | 4 +- .../adblocker/src/codebooks/raw-cosmetic.ts | 4 +- .../adblocker/src/codebooks/raw-network.ts | 4 +- packages/adblocker/src/encoding.ts | 2 + packages/adblocker/src/filters/network.ts | 3 +- yarn.lock | 257 +++++++++++++++++- 17 files changed, 311 insertions(+), 36 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 92d0bcac77..cd36a933d1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,15 +4,20 @@ module.exports = { "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-type-checked", + "prettier", ], parser: "@typescript-eslint/parser", parserOptions: { tsconfigRootDir: __dirname, project: ["./packages/*/tsconfig.json"], }, - plugins: ["@typescript-eslint"], + plugins: [ + "@typescript-eslint", + "prettier", + ], root: true, rules: { + "prettier/prettier": 2, // Means error "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/ban-types": "off", "@typescript-eslint/unbound-method": "off", diff --git a/package.json b/package.json index 1db517074d..810f8c584d 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,8 @@ "benchmark": "^2.1.4", "chalk": "^5.3.0", "eslint": "^8.49.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", "lerna": "^7.3.0", "patch-package": "^8.0.0", "prettier": "^3.0.3", diff --git a/packages/adblocker-extended-selectors/src/parse.ts b/packages/adblocker-extended-selectors/src/parse.ts index ec4c67eb43..0025605ad2 100644 --- a/packages/adblocker-extended-selectors/src/parse.ts +++ b/packages/adblocker-extended-selectors/src/parse.ts @@ -57,7 +57,8 @@ export const RECURSIVE_PSEUDO_CLASSES = new Set([ ]); const TOKENS: { [T in TokenType]: RegExp } = { - attribute: /\[\s*(?:(?\*|[-\w]*)\|)?(?[-\w\u{0080}-\u{FFFF}]+)\s*(?:(?\W?=)\s*(?.+?)\s*(?[iIsS])?\s*)?\]/gu, + attribute: + /\[\s*(?:(?\*|[-\w]*)\|)?(?[-\w\u{0080}-\u{FFFF}]+)\s*(?:(?\W?=)\s*(?.+?)\s*(?[iIsS])?\s*)?\]/gu, id: /#(?(?:[-\w\u{0080}-\u{FFFF}]|\\.)+)/gu, class: /\.(?(?:[-\w\u{0080}-\u{FFFF}]|\\.)+)/gu, comma: /\s*,\s*/g, // must be before combinator diff --git a/packages/adblocker-extended-selectors/src/types.ts b/packages/adblocker-extended-selectors/src/types.ts index 5492861b20..9909ba74b5 100644 --- a/packages/adblocker-extended-selectors/src/types.ts +++ b/packages/adblocker-extended-selectors/src/types.ts @@ -17,7 +17,7 @@ const tokenTypes = [ 'type', ] as const; -export type TokenType = typeof tokenTypes[number]; +export type TokenType = (typeof tokenTypes)[number]; export type Base = { length: number; diff --git a/packages/adblocker-playwright/adblocker.ts b/packages/adblocker-playwright/adblocker.ts index e78bd9e855..1210511d28 100644 --- a/packages/adblocker-playwright/adblocker.ts +++ b/packages/adblocker-playwright/adblocker.ts @@ -54,7 +54,10 @@ export class BlockingContext { private readonly onFrameNavigated: (frame: pw.Frame) => Promise; private readonly onRequest: (route: pw.Route) => void; - constructor(private readonly page: pw.Page, private readonly blocker: PlaywrightBlocker) { + constructor( + private readonly page: pw.Page, + private readonly blocker: PlaywrightBlocker, + ) { this.onFrameNavigated = (frame) => blocker.onFrameNavigated(frame); this.onRequest = (route: pw.Route) => blocker.onRequest(route); } @@ -266,7 +269,7 @@ export class PlaywrightBlocker extends FiltersEngine { } await sleep(500); - // eslint-disable-next-line no-constant-condition + // eslint-disable-next-line no-constant-condition } while (true); }; diff --git a/packages/adblocker-puppeteer/adblocker.ts b/packages/adblocker-puppeteer/adblocker.ts index e39017a19f..d775cb56cb 100644 --- a/packages/adblocker-puppeteer/adblocker.ts +++ b/packages/adblocker-puppeteer/adblocker.ts @@ -58,7 +58,10 @@ export class BlockingContext { private readonly onDomContentLoaded: () => Promise; private readonly onRequest: (details: puppeteer.HTTPRequest) => void; - constructor(private readonly page: puppeteer.Page, private readonly blocker: PuppeteerBlocker) { + constructor( + private readonly page: puppeteer.Page, + private readonly blocker: PuppeteerBlocker, + ) { this.onFrameNavigated = (frame) => blocker.onFrameNavigated(frame); this.onDomContentLoaded = () => blocker.onFrameNavigated(this.page.mainFrame()); this.onRequest = (request) => blocker.onRequest(request); @@ -276,7 +279,7 @@ export class PuppeteerBlocker extends FiltersEngine { } await sleep(500); - // eslint-disable-next-line no-constant-condition + // eslint-disable-next-line no-constant-condition } while (true); }; diff --git a/packages/adblocker-webextension/adblocker.ts b/packages/adblocker-webextension/adblocker.ts index a7f2b7a867..0da8319ca0 100644 --- a/packages/adblocker-webextension/adblocker.ts +++ b/packages/adblocker-webextension/adblocker.ts @@ -215,7 +215,10 @@ export class BlockingContext { | ((details: WebNavigation.OnCommittedDetailsType) => void) | undefined; - constructor(private readonly browser: Browser, private readonly blocker: WebExtensionBlocker) { + constructor( + private readonly browser: Browser, + private readonly blocker: WebExtensionBlocker, + ) { this.onBeforeRequest = (details) => blocker.onBeforeRequest(browser, details); this.onHeadersReceived = (details) => blocker.onHeadersReceived(browser, details); this.onRuntimeMessage = (msg, sender) => blocker.onRuntimeMessage(browser, msg, sender); @@ -229,7 +232,7 @@ export class BlockingContext { } else { console.warn( 'Consider adding the "webNavigation" permission in the manifest to improve the reliability of the adblocker. ' + - 'If you do not want to see this warning, turn off the "enablePushInjectionsOnNavigationEvents" flag.', + 'If you do not want to see this warning, turn off the "enablePushInjectionsOnNavigationEvents" flag.', ); } } @@ -562,7 +565,9 @@ export class WebExtensionBlocker extends FiltersEngine { sender: Runtime.MessageSender, ): Promise => { return new Promise((resolve, reject) => { - this.handleRuntimeMessage(browser, msg, sender, resolve).catch(reject).finally(() => resolve({})); + this.handleRuntimeMessage(browser, msg, sender, resolve) + .catch(reject) + .finally(() => resolve({})); }); }; @@ -654,14 +659,16 @@ ${scripts.join('\n\n')}} } })(\`${encodeURIComponent(codeRunningInPage)}\`);`; - browser.tabs.executeScript(tabId, { - code: codeRunningInContentScript, - runAt: 'document_start', - allFrames: true, - matchAboutBlank: true, - }).catch((err) => { - console.error('Failed to inject scriptlets', err); - }); + browser.tabs + .executeScript(tabId, { + code: codeRunningInContentScript, + runAt: 'document_start', + allFrames: true, + matchAboutBlank: true, + }) + .catch((err) => { + console.error('Failed to inject scriptlets', err); + }); } } diff --git a/packages/adblocker/src/codebooks/cosmetic-selector.ts b/packages/adblocker/src/codebooks/cosmetic-selector.ts index a34474c6b9..10a45836ae 100644 --- a/packages/adblocker/src/codebooks/cosmetic-selector.ts +++ b/packages/adblocker/src/codebooks/cosmetic-selector.ts @@ -5,7 +5,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -/* tslint:disable quotemark */ +/* eslint-disable prettier/prettier */ export default [ "|var _F_cssRowKey)/, 'const jsonPruner=obj=>{for(k of[\"playerAds\",\"adPlacements\",\"adSlots\"]){obj[k]=[];}return obj;};const pruner=(text,url)=>{let json=JSON.parse(text);if(url.includes(\"player?key=\")){return JSON.stringify(jsonPruner(json));}else{let newJSON=[];for(obj of json){if(\"playerResponse\"in obj){obj[\"playerResponse\"]=jsonPruner(obj[\"playerResponse\"]);}newJSON.push(obj);}return JSON.stringify(newJSON);}};const urlFromArg=arg=>{if(typeof arg===\"string\"){return arg;}if(arg instanceof Request){return arg.url;}return String(arg);};const realFetch=window.fetch;window.fetch=new Proxy(window.fetch,{apply:function(target,thisArg,args){let url=urlFromArg(args[0]);if(!(url.includes(\"player?key=\"))&&!(url.includes(\"watch?v=\"))){return Reflect.apply(target,thisArg,args);}return realFetch(...args).then(realResponse=>realResponse.text().then(text=>new Response(pruner(text,url),{status:realResponse.status,statusText:realResponse.statusText,headers:realResponse.headers,})));}});window.XMLHttpRequest.prototype.open=new Proxy(window.XMLHttpRequest.prototype.open,{apply:async(target,thisArg,args)=>{let url=urlFromArg(args[1]);if(!(url.includes(\"player?key=\"))&&!(url.includes(\"watch?v=\"))){return Reflect.apply(target,thisArg,args);}thisArg.addEventListener(\"readystatechange\",function(){if(thisArg.readyState!==4){return;}const type=thisArg.responseType;if(type!==\"\"&&type!==\"text\"){return;}const textin=thisArg.responseText;const textout=pruner(textin,url);if(textout===textin){return;}Object.defineProperty(thisArg,\"response\",{value:textout});Object.defineProperty(thisArg,\"responseText\",{value:textout});});return Reflect.apply(target,thisArg,args);}}); $1'", "div[style=\"position: fixed; display: block; width: 100%; height: 100%; inset: 0px; background-color: rgba(0, 0, 0, 0); z-index: 300000;\"]", @@ -261,4 +261,4 @@ export default [ "x", "y", "z" -]; \ No newline at end of file +]; diff --git a/packages/adblocker/src/codebooks/network-csp.ts b/packages/adblocker/src/codebooks/network-csp.ts index bec8daebb4..af4672ac1b 100644 --- a/packages/adblocker/src/codebooks/network-csp.ts +++ b/packages/adblocker/src/codebooks/network-csp.ts @@ -5,7 +5,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -/* tslint:disable quotemark */ +/* eslint-disable prettier/prettier */ export default [ "sandbox allow-forms allow-same-origin allow-scripts allow-modals allow-orientation-lock allow-pointer-lock allow-presentation allow-top-navigation", "script-src 'self' 'unsafe-eval' http: https: data: blob: mediastream: filesystem:", @@ -108,4 +108,4 @@ export default [ "w", "x", "y" -]; \ No newline at end of file +]; diff --git a/packages/adblocker/src/codebooks/network-filter.ts b/packages/adblocker/src/codebooks/network-filter.ts index 5cdc20f68d..efa8db1070 100644 --- a/packages/adblocker/src/codebooks/network-filter.ts +++ b/packages/adblocker/src/codebooks/network-filter.ts @@ -5,7 +5,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -/* tslint:disable quotemark */ +/* eslint-disable prettier/prettier */ export default [ "\\/[a-d][-\\.\\/_A-Za-z][DHWXm][-\\.\\/_A-Za-z][59FVZ][-\\.\\/_A-Za-z][6swyz][-\\.\\/_A-Za-z][-\\/_0-9a-zA-Z][-\\.\\/_A-Za-z][-\\/_0-9a-zA-Z]{22,162}$/", "\\/(?=[\\/a-zA-Z]*[+0-9])(?=[+\\/0-9a-z]*[A-Z])[+\\/0-9a-zA-Z]{", @@ -261,4 +261,4 @@ export default [ "x", "y", "z" -]; \ No newline at end of file +]; diff --git a/packages/adblocker/src/codebooks/network-hostname.ts b/packages/adblocker/src/codebooks/network-hostname.ts index 883e6a9d1b..be04e80c83 100644 --- a/packages/adblocker/src/codebooks/network-hostname.ts +++ b/packages/adblocker/src/codebooks/network-hostname.ts @@ -5,7 +5,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -/* tslint:disable quotemark */ +/* eslint-disable prettier/prettier */ export default [ "securepubads.g.doubleclick.net", "googlesyndication", @@ -261,4 +261,4 @@ export default [ "x", "y", "z" -]; \ No newline at end of file +]; diff --git a/packages/adblocker/src/codebooks/network-redirect.ts b/packages/adblocker/src/codebooks/network-redirect.ts index 446ebce51c..f156794425 100644 --- a/packages/adblocker/src/codebooks/network-redirect.ts +++ b/packages/adblocker/src/codebooks/network-redirect.ts @@ -5,7 +5,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -/* tslint:disable quotemark */ +/* eslint-disable prettier/prettier */ export default [ "google-analytics.com/analytics.js", "googlesyndication_adsbygoogle.js", @@ -84,4 +84,4 @@ export default [ "x", "y", "z" -]; \ No newline at end of file +]; diff --git a/packages/adblocker/src/codebooks/raw-cosmetic.ts b/packages/adblocker/src/codebooks/raw-cosmetic.ts index 4da84c5c91..5f767acfd6 100644 --- a/packages/adblocker/src/codebooks/raw-cosmetic.ts +++ b/packages/adblocker/src/codebooks/raw-cosmetic.ts @@ -5,7 +5,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -/* tslint:disable quotemark */ +/* eslint-disable prettier/prettier */ export default [ ":style(display: block !imp", "+js(acs, addEventListener,", @@ -261,4 +261,4 @@ export default [ "x", "y", "z" -]; \ No newline at end of file +]; diff --git a/packages/adblocker/src/codebooks/raw-network.ts b/packages/adblocker/src/codebooks/raw-network.ts index 9961457c28..b83cfeb631 100644 --- a/packages/adblocker/src/codebooks/raw-network.ts +++ b/packages/adblocker/src/codebooks/raw-network.ts @@ -5,7 +5,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -/* tslint:disable quotemark */ +/* eslint-disable prettier/prettier */ export default [ "||imasdk.googleapis.com/js", "image,redirect-rule=1x1.gi", @@ -261,4 +261,4 @@ export default [ "x", "y", "z" -]; \ No newline at end of file +]; diff --git a/packages/adblocker/src/encoding.ts b/packages/adblocker/src/encoding.ts index a941336fc1..6d0d70726d 100644 --- a/packages/adblocker/src/encoding.ts +++ b/packages/adblocker/src/encoding.ts @@ -30,6 +30,7 @@ // From http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ const utf8d = new Uint8Array([ + /* eslint-disable prettier/prettier */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 00..1f 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 20..3f 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 40..5f @@ -44,6 +45,7 @@ const utf8d = new Uint8Array([ 1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1, // s3..s4 1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1, // s5..s6 1,3,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // s7..s8 + /* eslint-enable prettier/prettier */ ]); function isAscii(bytes: Uint8Array): boolean { diff --git a/packages/adblocker/src/filters/network.ts b/packages/adblocker/src/filters/network.ts index 84885cf935..b2325bcead 100644 --- a/packages/adblocker/src/filters/network.ts +++ b/packages/adblocker/src/filters/network.ts @@ -64,7 +64,8 @@ const NORMALIZE_OPTIONS: { [option: string]: string } = { * example `||foo.com$stylesheet,first-party,xhr` would be normalized to * `||foo.com$css,1p,xhr`. */ -const REGEX = /all|~third-party|~first-party|third-party|first-party|object-subrequest|stylesheet|subdocument|xmlhttprequest|document|generichide/g; +const REGEX = + /all|~third-party|~first-party|third-party|first-party|object-subrequest|stylesheet|subdocument|xmlhttprequest|document|generichide/g; export function normalizeRawFilterOptions(rawFilter: string): string { rawFilter = rawFilter.toLowerCase(); diff --git a/yarn.lock b/yarn.lock index 4e5a0979b5..5ecbe5784a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1491,6 +1491,20 @@ __metadata: languageName: node linkType: hard +"@pkgr/utils@npm:^2.3.1": + version: 2.4.2 + resolution: "@pkgr/utils@npm:2.4.2" + dependencies: + cross-spawn: ^7.0.3 + fast-glob: ^3.3.0 + is-glob: ^4.0.3 + open: ^9.1.0 + picocolors: ^1.0.0 + tslib: ^2.6.0 + checksum: 24e04c121269317d259614cd32beea3af38277151c4002df5883c4be920b8e3490bb897748e844f9d46bf68230f86dabd4e8f093773130e7e60529a769a132fc + languageName: node + linkType: hard + "@puppeteer/browsers@npm:1.7.1": version: 1.7.1 resolution: "@puppeteer/browsers@npm:1.7.1" @@ -2319,6 +2333,8 @@ __metadata: benchmark: ^2.1.4 chalk: ^5.3.0 eslint: ^8.49.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-prettier: ^5.0.0 lerna: ^7.3.0 patch-package: ^8.0.0 prettier: ^3.0.3 @@ -2720,6 +2736,13 @@ __metadata: languageName: node linkType: hard +"big-integer@npm:^1.6.44": + version: 1.6.51 + resolution: "big-integer@npm:1.6.51" + checksum: 3d444173d1b2e20747e2c175568bedeebd8315b0637ea95d75fd27830d3b8e8ba36c6af40374f36bdaea7b5de376dcada1b07587cb2a79a928fccdb6e6e3c518 + languageName: node + linkType: hard + "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -2752,6 +2775,15 @@ __metadata: languageName: node linkType: hard +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" + dependencies: + big-integer: ^1.6.44 + checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -2848,6 +2880,15 @@ __metadata: languageName: node linkType: hard +"bundle-name@npm:^3.0.0": + version: 3.0.0 + resolution: "bundle-name@npm:3.0.0" + dependencies: + run-applescript: ^5.0.0 + checksum: edf2b1fbe6096ed32e7566947ace2ea937ee427391744d7510a2880c4b9a5b3543d3f6c551236a29e5c87d3195f8e2912516290e638c15bcbede7b37cc375615 + languageName: node + linkType: hard + "byte-size@npm:8.1.1": version: 8.1.1 resolution: "byte-size@npm:8.1.1" @@ -3678,6 +3719,28 @@ __metadata: languageName: node linkType: hard +"default-browser-id@npm:^3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" + dependencies: + bplist-parser: ^0.2.0 + untildify: ^4.0.0 + checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 + languageName: node + linkType: hard + +"default-browser@npm:^4.0.0": + version: 4.0.0 + resolution: "default-browser@npm:4.0.0" + dependencies: + bundle-name: ^3.0.0 + default-browser-id: ^3.0.0 + execa: ^7.1.1 + titleize: ^3.0.0 + checksum: 40c5af984799042b140300be5639c9742599bda76dc9eba5ac9ad5943c83dd36cebc4471eafcfddf8e0ec817166d5ba89d56f08e66a126c7c7908a179cead1a7 + languageName: node + linkType: hard + "default-require-extensions@npm:^3.0.0": version: 3.0.1 resolution: "default-require-extensions@npm:3.0.1" @@ -3721,6 +3784,13 @@ __metadata: languageName: node linkType: hard +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6 + languageName: node + linkType: hard + "define-properties@npm:^1.1.3": version: 1.2.1 resolution: "define-properties@npm:1.2.1" @@ -4082,6 +4152,36 @@ __metadata: languageName: node linkType: hard +"eslint-config-prettier@npm:^9.0.0": + version: 9.0.0 + resolution: "eslint-config-prettier@npm:9.0.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 362e991b6cb343f79362bada2d97c202e5303e6865888918a7445c555fb75e4c078b01278e90be98aa98ae22f8597d8e93d48314bec6824f540f7efcab3ce451 + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-prettier@npm:5.0.0" + dependencies: + prettier-linter-helpers: ^1.0.0 + synckit: ^0.8.5 + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + prettier: ">=3.0.0" + peerDependenciesMeta: + "@types/eslint": + optional: true + eslint-config-prettier: + optional: true + checksum: 84e88744b9050f2d5ef31b94e85294dda16f3a53c2449f9d33eac8ae6264889b459bf35a68e438fb6b329c2a1d6491aac4bfa00d86317e7009de3dad0311bec6 + languageName: node + linkType: hard + "eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" @@ -4254,6 +4354,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^7.1.1": + version: 7.2.0 + resolution: "execa@npm:7.2.0" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.1 + human-signals: ^4.3.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^3.0.7 + strip-final-newline: ^3.0.0 + checksum: 14fd17ba0ca8c87b277584d93b1d9fc24f2a65e5152b31d5eb159a3b814854283eaae5f51efa9525e304447e2f757c691877f7adff8fde5746aae67eb1edd1cc + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -4296,6 +4413,13 @@ __metadata: languageName: node linkType: hard +"fast-diff@npm:^1.1.2": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 + languageName: node + linkType: hard + "fast-fifo@npm:^1.1.0, fast-fifo@npm:^1.2.0": version: 1.3.2 resolution: "fast-fifo@npm:1.3.2" @@ -4316,7 +4440,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.9": +"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": version: 3.3.1 resolution: "fast-glob@npm:3.3.1" dependencies: @@ -4786,7 +4910,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^6.0.0": +"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad @@ -5299,6 +5423,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^4.3.0": + version: 4.3.1 + resolution: "human-signals@npm:4.3.1" + checksum: 6f12958df3f21b6fdaf02d90896c271df00636a31e2bbea05bddf817a35c66b38a6fdac5863e2df85bd52f34958997f1f50350ff97249e1dff8452865d5235d1 + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -5558,6 +5689,15 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -5581,6 +5721,17 @@ __metadata: languageName: node linkType: hard +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: ^3.0.0 + bin: + is-inside-container: cli.js + checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -5692,6 +5843,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + languageName: node + linkType: hard + "is-text-path@npm:^1.0.1": version: 1.0.1 resolution: "is-text-path@npm:1.0.1" @@ -6574,6 +6732,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + languageName: node + linkType: hard + "mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -7229,6 +7394,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^5.1.0": + version: 5.1.0 + resolution: "npm-run-path@npm:5.1.0" + dependencies: + path-key: ^4.0.0 + checksum: dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 + languageName: node + linkType: hard + "npmlog@npm:^6.0.0, npmlog@npm:^6.0.2": version: 6.0.2 resolution: "npmlog@npm:6.0.2" @@ -7402,6 +7576,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: ^4.0.0 + checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + languageName: node + linkType: hard + "open@npm:^7.4.2": version: 7.4.2 resolution: "open@npm:7.4.2" @@ -7423,6 +7606,18 @@ __metadata: languageName: node linkType: hard +"open@npm:^9.1.0": + version: 9.1.0 + resolution: "open@npm:9.1.0" + dependencies: + default-browser: ^4.0.0 + define-lazy-prop: ^3.0.0 + is-inside-container: ^1.0.0 + is-wsl: ^2.2.0 + checksum: 3993c0f61d51fed8ac290e99c9c3cf45d3b6cfb3e2aa2b74cafd312c3486c22fd81df16ac8f3ab91dd8a4e3e729a16fc2480cfc406c4833416cf908acf1ae7c9 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -7820,6 +8015,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + languageName: node + linkType: hard + "path-parse@npm:^1.0.5, path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -7975,6 +8177,15 @@ __metadata: languageName: node linkType: hard +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: ^1.1.2 + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + languageName: node + linkType: hard + "prettier@npm:^3.0.3": version: 3.0.3 resolution: "prettier@npm:3.0.3" @@ -8618,6 +8829,15 @@ __metadata: languageName: node linkType: hard +"run-applescript@npm:^5.0.0": + version: 5.0.0 + resolution: "run-applescript@npm:5.0.0" + dependencies: + execa: ^5.0.0 + checksum: d00c2dbfa5b2d774de7451194b8b125f40f65fc183de7d9dcae97f57f59433586d3c39b9001e111c38bfa24c3436c99df1bb4066a2a0c90d39a8c4cd6889af77 + languageName: node + linkType: hard + "run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -9140,6 +9360,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + languageName: node + linkType: hard + "strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -9236,6 +9463,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:^0.8.5": + version: 0.8.5 + resolution: "synckit@npm:0.8.5" + dependencies: + "@pkgr/utils": ^2.3.1 + tslib: ^2.5.0 + checksum: 8a9560e5d8f3d94dc3cf5f7b9c83490ffa30d320093560a37b88f59483040771fd1750e76b9939abfbb1b5a23fd6dfbae77f6b338abffe7cae7329cd9b9bb86b + languageName: node + linkType: hard + "table-layout@npm:^1.0.2": version: 1.0.2 resolution: "table-layout@npm:1.0.2" @@ -9398,6 +9635,13 @@ __metadata: languageName: node linkType: hard +"titleize@npm:^3.0.0": + version: 3.0.0 + resolution: "titleize@npm:3.0.0" + checksum: 71fbbeabbfb36ccd840559f67f21e356e1d03da2915b32d2ae1a60ddcc13a124be2739f696d2feb884983441d159a18649e8d956648d591bdad35c430a6b6d28 + languageName: node + linkType: hard + "tldts-core@npm:^6.0.14": version: 6.0.14 resolution: "tldts-core@npm:6.0.14" @@ -9585,7 +9829,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0": +"tslib@npm:^2, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad @@ -9790,6 +10034,13 @@ __metadata: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + "upath@npm:2.0.1": version: 2.0.1 resolution: "upath@npm:2.0.1" From a2c559d39b000e403bce92228a7609de61ac2451 Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Mon, 18 Sep 2023 19:26:22 +0200 Subject: [PATCH 3/3] Lint adblocker/tools --- packages/adblocker/package.json | 2 +- packages/adblocker/tools/generate_compression_codebooks.ts | 1 + packages/adblocker/tools/priorities.ts | 2 +- packages/adblocker/tools/stress-test-engine-update.ts | 6 ++++-- packages/adblocker/tsconfig.json | 2 ++ 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/adblocker/package.json b/packages/adblocker/package.json index 90c5d18d01..78c7dfcfd9 100644 --- a/packages/adblocker/package.json +++ b/packages/adblocker/package.json @@ -24,7 +24,7 @@ }, "scripts": { "clean": "rimraf dist coverage", - "lint": "eslint src adblocker.ts", + "lint": "eslint src tools adblocker.ts", "build": "tsc --build ./tsconfig.json", "bundle": "tsc --build ./tsconfig.bundle.json && rollup --config ./rollup.config.ts --configPlugin typescript", "prepack": "yarn run bundle", diff --git a/packages/adblocker/tools/generate_compression_codebooks.ts b/packages/adblocker/tools/generate_compression_codebooks.ts index 8f16b8a75e..e7f72e1ef0 100644 --- a/packages/adblocker/tools/generate_compression_codebooks.ts +++ b/packages/adblocker/tools/generate_compression_codebooks.ts @@ -86,6 +86,7 @@ function validateCodebook(codebook: string[], strings: string[]): void { const compressed = smaz.compress(str); const original = smaz.decompress(compressed); if (original !== str) { + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions throw new Error(`Mismatch: ${str} vs. ${original} (compressed: ${compressed})`); } diff --git a/packages/adblocker/tools/priorities.ts b/packages/adblocker/tools/priorities.ts index bafb9bd062..019a6d0ab1 100644 --- a/packages/adblocker/tools/priorities.ts +++ b/packages/adblocker/tools/priorities.ts @@ -164,7 +164,7 @@ async function loadAllLists(): Promise { } } - for (const [name, count] of unsupported.entries().sort(([_1, c1], [_2, c2]) => c2 - c1)) { + for (const [name, count] of unsupported.entries().sort(([, c1], [, c2]) => c2 - c1)) { console.log(`+ ${name} = ${count}`); } diff --git a/packages/adblocker/tools/stress-test-engine-update.ts b/packages/adblocker/tools/stress-test-engine-update.ts index 702f6fef27..923bfd0ea1 100644 --- a/packages/adblocker/tools/stress-test-engine-update.ts +++ b/packages/adblocker/tools/stress-test-engine-update.ts @@ -70,7 +70,8 @@ function replacer(option: string): string { * example `||foo.com$stylesheet,first-party,xhr` would be normalized to * `||foo.com$css,1p,xhr`. */ -const REGEX = /third-party|first-party|object-subrequest|stylesheet|subdocument|xmlhttprequest|document/g; +const REGEX = + /third-party|first-party|object-subrequest|stylesheet|subdocument|xmlhttprequest|document/g; function normalizeFilters(rawFilter: string): string { if (rawFilter.startsWith('|http*://$')) { rawFilter = rawFilter.slice(9); @@ -183,7 +184,7 @@ async function getRevision(url: string): Promise { return cached; } - let data = (await axios.get(url)).data; + let data: string = (await axios.get(url)).data; if (!data.startsWith('[Ad')) { const buffer = Buffer.from( ( @@ -272,6 +273,7 @@ async function collectTestCases(list: string): Promise { const revisions: Set = new Set(); // Append current revision (the most recent one) + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access const previousRevisions = [...meta.revisions]; console.log('revisions', previousRevisions); diff --git a/packages/adblocker/tsconfig.json b/packages/adblocker/tsconfig.json index c7bc515a5e..9fcf22fd2c 100644 --- a/packages/adblocker/tsconfig.json +++ b/packages/adblocker/tsconfig.json @@ -11,6 +11,8 @@ ], "include": [ "./src/**/*.ts", + "./tools/**/*.ts", + "./test/**/*.ts", "./adblocker.ts" ] }