diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f4a3db7b1..c19bedaa3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -64,7 +64,7 @@ jobs: echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV - run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV #- name: Repository Dispatch - # uses: peter-evans/repository-dispatch@7279ea08e172078316f128ed1118df40d2904f0f # v3.0.0 + # uses: peter-evans/repository-dispatch@de78ac1a711fc6f29e77338f843065faf5335227 # v3.0.0 # with: # token: ${{ github.token }} # event-type: trigger-ocelot-build-success @@ -72,7 +72,7 @@ jobs: # client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "VERSION": "${VERSION}", "BUILD_DATE": "${BUILD_DATE}", "BUILD_COMMIT": "${BUILD_COMMIT}", "BUILD_VERSION": "${BUILD_VERSION}"}' - name: Repository Dispatch stage.ocelot.social - uses: peter-evans/repository-dispatch@7279ea08e172078316f128ed1118df40d2904f0f # v3.0.0 + uses: peter-evans/repository-dispatch@de78ac1a711fc6f29e77338f843065faf5335227 # v3.0.0 with: token: ${{ secrets.OCELOT_PUBLISH_EVENT_PAT }} # this token is required to access the other repository event-type: trigger-ocelot-build-success @@ -80,7 +80,7 @@ jobs: client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "GITHUB_RUN_NUMBER": "${{ env.GITHUB_RUN_NUMBER }}", "VERSION": "${VERSION}", "BUILD_DATE": "${BUILD_DATE}", "BUILD_COMMIT": "${BUILD_COMMIT}", "BUILD_VERSION": "${BUILD_VERSION}"}' - name: Repository Dispatch stage.yunite.me - uses: peter-evans/repository-dispatch@7279ea08e172078316f128ed1118df40d2904f0f # v3.0.0 + uses: peter-evans/repository-dispatch@de78ac1a711fc6f29e77338f843065faf5335227 # v3.0.0 with: token: ${{ secrets.OCELOT_PUBLISH_EVENT_PAT }} # this token is required to access the other repository event-type: trigger-ocelot-build-success diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml index 1b8709d81..ffa420df9 100644 --- a/.github/workflows/test-backend.yml +++ b/.github/workflows/test-backend.yml @@ -37,7 +37,7 @@ jobs: - name: Cache docker images id: cache-neo4j - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/neo4j.tar key: ${{ github.run_id }}-backend-neo4j-cache @@ -58,7 +58,7 @@ jobs: - name: Cache docker images id: cache-backend - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/backend.tar key: ${{ github.run_id }}-backend-cache @@ -87,14 +87,14 @@ jobs: uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4.1.7 - name: Restore Neo4J cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/neo4j.tar key: ${{ github.run_id }}-backend-neo4j-cache fail-on-cache-miss: true - name: Restore Backend cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/backend.tar key: ${{ github.run_id }}-backend-cache diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 6c0e4e620..e59fe7e48 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -31,7 +31,7 @@ jobs: docker compose -f docker-compose.yml -f docker-compose.test.yml down - name: Cache docker images - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: | /tmp/backend.tar @@ -59,7 +59,7 @@ jobs: docker save "ghcr.io/ocelot-social-community/ocelot-social/webapp:test" > /tmp/webapp.tar - name: Cache docker image - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/webapp.tar key: ${{ github.run_id }}-e2e-webapp-cache @@ -93,7 +93,7 @@ jobs: - name: Cache docker image - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: | /opt/cucumber-json-formatter @@ -123,7 +123,7 @@ jobs: cache: 'yarn' - name: Restore cypress cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: | /opt/cucumber-json-formatter @@ -133,7 +133,7 @@ jobs: restore-keys: ${{ github.run_id }}-e2e-cypress - name: Restore backend environment cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: | /tmp/backend.tar @@ -144,7 +144,7 @@ jobs: key: ${{ github.run_id }}-e2e-backend-environment-cache - name: Restore webapp cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/webapp.tar key: ${{ github.run_id }}-e2e-webapp-cache diff --git a/.github/workflows/test-webapp.yml b/.github/workflows/test-webapp.yml index eedbcc752..37b33cc1c 100644 --- a/.github/workflows/test-webapp.yml +++ b/.github/workflows/test-webapp.yml @@ -50,7 +50,7 @@ jobs: docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar - name: Cache docker image - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/webapp.tar key: ${{ github.run_id }}-webapp-cache @@ -79,7 +79,7 @@ jobs: uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4.1.7 - name: Restore webapp cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.0.2 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.0.2 with: path: /tmp/webapp.tar key: ${{ github.run_id }}-webapp-cache diff --git a/backend/Dockerfile b/backend/Dockerfile index 017b98107..739be96c3 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24.8.0-alpine AS base +FROM node:24.9.0-alpine AS base LABEL org.label-schema.name="ocelot.social:backend" LABEL org.label-schema.description="Backend of the Social Network Software ocelot.social" LABEL org.label-schema.usage="https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md" diff --git a/backend/package.json b/backend/package.json index e66199198..d9d241bd8 100644 --- a/backend/package.json +++ b/backend/package.json @@ -29,7 +29,7 @@ }, "dependencies": { "@aws-sdk/client-s3": "^3.896.0", - "@aws-sdk/lib-storage": "^3.888.0", + "@aws-sdk/lib-storage": "^3.896.0", "@sentry/node": "^5.30.0", "@types/mime-types": "^3.0.1", "apollo-server": "~2.14.2", @@ -50,14 +50,14 @@ "graphql-tag": "~2.10.3", "graphql-upload": "^13.0.0", "helmet": "~8.1.0", - "ioredis": "^5.7.0", + "ioredis": "^5.8.0", "jsonwebtoken": "~8.5.1", "languagedetect": "^2.0.0", "linkify-html": "^4.3.2", "linkifyjs": "^4.3.2", "lodash": "~4.17.21", "merge-graphql-schemas": "^1.7.8", - "metascraper": "^5.49.2", + "metascraper": "^5.49.4", "metascraper-author": "^5.49.2", "metascraper-date": "^5.49.2", "metascraper-description": "^5.49.2", @@ -122,7 +122,7 @@ "prettier": "^3.6.2", "require-json5": "^1.3.0", "rosie": "^2.1.1", - "ts-jest": "^29.4.1", + "ts-jest": "^29.4.4", "ts-node": "^10.9.2", "tsc-alias": "^1.8.16", "tsconfig-paths": "^4.2.0", diff --git a/backend/src/graphql/resolvers/users.ts b/backend/src/graphql/resolvers/users.ts index 6720ec0fb..f37c21619 100644 --- a/backend/src/graphql/resolvers/users.ts +++ b/backend/src/graphql/resolvers/users.ts @@ -353,14 +353,11 @@ export default { session.close() } }, - updateOnlineStatus: async (_object, args, context, _resolveInfo) => { + updateOnlineStatus: async (_object, args, context: Context, _resolveInfo) => { const { status } = args - const { - user: { id }, - } = context const CYPHER_AWAY = ` - MATCH (user:User {id: $id}) + MATCH (user:User {id: $user.id}) WITH user, CASE user.lastOnlineStatus WHEN 'away' THEN user.awaySince @@ -370,16 +367,14 @@ export default { SET user.lastOnlineStatus = $status ` const CYPHER_ONLINE = ` - MATCH (user:User {id: $id}) + MATCH (user:User {id: $user.id}) SET user.awaySince = null SET user.lastOnlineStatus = $status ` - // Last Online Time is saved as `lastActiveAt` - const session = context.driver.session() - await session.writeTransaction((transaction) => { - // return transaction.run(status === 'away' ? CYPHER_AWAY : CYPHER_ONLINE, { id, status }) - return transaction.run(status === 'away' ? CYPHER_AWAY : CYPHER_ONLINE, { id, status }) + await context.database.write({ + query: status === 'away' ? CYPHER_AWAY : CYPHER_ONLINE, + variables: { user: context.user, status }, }) return true diff --git a/backend/yarn.lock b/backend/yarn.lock index 32d8c5956..173168e5c 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -361,14 +361,14 @@ "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/lib-storage@^3.888.0": - version "3.888.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.888.0.tgz#d39ee4403282784fc0eea032661f3f657a402326" - integrity sha512-UCZsVxjnQ6QpVWI1ZiNGmxfd1+8YBNbriQJ5lssR2IudQt5ThGhamGkwoYBmFV4iwhmgIT2fn5+gErugFZuUhw== +"@aws-sdk/lib-storage@^3.896.0": + version "3.896.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.896.0.tgz#c65350f32867c1e2783dde2f7a1d4b85b5922104" + integrity sha512-EJWXL/5LxBJFujsOud3+EfRbIwy/SZiWy5ld70RdoqLS/RsfZh9+mZMJGvd3hewy7xHgDYVbxZfDh14bsvfYIQ== dependencies: - "@smithy/abort-controller" "^4.0.5" - "@smithy/middleware-endpoint" "^4.2.1" - "@smithy/smithy-client" "^4.6.1" + "@smithy/abort-controller" "^4.1.1" + "@smithy/middleware-endpoint" "^4.2.4" + "@smithy/smithy-client" "^4.6.4" buffer "5.6.0" events "3.3.0" stream-browserify "3.0.0" @@ -1326,10 +1326,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@ioredis/commands@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.3.0.tgz#4dc3ae9bfa7146b63baf27672a61db0ea86e35e5" - integrity sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ== +"@ioredis/commands@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.4.0.tgz#9f657d51cdd5d2fdb8889592aa4a355546151f25" + integrity sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ== "@isaacs/balanced-match@^4.0.1": version "4.0.1" @@ -2045,7 +2045,7 @@ dependencies: "@sinonjs/commons" "^3.0.1" -"@smithy/abort-controller@^4.0.5", "@smithy/abort-controller@^4.1.1": +"@smithy/abort-controller@^4.1.1": version "4.1.1" resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.1.1.tgz#9b3872ab6b2c061486175c281dadc0a853260533" integrity sha512-vkzula+IwRvPR6oKQhMYioM3A/oX/lFCZiwuxkQbRhqJS2S4YRY2k7k/SyR2jMf3607HLtbEwlRxi0ndXHMjRg== @@ -2231,7 +2231,7 @@ "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^4.2.1", "@smithy/middleware-endpoint@^4.2.4": +"@smithy/middleware-endpoint@^4.2.4": version "4.2.4" resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.2.4.tgz#d815d27b7869a66ee97b41932053ca5d5ec6315e" integrity sha512-FZ4hzupOmthm8Q8ujYrd0I+/MHwVMuSTdkDtIQE0xVuvJt9pLT6Q+b0p4/t+slDyrpcf+Wj7SN+ZqT5OryaaZg== @@ -2360,7 +2360,7 @@ "@smithy/util-utf8" "^4.1.0" tslib "^2.6.2" -"@smithy/smithy-client@^4.6.1", "@smithy/smithy-client@^4.6.4": +"@smithy/smithy-client@^4.6.4": version "4.6.4" resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.6.4.tgz#3a66bb71c91dadf1806adab664ba2e164a1139ab" integrity sha512-qL7O3VDyfzCSN9r+sdbQXGhaHtrfSJL30En6Jboj0I3bobf2g1/T0eP2L4qxqrEW26gWhJ4THI4ElVVLjYyBHg== @@ -6972,12 +6972,12 @@ internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" -ioredis@^5.3.2, ioredis@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.7.0.tgz#be8f4a09bfb67bfa84ead297ff625973a5dcefc3" - integrity sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g== +ioredis@^5.3.2, ioredis@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.8.0.tgz#a1c4ef6be2e274cc8e99c9e22794ef1ef06dc24a" + integrity sha512-AUXbKn9gvo9hHKvk6LbZJQSKn/qIfkWXrnsyL9Yrf+oeXmla9Nmf6XEumOddyhM8neynpK5oAV6r9r99KBuwzA== dependencies: - "@ioredis/commands" "^1.3.0" + "@ioredis/commands" "1.4.0" cluster-key-slot "^1.1.0" debug "^4.3.4" denque "^2.1.0" @@ -8560,10 +8560,10 @@ metascraper-youtube@^5.49.2: p-locate "~5.0.0" reachable-url "~1.8.2" -metascraper@^5.49.2: - version "5.49.2" - resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-5.49.2.tgz#9b0b43c933b45cc13139e5f80a4a4583d1cc1cdc" - integrity sha512-WT7+rz4q5s6Gi3ElQuTefnka22KviFIZfXgYz9P6f4FQmOydznSbuenkr7gsXyCPFdDtoO+aA2nClH94r8C+9g== +metascraper@^5.49.4: + version "5.49.4" + resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-5.49.4.tgz#7a0056cbe10d3de2f07f68b3d10f2726d64d1e38" + integrity sha512-ZDvntIsErYMOETK8dYaaIcqCBF/KvhPSQQBD+4Eqe1b6dqZAhk++iqCQyLJi68yEmhvzORryNoIAb7HiHg0Nig== dependencies: "@metascraper/helpers" "5.49.2" cheerio "~1.1.2" @@ -10955,10 +10955,10 @@ ts-invariant@^0.4.0: dependencies: tslib "^1.9.3" -ts-jest@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.1.tgz#42d33beb74657751d315efb9a871fe99e3b9b519" - integrity sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw== +ts-jest@^29.4.4: + version "29.4.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.4.tgz#fc6fefe28652ed81b8e1381ef8391901d9f81417" + integrity sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw== dependencies: bs-logger "^0.2.6" fast-json-stable-stringify "^2.1.0" diff --git a/docu/architecture.drawio b/docu/architecture.drawio new file mode 100644 index 000000000..6bbb2d7d9 --- /dev/null +++ b/docu/architecture.drawio @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docu/architecture.png b/docu/architecture.png new file mode 100644 index 000000000..9c9289589 Binary files /dev/null and b/docu/architecture.png differ diff --git a/package-lock.json b/package-lock.json index fa4190150..7ab3df652 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,25 +1,25 @@ { "name": "ocelot-social", - "version": "3.12.1", + "version": "3.12.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ocelot-social", - "version": "3.12.1", + "version": "3.12.2", "license": "MIT", "devDependencies": { "@babel/core": "^7.28.4", "@babel/preset-env": "^7.28.3", "@babel/register": "^7.28.3", - "@badeball/cypress-cucumber-preprocessor": "^23.1.0", + "@badeball/cypress-cucumber-preprocessor": "^23.2.0", "@cucumber/cucumber": "12.2.0", "@cypress/browserify-preprocessor": "^3.0.2", "@faker-js/faker": "9.9.0", "auto-changelog": "^2.5.0", "bcryptjs": "^3.0.2", "cross-env": "^10.0.0", - "cypress": "^15.2.0", + "cypress": "^15.3.0", "cypress-network-idle": "^1.15.0", "date-fns": "^3.6.0", "dotenv": "^17.2.2", @@ -1843,9 +1843,9 @@ } }, "node_modules/@badeball/cypress-cucumber-preprocessor": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/@badeball/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-23.1.0.tgz", - "integrity": "sha512-oIrmj7fs7+DS/6WBQEmzlBdyPAQeuiXyCisHgDnGRpE6nGntkIdRUnj75YvLhubPYiy0TNeMJvKZW6prSnSA4A==", + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/@badeball/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-23.2.0.tgz", + "integrity": "sha512-9FK6m2oI5AwozPcRIe6Clz4+lZkQZkiev5YsidcLIg7lO9AWC0Uv0OeB60ioGOiwBKTq4YUbgWGKsoDsLKH5SA==", "dev": true, "funding": [ { @@ -1859,10 +1859,10 @@ "@cucumber/ci-environment": "^10.0.1", "@cucumber/cucumber": "^12.0.0", "@cucumber/cucumber-expressions": "^18.0.0", - "@cucumber/gherkin": "^34.0.0", + "@cucumber/gherkin": "^35.0.0", "@cucumber/html-formatter": "^21.7.0", "@cucumber/message-streams": "^4.0.1", - "@cucumber/messages": "^28.0.0", + "@cucumber/messages": "^29.0.0", "@cucumber/pretty-formatter": "^1.0.1", "@cucumber/tag-expressions": "^6.1.0", "base64-js": "^1.5.1", @@ -1892,6 +1892,27 @@ "cypress": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0" } }, + "node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/gherkin": { + "version": "35.1.0", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-35.1.0.tgz", + "integrity": "sha512-JtQZLlhclejUb1lmnztMBin2Qu5lvSuet9dCl/nizrP8Icr8ywZk6PaDfcFXwS5iNQAKV+wH9FLsPxhhxME0sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cucumber/messages": ">=19.1.4 <30" + } + }, + "node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/messages": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-29.0.1.tgz", + "integrity": "sha512-aAvIYfQD6/aBdF8KFQChC3CQ1Q+GX9orlR6GurGiX6oqaCnBkxA4WU3OQUVepDynEFrPayerqKRFcAMhdcXReQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "class-transformer": "0.5.1", + "reflect-metadata": "0.2.2" + } + }, "node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/glob": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", @@ -4392,6 +4413,13 @@ "integrity": "sha512-m04Om5Gz6kbjUwAQ7XJJQ30OdEFsSmAVsvn4NYwcTRyMVpKKa1aPuESw1n2CxS5fYkOQv3nHgDKeNa8e76fUkw==", "dev": true }, + "node_modules/@types/tmp": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.6.tgz", + "integrity": "sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -7154,15 +7182,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/cheerio-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", @@ -7782,9 +7801,9 @@ "optional": true }, "node_modules/cypress": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-15.2.0.tgz", - "integrity": "sha512-J4ehSzOSb58SkXyldCe9y/oZ8ep8Bl6+q9kDUjnkqNqc2ZKzDq5KSbhIc2lHFAFR5Jtj10oNqr9JRAZbr8DA8A==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-15.3.0.tgz", + "integrity": "sha512-g9rDhoK9y8wW4Vx3Ppr8dtfvThXxPL3mJsV5e98fG+6EerrhXKmeRT2sL86cvNRtEZouXJfsuVL1lqiMuGNGcg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7793,13 +7812,13 @@ "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", + "@types/tmp": "^0.2.3", "arch": "^2.2.0", "blob-util": "^2.0.2", "bluebird": "^3.7.2", "buffer": "^5.7.1", "cachedir": "^2.3.0", "chalk": "^4.1.0", - "check-more-types": "^2.24.0", "ci-info": "^4.1.0", "cli-cursor": "^3.1.0", "cli-table3": "0.6.1", @@ -7816,7 +7835,6 @@ "fs-extra": "^9.1.0", "hasha": "5.2.2", "is-installed-globally": "~0.4.0", - "lazy-ass": "^1.6.0", "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", @@ -7838,7 +7856,7 @@ "cypress": "bin/cypress" }, "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + "node": "^20.1.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/cypress-network-idle": { @@ -11043,15 +11061,6 @@ "stream-splicer": "^2.0.0" } }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "dev": true, - "engines": { - "node": "> 0.8" - } - }, "node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", diff --git a/package.json b/package.json index 209fc5bfc..8e8f12763 100644 --- a/package.json +++ b/package.json @@ -36,14 +36,14 @@ "@babel/core": "^7.28.4", "@babel/preset-env": "^7.28.3", "@babel/register": "^7.28.3", - "@badeball/cypress-cucumber-preprocessor": "^23.1.0", + "@badeball/cypress-cucumber-preprocessor": "^23.2.0", "@cucumber/cucumber": "12.2.0", "@cypress/browserify-preprocessor": "^3.0.2", "@faker-js/faker": "9.9.0", "auto-changelog": "^2.5.0", "bcryptjs": "^3.0.2", "cross-env": "^10.0.0", - "cypress": "^15.2.0", + "cypress": "^15.3.0", "cypress-network-idle": "^1.15.0", "date-fns": "^3.6.0", "dotenv": "^17.2.2", diff --git a/yarn.lock b/yarn.lock index d7db4ee54..f4dddd335 100644 --- a/yarn.lock +++ b/yarn.lock @@ -962,18 +962,18 @@ "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" -"@badeball/cypress-cucumber-preprocessor@^23.1.0": - version "23.1.0" - resolved "https://registry.yarnpkg.com/@badeball/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-23.1.0.tgz#50fabbcf09ed6e613cf7127866d7ad735cbef0b6" - integrity sha512-oIrmj7fs7+DS/6WBQEmzlBdyPAQeuiXyCisHgDnGRpE6nGntkIdRUnj75YvLhubPYiy0TNeMJvKZW6prSnSA4A== +"@badeball/cypress-cucumber-preprocessor@^23.2.0": + version "23.2.0" + resolved "https://registry.yarnpkg.com/@badeball/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-23.2.0.tgz#6087d0ff11e81904eabb87802f2af7c3446308f6" + integrity sha512-9FK6m2oI5AwozPcRIe6Clz4+lZkQZkiev5YsidcLIg7lO9AWC0Uv0OeB60ioGOiwBKTq4YUbgWGKsoDsLKH5SA== dependencies: "@cucumber/ci-environment" "^10.0.1" "@cucumber/cucumber" "^12.0.0" "@cucumber/cucumber-expressions" "^18.0.0" - "@cucumber/gherkin" "^34.0.0" + "@cucumber/gherkin" "^35.0.0" "@cucumber/html-formatter" "^21.7.0" "@cucumber/message-streams" "^4.0.1" - "@cucumber/messages" "^28.0.0" + "@cucumber/messages" "^29.0.0" "@cucumber/pretty-formatter" "^1.0.1" "@cucumber/tag-expressions" "^6.1.0" base64-js "^1.5.1" @@ -1073,7 +1073,7 @@ commander "13.1.0" source-map-support "^0.5.21" -"@cucumber/gherkin@34.0.0", "@cucumber/gherkin@^34.0.0": +"@cucumber/gherkin@34.0.0": version "34.0.0" resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-34.0.0.tgz#891ec27a7c09a9fc3695aaf3c3a3c8a1c594102f" integrity sha512-659CCFsrsyvuBi/Eix1fnhSheMnojSfnBcqJ3IMPNawx7JlrNJDcXYSSdxcUw3n/nG05P+ptCjmiZY3i14p+tA== @@ -1087,6 +1087,13 @@ dependencies: "@cucumber/messages" ">=19.1.4 <=26" +"@cucumber/gherkin@^35.0.0": + version "35.1.0" + resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-35.1.0.tgz#f0bc77a6e4d44a02b7ac5530f98480a58c697712" + integrity sha512-JtQZLlhclejUb1lmnztMBin2Qu5lvSuet9dCl/nizrP8Icr8ywZk6PaDfcFXwS5iNQAKV+wH9FLsPxhhxME0sQ== + dependencies: + "@cucumber/messages" ">=19.1.4 <30" + "@cucumber/html-formatter@21.14.0", "@cucumber/html-formatter@^21.7.0": version "21.14.0" resolved "https://registry.yarnpkg.com/@cucumber/html-formatter/-/html-formatter-21.14.0.tgz#beb29b66892189f8e242243aa8b807f7b9dc1c6c" @@ -1107,7 +1114,7 @@ resolved "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-4.0.1.tgz" integrity sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA== -"@cucumber/messages@28.1.0", "@cucumber/messages@>=19.1.4 <29", "@cucumber/messages@^28.0.0": +"@cucumber/messages@28.1.0", "@cucumber/messages@>=19.1.4 <29": version "28.1.0" resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-28.1.0.tgz#5fdcfc3f9b30103cb45c69044ebe9a892bec38ce" integrity sha512-2LzZtOwYKNlCuNf31ajkrekoy2M4z0Z1QGiPH40n4gf5t8VOUFb7m1ojtR4LmGvZxBGvJZP8voOmRqDWzBzYKA== @@ -1117,6 +1124,14 @@ reflect-metadata "0.2.2" uuid "11.1.0" +"@cucumber/messages@>=19.1.4 <30", "@cucumber/messages@^29.0.0": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-29.0.1.tgz#68de23447af07123aca97008f20b885a4106f5b2" + integrity sha512-aAvIYfQD6/aBdF8KFQChC3CQ1Q+GX9orlR6GurGiX6oqaCnBkxA4WU3OQUVepDynEFrPayerqKRFcAMhdcXReQ== + dependencies: + class-transformer "0.5.1" + reflect-metadata "0.2.2" + "@cucumber/messages@>=19.1.4 <=26": version "22.0.0" resolved "https://registry.npmjs.org/@cucumber/messages/-/messages-22.0.0.tgz" @@ -2125,6 +2140,11 @@ resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.6.tgz" integrity sha512-m04Om5Gz6kbjUwAQ7XJJQ30OdEFsSmAVsvn4NYwcTRyMVpKKa1aPuESw1n2CxS5fYkOQv3nHgDKeNa8e76fUkw== +"@types/tmp@^0.2.3": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217" + integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA== + "@types/trusted-types@^2.0.2": version "2.0.7" resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" @@ -3442,11 +3462,6 @@ character-entities-legacy@^3.0.0: resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== -check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz" - integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== - cheerio-select@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" @@ -3909,22 +3924,22 @@ cypress-network-idle@^1.15.0: resolved "https://registry.npmjs.org/cypress-network-idle/-/cypress-network-idle-1.15.0.tgz" integrity sha512-8zU16zhc7S3nMl1NTEEcNsZYlJy/ZzP2zPTTrngGxyXH32Ipake/xfHLZsgrzeWCieiS2AVhQsakhWqFzO3hpw== -cypress@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.2.0.tgz#a1b48c8ef00f520fbaea60261ed244c8382dd3bc" - integrity sha512-J4ehSzOSb58SkXyldCe9y/oZ8ep8Bl6+q9kDUjnkqNqc2ZKzDq5KSbhIc2lHFAFR5Jtj10oNqr9JRAZbr8DA8A== +cypress@^15.3.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.3.0.tgz#cb9416e5261ee419c8a42e839d4f2d73eef8797c" + integrity sha512-g9rDhoK9y8wW4Vx3Ppr8dtfvThXxPL3mJsV5e98fG+6EerrhXKmeRT2sL86cvNRtEZouXJfsuVL1lqiMuGNGcg== dependencies: "@cypress/request" "^3.0.9" "@cypress/xvfb" "^1.2.4" "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" + "@types/tmp" "^0.2.3" arch "^2.2.0" blob-util "^2.0.2" bluebird "^3.7.2" buffer "^5.7.1" cachedir "^2.3.0" chalk "^4.1.0" - check-more-types "^2.24.0" ci-info "^4.1.0" cli-cursor "^3.1.0" cli-table3 "0.6.1" @@ -3941,7 +3956,6 @@ cypress@^15.2.0: fs-extra "^9.1.0" hasha "5.2.2" is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" listr2 "^3.8.3" lodash "^4.17.21" log-symbols "^4.0.0" @@ -5871,11 +5885,6 @@ labeled-stream-splicer@^2.0.0: inherits "^2.0.1" stream-splicer "^2.0.0" -lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz" - integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== - lazy-ass@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-2.0.3.tgz"