diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0216f88..6b9139b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,6 +12,7 @@ permissions: env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} + BUILDX_NO_DEFAULT_ATTESTATIONS: 1 jobs: @@ -43,10 +44,12 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2 + with: + platforms: 'arm64,amd64' - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - + - name: Log in to the Container registry uses: docker/login-action@v2 with: @@ -80,9 +83,10 @@ jobs: type=raw,value=latest,enable={{is_default_branch}} - name: Build and push Docker image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . + platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/README.md b/README.md index 6924c41..9a68622 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,4 @@ all configuration options listed here are an extension to directus default confi | AUTH_PROVIDER_JWT_USEDB | Bool | If enabled/true the plugin will resolve the user and roles from the directus database using the token. For OIDC the sub is used. Should not be used without a Redis Cache enabled. | CACHE_JWT_NAMESPACE | String | What namespace to use in cache store. | CACHE_JWT_TTL | Number | Time to live for the cached user entry, default 5000 (5 seconds) +| REDIS_JWT_DB | Number | What database to use in Redis cache, default 2 diff --git a/package.json b/package.json index 4399782..f4c734b 100644 --- a/package.json +++ b/package.json @@ -123,8 +123,8 @@ "dotenv": "^16.3.1", "eslint": "^8.48.0", "eslint-config-standard-with-typescript": "^37.0.0", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-n": "^15.7.0", "eslint-plugin-no-loops": "^0.3.0", "eslint-plugin-promise": "^6.1.1", "fs-extra": "^11.1.1", @@ -141,14 +141,17 @@ }, "dependencies": { "@keyv/redis": "^2.7.0", - "jsonwebtoken": "^9.0.1", + "jsonwebtoken": "^9.0.2", "jwks-rsa": "^3.0.1", "keyv": "^4.5.3", "openid-client": "^5.4.3" }, - "overrides": { - "@directus/extensions-sdk": { - "vite": "4.3.9" + "pnpm": { + "overrides": { + "vite": "^4.3.9", + "get-func-name@<2.0.1": ">=2.0.1", + "zod@<=3.22.2": ">=3.22.3", + "postcss@<8.4.31": ">=8.4.31" } - } + } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f07031..48e9677 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,13 +4,19 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + vite: ^4.3.9 + get-func-name@<2.0.1: '>=2.0.1' + zod@<=3.22.2: '>=3.22.3' + postcss@<8.4.31: '>=8.4.31' + dependencies: '@keyv/redis': specifier: ^2.7.0 version: 2.7.0 jsonwebtoken: - specifier: ^9.0.1 - version: 9.0.1 + specifier: ^9.0.2 + version: 9.0.2 jwks-rsa: specifier: ^3.0.1 version: 3.0.1 @@ -108,13 +114,13 @@ devDependencies: version: 8.48.0 eslint-config-standard-with-typescript: specifier: ^37.0.0 - version: 37.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.0.2)(eslint-plugin-promise@6.1.1)(eslint@8.48.0)(typescript@5.2.2) + version: 37.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.48.0)(typescript@5.2.2) eslint-plugin-import: specifier: ^2.28.1 version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.48.0) eslint-plugin-n: - specifier: ^16.0.2 - version: 16.0.2(eslint@8.48.0) + specifier: ^15.7.0 + version: 15.7.0(eslint@8.48.0) eslint-plugin-no-loops: specifier: ^0.3.0 version: 0.3.0(eslint@8.48.0) @@ -398,7 +404,7 @@ packages: /@directus/constants@10.2.3: resolution: {integrity: sha512-ygXWi0ptRjQ7qqUvRDXjFQ6ITXz1gOmjT/aQw06OmgaJPscbuHoc5BFzWn4l4nhapk0hkWYhq0xskfVeA5MMtQ==} dependencies: - zod: 3.21.4 + zod: 3.22.4 dev: true /@directus/errors@0.0.2: @@ -420,7 +426,7 @@ packages: '@rollup/plugin-replace': 5.0.2(rollup@3.22.0) '@rollup/plugin-terser': 0.4.3(rollup@3.22.0) '@rollup/plugin-virtual': 3.0.1(rollup@3.22.0) - '@vitejs/plugin-vue': 4.2.3(vite@4.3.7)(vue@3.3.4) + '@vitejs/plugin-vue': 4.2.3(vite@4.4.9)(vue@3.3.4) chalk: 5.2.0 commander: 10.0.1 esbuild: 0.17.19 @@ -431,13 +437,14 @@ packages: rollup: 3.22.0 rollup-plugin-esbuild: 5.0.0(esbuild@0.17.19)(rollup@3.22.0) rollup-plugin-styles: 4.0.0(rollup@3.22.0) - vite: 4.3.7(@types/node@20.5.7) + vite: 4.4.9(@types/node@20.5.7) vue: 3.3.4 transitivePeerDependencies: - '@types/node' - better-sqlite3 - debug - less + - lightningcss - mysql - mysql2 - pg @@ -483,7 +490,7 @@ packages: pino: 8.14.1 vue: 3.3.4 vue-router: 4.2.0(vue@3.3.4) - zod: 3.21.4 + zod: 3.22.4 transitivePeerDependencies: - better-sqlite3 - mysql @@ -1583,11 +1590,11 @@ packages: dependencies: '@types/node': 20.5.7 - /@types/cssnano@5.1.0(postcss@8.4.29): + /@types/cssnano@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-ikR+18UpFGgvaWSur4og6SJYF/6QEYHXvrIt36dp81p1MG3cAPTYDMBJGeyWa3LCnqEbgNMHKRb+FP0NrXtoWQ==} deprecated: This is a stub types definition. cssnano provides its own type definitions, so you do not need this installed. dependencies: - cssnano: 5.1.15(postcss@8.4.29) + cssnano: 5.1.15(postcss@8.4.31) transitivePeerDependencies: - postcss dev: true @@ -1879,14 +1886,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@vitejs/plugin-vue@4.2.3(vite@4.3.7)(vue@3.3.4): + /@vitejs/plugin-vue@4.2.3(vite@4.4.9)(vue@3.3.4): resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.0.0 + vite: ^4.3.9 vue: ^3.2.25 dependencies: - vite: 4.3.7(@types/node@20.5.7) + vite: 4.4.9(@types/node@20.5.7) vue: 3.3.4 dev: true @@ -1911,7 +1918,7 @@ packages: dependencies: '@vitest/spy': 0.34.3 '@vitest/utils': 0.34.3 - chai: 4.3.8 + chai: 4.3.10 dev: true /@vitest/runner@0.34.3: @@ -1971,7 +1978,7 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.3 - postcss: 8.4.29 + postcss: 8.4.31 source-map-js: 1.0.2 dev: true @@ -2587,14 +2594,14 @@ packages: redeyed: 2.1.1 dev: true - /chai@4.3.8: - resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 + get-func-name: 2.0.2 loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 @@ -2631,8 +2638,10 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -2948,13 +2957,13 @@ packages: type-fest: 1.4.0 dev: true - /css-declaration-sorter@6.4.1(postcss@8.4.29): + /css-declaration-sorter@6.4.1(postcss@8.4.31): resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} peerDependencies: - postcss: ^8.0.9 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true /css-select@4.3.0: @@ -2986,62 +2995,62 @@ packages: hasBin: true dev: true - /cssnano-preset-default@5.2.14(postcss@8.4.29): + /cssnano-preset-default@5.2.14(postcss@8.4.31): resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.29) - cssnano-utils: 3.1.0(postcss@8.4.29) - postcss: 8.4.29 - postcss-calc: 8.2.4(postcss@8.4.29) - postcss-colormin: 5.3.1(postcss@8.4.29) - postcss-convert-values: 5.1.3(postcss@8.4.29) - postcss-discard-comments: 5.1.2(postcss@8.4.29) - postcss-discard-duplicates: 5.1.0(postcss@8.4.29) - postcss-discard-empty: 5.1.1(postcss@8.4.29) - postcss-discard-overridden: 5.1.0(postcss@8.4.29) - postcss-merge-longhand: 5.1.7(postcss@8.4.29) - postcss-merge-rules: 5.1.4(postcss@8.4.29) - postcss-minify-font-values: 5.1.0(postcss@8.4.29) - postcss-minify-gradients: 5.1.1(postcss@8.4.29) - postcss-minify-params: 5.1.4(postcss@8.4.29) - postcss-minify-selectors: 5.2.1(postcss@8.4.29) - postcss-normalize-charset: 5.1.0(postcss@8.4.29) - postcss-normalize-display-values: 5.1.0(postcss@8.4.29) - postcss-normalize-positions: 5.1.1(postcss@8.4.29) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.29) - postcss-normalize-string: 5.1.0(postcss@8.4.29) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.29) - postcss-normalize-unicode: 5.1.1(postcss@8.4.29) - postcss-normalize-url: 5.1.0(postcss@8.4.29) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.29) - postcss-ordered-values: 5.1.3(postcss@8.4.29) - postcss-reduce-initial: 5.1.2(postcss@8.4.29) - postcss-reduce-transforms: 5.1.0(postcss@8.4.29) - postcss-svgo: 5.1.0(postcss@8.4.29) - postcss-unique-selectors: 5.1.1(postcss@8.4.29) + css-declaration-sorter: 6.4.1(postcss@8.4.31) + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-calc: 8.2.4(postcss@8.4.31) + postcss-colormin: 5.3.1(postcss@8.4.31) + postcss-convert-values: 5.1.3(postcss@8.4.31) + postcss-discard-comments: 5.1.2(postcss@8.4.31) + postcss-discard-duplicates: 5.1.0(postcss@8.4.31) + postcss-discard-empty: 5.1.1(postcss@8.4.31) + postcss-discard-overridden: 5.1.0(postcss@8.4.31) + postcss-merge-longhand: 5.1.7(postcss@8.4.31) + postcss-merge-rules: 5.1.4(postcss@8.4.31) + postcss-minify-font-values: 5.1.0(postcss@8.4.31) + postcss-minify-gradients: 5.1.1(postcss@8.4.31) + postcss-minify-params: 5.1.4(postcss@8.4.31) + postcss-minify-selectors: 5.2.1(postcss@8.4.31) + postcss-normalize-charset: 5.1.0(postcss@8.4.31) + postcss-normalize-display-values: 5.1.0(postcss@8.4.31) + postcss-normalize-positions: 5.1.1(postcss@8.4.31) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.31) + postcss-normalize-string: 5.1.0(postcss@8.4.31) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.31) + postcss-normalize-unicode: 5.1.1(postcss@8.4.31) + postcss-normalize-url: 5.1.0(postcss@8.4.31) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.31) + postcss-ordered-values: 5.1.3(postcss@8.4.31) + postcss-reduce-initial: 5.1.2(postcss@8.4.31) + postcss-reduce-transforms: 5.1.0(postcss@8.4.31) + postcss-svgo: 5.1.0(postcss@8.4.31) + postcss-unique-selectors: 5.1.1(postcss@8.4.31) dev: true - /cssnano-utils@3.1.0(postcss@8.4.29): + /cssnano-utils@3.1.0(postcss@8.4.31): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /cssnano@5.1.15(postcss@8.4.29): + /cssnano@5.1.15(postcss@8.4.31): resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.29) + cssnano-preset-default: 5.2.14(postcss@8.4.31) lilconfig: 2.1.0 - postcss: 8.4.29 + postcss: 8.4.31 yaml: 1.10.2 dev: true @@ -3183,7 +3192,6 @@ packages: /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - requiresBuild: true dev: true /deprecation@2.3.1: @@ -3515,7 +3523,7 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-standard-with-typescript@37.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.0.2)(eslint-plugin-promise@6.1.1)(eslint@8.48.0)(typescript@5.2.2): + /eslint-config-standard-with-typescript@37.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.48.0)(typescript@5.2.2): resolution: {integrity: sha512-V8I/Q1eFf9tiOuFHkbksUdWO3p1crFmewecfBtRxXdnvb71BCJx+1xAknlIRZMwZioMX3/bPtMVCZsf1+AjjOw==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.52.0 @@ -3528,16 +3536,16 @@ packages: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@5.2.2) '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) eslint: 8.48.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.0.2)(eslint-plugin-promise@6.1.1)(eslint@8.48.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.48.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.48.0) - eslint-plugin-n: 16.0.2(eslint@8.48.0) + eslint-plugin-n: 15.7.0(eslint@8.48.0) eslint-plugin-promise: 6.1.1(eslint@8.48.0) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.0.2)(eslint-plugin-promise@6.1.1)(eslint@8.48.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.48.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -3548,7 +3556,7 @@ packages: dependencies: eslint: 8.48.0 eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.48.0) - eslint-plugin-n: 16.0.2(eslint@8.48.0) + eslint-plugin-n: 15.7.0(eslint@8.48.0) eslint-plugin-promise: 6.1.1(eslint@8.48.0) dev: true @@ -3591,15 +3599,15 @@ packages: - supports-color dev: true - /eslint-plugin-es-x@7.2.0(eslint@8.48.0): - resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} - engines: {node: ^14.18.0 || >=16.0.0} + /eslint-plugin-es@4.1.0(eslint@8.48.0): + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} + engines: {node: '>=8.10.0'} peerDependencies: - eslint: '>=8' + eslint: '>=4.19.1' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) - '@eslint-community/regexpp': 4.8.0 eslint: 8.48.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 dev: true /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.48.0): @@ -3637,16 +3645,16 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.0.2(eslint@8.48.0): - resolution: {integrity: sha512-Y66uDfUNbBzypsr0kELWrIz+5skicECrLUqlWuXawNSLUq3ltGlCwu6phboYYOTSnoTdHgTLrc+5Ydo6KjzZog==} - engines: {node: '>=16.0.0'} + /eslint-plugin-n@15.7.0(eslint@8.48.0): + resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} + engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) builtins: 5.0.1 eslint: 8.48.0 - eslint-plugin-es-x: 7.2.0(eslint@8.48.0) + eslint-plugin-es: 4.1.0(eslint@8.48.0) + eslint-utils: 3.0.0(eslint@8.48.0) ignore: 5.2.4 is-core-module: 2.13.0 minimatch: 3.1.2 @@ -3687,6 +3695,33 @@ packages: estraverse: 5.3.0 dev: true + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@8.48.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.48.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4232,8 +4267,8 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true /get-intrinsic@1.2.1: @@ -4599,13 +4634,13 @@ packages: dev: true optional: true - /icss-utils@5.1.0(postcss@8.4.29): + /icss-utils@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: ^8.1.0 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true /ieee754@1.2.1: @@ -5219,12 +5254,18 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsonwebtoken@9.0.1: - resolution: {integrity: sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==} + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} dependencies: jws: 3.2.2 - lodash: 4.17.21 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 ms: 2.1.3 semver: 7.5.4 dev: false @@ -5456,21 +5497,35 @@ packages: resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} dev: true + /lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: false + /lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} dev: false + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: false + + /lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: false + /lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} dev: true + /lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: false + /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: true /lodash.isstring@4.0.1: resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: true /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -5480,6 +5535,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: false + /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: true @@ -5490,6 +5549,7 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} @@ -5510,7 +5570,7 @@ packages: /loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true /lru-cache@10.0.1: @@ -5936,7 +5996,6 @@ packages: /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - requiresBuild: true dev: true /neo-async@2.6.2: @@ -6660,305 +6719,305 @@ packages: pathe: 1.1.1 dev: true - /postcss-calc@8.2.4(postcss@8.4.29): + /postcss-calc@8.2.4(postcss@8.4.31): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: - postcss: ^8.2.2 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@5.3.1(postcss@8.4.29): + /postcss-colormin@5.3.1(postcss@8.4.31): resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@5.1.3(postcss@8.4.29): + /postcss-convert-values@5.1.3(postcss@8.4.31): resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: browserslist: 4.21.10 - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments@5.1.2(postcss@8.4.29): + /postcss-discard-comments@5.1.2(postcss@8.4.31): resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /postcss-discard-duplicates@5.1.0(postcss@8.4.29): + /postcss-discard-duplicates@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /postcss-discard-empty@5.1.1(postcss@8.4.29): + /postcss-discard-empty@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /postcss-discard-overridden@5.1.0(postcss@8.4.29): + /postcss-discard-overridden@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /postcss-merge-longhand@5.1.7(postcss@8.4.29): + /postcss-merge-longhand@5.1.7(postcss@8.4.31): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.29) + stylehacks: 5.1.1(postcss@8.4.31) dev: true - /postcss-merge-rules@5.1.4(postcss@8.4.29): + /postcss-merge-rules@5.1.4(postcss@8.4.31): resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.29) - postcss: 8.4.29 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-minify-font-values@5.1.0(postcss@8.4.29): + /postcss-minify-font-values@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@5.1.1(postcss@8.4.29): + /postcss-minify-gradients@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.29) - postcss: 8.4.29 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@5.1.4(postcss@8.4.29): + /postcss-minify-params@5.1.4(postcss@8.4.31): resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: browserslist: 4.21.10 - cssnano-utils: 3.1.0(postcss@8.4.29) - postcss: 8.4.29 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@5.2.1(postcss@8.4.29): + /postcss-minify-selectors@5.2.1(postcss@8.4.31): resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.29): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: ^8.1.0 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /postcss-modules-local-by-default@4.0.3(postcss@8.4.29): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: ^8.1.0 + postcss: '>=8.4.31' dependencies: - icss-utils: 5.1.0(postcss@8.4.29) - postcss: 8.4.29 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.29): + /postcss-modules-scope@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: ^8.1.0 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.29): + /postcss-modules-values@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: ^8.1.0 + postcss: '>=8.4.31' dependencies: - icss-utils: 5.1.0(postcss@8.4.29) - postcss: 8.4.29 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.29): + /postcss-normalize-charset@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /postcss-normalize-display-values@5.1.0(postcss@8.4.29): + /postcss-normalize-display-values@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@5.1.1(postcss@8.4.29): + /postcss-normalize-positions@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.29): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@5.1.0(postcss@8.4.29): + /postcss-normalize-string@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.29): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@5.1.1(postcss@8.4.29): + /postcss-normalize-unicode@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: browserslist: 4.21.10 - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@5.1.0(postcss@8.4.29): + /postcss-normalize-url@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: normalize-url: 6.1.0 - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@5.1.1(postcss@8.4.29): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@5.1.3(postcss@8.4.29): + /postcss-ordered-values@5.1.3(postcss@8.4.31): resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - cssnano-utils: 3.1.0(postcss@8.4.29) - postcss: 8.4.29 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial@5.1.2(postcss@8.4.29): + /postcss-reduce-initial@5.1.2(postcss@8.4.31): resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - postcss: 8.4.29 + postcss: 8.4.31 dev: true - /postcss-reduce-transforms@5.1.0(postcss@8.4.29): + /postcss-reduce-transforms@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true @@ -6970,24 +7029,24 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-svgo@5.1.0(postcss@8.4.29): + /postcss-svgo@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-unique-selectors@5.1.1(postcss@8.4.29): + /postcss-unique-selectors@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: - postcss: 8.4.29 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true @@ -6995,8 +7054,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.29: - resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -7277,6 +7336,11 @@ packages: functions-have-names: 1.2.3 dev: true + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + /registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} @@ -7379,18 +7443,18 @@ packages: rollup: ^2.63.0 dependencies: '@rollup/pluginutils': 4.2.1 - '@types/cssnano': 5.1.0(postcss@8.4.29) + '@types/cssnano': 5.1.0(postcss@8.4.31) cosmiconfig: 7.1.0 - cssnano: 5.1.15(postcss@8.4.29) + cssnano: 5.1.15(postcss@8.4.31) fs-extra: 10.1.0 - icss-utils: 5.1.0(postcss@8.4.29) + icss-utils: 5.1.0(postcss@8.4.31) mime-types: 2.1.35 p-queue: 6.6.2 - postcss: 8.4.29 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.29) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.29) - postcss-modules-scope: 3.0.0(postcss@8.4.29) - postcss-modules-values: 4.0.0(postcss@8.4.29) + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) postcss-value-parser: 4.2.0 query-string: 7.1.3 resolve: 1.22.4 @@ -7875,7 +7939,6 @@ packages: /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - requiresBuild: true dependencies: safe-buffer: 5.2.1 dev: true @@ -7897,7 +7960,6 @@ packages: /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - requiresBuild: true dev: true /strip-bom@4.0.0: @@ -7938,14 +8000,14 @@ packages: acorn: 8.10.0 dev: true - /stylehacks@5.1.1(postcss@8.4.29): + /stylehacks@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.2.15 + postcss: '>=8.4.31' dependencies: browserslist: 4.21.10 - postcss: 8.4.29 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true @@ -8458,7 +8520,7 @@ packages: mlly: 1.4.1 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@20.4.5) + vite: 4.4.9(@types/node@20.5.7) transitivePeerDependencies: - '@types/node' - less @@ -8470,8 +8532,7 @@ packages: - terser dev: true - - /vite@4.4.9(@types/node@20.4.5): + /vite@4.4.9(@types/node@20.5.7): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -8499,11 +8560,9 @@ packages: terser: optional: true dependencies: - - '@types/node': 20.4.5 - esbuild: 0.18.17 - postcss: 8.4.27 - + '@types/node': 20.5.7 + esbuild: 0.18.20 + postcss: 8.4.31 rollup: 3.28.1 optionalDependencies: fsevents: 2.3.3 @@ -8551,7 +8610,7 @@ packages: acorn: 8.10.0 acorn-walk: 8.2.0 cac: 6.7.14 - chai: 4.3.8 + chai: 4.3.10 debug: 4.3.4(supports-color@8.1.1) local-pkg: 0.4.3 magic-string: 0.30.3 @@ -8561,9 +8620,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.9(@types/node@20.4.5) - vite-node: 0.34.1(@types/node@20.4.5) - + vite: 4.4.9(@types/node@20.5.7) + vite-node: 0.34.3(@types/node@20.5.7) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -8824,6 +8882,6 @@ packages: engines: {node: '>=12.20'} dev: true - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} dev: true diff --git a/redispass b/redispass new file mode 100644 index 0000000..1050001 --- /dev/null +++ b/redispass @@ -0,0 +1 @@ +asd \ No newline at end of file diff --git a/src/external-jwt/cache.ts b/src/external-jwt/cache.ts index 3718d25..684f1d3 100644 --- a/src/external-jwt/cache.ts +++ b/src/external-jwt/cache.ts @@ -1,10 +1,14 @@ import {default as Keyv, Store} from 'keyv'; import env from './config/config'; import {default as KeyvRedis} from '@keyv/redis'; + // check if redis is defined const cache: Keyv | null = getCache(); + + + function getCache(): Keyv | null { if(env['CACHE_ENABLED'] !== true) return null; @@ -25,18 +29,35 @@ function getCache(): Keyv | null { uri = env['REDIS'] if(uri == null || uri === '') { - uri = `redis://${env['REDIS_USERNAME']}:${env['REDIS_PASSWORD']}@${env['REDIS_HOST']}:${env['REDIS_PORT']}`; + uri = `redis://${env['REDIS_USERNAME'] || '' }:${env['REDIS_PASSWORD'] || ''}@${env['REDIS_HOST']}:${env['REDIS_PORT'] || '6379'} /${env['REDIS_JWT_DB'] || '2'}`; } - store = new KeyvRedis(uri); - + try { + store = new KeyvRedis(uri); + } catch(e) { + throw new Error("CACHE: could not connect to database: " + e) + } + } - return new Keyv(uri, { - namespace: namespace, - ttl, - store: store - }); + try { + const keyv = new Keyv(uri, { + namespace: namespace, + ttl, + store: store + }); + + keyv.on('error', (err) => { + throw new Error("CACHE: could not connect: " + err) + }); + + return keyv + } catch(e) { + throw new Error("CACHE: could not connect to database: " + e) + } + + + } export function CacheEnabled(): boolean { diff --git a/src/external-jwt/config/config.ts b/src/external-jwt/config/config.ts index 89fc413..fc97702 100644 --- a/src/external-jwt/config/config.ts +++ b/src/external-jwt/config/config.ts @@ -33,6 +33,8 @@ const allowedEnvironmentVars = [ 'REDIS_PORT', 'REDIS_USERNAME', 'REDIS_PASSWORD', + 'REDIS_PASSWORD_FILE', + 'REDIS_JWT_DB', // auth 'AUTH_PROVIDERS', 'AUTH_.+_DRIVER',