From b51cf3450fa93750cec29744797dfbb74be6ec6f Mon Sep 17 00:00:00 2001 From: Nodari Chkuaselidze Date: Wed, 2 Jul 2025 16:19:29 +0400 Subject: [PATCH] pkg: update deps, ci versions and linter. --- .eslintrc.json | 152 ----------------- .github/workflows/unit-test.yml | 8 +- .npmignore | 1 + bin/bns-keygen | 1 + eslint.config.cjs | 50 ++++++ lib/wire.js | 18 +- package-lock.json | 289 ++++++++++++++++++++++++++++++++ package.json | 19 ++- 8 files changed, 364 insertions(+), 174 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 eslint.config.cjs create mode 100644 package-lock.json diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 4db51ca..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "env": { - "es6": true, - "node": true - }, - "extends": "eslint:recommended", - "globals": { - "Atomics": "readable", - "BigInt": "readable", - "BigInt64Array": "readable", - "BigUint64Array": "readable", - "queueMicrotask": "readable", - "SharedArrayBuffer": "readable", - "TextEncoder": "readable", - "TextDecoder": "readable" - }, - "overrides": [ - { - "files": ["*.mjs"], - "parserOptions": { - "sourceType": "module" - } - }, - { - "files": ["*.cjs"], - "parserOptions": { - "sourceType": "script" - } - }, - { - "files": [ - "test/{,**/}*.{mjs,cjs,js}" - ], - "env": { - "mocha": true - }, - "globals": { - "register": "readable" - }, - "rules": { - "max-len": "off", - "prefer-arrow-callback": "off" - } - } - ], - "parser": "babel-eslint", - "parserOptions": { - "ecmaVersion": 10, - "ecmaFeatures": { - "globalReturn": true - }, - "requireConfigFile": false, - "sourceType": "script" - }, - "root": true, - "rules": { - "array-bracket-spacing": ["error", "never"], - "arrow-parens": ["error", "as-needed", { - "requireForBlockBody": true - }], - "arrow-spacing": "error", - "block-spacing": ["error", "always"], - "brace-style": ["error", "1tbs"], - "camelcase": ["error", { - "properties": "never" - }], - "comma-dangle": ["error", "never"], - "consistent-return": "error", - "eol-last": ["error", "always"], - "eqeqeq": ["error", "always", { - "null": "ignore" - }], - "func-name-matching": "error", - "indent": ["off", 2, { - "ArrayExpression": "off", - "SwitchCase": 1, - "CallExpression": { - "arguments": "off" - }, - "FunctionDeclaration": { - "parameters": "off" - }, - "FunctionExpression": { - "parameters": "off" - }, - "MemberExpression": "off", - "ObjectExpression": "off", - "ImportDeclaration": "off" - }], - "handle-callback-err": "off", - "linebreak-style": ["error", "unix"], - "max-len": ["error", { - "code": 80, - "ignorePattern": "function \\w+\\(", - "ignoreUrls": true - }], - "max-statements-per-line": ["error", { - "max": 1 - }], - "new-cap": ["error", { - "newIsCap": true, - "capIsNew": false - }], - "new-parens": "error", - "no-buffer-constructor": "error", - "no-console": "off", - "no-extra-semi": "off", - "no-fallthrough": "off", - "no-func-assign": "off", - "no-implicit-coercion": "error", - "no-multi-assign": "error", - "no-multiple-empty-lines": ["error", { - "max": 1 - }], - "no-nested-ternary": "error", - "no-param-reassign": "off", - "no-return-assign": "error", - "no-return-await": "off", - "no-shadow-restricted-names": "error", - "no-tabs": "error", - "no-trailing-spaces": "error", - "no-unused-vars": ["error", { - "vars": "all", - "args": "none", - "ignoreRestSiblings": false - }], - "no-use-before-define": ["error", { - "functions": false, - "classes": false - }], - "no-useless-escape": "off", - "no-var": "error", - "nonblock-statement-body-position": ["error", "below"], - "padded-blocks": ["error", "never"], - "prefer-arrow-callback": "error", - "prefer-const": ["error", { - "destructuring": "all", - "ignoreReadBeforeAssign": true - }], - "prefer-template": "off", - "quotes": ["error", "single"], - "semi": ["error", "always"], - "spaced-comment": ["error", "always", { - "exceptions": ["!"] - }], - "space-before-blocks": "error", - "strict": "error", - "unicode-bom": ["error", "never"], - "valid-jsdoc": "error", - "wrap-iife": ["error", "inside"] - } -} diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 2cf17c2..cecc117 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -12,11 +12,11 @@ jobs: strategy: matrix: - node_version: [10.x, 12.x, 14.x] + node_version: [16.x, 18.x, 20.x, 24.x] steps: - name: Checkout Unbound - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: repository: nlnetlabs/unbound path: ub @@ -29,10 +29,10 @@ jobs: sudo ldconfig - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Setup - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 - name: Install run: npm install diff --git a/.npmignore b/.npmignore index 67d7010..5b50b3d 100644 --- a/.npmignore +++ b/.npmignore @@ -15,3 +15,4 @@ package-lock.json test/ webpack.*.js yarn.lock +eslint.config.cjs diff --git a/bin/bns-keygen b/bin/bns-keygen index f8a705b..c8cb886 100755 --- a/bin/bns-keygen +++ b/bin/bns-keygen @@ -68,6 +68,7 @@ for (let i = 2; i < process.argv.length; i++) { } case '-f': { + // eslint-disable-next-line no-prototype-builtins if (!keyFlags.hasOwnProperty(next)) throw new Error('Unknown flag.'); diff --git a/eslint.config.cjs b/eslint.config.cjs new file mode 100644 index 0000000..0d399e3 --- /dev/null +++ b/eslint.config.cjs @@ -0,0 +1,50 @@ +'use strict'; + +const rc = require('bslintrc'); + +module.exports = [ + rc.configs.recommended, + rc.configs.bcoin, + { + languageOptions: { + globals: { + ...rc.globals.node + }, + ecmaVersion: 'latest' + } + }, + { + files: [ + 'bin/bns-keygen', + 'bin/bns-prove', + 'bin/dig.js', + 'bin/dig2json', + 'bin/json2dig', + 'bin/json2rr', + 'bin/json2zone', + 'bin/named.js', + 'bin/read.js', + 'bin/rr2json', + 'bin/whois.js', + 'bin/zone2json', + '**/*.js', + '*.js' + ], + languageOptions: { + sourceType: 'commonjs' + } + }, + { + files: ['test/{,**/}*.{js,cjs,mjs}'], + languageOptions: { + globals: { + ...rc.globals.mocha, + register: 'readable' + } + }, + rules: { + 'max-len': 'off', + 'prefer-arrow-callback': 'off' + } + } +]; diff --git a/lib/wire.js b/lib/wire.js index 2804510..9a11dc1 100644 --- a/lib/wire.js +++ b/lib/wire.js @@ -272,7 +272,7 @@ class Message extends Struct { } set qr(value) { - return this.setFlag(flags.QR, value); + this.setFlag(flags.QR, value); } get aa() { @@ -280,7 +280,7 @@ class Message extends Struct { } set aa(value) { - return this.setFlag(flags.AA, value); + this.setFlag(flags.AA, value); } get tc() { @@ -288,7 +288,7 @@ class Message extends Struct { } set tc(value) { - return this.setFlag(flags.TC, value); + this.setFlag(flags.TC, value); } get rd() { @@ -296,7 +296,7 @@ class Message extends Struct { } set rd(value) { - return this.setFlag(flags.RD, value); + this.setFlag(flags.RD, value); } get ra() { @@ -304,7 +304,7 @@ class Message extends Struct { } set ra(value) { - return this.setFlag(flags.RA, value); + this.setFlag(flags.RA, value); } get z() { @@ -312,7 +312,7 @@ class Message extends Struct { } set z(value) { - return this.setFlag(flags.Z, value); + this.setFlag(flags.Z, value); } get ad() { @@ -320,7 +320,7 @@ class Message extends Struct { } set ad(value) { - return this.setFlag(flags.AD, value); + this.setFlag(flags.AD, value); } get cd() { @@ -328,7 +328,7 @@ class Message extends Struct { } set cd(value) { - return this.setFlag(flags.CD, value); + this.setFlag(flags.CD, value); } get qd() { @@ -1447,7 +1447,7 @@ class EDNS extends Struct { } set dnssec(value) { - return this.setFlag(eflags.DO, value); + this.setFlag(eflags.DO, value); } set(code, option) { diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0d1dde2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,289 @@ +{ + "name": "bns", + "version": "0.15.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "bns", + "version": "0.15.0", + "license": "MIT", + "dependencies": { + "bcrypto": "~5.5.2", + "bfile": "~0.2.3", + "bheep": "~0.1.6", + "binet": "~0.3.9", + "bs32": "~0.1.7", + "bsert": "~0.0.13", + "btcp": "~0.1.5", + "budp": "~0.1.6", + "bufio": "~1.2.3" + }, + "bin": { + "bns-keygen": "bin/bns-keygen", + "bns-prove": "bin/bns-prove", + "dig.js": "bin/dig.js", + "dig2json": "bin/dig2json", + "json2dig": "bin/json2dig", + "json2rr": "bin/json2rr", + "json2zone": "bin/json2zone", + "named.js": "bin/named.js", + "rr2json": "bin/rr2json", + "whois.js": "bin/whois.js", + "zone2json": "bin/zone2json" + }, + "devDependencies": { + "bmocha": "^2.2.1", + "bslintrc": "^0.0.3" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "unbound": "~0.4.3" + } + }, + "node_modules/bcrypto": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/bcrypto/-/bcrypto-5.5.2.tgz", + "integrity": "sha512-k3PF755oJM0+25iOVuraNedF5XneykxRwl+oBoMeQPfYee4qX8hHQhKCsNZWLthNYgi41GH2ysopd/8sDQDhEw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bufio": "~1.0.7", + "loady": "~0.0.5" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bcrypto/node_modules/bufio": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.7.tgz", + "integrity": "sha512-bd1dDQhiC+bEbEfg56IdBv7faWa6OipMs/AFFFvtFnB3wAYjlwQpQRZ0pm6ZkgtfL0pILRXhKxOiQj6UzoMR7A==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bfile": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/bfile/-/bfile-0.2.3.tgz", + "integrity": "sha512-BhbmCLqDC+u8rPSeB/I8bRC8luQoUt+wD326CECXYXtE5GyTWL/q/OkNp58aH7XEREguEItvqM18s9vXLvg6fw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bheep": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/bheep/-/bheep-0.1.6.tgz", + "integrity": "sha512-u44Xgb0Rr+Y/1chKqiUSY44mpBCglDxnapyfA6mssbJE+C7iyAPY4r8WMPqmdvZPYk7EU3ogbt4pKDItDMU87A==", + "license": "MIT", + "dependencies": { + "bsert": "~0.0.12" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/binet": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/binet/-/binet-0.3.9.tgz", + "integrity": "sha512-htptPuT5YTTRThIQAuWyCo+rIvXwAC+CrUq40ldhKHBPbZoMb76SBkI8NtvLkWussJr+lnR5Mc0rh1dpNBrBPg==", + "license": "MIT", + "dependencies": { + "bs32": "~0.1.7", + "bsert": "~0.0.12" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bmocha": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bmocha/-/bmocha-2.2.1.tgz", + "integrity": "sha512-gzyrUTo5ZnPHk2I45E2iO9z4HAVYIfGepJQ4DaXU1pSi4lI2dsPadAdnKSj3cJjnzX3yDxQdGyrc3HNH5bUEfw==", + "dev": true, + "license": "MIT", + "bin": { + "_bmocha": "bin/_bmocha", + "bmocha": "bin/bmocha" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bs32": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/bs32/-/bs32-0.1.7.tgz", + "integrity": "sha512-I0aKZCBneFTkcVNUIALzsOevqPIF93ynGPX6wj6pXmIBpXVGCqTgdvMx2QyR/NwgOIqMLH++Ovyum28abVG6QA==", + "license": "MIT", + "dependencies": { + "bsert": "~0.0.10" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bsert": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/bsert/-/bsert-0.0.13.tgz", + "integrity": "sha512-gYzSj8I2lDTKvl4aRSYs2CZIpeJugq7RjGhLRG+Jl//gEW5B2u1MKB6exVCL09FqYj6JRQAAgRwQHMOWvr7A8A==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bslintrc": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bslintrc/-/bslintrc-0.0.3.tgz", + "integrity": "sha512-h95ityvrnwr5fMgX7OjyOqYXIRjWXKcZB/+RhkaKuoGlgNUOAkYnPaF5DYJ+BO6WfWkKsLeZfFWq0gU8OfWhpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/btcp": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/btcp/-/btcp-0.1.5.tgz", + "integrity": "sha512-tkrtMDxeJorn5p0KxaLXELneT8AbfZMpOFeoKYZ5qCCMMSluNuwut7pGccLC5YOJqmuk0DR774vNVQLC9sNq/A==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/budp": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/budp/-/budp-0.1.6.tgz", + "integrity": "sha512-o+a8NPq3DhV91j4nInjht2md6mbU1XL+7ciPltP66rw5uD3KP1m5r8lA94LZVaPKcFdJ0l2HVVzRNxnY26Pefg==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bufio": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.3.tgz", + "integrity": "sha512-5Tt66bRzYUSlVZatc0E92uDenreJ+DpTBmSAUwL4VSxJn3e6cUyYwx+PoqML0GRZatgA/VX8ybhxItF8InZgqA==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/loady": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", + "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/unbound": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/unbound/-/unbound-0.4.3.tgz", + "integrity": "sha512-2ISqZLXtzp1l9f1V8Yr6S+zuhXxEwE1CjKHjXULFDHJcfhc9Gm3mn19hdPp4rlNGEdCivKYGKjYe3WRGnafYdA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "loady": "~0.0.5" + }, + "engines": { + "node": ">=8.0.0" + } + } + }, + "dependencies": { + "bcrypto": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/bcrypto/-/bcrypto-5.5.2.tgz", + "integrity": "sha512-k3PF755oJM0+25iOVuraNedF5XneykxRwl+oBoMeQPfYee4qX8hHQhKCsNZWLthNYgi41GH2ysopd/8sDQDhEw==", + "requires": { + "bufio": "~1.0.7", + "loady": "~0.0.5" + }, + "dependencies": { + "bufio": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.7.tgz", + "integrity": "sha512-bd1dDQhiC+bEbEfg56IdBv7faWa6OipMs/AFFFvtFnB3wAYjlwQpQRZ0pm6ZkgtfL0pILRXhKxOiQj6UzoMR7A==" + } + } + }, + "bfile": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/bfile/-/bfile-0.2.3.tgz", + "integrity": "sha512-BhbmCLqDC+u8rPSeB/I8bRC8luQoUt+wD326CECXYXtE5GyTWL/q/OkNp58aH7XEREguEItvqM18s9vXLvg6fw==" + }, + "bheep": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/bheep/-/bheep-0.1.6.tgz", + "integrity": "sha512-u44Xgb0Rr+Y/1chKqiUSY44mpBCglDxnapyfA6mssbJE+C7iyAPY4r8WMPqmdvZPYk7EU3ogbt4pKDItDMU87A==", + "requires": { + "bsert": "~0.0.12" + } + }, + "binet": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/binet/-/binet-0.3.9.tgz", + "integrity": "sha512-htptPuT5YTTRThIQAuWyCo+rIvXwAC+CrUq40ldhKHBPbZoMb76SBkI8NtvLkWussJr+lnR5Mc0rh1dpNBrBPg==", + "requires": { + "bs32": "~0.1.7", + "bsert": "~0.0.12" + } + }, + "bmocha": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bmocha/-/bmocha-2.2.1.tgz", + "integrity": "sha512-gzyrUTo5ZnPHk2I45E2iO9z4HAVYIfGepJQ4DaXU1pSi4lI2dsPadAdnKSj3cJjnzX3yDxQdGyrc3HNH5bUEfw==", + "dev": true + }, + "bs32": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/bs32/-/bs32-0.1.7.tgz", + "integrity": "sha512-I0aKZCBneFTkcVNUIALzsOevqPIF93ynGPX6wj6pXmIBpXVGCqTgdvMx2QyR/NwgOIqMLH++Ovyum28abVG6QA==", + "requires": { + "bsert": "~0.0.10" + } + }, + "bsert": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/bsert/-/bsert-0.0.13.tgz", + "integrity": "sha512-gYzSj8I2lDTKvl4aRSYs2CZIpeJugq7RjGhLRG+Jl//gEW5B2u1MKB6exVCL09FqYj6JRQAAgRwQHMOWvr7A8A==" + }, + "bslintrc": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bslintrc/-/bslintrc-0.0.3.tgz", + "integrity": "sha512-h95ityvrnwr5fMgX7OjyOqYXIRjWXKcZB/+RhkaKuoGlgNUOAkYnPaF5DYJ+BO6WfWkKsLeZfFWq0gU8OfWhpQ==", + "dev": true + }, + "btcp": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/btcp/-/btcp-0.1.5.tgz", + "integrity": "sha512-tkrtMDxeJorn5p0KxaLXELneT8AbfZMpOFeoKYZ5qCCMMSluNuwut7pGccLC5YOJqmuk0DR774vNVQLC9sNq/A==" + }, + "budp": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/budp/-/budp-0.1.6.tgz", + "integrity": "sha512-o+a8NPq3DhV91j4nInjht2md6mbU1XL+7ciPltP66rw5uD3KP1m5r8lA94LZVaPKcFdJ0l2HVVzRNxnY26Pefg==" + }, + "bufio": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.3.tgz", + "integrity": "sha512-5Tt66bRzYUSlVZatc0E92uDenreJ+DpTBmSAUwL4VSxJn3e6cUyYwx+PoqML0GRZatgA/VX8ybhxItF8InZgqA==" + }, + "loady": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", + "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==" + }, + "unbound": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/unbound/-/unbound-0.4.3.tgz", + "integrity": "sha512-2ISqZLXtzp1l9f1V8Yr6S+zuhXxEwE1CjKHjXULFDHJcfhc9Gm3mn19hdPp4rlNGEdCivKYGKjYe3WRGnafYdA==", + "optional": true, + "requires": { + "loady": "~0.0.5" + } + } + } +} diff --git a/package.json b/package.json index e0c0978..31b47e4 100644 --- a/package.json +++ b/package.json @@ -30,27 +30,28 @@ "whois.js": "./bin/whois.js" }, "scripts": { - "lint": "eslint bin/* lib/ test/ || exit 0", + "lint": "eslint bin/* lib/ test/", "test": "bmocha --reporter spec test/*-test.js", "test-browser": "bmocha -H --reporter spec test/*-test.js", "test-file": "bmocha --reporter spec" }, "dependencies": { - "bcrypto": "~5.4.0", - "bfile": "~0.2.2", - "bheep": "~0.1.5", - "binet": "~0.3.6", - "bs32": "~0.1.6", - "bsert": "~0.0.10", + "bcrypto": "~5.5.2", + "bfile": "~0.2.3", + "bheep": "~0.1.6", + "binet": "~0.3.9", + "bs32": "~0.1.7", + "bsert": "~0.0.13", "btcp": "~0.1.5", "budp": "~0.1.6", - "bufio": "~1.0.7" + "bufio": "~1.2.3" }, "optionalDependencies": { "unbound": "~0.4.3" }, "devDependencies": { - "bmocha": "^2.1.5" + "bmocha": "^2.2.1", + "bslintrc": "^0.0.3" }, "engines": { "node": ">=8.0.0"