diff --git a/.eslintrc.js b/.eslintrc.js index c7a5191..de9c491 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -104,6 +104,7 @@ module.exports = { ], 'jsdoc/require-param-type': 0, 'jsdoc/require-returns-type': 0, + 'jsdoc/tag-lines': 0, 'jsdoc/valid-types': 1, 'no-underscore-dangle': 0, 'no-shadow': 0, diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index b44dcd3..d716f6e 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -18,7 +18,7 @@ jobs: token: ${{ secrets.CI_TOKEN }} - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 22 - run: yarn install - run: yarn build - run: npx semantic-release diff --git a/.github/workflows/pull-request-checks.yml b/.github/workflows/pull-request-checks.yml index 59e8b6b..6373a22 100644 --- a/.github/workflows/pull-request-checks.yml +++ b/.github/workflows/pull-request-checks.yml @@ -7,7 +7,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: '16' + node-version: 22 - run: yarn install - run: yarn test:lint - - run: yarn test:coverage \ No newline at end of file + - run: yarn test:coverage diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..8fdd954 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22 \ No newline at end of file diff --git a/package.json b/package.json index a77f97e..51465b6 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,11 @@ "keywords": [], "author": "", "license": "ISC", + "engines": { + "node": ">=22.0.0", + "npm": "please-use-yarn", + "yarn": ">=1.22.0" + }, "lint-staged": { "*.ts": [ "prettier --write", @@ -69,7 +74,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-jest": "^25.3.4", - "eslint-plugin-jsdoc": "^37.6.1", + "eslint-plugin-jsdoc": "^43.0.0", "eslint-plugin-prettier": "^4.0.0", "husky": "^7.0.4", "jest": "^27.4.7", @@ -85,6 +90,7 @@ "ts-jest": "^27.1.2", "typedoc": "^0.22.10", "typescript": "^4.5.4", - "yarn": "^1.22.19" - } + "yarn": "^1.22.22" + }, + "packageManager": "yarn@1.22.22" } diff --git a/yarn.lock b/yarn.lock index 007669a..5e4f700 100644 --- a/yarn.lock +++ b/yarn.lock @@ -704,14 +704,14 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@es-joy/jsdoccomment@~0.20.1": - version "0.20.1" - resolved "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz" - integrity sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ== +"@es-joy/jsdoccomment@~0.38.0": + version "0.38.0" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.38.0.tgz#2e74f8d824b4a4ec831eaabd4c3548fb11eae5cd" + integrity sha512-TFac4Bnv0ZYNkEeDnOWHQhaS1elWlvOCQxH06iHeu5iffs+hCaLVIZJwF+FqksQi68R4i66Pu+4DfFGvble+Uw== dependencies: - comment-parser "1.3.0" - esquery "^1.4.0" - jsdoc-type-pratt-parser "~2.2.3" + comment-parser "1.3.1" + esquery "^1.5.0" + jsdoc-type-pratt-parser "~4.0.0" "@eslint/eslintrc@^1.3.0": version "1.3.0" @@ -1845,6 +1845,11 @@ archy@~1.0.0: resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== +are-docs-informative@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/are-docs-informative/-/are-docs-informative-0.0.2.tgz#387f0e93f5d45280373d387a59d34c96db321963" + integrity sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== + are-we-there-yet@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz" @@ -2364,10 +2369,10 @@ comment-json@^4.2.2: has-own-prop "^2.0.0" repeat-string "^1.6.1" -comment-parser@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz" - integrity sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA== +comment-parser@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" + integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== common-ancestor-path@^1.0.1: version "1.0.1" @@ -3013,18 +3018,18 @@ eslint-plugin-jest@^25.3.4: dependencies: "@typescript-eslint/experimental-utils" "^5.0.0" -eslint-plugin-jsdoc@^37.6.1: - version "37.9.7" - resolved "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz" - integrity sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g== +eslint-plugin-jsdoc@^43.0.0: + version "43.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-43.2.0.tgz#9d0df2329100a6956635f26211d0723c3ff91f15" + integrity sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ== dependencies: - "@es-joy/jsdoccomment" "~0.20.1" - comment-parser "1.3.0" - debug "^4.3.3" + "@es-joy/jsdoccomment" "~0.38.0" + are-docs-informative "^0.0.2" + comment-parser "1.3.1" + debug "^4.3.4" escape-string-regexp "^4.0.0" - esquery "^1.4.0" - regextras "^0.8.0" - semver "^7.3.5" + esquery "^1.5.0" + semver "^7.5.0" spdx-expression-parse "^3.0.1" eslint-plugin-prettier@^4.0.0: @@ -3129,6 +3134,13 @@ esquery@^1.4.0: dependencies: estraverse "^5.1.0" +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" @@ -4533,10 +4545,10 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdoc-type-pratt-parser@~2.2.3: - version "2.2.5" - resolved "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz" - integrity sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw== +jsdoc-type-pratt-parser@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" + integrity sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ== jsdom@^16.6.0: version "16.7.0" @@ -6121,11 +6133,6 @@ regexpp@^3.2.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regextras@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz" - integrity sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ== - registry-auth-token@^4.0.0: version "4.2.2" resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz" @@ -6343,6 +6350,11 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.5.0: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" @@ -7375,10 +7387,10 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.0.0" -yarn@^1.22.19: - version "1.22.19" - resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz" - integrity sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ== +yarn@^1.22.22: + version "1.22.22" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz#ac34549e6aa8e7ead463a7407e1c7390f61a6610" + integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg== yn@3.1.1: version "3.1.1"