diff --git a/.github/actions/docusaurus-swizzled-warning/package-lock.json b/.github/actions/docusaurus-swizzled-warning/package-lock.json index caf4c6ed8e83c..9ea748cc35577 100644 --- a/.github/actions/docusaurus-swizzled-warning/package-lock.json +++ b/.github/actions/docusaurus-swizzled-warning/package-lock.json @@ -205,9 +205,9 @@ } }, "node_modules/undici": { - "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dependencies": { "@fastify/busboy": "^2.0.0" }, diff --git a/core/base-service/coalesce.spec.js b/core/base-service/coalesce.spec.js index 361f2bd8a7d32..caafc31490374 100644 --- a/core/base-service/coalesce.spec.js +++ b/core/base-service/coalesce.spec.js @@ -6,7 +6,7 @@ import coalesce from './coalesce.js' // https://github.com/royriojas/coalescy for these tests! describe('coalesce', function () { - test(coalesce, function () { + test(coalesce, () => { given().expect(undefined) given(null, []).expect([]) given(null, [], {}).expect([]) diff --git a/package-lock.json b/package-lock.json index 3151ae311d6e9..d84a96ea81ebf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,9 @@ "version": "0.0.0", "license": "CC0-1.0", "dependencies": { - "@renovatebot/pep440": "^3.0.19", + "@renovatebot/pep440": "^3.0.20", "@renovatebot/ruby-semver": "^3.0.23", - "@sentry/node": "^7.109.0", + "@sentry/node": "^7.111.0", "@shields_io/camp": "^18.1.2", "@xmldom/xmldom": "0.8.10", "badge-maker": "file:badge-maker", @@ -32,7 +32,7 @@ "got": "^14.2.1", "graphql": "16.8.1", "graphql-tag": "^2.12.6", - "joi": "17.12.2", + "joi": "17.12.3", "joi-extension-semver": "5.0.0", "js-yaml": "^4.1.0", "jsonpath": "~1.1.1", @@ -41,27 +41,27 @@ "lodash.times": "^4.3.2", "matcher": "^5.0.0", "node-env-flag": "^0.1.0", - "node-pg-migrate": "^6.2.2", + "node-pg-migrate": "^7.0.0", "parse-link-header": "^2.0.0", - "path-to-regexp": "^6.2.1", - "pg": "^8.11.3", + "path-to-regexp": "^6.2.2", + "pg": "^8.11.5", "pretty-bytes": "^6.1.1", "priorityqueuejs": "^2.0.0", - "prom-client": "^15.1.1", - "qs": "^6.12.0", + "prom-client": "^15.1.2", + "qs": "^6.12.1", "query-string": "^9.0.0", "semver": "~7.6.0", - "simple-icons": "11.10.0", + "simple-icons": "11.12.0", "smol-toml": "1.1.4", "svg-path-commander": "^2.0.9", - "webextension-store-meta": "^1.1.0", + "webextension-store-meta": "^1.2.1", "xpath": "~0.0.34" }, "devDependencies": { "@docusaurus/core": "^3.1.1", "@easyops-cn/docusaurus-search-local": "^0.40.1", "@mdx-js/react": "^3.0.1", - "@typescript-eslint/parser": "^7.4.0", + "@typescript-eslint/parser": "^7.7.0", "c8": "^9.1.0", "caller": "^1.1.0", "chai": "^4.4.1", @@ -71,9 +71,9 @@ "child-process-promise": "^2.2.1", "clsx": "^2.1.0", "concurrently": "^8.2.2", - "cypress": "^13.7.1", + "cypress": "^13.8.0", "cypress-wait-for-stable-dom": "^0.1.0", - "danger": "^11.3.1", + "danger": "^12.1.0", "deepmerge": "^4.3.1", "docusaurus-preset-openapi": "0.7.3", "eslint": "8.57.0", @@ -82,11 +82,11 @@ "eslint-config-standard-jsx": "11.0.0", "eslint-config-standard-react": "13.0.0", "eslint-plugin-chai-friendly": "^0.7.4", - "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-icedfrisby": "^0.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jsdoc": "^48.2.2", - "eslint-plugin-mocha": "^10.4.1", + "eslint-plugin-jsdoc": "^48.2.3", + "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-no-extension-in-require": "^0.2.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "6.1.1", @@ -123,7 +123,7 @@ "sinon-chai": "^3.7.0", "snap-shot-it": "^7.9.10", "start-server-and-test": "2.0.3", - "tsd": "^0.30.7", + "tsd": "^0.31.0", "url": "^0.11.3" }, "engines": { @@ -3459,239 +3459,43 @@ "dev": true }, "node_modules/@gitbeaker/core": { - "version": "35.8.1", - "resolved": "https://registry.npmjs.org/@gitbeaker/core/-/core-35.8.1.tgz", - "integrity": "sha512-KBrDykVKSmU9Q9Gly8KeHOgdc0lZSa435srECxuO0FGqqBcUQ82hPqUc13YFkkdOI9T1JRA3qSFajg8ds0mZKA==", + "version": "38.12.1", + "resolved": "https://registry.npmjs.org/@gitbeaker/core/-/core-38.12.1.tgz", + "integrity": "sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==", "dev": true, "dependencies": { - "@gitbeaker/requester-utils": "^35.8.1", - "form-data": "^4.0.0", - "li": "^1.3.0", - "mime": "^3.0.0", - "query-string": "^7.0.0", + "@gitbeaker/requester-utils": "^38.12.1", + "qs": "^6.11.1", "xcase": "^2.0.1" }, "engines": { - "node": ">=14.2.0" - } - }, - "node_modules/@gitbeaker/core/node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@gitbeaker/core/node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@gitbeaker/core/node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@gitbeaker/core/node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dev": true, - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@gitbeaker/core/node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "dev": true, - "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@gitbeaker/node": { - "version": "35.8.1", - "resolved": "https://registry.npmjs.org/@gitbeaker/node/-/node-35.8.1.tgz", - "integrity": "sha512-g6rX853y61qNhzq9cWtxIEoe2KDeFBtXAeWMGWJnc3nz3WRump2pIICvJqw/yobLZqmTNt+ea6w3/n92Mnbn3g==", - "deprecated": "Please use its successor @gitbeaker/rest", + "node_modules/@gitbeaker/requester-utils": { + "version": "38.12.1", + "resolved": "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-38.12.1.tgz", + "integrity": "sha512-Rc/DgngS0YPN+AY1s9UnexKSy4Lh0bkQVAq9p7PRbRpXb33SlTeCg8eg/8+A/mrMcHgYmP0XhH8lkizyA5tBUQ==", "dev": true, "dependencies": { - "@gitbeaker/core": "^35.8.1", - "@gitbeaker/requester-utils": "^35.8.1", - "delay": "^5.0.0", - "got": "^11.8.3", + "qs": "^6.11.1", "xcase": "^2.0.1" }, "engines": { - "node": ">=14.2.0" - } - }, - "node_modules/@gitbeaker/node/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@gitbeaker/node/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@gitbeaker/node/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/@gitbeaker/node/node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@gitbeaker/node/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@gitbeaker/node/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/@gitbeaker/node/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@gitbeaker/node/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@gitbeaker/node/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@gitbeaker/node/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18.0.0" } }, - "node_modules/@gitbeaker/requester-utils": { - "version": "35.8.1", - "resolved": "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-35.8.1.tgz", - "integrity": "sha512-MFzdH+Z6eJaCZA5ruWsyvm6SXRyrQHjYVR6aY8POFraIy7ceIHOprWCs1R+0ydDZ8KtBnd8OTHjlJ0sLtSFJCg==", + "node_modules/@gitbeaker/rest": { + "version": "38.12.1", + "resolved": "https://registry.npmjs.org/@gitbeaker/rest/-/rest-38.12.1.tgz", + "integrity": "sha512-9KMSDtJ/sIov+5pcH+CAfiJXSiuYgN0KLKQFg0HHWR2DwcjGYkcbmhoZcWsaOWOqq4kihN1l7wX91UoRxxKKTQ==", "dev": true, "dependencies": { - "form-data": "^4.0.0", - "qs": "^6.10.1", - "xcase": "^2.0.1" + "@gitbeaker/core": "^38.12.1", + "@gitbeaker/requester-utils": "^38.12.1" }, "engines": { - "node": ">=14.2.0" + "node": ">=18.0.0" } }, "node_modules/@hapi/address": { @@ -4605,9 +4409,9 @@ } }, "node_modules/@renovatebot/pep440": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@renovatebot/pep440/-/pep440-3.0.19.tgz", - "integrity": "sha512-Y5/rKFwQUPZJOEMmCLqQ1TFJ1v/lN88wGLPzcwKxzgiBWZUVZD47sppV9aObguSmeOni1uEg3wz0I/jqHSP+XA==", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/@renovatebot/pep440/-/pep440-3.0.20.tgz", + "integrity": "sha512-Jw8jzHh2r1LAPTrjQlIwh/+8J3N2MqXZgPuTt6HdNeJIBjJskV8bsEfGs9rBzXi/omeHob3BXnvlECu2rCCUYw==", "engines": { "node": "^18.12.0 || >= 20.0.0", "pnpm": "^8.6.11" @@ -4623,58 +4427,58 @@ } }, "node_modules/@sentry-internal/tracing": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.109.0.tgz", - "integrity": "sha512-PzK/joC5tCuh2R/PRh+7dp+uuZl7pTsBIjPhVZHMTtb9+ls65WkdZJ1/uKXPouyz8NOo9Xok7aEvEo9seongyw==", + "version": "7.111.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.111.0.tgz", + "integrity": "sha512-CgXly8rsdu4loWVKi2RqpInH3C2cVBuaYsx4ZP5IJpzSinsUAMyyr3Pc0PZzCyoVpBBXGBGj/4HhFsY3q6Z0Vg==", "dependencies": { - "@sentry/core": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry/core": "7.111.0", + "@sentry/types": "7.111.0", + "@sentry/utils": "7.111.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/core": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.109.0.tgz", - "integrity": "sha512-xwD4U0IlvvlE/x/g/W1I8b4Cfb16SsCMmiEuBf6XxvAa3OfWBxKoqLifb3GyrbxMC4LbIIZCN/SvLlnGJPgszA==", + "version": "7.111.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.111.0.tgz", + "integrity": "sha512-/ljeMjZu8CSrLGrseBi/7S2zRIFsqMcvfyG6Nwgfc07J9nbHt8/MqouE1bXZfiaILqDBpK7BK9MLAAph4mkAWg==", "dependencies": { - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry/types": "7.111.0", + "@sentry/utils": "7.111.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/node": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.109.0.tgz", - "integrity": "sha512-tqMNAES4X/iBl1eZRCmc29p//0id01FBLEiesNo5nk6ECl6/SaGMFAEwu1gsn90h/Bjgr04slwFOS4cR45V2PQ==", + "version": "7.111.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.111.0.tgz", + "integrity": "sha512-bTLZNETT7W89HEk04rwsch02KSpu++Yec/BEyM3AxUNY+ZQ9ZLL/lrNZuCwbe7fURpKoZrvGAhxpPjgs5UcB9w==", "dependencies": { - "@sentry-internal/tracing": "7.109.0", - "@sentry/core": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry-internal/tracing": "7.111.0", + "@sentry/core": "7.111.0", + "@sentry/types": "7.111.0", + "@sentry/utils": "7.111.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.109.0.tgz", - "integrity": "sha512-egCBnDv3YpVFoNzRLdP0soVrxVLCQ+rovREKJ1sw3rA2/MFH9WJ+DZZexsX89yeAFzy1IFsCp7/dEqudusml6g==", + "version": "7.111.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.111.0.tgz", + "integrity": "sha512-Oti4pgQ55+FBHKKcHGu51ZUxO1u52G5iVNK4mbtAN+5ArSCy/2s1H8IDJiOMswn3acfUnCR0oB/QsbEgAPZ26g==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.109.0.tgz", - "integrity": "sha512-3RjxMOLMBwZ5VSiH84+o/3NY2An4Zldjz0EbfEQNRY9yffRiCPJSQiCJID8EoylCFOh/PAhPimBhqbtWJxX6iw==", + "version": "7.111.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.111.0.tgz", + "integrity": "sha512-CB5rz1EgCSwj3xoXogsCZ5pQtfERrURc/ItcCuoaijUhkD0iMq5MCNWMHW3mBsBrqx/Oba+XGvDu0t/5+SWwBg==", "dependencies": { - "@sentry/types": "7.109.0" + "@sentry/types": "7.111.0" }, "engines": { "node": ">=8" @@ -5112,9 +4916,9 @@ } }, "node_modules/@tsd/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-CQlfzol0ldaU+ftWuG52vH29uRoKboLinLy84wS8TQOu+m+tWoaUfk4svL4ij2V8M5284KymJBlHUusKj6k34w==", + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-5.4.4.tgz", + "integrity": "sha512-sqE6Rz9UNHBuCtuREo/PwsuUaegP1KDSfxMd+9K1qPpt7XO8BmkIImUp7zAqyvwXWUHs+sj6osEkkpyE0tFgfA==", "dev": true, "engines": { "node": ">=14.17" @@ -5158,18 +4962,6 @@ "@types/node": "*" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -5344,15 +5136,6 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/linkify-it": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", @@ -5411,7 +5194,8 @@ "node_modules/@types/node": { "version": "18.17.16", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.16.tgz", - "integrity": "sha512-e0zgs7qe1XH/X3KEPnldfkD07LH9O1B9T31U8qoO7lqGSjj3/IrBuvqMeJ1aYejXRK3KOphIUDw6pLIplEW17A==" + "integrity": "sha512-e0zgs7qe1XH/X3KEPnldfkD07LH9O1B9T31U8qoO7lqGSjj3/IrBuvqMeJ1aYejXRK3KOphIUDw6pLIplEW17A==", + "devOptional": true }, "node_modules/@types/node-forge": { "version": "1.3.11", @@ -5438,6 +5222,8 @@ "version": "8.10.2", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.10.2.tgz", "integrity": "sha512-MKFs9P6nJ+LAeHLU3V0cODEOgyThJ3OAnmOlsZsxux6sfQs3HRXR5bBn7xG5DjckEFhTAxsXi7k7cd0pCMxpJw==", + "optional": true, + "peer": true, "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -5523,15 +5309,6 @@ "@types/react-router": "*" } }, - "node_modules/@types/responselike": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.1.tgz", - "integrity": "sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", @@ -5644,15 +5421,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz", - "integrity": "sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.4.0", - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/typescript-estree": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4" }, "engines": { @@ -5672,13 +5449,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", - "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -5689,9 +5466,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", - "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -5702,19 +5479,19 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", - "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "@typescript-eslint/visitor-keys": "7.4.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -5739,9 +5516,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -5754,13 +5531,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", - "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.4.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -7155,14 +6932,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -8034,6 +7803,7 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -8044,6 +7814,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8058,6 +7829,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8068,17 +7840,20 @@ "node_modules/cliui/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/cliui/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } @@ -8087,6 +7862,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8100,6 +7876,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8138,27 +7915,6 @@ "node": ">=0.10.0" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/cloudflare-middleware": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cloudflare-middleware/-/cloudflare-middleware-1.0.4.tgz", @@ -9192,9 +8948,9 @@ "dev": true }, "node_modules/cypress": { - "version": "13.7.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.7.1.tgz", - "integrity": "sha512-4u/rpFNxOFCoFX/Z5h+uwlkBO4mWzAjveURi3vqdSu56HPvVdyGTxGw4XKGWt399Y1JwIn9E1L9uMXQpc0o55w==", + "version": "13.8.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.8.0.tgz", + "integrity": "sha512-Qau//mtrwEGOU9cn2YjavECKyDUwBh8J2tit+y9s1wsv6C3BX+rlv6I9afmQnL8PmEEzJ6be7nppMHacFzZkTw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -9352,13 +9108,12 @@ } }, "node_modules/danger": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/danger/-/danger-11.3.1.tgz", - "integrity": "sha512-+slkGnbf0czY7g4LSuYpYkKJgFrb9YIXFJvV5JAuLLF39CXLlUw0iebgeL3ASK1t6RDb8xe+Rk2F5ilh2Hdv2w==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/danger/-/danger-12.1.0.tgz", + "integrity": "sha512-pD3PxXSPuEhlLpiR3pUupt/kkwNKhWbmPCPTq/KuKEE9E0WimDsNsozboZLiBLit6bbBJBlttpDtFXGpVMqM1A==", "dev": true, "dependencies": { - "@gitbeaker/core": "^35.8.1", - "@gitbeaker/node": "^35.8.1", + "@gitbeaker/rest": "^38.0.0", "@octokit/rest": "^18.12.0", "async-retry": "1.2.3", "chalk": "^2.3.0", @@ -9408,7 +9163,7 @@ "danger-runner": "distribution/commands/danger-runner.js" }, "engines": { - "node": ">=14.13.1" + "node": ">=18" } }, "node_modules/danger/node_modules/chalk": { @@ -9914,18 +9669,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -11353,9 +11096,9 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz", - "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==", + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz", + "integrity": "sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ==", "dev": true, "dependencies": { "globals": "^13.20.0" @@ -11507,9 +11250,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.2.tgz", - "integrity": "sha512-S0Gk+rpT5w/ephKCncUY7kUsix9uE4B9XI8D/fS1/26d8okE+vZsuG1IvIt4B6sJUdQqsnzi+YXfmh+HJG11CA==", + "version": "48.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.3.tgz", + "integrity": "sha512-r9DMAmFs66VNvNqRLLjHejdnJtILrt3xGi+Qx0op0oRfFGVpOR1Hb3BC++MacseHx93d8SKYPhyrC9BS7Os2QA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.42.0", @@ -11540,9 +11283,9 @@ } }, "node_modules/eslint-plugin-mocha": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.1.tgz", - "integrity": "sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", + "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", @@ -15924,9 +15667,9 @@ } }, "node_modules/joi": { - "version": "17.12.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz", - "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==", + "version": "17.12.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz", + "integrity": "sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -16422,12 +16165,6 @@ "node": ">= 0.8.0" } }, - "node_modules/li": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/li/-/li-1.3.0.tgz", - "integrity": "sha512-z34TU6GlMram52Tss5mt1m//ifRIpKH5Dqm7yUVOdHI+BQCs9qGPHFaCUTIzsWX7edN30aa2WrPwR7IO10FHaw==", - "dev": true - }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -20092,6 +19829,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -20567,6 +20305,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -20636,36 +20375,71 @@ } }, "node_modules/node-pg-migrate": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/node-pg-migrate/-/node-pg-migrate-6.2.2.tgz", - "integrity": "sha512-0WYLTXpWu2doeZhiwJUW/1u21OqAFU2CMQ8YZ8VBcJ0xrdqYAjtd8GGFe5A5DM4NJdIZsqJcLPDFqY0FQsmivw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/node-pg-migrate/-/node-pg-migrate-7.0.0.tgz", + "integrity": "sha512-mARI+/6hUNag+UOoaqJva4sfZdgcNeGWx0THyOJjBoy3KfXunmH+VHV9GmtflT/N/g4+E1QS7n90d126xXcp2g==", "dependencies": { - "@types/pg": "^8.0.0", - "decamelize": "^5.0.0", - "mkdirp": "~1.0.0", - "yargs": "~17.3.0" + "yargs": "~17.7.0" }, "bin": { - "node-pg-migrate": "bin/node-pg-migrate" + "node-pg-migrate": "bin/node-pg-migrate.js" }, "engines": { - "node": ">=12.20.0" + "node": ">=16.18.0" }, "peerDependencies": { + "@types/pg": ">=6.0.0 <9.0.0", "pg": ">=4.3.0 <9.0.0" + }, + "peerDependenciesMeta": { + "@types/pg": { + "optional": true + } } }, - "node_modules/node-pg-migrate/node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "node_modules/node-pg-migrate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/node-pg-migrate/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, + "node_modules/node-pg-migrate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/node-pg-migrate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/node-pg-migrate/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -20692,18 +20466,34 @@ "node": ">=8" } }, + "node_modules/node-pg-migrate/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/node-pg-migrate/node_modules/yargs": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" @@ -21912,11 +21702,6 @@ "node": ">=12.20" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -22186,9 +21971,9 @@ } }, "node_modules/path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==" }, "node_modules/path-type": { "version": "4.0.0", @@ -22253,15 +22038,13 @@ } }, "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -22287,9 +22070,9 @@ "optional": true }, "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" }, "node_modules/pg-int8": { "version": "1.0.1", @@ -22303,27 +22086,31 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz", "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==", + "optional": true, + "peer": true, "engines": { "node": ">=4" } }, "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" }, "node_modules/pg-types": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.1.tgz", "integrity": "sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g==", + "optional": true, + "peer": true, "dependencies": { "pg-int8": "1.0.1", "pg-numeric": "1.0.2", @@ -23320,6 +23107,8 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -23328,6 +23117,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", + "optional": true, + "peer": true, "dependencies": { "obuf": "~1.1.2" }, @@ -23339,6 +23130,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.0.1.tgz", "integrity": "sha512-YtMKdsDt5Ojv1wQRvUhnyDJNSr2dGIC96mQVKz7xufp07nfuFONzdaowrMHjlAzY6GDLd4f+LUHHAAM1h4MdUw==", + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -23347,6 +23140,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -23354,7 +23149,9 @@ "node_modules/postgres-range": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.3.tgz", - "integrity": "sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==" + "integrity": "sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==", + "optional": true, + "peer": true }, "node_modules/postman-code-generators": { "version": "1.9.0", @@ -23699,9 +23496,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/prom-client": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.1.tgz", - "integrity": "sha512-GVA2H96QCg2q71rjc3VYvSrVG7OpnJxyryC7dMzvfJfpJJHzQVwF3TJLfHzKORcwJpElWs1TwXLthlJAFJxq2A==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.2.tgz", + "integrity": "sha512-on3h1iXb04QFLLThrmVYg1SChBQ9N1c+nKAjebBjokBqipddH3uxmOUcEkTnzmJ8Jh/5TSUnUqS40i2QB2dJHQ==", "dependencies": { "@opentelemetry/api": "^1.4.0", "tdigest": "^0.1.1" @@ -23861,9 +23658,9 @@ } }, "node_modules/qs": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", - "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", "dependencies": { "side-channel": "^1.0.6" }, @@ -26235,9 +26032,9 @@ } }, "node_modules/simple-icons": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-11.10.0.tgz", - "integrity": "sha512-3jhPx5xgbDCx/tuegpnW82VmUc4xe7yVd5r/BwIhfei02hS3IbOfgLKPPczd2OasngeNEd0J31vU19/0jmfxrQ==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-11.12.0.tgz", + "integrity": "sha512-atQCGhobuIrxTd4rDGYCip/OZwIW4FYX3PRt4BXAZcbIW71hktvX4sF620T2QJyQsNLAYo3QpiHh8ey2IseA/g==", "engines": { "node": ">=0.12.18" }, @@ -27034,15 +26831,6 @@ "duplexer": "~0.1.1" } }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -27951,7 +27739,8 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "node_modules/tree-kill": { "version": "1.2.2", @@ -28019,12 +27808,12 @@ } }, "node_modules/tsd": { - "version": "0.30.7", - "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.30.7.tgz", - "integrity": "sha512-oTiJ28D6B/KXoU3ww/Eji+xqHJojiuPVMwA12g4KYX1O72N93Nb6P3P3h2OAhhf92Xl8NIhb/xFmBZd5zw/xUw==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.31.0.tgz", + "integrity": "sha512-yjBiQ5n8OMv/IZOuhDjBy0ZLCoJ7rky/RxRh5W4sJ0oNNCU/kf6s3puPAkGNi59PptDdkcpUm+RsKSdjR2YbNg==", "dev": true, "dependencies": { - "@tsd/typescript": "~5.3.3", + "@tsd/typescript": "~5.4.3", "eslint-formatter-pretty": "^4.1.0", "globby": "^11.0.1", "jest-diff": "^29.0.3", @@ -28524,6 +28313,14 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", "dev": true }, + "node_modules/undici": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.13.0.tgz", + "integrity": "sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw==", + "engines": { + "node": ">=18.0" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -29186,16 +28983,16 @@ } }, "node_modules/webextension-store-meta": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webextension-store-meta/-/webextension-store-meta-1.1.0.tgz", - "integrity": "sha512-sEOe3Iir4PB6f/hj9fAAaesUpYLU4XIwySMdOap7JfIhL9O4fmaoTWWuj/TCzOa7UcH/6X8Mq2+HmlAAE7D0zg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/webextension-store-meta/-/webextension-store-meta-1.2.1.tgz", + "integrity": "sha512-ZXeprdpOSb7CSuzfuoBquoWfAdKSB4PXcPTM3NyAJ69RbcIy6FBEENO9P7jhH4CGUwnORAp8ja6zfQxXBMbBzw==", "dependencies": { "domhandler": "^4.0.0", "htmlparser2": "^6.1.0", - "node-fetch": "^2.6.1" + "undici": "^6.11.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=18" } }, "node_modules/webextension-store-meta/node_modules/dom-serializer": { @@ -29267,7 +29064,8 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "node_modules/webpack": { "version": "5.90.3", @@ -29708,6 +29506,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" diff --git a/package.json b/package.json index ae9847c522015..93c10fb11a3c7 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ "url": "https://github.com/badges/shields" }, "dependencies": { - "@renovatebot/pep440": "^3.0.19", + "@renovatebot/pep440": "^3.0.20", "@renovatebot/ruby-semver": "^3.0.23", - "@sentry/node": "^7.109.0", + "@sentry/node": "^7.111.0", "@shields_io/camp": "^18.1.2", "@xmldom/xmldom": "0.8.10", "badge-maker": "file:badge-maker", @@ -44,7 +44,7 @@ "got": "^14.2.1", "graphql": "16.8.1", "graphql-tag": "^2.12.6", - "joi": "17.12.2", + "joi": "17.12.3", "joi-extension-semver": "5.0.0", "js-yaml": "^4.1.0", "jsonpath": "~1.1.1", @@ -53,20 +53,20 @@ "lodash.times": "^4.3.2", "matcher": "^5.0.0", "node-env-flag": "^0.1.0", - "node-pg-migrate": "^6.2.2", + "node-pg-migrate": "^7.0.0", "parse-link-header": "^2.0.0", - "path-to-regexp": "^6.2.1", - "pg": "^8.11.3", + "path-to-regexp": "^6.2.2", + "pg": "^8.11.5", "pretty-bytes": "^6.1.1", "priorityqueuejs": "^2.0.0", - "prom-client": "^15.1.1", - "qs": "^6.12.0", + "prom-client": "^15.1.2", + "qs": "^6.12.1", "query-string": "^9.0.0", "semver": "~7.6.0", - "simple-icons": "11.10.0", + "simple-icons": "11.12.0", "smol-toml": "1.1.4", "svg-path-commander": "^2.0.9", - "webextension-store-meta": "^1.1.0", + "webextension-store-meta": "^1.2.1", "xpath": "~0.0.34" }, "scripts": { @@ -148,7 +148,7 @@ "@docusaurus/core": "^3.1.1", "@easyops-cn/docusaurus-search-local": "^0.40.1", "@mdx-js/react": "^3.0.1", - "@typescript-eslint/parser": "^7.4.0", + "@typescript-eslint/parser": "^7.7.0", "c8": "^9.1.0", "caller": "^1.1.0", "chai": "^4.4.1", @@ -158,9 +158,9 @@ "child-process-promise": "^2.2.1", "clsx": "^2.1.0", "concurrently": "^8.2.2", - "cypress": "^13.7.1", + "cypress": "^13.8.0", "cypress-wait-for-stable-dom": "^0.1.0", - "danger": "^11.3.1", + "danger": "^12.1.0", "deepmerge": "^4.3.1", "docusaurus-preset-openapi": "0.7.3", "eslint": "8.57.0", @@ -169,11 +169,11 @@ "eslint-config-standard-jsx": "11.0.0", "eslint-config-standard-react": "13.0.0", "eslint-plugin-chai-friendly": "^0.7.4", - "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-icedfrisby": "^0.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jsdoc": "^48.2.2", - "eslint-plugin-mocha": "^10.4.1", + "eslint-plugin-jsdoc": "^48.2.3", + "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-no-extension-in-require": "^0.2.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "6.1.1", @@ -210,7 +210,7 @@ "sinon-chai": "^3.7.0", "snap-shot-it": "^7.9.10", "start-server-and-test": "2.0.3", - "tsd": "^0.30.7", + "tsd": "^0.31.0", "url": "^0.11.3" }, "engines": { diff --git a/services/chrome-web-store/chrome-web-store-base.js b/services/chrome-web-store/chrome-web-store-base.js index 77e917c2b71a4..cd59da8a890bc 100644 --- a/services/chrome-web-store/chrome-web-store-base.js +++ b/services/chrome-web-store/chrome-web-store-base.js @@ -1,4 +1,4 @@ -import ChromeWebStore from 'webextension-store-meta/lib/chrome-web-store/index.js' +import { ChromeWebStore } from 'webextension-store-meta/lib/chrome-web-store/index.js' import checkErrorResponse from '../../core/base-service/check-error-response.js' import { BaseService, Inaccessible } from '../index.js' diff --git a/services/chrome-web-store/chrome-web-store-rating.tester.js b/services/chrome-web-store/chrome-web-store-rating.tester.js index 3d4f20c1d5f32..27948c53d9c0a 100644 --- a/services/chrome-web-store/chrome-web-store-rating.tester.js +++ b/services/chrome-web-store/chrome-web-store-rating.tester.js @@ -1,4 +1,5 @@ import Joi from 'joi' +import { Agent, MockAgent, setGlobalDispatcher } from 'undici' import { isStarRating } from '../test-validators.js' import { ServiceTester } from '../tester.js' @@ -39,7 +40,16 @@ t.create('Stars (not found)') .expectBadge({ label: 'rating', message: 'not found' }) // Keep this "inaccessible" test, since this service does not use BaseService#_request. +const mockAgent = new MockAgent() t.create('Rating (inaccessible)') .get('/rating/alhjnofcnnpeaphgeakdhkebafjcpeae.json') - .networkOff() + // webextension-store-meta uses undici internally, so we can't mock it with nock + .before(function () { + setGlobalDispatcher(mockAgent) + mockAgent.disableNetConnect() + }) + .after(async function () { + await mockAgent.close() + setGlobalDispatcher(new Agent()) + }) .expectBadge({ label: 'rating', message: 'inaccessible' }) diff --git a/services/chrome-web-store/chrome-web-store-users.tester.js b/services/chrome-web-store/chrome-web-store-users.tester.js index 54959019b45c0..6b02b701d5468 100644 --- a/services/chrome-web-store/chrome-web-store-users.tester.js +++ b/services/chrome-web-store/chrome-web-store-users.tester.js @@ -1,3 +1,4 @@ +import { Agent, MockAgent, setGlobalDispatcher } from 'undici' import { isMetric } from '../test-validators.js' import { ServiceTester } from '../tester.js' @@ -22,7 +23,16 @@ t.create('Users (not found)') .expectBadge({ label: 'users', message: 'not found' }) // Keep this "inaccessible" test, since this service does not use BaseService#_request. +const mockAgent = new MockAgent() t.create('Users (inaccessible)') .get('/users/alhjnofcnnpeaphgeakdhkebafjcpeae.json') - .networkOff() + // webextension-store-meta uses undici internally, so we can't mock it with nock + .before(function () { + setGlobalDispatcher(mockAgent) + mockAgent.disableNetConnect() + }) + .after(async function () { + await mockAgent.close() + setGlobalDispatcher(new Agent()) + }) .expectBadge({ label: 'users', message: 'inaccessible' }) diff --git a/services/chrome-web-store/chrome-web-store-version.tester.js b/services/chrome-web-store/chrome-web-store-version.tester.js index cccf0b95e14be..f108c7e70827e 100644 --- a/services/chrome-web-store/chrome-web-store-version.tester.js +++ b/services/chrome-web-store/chrome-web-store-version.tester.js @@ -1,3 +1,4 @@ +import { Agent, MockAgent, setGlobalDispatcher } from 'undici' import { isVPlusDottedVersionAtLeastOne } from '../test-validators.js' import { createServiceTester } from '../tester.js' export const t = await createServiceTester() @@ -12,7 +13,16 @@ t.create('Version (not found)') .expectBadge({ label: 'chrome web store', message: 'not found' }) // Keep this "inaccessible" test, since this service does not use BaseService#_request. +const mockAgent = new MockAgent() t.create('Version (inaccessible)') .get('/alhjnofcnnpeaphgeakdhkebafjcpeae.json') - .networkOff() + // webextension-store-meta uses undici internally, so we can't mock it with nock + .before(function () { + setGlobalDispatcher(mockAgent) + mockAgent.disableNetConnect() + }) + .after(async function () { + await mockAgent.close() + setGlobalDispatcher(new Agent()) + }) .expectBadge({ label: 'chrome web store', message: 'inaccessible' }) diff --git a/services/github/github-go-mod.service.js b/services/github/github-go-mod.service.js index ed678e38f9f29..77f2080b52492 100644 --- a/services/github/github-go-mod.service.js +++ b/services/github/github-go-mod.service.js @@ -9,7 +9,7 @@ const queryParamSchema = Joi.object({ filename: Joi.string(), }).required() -const goVersionRegExp = /^go (.+)$/m +const goVersionRegExp = /^go ([^/\s]+)(\s*\/.+)?$/m const filenameDescription = 'The `filename` param can be used to specify the path to `go.mod`. By default, we look for `go.mod` in the repo root' diff --git a/services/github/github-go-mod.spec.js b/services/github/github-go-mod.spec.js new file mode 100644 index 0000000000000..cec2276509d80 --- /dev/null +++ b/services/github/github-go-mod.spec.js @@ -0,0 +1,26 @@ +import { expect } from 'chai' +import { test, given } from 'sazerac' +import { InvalidResponse } from '../index.js' +import GithubGoModGoVersion from './github-go-mod.service.js' + +describe('GithubGoModGoVersion', function () { + describe('valid cases', function () { + test(GithubGoModGoVersion.transform, () => { + given('go 1.18').expect({ go: '1.18' }) + given('go 1.18 // inline comment').expect({ go: '1.18' }) + given('go 1.18// inline comment').expect({ go: '1.18' }) + given('go 1.18 /* block comment */').expect({ go: '1.18' }) + given('go 1.18/* block comment */').expect({ go: '1.18' }) + given('go 1').expect({ go: '1' }) + given('go 1.2.3').expect({ go: '1.2.3' }) + given('go string').expect({ go: 'string' }) + }) + }) + + describe('invalid cases', function () { + expect(() => GithubGoModGoVersion.transform('')).to.throw(InvalidResponse) + expect(() => + GithubGoModGoVersion.transform("doesn't start with go"), + ).to.throw(InvalidResponse) + }) +}) diff --git a/services/librariesio/librariesio-dependencies.service.js b/services/librariesio/librariesio-dependencies.service.js index 3250661de4dec..7be34ff51ad23 100644 --- a/services/librariesio/librariesio-dependencies.service.js +++ b/services/librariesio/librariesio-dependencies.service.js @@ -1,4 +1,5 @@ import Joi from 'joi' +import { nonNegativeInteger } from '../validators.js' import { pathParams } from '../index.js' import LibrariesIoBase from './librariesio-base.js' import { @@ -6,7 +7,7 @@ import { renderDependenciesBadge, } from './librariesio-dependencies-helpers.js' -const schema = Joi.object({ +const projectDependenciesSchema = Joi.object({ dependencies: Joi.array() .items( Joi.object({ @@ -17,6 +18,11 @@ const schema = Joi.object({ .default([]), }).required() +const repoDependenciesSchema = Joi.object({ + deprecated_count: nonNegativeInteger, + outdated_count: nonNegativeInteger, +}).required() + class LibrariesIoProjectDependencies extends LibrariesIoBase { static category = 'dependencies' @@ -57,7 +63,7 @@ class LibrariesIoProjectDependencies extends LibrariesIoBase { )}/dependencies` const json = await this._requestJson({ url, - schema, + schema: projectDependenciesSchema, httpErrors: { 404: 'package or version not found' }, }) const { deprecatedCount, outdatedCount } = transform(json) @@ -90,15 +96,16 @@ class LibrariesIoRepoDependencies extends LibrariesIoBase { async handle({ user, repo }) { const url = `/github/${encodeURIComponent(user)}/${encodeURIComponent( repo, - )}/dependencies` - const json = await this._requestJson({ - url, - schema, - httpErrors: { - 404: 'repo not found', - }, - }) - const { deprecatedCount, outdatedCount } = transform(json) + )}/shields_dependencies` + + const { deprecated_count: deprecatedCount, outdated_count: outdatedCount } = + await this._requestJson({ + url, + schema: repoDependenciesSchema, + httpErrors: { + 404: 'repo not found', + }, + }) return renderDependenciesBadge({ deprecatedCount, outdatedCount }) } } diff --git a/services/licenses.js b/services/licenses.js index 349e6980f48ae..bef445cc6865e 100644 --- a/services/licenses.js +++ b/services/licenses.js @@ -87,7 +87,7 @@ const licenseTypes = { }, // public domain licenses do not require 'License and copyright notice' (https://choosealicense.com/appendix/#include-copyright) 'public-domain': { - spdxLicenseIds: ['CC0-1.0', 'Unlicense', 'WTFPL'], + spdxLicenseIds: ['CC0-1.0', 'Unlicense', 'WTFPL', '0BSD'], aliases: ['CC0'], color: '7cd958', priority: '3', diff --git a/services/licenses.spec.js b/services/licenses.spec.js index 982b06cccb9ca..a82d10f5be8d7 100644 --- a/services/licenses.spec.js +++ b/services/licenses.spec.js @@ -5,7 +5,7 @@ describe('license helpers', function () { test(licenseToColor, () => { forCases([given('MIT'), given('BSD')]).expect('green') forCases([given('MPL-2.0'), given('MPL')]).expect('orange') - forCases([given('Unlicense'), given('CC0')]).expect('7cd958') + forCases([given('Unlicense'), given('CC0'), given('0BSD')]).expect('7cd958') forCases([given('unknown-license'), given(null)]).expect('lightgrey') given(['CC0-1.0', 'MPL-2.0']).expect('7cd958') diff --git a/services/mastodon/mastodon-follow.service.js b/services/mastodon/mastodon-follow.service.js index 8a362a15ca6a7..1507b22009561 100644 --- a/services/mastodon/mastodon-follow.service.js +++ b/services/mastodon/mastodon-follow.service.js @@ -58,7 +58,7 @@ export default class MastodonFollow extends BaseJsonService { message: metric(followers), style: 'social', link: [ - `${domain}/users/${username}/remote_follow`, + `${domain}/users/${username}`, `${domain}/users/${username}/followers`, ], } diff --git a/services/mastodon/mastodon-follow.tester.js b/services/mastodon/mastodon-follow.tester.js index 1b792bad8c962..d55d3706d531e 100644 --- a/services/mastodon/mastodon-follow.tester.js +++ b/services/mastodon/mastodon-follow.tester.js @@ -8,7 +8,7 @@ t.create('Followers - default domain') label: 'follow @wilkie', message: isMetric, link: [ - 'https://mastodon.social/users/wilkie/remote_follow', + 'https://mastodon.social/users/wilkie', 'https://mastodon.social/users/wilkie/followers', ], }) @@ -33,7 +33,7 @@ t.create('Followers - alternate domain') label: 'follow @PhotonQyv', message: isMetric, link: [ - 'https://mastodon.xyz/users/PhotonQyv/remote_follow', + 'https://mastodon.xyz/users/PhotonQyv', 'https://mastodon.xyz/users/PhotonQyv/followers', ], }) diff --git a/services/packagist/packagist-base.spec.js b/services/packagist/packagist-base.spec.js index 1b6f1ec462393..ba97113327af2 100644 --- a/services/packagist/packagist-base.spec.js +++ b/services/packagist/packagist-base.spec.js @@ -56,8 +56,8 @@ const expandedSample = [ }, ] -describe('BasePackagistService', function () { - describe('expandPackageVersions', function () { +describe('BasePackagistService', () => { + describe('expandPackageVersions', () => { const expanded = BasePackagistService.expandPackageVersions( { packages: { @@ -66,7 +66,7 @@ describe('BasePackagistService', function () { }, 'foobar/foobar', ) - it('should expand the minified package array to match the expanded sample', function () { + it('should expand the minified package array to match the expanded sample', () => { assert.deepStrictEqual( expanded, expandedSample, diff --git a/services/pypi/pypi-helpers.js b/services/pypi/pypi-helpers.js index 4a5f212c0f773..41a8b6f9d4705 100644 --- a/services/pypi/pypi-helpers.js +++ b/services/pypi/pypi-helpers.js @@ -69,6 +69,7 @@ function getLicenses(packageData) { 'OSI Approved :: Apache Software License': 'Apache-2.0', 'CC0 1.0 Universal (CC0 1.0) Public Domain Dedication': 'CC0-1.0', 'OSI Approved :: GNU Affero General Public License v3': 'AGPL-3.0', + 'OSI Approved :: Zero-Clause BSD (0BSD)': '0BSD', } let licenses = parseClassifiers(packageData, /^License :: (.+)$/, true) .map(classifier => diff --git a/services/pypi/pypi-helpers.spec.js b/services/pypi/pypi-helpers.spec.js index 1fe20ffc4903a..b55ba197038ad 100644 --- a/services/pypi/pypi-helpers.spec.js +++ b/services/pypi/pypi-helpers.spec.js @@ -35,7 +35,7 @@ const classifiersFixture = { } describe('PyPI helpers', function () { - test(parseClassifiers, function () { + test(parseClassifiers, () => { given( classifiersFixture, /^Programming Language :: Python :: ([\d.]+)$/, @@ -60,7 +60,7 @@ describe('PyPI helpers', function () { given(classifiersFixture, /^(?!.*)*$/).expect([]) }) - test(parsePypiVersionString, function () { + test(parsePypiVersionString, () => { given('1').expect({ major: 1, minor: 0 }) given('1.0').expect({ major: 1, minor: 0 }) given('7.2').expect({ major: 7, minor: 2 }) @@ -69,7 +69,7 @@ describe('PyPI helpers', function () { given('foo').expect({ major: 0, minor: 0 }) }) - test(sortPypiVersions, function () { + test(sortPypiVersions, () => { // Each of these includes a different variant: 2.0, 2, and 2.0rc1. given(['2.0', '1.9', '10', '1.11', '2.1', '2.11']).expect([ '1.9', @@ -167,6 +167,12 @@ describe('PyPI helpers', function () { ], }, }).expect(['AGPL-3.0']) + given({ + info: { + license: '', + classifiers: ['License :: OSI Approved :: Zero-Clause BSD (0BSD)'], + }, + }).expect(['0BSD']) }) test(getPackageFormats, () => { diff --git a/services/pypi/pypi-python-versions.spec.js b/services/pypi/pypi-python-versions.spec.js index 8a8c483882e9e..b620b5706cc8a 100644 --- a/services/pypi/pypi-python-versions.spec.js +++ b/services/pypi/pypi-python-versions.spec.js @@ -2,7 +2,7 @@ import { test, given } from 'sazerac' import PypiPythonVersions from './pypi-python-versions.service.js' describe('PyPI Python Version', function () { - test(PypiPythonVersions.render, function () { + test(PypiPythonVersions.render, () => { // Major versions are hidden if minor are present. given({ versions: ['3', '3.4', '3.5', '3.6', '2', '2.7'] }).expect({ message: '2.7 | 3.4 | 3.5 | 3.6',