Merge branch 'master' into images-in-post

This commit is contained in:
Max 2026-01-25 19:50:15 +01:00 committed by GitHub
commit 2099e3dcd0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
35 changed files with 1292 additions and 894 deletions

View File

@ -11,7 +11,7 @@ jobs:
documentation: ${{ steps.changes.outputs.documentation }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for markdown file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -28,7 +28,7 @@ jobs:
if: needs.files-changed.outputs.markdown == 'true'
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Remove uncheckable documentation files
run: rm -rf ./CHANGELOG.md # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
@ -51,7 +51,7 @@ jobs:
if: needs.files-changed.outputs.documentation == 'true'
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Setup Node 20
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3

View File

@ -22,7 +22,7 @@ jobs:
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Cleanup
run: |

View File

@ -13,7 +13,7 @@ jobs:
documentation: ${{ steps.changes.outputs.documentation }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Setup Node 20
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3

View File

@ -59,7 +59,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Log in to the Container registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef
with:

View File

@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
with:
fetch-depth: 0 # Fetch full History for changelog
- name: Setup env
@ -54,7 +54,7 @@ jobs:
needs: [github_tag]
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
with:
fetch-depth: 0 # Fetch full History for changelog
- name: Setup env
@ -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@09094272a794c6105029af051e3831908c649b6c # v3.0.0
# uses: peter-evans/repository-dispatch@cf70392543065ca62813db6712a06df1c4f4ae9f # 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@09094272a794c6105029af051e3831908c649b6c # v3.0.0
uses: peter-evans/repository-dispatch@cf70392543065ca62813db6712a06df1c4f4ae9f # 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@09094272a794c6105029af051e3831908c649b6c # v3.0.0
uses: peter-evans/repository-dispatch@cf70392543065ca62813db6712a06df1c4f4ae9f # 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

View File

@ -11,7 +11,7 @@ jobs:
backend: ${{ steps.changes.outputs.backend }}
docker: ${{ steps.changes.outputs.docker }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for backend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Neo4J | Build 'community' image
run: |
@ -49,7 +49,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: backend | Build 'test' image
run: |
@ -70,7 +70,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: backend | Lint
run: cd backend && yarn && yarn run lint
@ -84,7 +84,7 @@ jobs:
checks: write
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Restore Neo4J cache
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v4.0.2

View File

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Copy backend env file
run: |
@ -46,7 +46,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Copy backend env file
run: |
@ -72,7 +72,7 @@ jobs:
run: rm -rf /opt/hostedtoolcache
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.4.0
@ -120,7 +120,7 @@ jobs:
run: rm -rf /opt/hostedtoolcache
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.4.0
@ -193,7 +193,7 @@ jobs:
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Full stack tests | cleanup cache
run: |

View File

@ -11,7 +11,7 @@ jobs:
docker: ${{ steps.changes.outputs.docker }}
webapp: ${{ steps.changes.outputs.webapp }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check translation files
run: |
@ -42,7 +42,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Webapp | Build 'test' image
run: |
@ -62,7 +62,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: webapp | Lint
run: cd webapp && yarn && yarn run lint
@ -76,7 +76,7 @@ jobs:
checks: write
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Restore webapp cache
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v4.0.2

View File

@ -1,4 +1,4 @@
FROM node:25.3.0-alpine AS base
FROM node:25.4.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"

View File

@ -25,18 +25,19 @@
"db:migrate:create": "migrate --compiler 'ts:./src/db/compiler.ts' --migrations-dir ./src/db/migrations --template-file ./src/db/migrate/template.ts --date-format 'yyyymmddHHmmss' create",
"prod:migrate": "migrate --migrations-dir ./build/src/db/migrations --store ./build/src/db/migrate/store.js",
"prod:db:data:branding": "node build/src/db/data-branding.js",
"prod:db:data:categories": "node build/src/db/categories.js"
"prod:db:data:categories": "node build/src/db/categories.js",
"prod:db:data:admin": "node build/src/db/admin.js"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.971.0",
"@aws-sdk/lib-storage": "^3.971.0",
"@aws-sdk/client-s3": "^3.975.0",
"@aws-sdk/lib-storage": "^3.975.0",
"@sentry/node": "^5.30.0",
"@types/mime-types": "^3.0.1",
"apollo-server": "~2.14.2",
"apollo-server-express": "^2.14.2",
"bcryptjs": "~3.0.3",
"body-parser": "^1.20.3",
"cheerio": "~1.1.2",
"cheerio": "~1.2.0",
"cross-env": "~10.1.0",
"dotenv": "~17.0.1",
"email-templates": "^12.0.3",
@ -55,22 +56,22 @@
"languagedetect": "^2.0.0",
"linkify-html": "^4.3.2",
"linkifyjs": "^4.3.2",
"lodash": "~4.17.21",
"lodash": "~4.17.23",
"merge-graphql-schemas": "^1.7.8",
"metascraper": "^5.49.15",
"metascraper-author": "^5.49.15",
"metascraper-date": "^5.49.15",
"metascraper-description": "^5.49.15",
"metascraper-image": "^5.49.15",
"metascraper-lang": "^5.49.15",
"metascraper": "^5.49.19",
"metascraper-author": "^5.49.19",
"metascraper-date": "^5.49.19",
"metascraper-description": "^5.49.19",
"metascraper-image": "^5.49.19",
"metascraper-lang": "^5.49.19",
"metascraper-lang-detector": "^4.10.2",
"metascraper-logo": "^5.49.15",
"metascraper-publisher": "^5.49.15",
"metascraper-logo": "^5.49.19",
"metascraper-publisher": "^5.49.19",
"metascraper-soundcloud": "^5.34.4",
"metascraper-title": "^5.49.15",
"metascraper-url": "^5.49.15",
"metascraper-video": "^5.49.15",
"metascraper-youtube": "^5.49.15",
"metascraper-title": "^5.49.19",
"metascraper-url": "^5.49.19",
"metascraper-video": "^5.49.19",
"metascraper-youtube": "^5.49.20",
"migrate": "^2.1.0",
"mime-types": "^3.0.2",
"minimatch": "^10.1.1",
@ -81,7 +82,7 @@
"node-fetch": "^2.7.0",
"nodemailer": "^7.0.12",
"nodemailer-html-to-text": "^3.2.0",
"preview-email": "^3.1.0",
"preview-email": "^3.1.1",
"pug": "^3.0.3",
"sanitize-html": "~2.17.0",
"slugify": "^1.6.6",
@ -98,7 +99,7 @@
"@types/jest": "^30.0.0",
"@types/jsonwebtoken": "~8.5.1",
"@types/lodash": "^4.17.23",
"@types/node": "^25.0.9",
"@types/node": "^25.0.10",
"@types/request": "^2.48.13",
"@types/slug": "^5.0.9",
"@types/uuid": "~9.0.1",
@ -119,7 +120,7 @@
"eslint-plugin-security": "^3.0.1",
"jest": "^30.2.0",
"nodemon": "~3.1.11",
"prettier": "^3.8.0",
"prettier": "^3.8.1",
"require-json5": "^1.3.0",
"rosie": "^2.1.1",
"ts-jest": "^29.4.6",

View File

@ -24,9 +24,6 @@ export default {
Query: {
Group: async (_object, params, context: Context, _resolveInfo) => {
const { isMember, id, slug, first, offset } = params
let pagination = ''
const orderBy = 'ORDER BY group.createdAt DESC'
if (first !== undefined && offset !== undefined) pagination = `SKIP ${offset} LIMIT ${first}`
const matchParams = { id, slug }
removeUndefinedNullValuesFromObject(matchParams)
const session = context.driver.session()
@ -34,43 +31,22 @@ export default {
if (!context.user) {
throw new Error('Missing authenticated user.')
}
const groupMatchParamsCypher = convertObjectToCypherMapLiteral(matchParams, true)
let groupCypher
if (isMember === true) {
groupCypher = `
MATCH (:User {id: $userId})-[membership:MEMBER_OF]->(group:Group${groupMatchParamsCypher})
WITH group, membership
WHERE (group.groupType IN ['public', 'closed']) OR (group.groupType = 'hidden' AND membership.role IN ['usual', 'admin', 'owner'])
RETURN group {.*, myRole: membership.role}
${orderBy}
${pagination}
const transactionResponse = await txc.run(
`
} else {
if (isMember === false) {
groupCypher = `
MATCH (group:Group${groupMatchParamsCypher})
WHERE (NOT (:User {id: $userId})-[:MEMBER_OF]->(group))
WITH group
WHERE group.groupType IN ['public', 'closed']
RETURN group {.*, myRole: NULL}
${orderBy}
${pagination}
`
} else {
groupCypher = `
MATCH (group:Group${groupMatchParamsCypher})
OPTIONAL MATCH (:User {id: $userId})-[membership:MEMBER_OF]->(group)
WITH group, membership
WHERE (group.groupType IN ['public', 'closed']) OR (group.groupType = 'hidden' AND membership.role IN ['usual', 'admin', 'owner'])
RETURN group {.*, myRole: membership.role}
${orderBy}
${pagination}
`
}
}
const transactionResponse = await txc.run(groupCypher, {
userId: context.user.id,
})
MATCH (group:Group${convertObjectToCypherMapLiteral(matchParams, true)})
OPTIONAL MATCH (:User {id: $userId})-[membership:MEMBER_OF]->(group)
WITH group, membership
${(isMember === true && "WHERE membership IS NOT NULL AND (group.groupType IN ['public', 'closed']) OR (group.groupType = 'hidden' AND membership.role IN ['usual', 'admin', 'owner'])") || ''}
${(isMember === false && "WHERE membership IS NULL AND (group.groupType IN ['public', 'closed'])") || ''}
${(isMember === undefined && "WHERE (group.groupType IN ['public', 'closed']) OR (group.groupType = 'hidden' AND membership.role IN ['usual', 'admin', 'owner'])") || ''}
RETURN group {.*, myRole: membership.role}
ORDER BY group.createdAt DESC
${first !== undefined && offset !== undefined ? `SKIP ${offset} LIMIT ${first}` : ''}
`,
{
userId: context.user.id,
},
)
return transactionResponse.records.map((record) => record.get('group'))
})
try {
@ -460,6 +436,23 @@ export default {
},
},
Group: {
myRole: async (parent, _args, context: Context, _resolveInfo) => {
if (!parent.id) {
throw new Error('Can not identify selected Group!')
}
return (
await context.database.query({
query: `
MATCH (:User {id: $user.id})-[membership:MEMBER_OF]->(group:Group {id: $parent.id})
RETURN membership.role as role
`,
variables: {
user: context.user,
parent,
},
})
).records.map((r) => r.get('role'))[0]
},
inviteCodes: async (parent, _args, context: Context, _resolveInfo) => {
if (!parent.id) {
throw new Error('Can not identify selected Group!')

View File

@ -157,7 +157,7 @@ export default {
)`
}
const categoriesCypher =
config.CATEGORIES_ACTIVE && categoryIds
config.CATEGORIES_ACTIVE && categoryIds && categoryIds.length > 0
? `WITH post
UNWIND $categoryIds AS categoryId
MATCH (category:Category {id: categoryId})

View File

@ -387,7 +387,7 @@ const isAllowedToGenerateGroupInviteCode = rule({
return !!(
await context.database.query({
query: `
MATCH (user:User{id: user.id})-[membership:MEMBER_OF]->(group:Group {id: $args.groupId})
MATCH (user:User{id: $user.id})-[membership:MEMBER_OF]->(group:Group {id: $args.groupId})
WHERE (group.type IN ['closed','hidden'] AND membership.role IN ['admin', 'owner'])
OR (NOT group.type IN ['closed','hidden'] AND NOT membership.role = 'pending')
RETURN count(group) as count

File diff suppressed because it is too large Load Diff

291
package-lock.json generated
View File

@ -13,7 +13,7 @@
"@babel/preset-env": "^7.28.5",
"@babel/register": "^7.28.3",
"@badeball/cypress-cucumber-preprocessor": "^24.0.0",
"@cucumber/cucumber": "12.5.0",
"@cucumber/cucumber": "12.6.0",
"@cypress/webpack-preprocessor": "^7.0.2",
"auto-changelog": "^2.5.0",
"cypress": "^15.9.0",
@ -24,7 +24,7 @@
"mock-socket": "^9.0.3",
"multiple-cucumber-html-reporter": "^3.9.3",
"node-polyfill-webpack-plugin": "^4.1.0",
"sass-embedded": "^1.97.2",
"sass-embedded": "^1.97.3",
"webpack": "^5.104.1"
},
"optionalDependencies": {
@ -1705,17 +1705,6 @@
"cypress": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0"
}
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/messages": {
"version": "31.2.0",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-31.2.0.tgz",
"integrity": "sha512-3urzBNCwmU/YKrKR0b3XdioFcOFNuxlLwEImsxeP8rXnweLs+Ky04QURcbKpFom3T6a6v9zVioLCfHUuSQ72pg==",
"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": "13.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz",
@ -1816,21 +1805,21 @@
"license": "MIT"
},
"node_modules/@cucumber/cucumber": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-12.5.0.tgz",
"integrity": "sha512-+VWxkIIpm5EWFfaF3grP1GlHobzlDBIF54FqJutdYmfpx3LJc+IS8uWdIN97m6zxizo5CPrUopTWkxzwVswUzg==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-12.6.0.tgz",
"integrity": "sha512-z6XKBIcUnJebnR3W8+K7Q2jJKB+pKpoD1l3CygEa9ufq/aeGuS5LAlllNxrod8loepLJhNmp8J8aengGbkL4cg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@cucumber/ci-environment": "12.0.0",
"@cucumber/cucumber-expressions": "18.0.1",
"@cucumber/cucumber-expressions": "18.1.0",
"@cucumber/gherkin": "37.0.1",
"@cucumber/gherkin-streams": "6.0.0",
"@cucumber/gherkin-utils": "10.0.0",
"@cucumber/html-formatter": "22.3.0",
"@cucumber/junit-xml-formatter": "0.9.0",
"@cucumber/message-streams": "4.0.1",
"@cucumber/messages": "31.1.0",
"@cucumber/messages": "31.2.0",
"@cucumber/pretty-formatter": "1.0.1",
"@cucumber/tag-expressions": "8.1.0",
"assertion-error-formatter": "^3.0.0",
@ -1874,26 +1863,15 @@
}
},
"node_modules/@cucumber/cucumber-expressions": {
"version": "18.0.1",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-18.0.1.tgz",
"integrity": "sha512-NSid6bI+7UlgMywl5octojY5NXnxR9uq+JisjOrO52VbFsQM6gTWuQFE8syI10KnIBEdPzuEUSVEeZ0VFzRnZA==",
"version": "18.1.0",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-18.1.0.tgz",
"integrity": "sha512-9yc+wForrn15FaqLWNjYb19iQ/gPXhcq1kc4X1Ex1lR7NcJpa5pGnCow3bc1HERVM5IoYH+gwwrcJogSMsf+Vw==",
"dev": true,
"license": "MIT",
"dependencies": {
"regexp-match-indices": "1.0.2"
}
},
"node_modules/@cucumber/cucumber/node_modules/@cucumber/messages": {
"version": "31.1.0",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-31.1.0.tgz",
"integrity": "sha512-BViwUQ9YMjcGL98Ww2QHMgu3S4JLUjbTz+Jo/jsq+8ZjS47/2v3IszpD6e12Y6IzZoGfrZriauZHPQ4PAmN9XA==",
"dev": true,
"license": "MIT",
"dependencies": {
"class-transformer": "0.5.1",
"reflect-metadata": "0.2.2"
}
},
"node_modules/@cucumber/cucumber/node_modules/glob": {
"version": "13.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz",
@ -2061,17 +2039,6 @@
"reflect-metadata": "0.2.2"
}
},
"node_modules/@cucumber/gherkin/node_modules/@cucumber/messages": {
"version": "31.2.0",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-31.2.0.tgz",
"integrity": "sha512-3urzBNCwmU/YKrKR0b3XdioFcOFNuxlLwEImsxeP8rXnweLs+Ky04QURcbKpFom3T6a6v9zVioLCfHUuSQ72pg==",
"dev": true,
"license": "MIT",
"dependencies": {
"class-transformer": "0.5.1",
"reflect-metadata": "0.2.2"
}
},
"node_modules/@cucumber/html-formatter": {
"version": "22.3.0",
"resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-22.3.0.tgz",
@ -2108,17 +2075,14 @@
}
},
"node_modules/@cucumber/messages": {
"version": "28.1.0",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-28.1.0.tgz",
"integrity": "sha512-2LzZtOwYKNlCuNf31ajkrekoy2M4z0Z1QGiPH40n4gf5t8VOUFb7m1ojtR4LmGvZxBGvJZP8voOmRqDWzBzYKA==",
"version": "31.2.0",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-31.2.0.tgz",
"integrity": "sha512-3urzBNCwmU/YKrKR0b3XdioFcOFNuxlLwEImsxeP8rXnweLs+Ky04QURcbKpFom3T6a6v9zVioLCfHUuSQ72pg==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@types/uuid": "10.0.0",
"class-transformer": "0.5.1",
"reflect-metadata": "0.2.2",
"uuid": "11.1.0"
"reflect-metadata": "0.2.2"
}
},
"node_modules/@cucumber/pretty-formatter": {
@ -3022,7 +2986,6 @@
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.4.tgz",
"integrity": "sha512-WYa2tUVV5HiArWPB3ydlOc4R2ivq0IDrlqhMi3l7mVsFEXNcTfxYFPIHXHXIh/ca/y/V5N4E1zecyxdIBjYnkQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
@ -3062,7 +3025,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3083,7 +3045,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3104,7 +3065,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3125,7 +3085,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3146,7 +3105,6 @@
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3167,7 +3125,6 @@
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3188,7 +3145,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3209,7 +3165,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3230,7 +3185,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3251,7 +3205,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3272,7 +3225,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3293,7 +3245,6 @@
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3314,7 +3265,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -3332,7 +3282,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"optional": true,
"engines": {
@ -6360,13 +6309,6 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
"node_modules/buffer-builder": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz",
"integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==",
"devOptional": true,
"license": "MIT/X11"
},
"node_modules/buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
@ -7527,7 +7469,6 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
"engines": {
@ -11110,7 +11051,6 @@
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
"dev": true,
"license": "MIT",
"optional": true
},
@ -13245,9 +13185,9 @@
"devOptional": true
},
"node_modules/sass": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.97.2.tgz",
"integrity": "sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz",
"integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==",
"license": "MIT",
"optional": true,
"dependencies": {
@ -13266,14 +13206,13 @@
}
},
"node_modules/sass-embedded": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.97.2.tgz",
"integrity": "sha512-lKJcskySwAtJ4QRirKrikrWMFa2niAuaGenY2ElHjd55IwHUiur5IdKu6R1hEmGYMs4Qm+6rlRW0RvuAkmcryg==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.97.3.tgz",
"integrity": "sha512-eKzFy13Nk+IRHhlAwP3sfuv+PzOrvzUkwJK2hdoCKYcWGSdmwFpeGpWmyewdw8EgBnsKaSBtgf/0b2K635ecSA==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"@bufbuild/protobuf": "^2.5.0",
"buffer-builder": "^0.2.0",
"colorjs.io": "^0.5.0",
"immutable": "^5.0.2",
"rxjs": "^7.4.0",
@ -13288,51 +13227,49 @@
"node": ">=16.0.0"
},
"optionalDependencies": {
"sass-embedded-all-unknown": "1.97.2",
"sass-embedded-android-arm": "1.97.2",
"sass-embedded-android-arm64": "1.97.2",
"sass-embedded-android-riscv64": "1.97.2",
"sass-embedded-android-x64": "1.97.2",
"sass-embedded-darwin-arm64": "1.97.2",
"sass-embedded-darwin-x64": "1.97.2",
"sass-embedded-linux-arm": "1.97.2",
"sass-embedded-linux-arm64": "1.97.2",
"sass-embedded-linux-musl-arm": "1.97.2",
"sass-embedded-linux-musl-arm64": "1.97.2",
"sass-embedded-linux-musl-riscv64": "1.97.2",
"sass-embedded-linux-musl-x64": "1.97.2",
"sass-embedded-linux-riscv64": "1.97.2",
"sass-embedded-linux-x64": "1.97.2",
"sass-embedded-unknown-all": "1.97.2",
"sass-embedded-win32-arm64": "1.97.2",
"sass-embedded-win32-x64": "1.97.2"
"sass-embedded-all-unknown": "1.97.3",
"sass-embedded-android-arm": "1.97.3",
"sass-embedded-android-arm64": "1.97.3",
"sass-embedded-android-riscv64": "1.97.3",
"sass-embedded-android-x64": "1.97.3",
"sass-embedded-darwin-arm64": "1.97.3",
"sass-embedded-darwin-x64": "1.97.3",
"sass-embedded-linux-arm": "1.97.3",
"sass-embedded-linux-arm64": "1.97.3",
"sass-embedded-linux-musl-arm": "1.97.3",
"sass-embedded-linux-musl-arm64": "1.97.3",
"sass-embedded-linux-musl-riscv64": "1.97.3",
"sass-embedded-linux-musl-x64": "1.97.3",
"sass-embedded-linux-riscv64": "1.97.3",
"sass-embedded-linux-x64": "1.97.3",
"sass-embedded-unknown-all": "1.97.3",
"sass-embedded-win32-arm64": "1.97.3",
"sass-embedded-win32-x64": "1.97.3"
}
},
"node_modules/sass-embedded-all-unknown": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.97.2.tgz",
"integrity": "sha512-Fj75+vOIDv1T/dGDwEpQ5hgjXxa2SmMeShPa8yrh2sUz1U44bbmY4YSWPCdg8wb7LnwiY21B2KRFM+HF42yO4g==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.97.3.tgz",
"integrity": "sha512-t6N46NlPuXiY3rlmG6/+1nwebOBOaLFOOVqNQOC2cJhghOD4hh2kHNQQTorCsbY9S1Kir2la1/XLBwOJfui0xg==",
"cpu": [
"!arm",
"!arm64",
"!riscv64",
"!x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"sass": "1.97.2"
"sass": "1.97.3"
}
},
"node_modules/sass-embedded-android-arm": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.97.2.tgz",
"integrity": "sha512-BPT9m19ttY0QVHYYXRa6bmqmS3Fa2EHByNUEtSVcbm5PkIk1ntmYkG9fn5SJpIMbNmFDGwHx+pfcZMmkldhnRg==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.97.3.tgz",
"integrity": "sha512-cRTtf/KV/q0nzGZoUzVkeIVVFv3L/tS1w4WnlHapphsjTXF/duTxI8JOU1c/9GhRPiMdfeXH7vYNcMmtjwX7jg==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13343,13 +13280,12 @@
}
},
"node_modules/sass-embedded-android-arm64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.97.2.tgz",
"integrity": "sha512-pF6I+R5uThrscd3lo9B3DyNTPyGFsopycdx0tDAESN6s+dBbiRgNgE4Zlpv50GsLocj/lDLCZaabeTpL3ubhYA==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.97.3.tgz",
"integrity": "sha512-aiZ6iqiHsUsaDx0EFbbmmA0QgxicSxVVN3lnJJ0f1RStY0DthUkquGT5RJ4TPdaZ6ebeJWkboV4bra+CP766eA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13360,13 +13296,12 @@
}
},
"node_modules/sass-embedded-android-riscv64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.97.2.tgz",
"integrity": "sha512-fprI8ZTJdz+STgARhg8zReI2QhhGIT9G8nS7H21kc3IkqPRzhfaemSxEtCqZyvDbXPcgYiDLV7AGIReHCuATog==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.97.3.tgz",
"integrity": "sha512-zVEDgl9JJodofGHobaM/q6pNETG69uuBIGQHRo789jloESxxZe82lI3AWJQuPmYCOG5ElfRthqgv89h3gTeLYA==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13377,13 +13312,12 @@
}
},
"node_modules/sass-embedded-android-x64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.97.2.tgz",
"integrity": "sha512-RswwSjURZxupsukEmNt2t6RGvuvIw3IAD5sDq1Pc65JFvWFY3eHqCmH0lG0oXqMg6KJcF0eOxHOp2RfmIm2+4w==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.97.3.tgz",
"integrity": "sha512-3ke0le7ZKepyXn/dKKspYkpBC0zUk/BMciyP5ajQUDy4qJwobd8zXdAq6kOkdiMB+d9UFJOmEkvgFJHl3lqwcw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13394,13 +13328,12 @@
}
},
"node_modules/sass-embedded-darwin-arm64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.97.2.tgz",
"integrity": "sha512-xcsZNnU1XZh21RE/71OOwNqPVcGBU0qT9A4k4QirdA34+ts9cDIaR6W6lgHOBR/Bnnu6w6hXJR4Xth7oFrefPA==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.97.3.tgz",
"integrity": "sha512-fuqMTqO4gbOmA/kC5b9y9xxNYw6zDEyfOtMgabS7Mz93wimSk2M1quQaTJnL98Mkcsl2j+7shNHxIS/qpcIDDA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13411,13 +13344,12 @@
}
},
"node_modules/sass-embedded-darwin-x64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.97.2.tgz",
"integrity": "sha512-T/9DTMpychm6+H4slHCAsYJRJ6eM+9H9idKlBPliPrP4T8JdC2Cs+ZOsYqrObj6eOtAD0fGf+KgyNhnW3xVafA==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.97.3.tgz",
"integrity": "sha512-b/2RBs/2bZpP8lMkyZ0Px0vkVkT8uBd0YXpOwK7iOwYkAT8SsO4+WdVwErsqC65vI5e1e5p1bb20tuwsoQBMVA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13428,13 +13360,12 @@
}
},
"node_modules/sass-embedded-linux-arm": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.97.2.tgz",
"integrity": "sha512-yDRe1yifGHl6kibkDlRIJ2ZzAU03KJ1AIvsAh4dsIDgK5jx83bxZLV1ZDUv7a8KK/iV/80LZnxnu/92zp99cXQ==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.97.3.tgz",
"integrity": "sha512-2lPQ7HQQg4CKsH18FTsj2hbw5GJa6sBQgDsls+cV7buXlHjqF8iTKhAQViT6nrpLK/e8nFCoaRgSqEC8xMnXuA==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13445,13 +13376,12 @@
}
},
"node_modules/sass-embedded-linux-arm64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.97.2.tgz",
"integrity": "sha512-Wh+nQaFer9tyE5xBPv5murSUZE/+kIcg8MyL5uqww6be9Iq+UmZpcJM7LUk+q8klQ9LfTmoDSNFA74uBqxD6IA==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.97.3.tgz",
"integrity": "sha512-IP1+2otCT3DuV46ooxPaOKV1oL5rLjteRzf8ldZtfIEcwhSgSsHgA71CbjYgLEwMY9h4jeal8Jfv3QnedPvSjg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13462,13 +13392,12 @@
}
},
"node_modules/sass-embedded-linux-musl-arm": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.97.2.tgz",
"integrity": "sha512-GIO6xfAtahJAWItvsXZ3MD1HM6s8cKtV1/HL088aUpKJaw/2XjTCveiOO2AdgMpLNztmq9DZ1lx5X5JjqhS45g==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.97.3.tgz",
"integrity": "sha512-cBTMU68X2opBpoYsSZnI321gnoaiMBEtc+60CKCclN6PCL3W3uXm8g4TLoil1hDD6mqU9YYNlVG6sJ+ZNef6Lg==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13479,13 +13408,12 @@
}
},
"node_modules/sass-embedded-linux-musl-arm64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.97.2.tgz",
"integrity": "sha512-NfUqZSjHwnHvpSa7nyNxbWfL5obDjNBqhHUYmqbHUcmqBpFfHIQsUPgXME9DKn1yBlBc3mWnzMxRoucdYTzd2Q==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.97.3.tgz",
"integrity": "sha512-Lij0SdZCsr+mNRSyDZ7XtJpXEITrYsaGbOTz5e6uFLJ9bmzUbV7M8BXz2/cA7bhfpRPT7/lwRKPdV4+aR9Ozcw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13496,13 +13424,12 @@
}
},
"node_modules/sass-embedded-linux-musl-riscv64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.97.2.tgz",
"integrity": "sha512-qtM4dJ5gLfvyTZ3QencfNbsTEShIWImSEpkThz+Y2nsCMbcMP7/jYOA03UWgPfEOKSehQQ7EIau7ncbFNoDNPQ==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.97.3.tgz",
"integrity": "sha512-sBeLFIzMGshR4WmHAD4oIM7WJVkSoCIEwutzptFtGlSlwfNiijULp+J5hA2KteGvI6Gji35apR5aWj66wEn/iA==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13513,13 +13440,12 @@
}
},
"node_modules/sass-embedded-linux-musl-x64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.97.2.tgz",
"integrity": "sha512-ZAxYOdmexcnxGnzdsDjYmNe3jGj+XW3/pF/n7e7r8y+5c6D2CQRrCUdapLgaqPt1edOPQIlQEZF8q5j6ng21yw==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.97.3.tgz",
"integrity": "sha512-/oWJ+OVrDg7ADDQxRLC/4g1+Nsz1g4mkYS2t6XmyMJKFTFK50FVI2t5sOdFH+zmMp+nXHKM036W94y9m4jjEcw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13530,13 +13456,12 @@
}
},
"node_modules/sass-embedded-linux-riscv64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.97.2.tgz",
"integrity": "sha512-reVwa9ZFEAOChXpDyNB3nNHHyAkPMD+FTctQKECqKiVJnIzv2EaFF6/t0wzyvPgBKeatA8jszAIeOkkOzbYVkQ==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.97.3.tgz",
"integrity": "sha512-l3IfySApLVYdNx0Kjm7Zehte1CDPZVcldma3dZt+TfzvlAEerM6YDgsk5XEj3L8eHBCgHgF4A0MJspHEo2WNfA==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13547,13 +13472,12 @@
}
},
"node_modules/sass-embedded-linux-x64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.97.2.tgz",
"integrity": "sha512-bvAdZQsX3jDBv6m4emaU2OMTpN0KndzTAMgJZZrKUgiC0qxBmBqbJG06Oj/lOCoXGCxAvUOheVYpezRTF+Feog==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.97.3.tgz",
"integrity": "sha512-Kwqwc/jSSlcpRjULAOVbndqEy2GBzo6OBmmuBVINWUaJLJ8Kczz3vIsDUWLfWz/kTEw9FHBSiL0WCtYLVAXSLg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13564,10 +13488,9 @@
}
},
"node_modules/sass-embedded-unknown-all": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.97.2.tgz",
"integrity": "sha512-86tcYwohjPgSZtgeU9K4LikrKBJNf8ZW/vfsFbdzsRlvc73IykiqanufwQi5qIul0YHuu9lZtDWyWxM2dH/Rsg==",
"dev": true,
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.97.3.tgz",
"integrity": "sha512-/GHajyYJmvb0IABUQHbVHf1nuHPtIDo/ClMZ81IDr59wT5CNcMe7/dMNujXwWugtQVGI5UGmqXWZQCeoGnct8Q==",
"license": "MIT",
"optional": true,
"os": [
@ -13577,17 +13500,16 @@
"!win32"
],
"dependencies": {
"sass": "1.97.2"
"sass": "1.97.3"
}
},
"node_modules/sass-embedded-win32-arm64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.97.2.tgz",
"integrity": "sha512-Cv28q8qNjAjZfqfzTrQvKf4JjsZ6EOQ5FxyHUQQeNzm73R86nd/8ozDa1Vmn79Hq0kwM15OCM9epanDuTG1ksA==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.97.3.tgz",
"integrity": "sha512-RDGtRS1GVvQfMGAmVXNxYiUOvPzn9oO1zYB/XUM9fudDRnieYTcUytpNTQZLs6Y1KfJxgt5Y+giRceC92fT8Uw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -13598,13 +13520,12 @@
}
},
"node_modules/sass-embedded-win32-x64": {
"version": "1.97.2",
"resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.97.2.tgz",
"integrity": "sha512-DVxLxkeDCGIYeyHLAvWW3yy9sy5Ruk5p472QWiyfyyG1G1ASAR8fgfIY5pT0vE6Rv+VAKVLwF3WTspUYu7S1/Q==",
"version": "1.97.3",
"resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.97.3.tgz",
"integrity": "sha512-SFRa2lED9UEwV6vIGeBXeBOLKF+rowF3WmNfb/BzhxmdAsKofCXrJ8ePW7OcDVrvNEbTOGwhsReIsF5sH8fVaw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -14894,7 +14815,6 @@
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -14911,7 +14831,6 @@
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -14928,7 +14847,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -14945,7 +14863,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -14962,7 +14879,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -14979,7 +14895,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -14996,7 +14911,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15013,7 +14927,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15030,7 +14943,6 @@
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15047,7 +14959,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15064,7 +14975,6 @@
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15081,7 +14991,6 @@
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15098,7 +15007,6 @@
"cpu": [
"mips64el"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15115,7 +15023,6 @@
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15132,7 +15039,6 @@
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15149,7 +15055,6 @@
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15166,7 +15071,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15183,7 +15087,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15200,7 +15103,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15217,7 +15119,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15234,7 +15135,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15251,7 +15151,6 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15268,7 +15167,6 @@
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
@ -15285,7 +15183,6 @@
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [

View File

@ -9,7 +9,10 @@
"url": "https://github.com/Ocelot-Social-Community/Ocelot-Social.git"
},
"cypress-cucumber-preprocessor": {
"stepDefinitions": "cypress/support/step_definitions/**/*.js",
"stepDefinitions": [
"cypress/support/step_definitions/[filepart]/**/*.js",
"cypress/support/step_definitions/common/**/*.js"
],
"json": {
"enabled": true,
"output": "cypress/reports/json_logs/cucumber_log.json",
@ -37,7 +40,7 @@
"@babel/preset-env": "^7.28.5",
"@babel/register": "^7.28.3",
"@badeball/cypress-cucumber-preprocessor": "^24.0.0",
"@cucumber/cucumber": "12.5.0",
"@cucumber/cucumber": "12.6.0",
"@cypress/webpack-preprocessor": "^7.0.2",
"auto-changelog": "^2.5.0",
"cypress": "^15.9.0",
@ -48,7 +51,7 @@
"mock-socket": "^9.0.3",
"multiple-cucumber-html-reporter": "^3.9.3",
"node-polyfill-webpack-plugin": "^4.1.0",
"sass-embedded": "^1.97.2",
"sass-embedded": "^1.97.3",
"webpack": "^5.104.1"
},
"optionalDependencies": {

View File

@ -1,4 +1,4 @@
FROM node:25.3.0-alpine AS styleguide
FROM node:25.4.0-alpine AS styleguide
RUN apk --no-cache add git python3 make g++
RUN mkdir -p /app
WORKDIR /app
@ -6,7 +6,7 @@ COPY styleguide .
RUN yarn install --production=false --frozen-lockfile --non-interactive
RUN yarn run build:lib
FROM node:25.3.0-alpine AS base
FROM node:25.4.0-alpine AS base
LABEL org.label-schema.name="ocelot.social:webapp"
LABEL org.label-schema.description="Web Frontend of the Social Network Software ocelot.social"
LABEL org.label-schema.usage="https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md"
@ -46,6 +46,7 @@ ONBUILD RUN cp -r ./constants /build
ONBUILD RUN cp -r ./static /build
ONBUILD RUN cp -r ./locales /build
ONBUILD RUN cp -r ./package.json ./yarn.lock /build
ONBUILD RUN cp -r ./scripts /build
ONBUILD RUN cd /build && yarn install --production=true --frozen-lockfile --non-interactive
FROM base AS test_build
@ -62,6 +63,7 @@ RUN cp -r ./constants /build
RUN cp -r ./static /build
RUN cp -r ./locales /build
RUN cp -r ./package.json ./yarn.lock /build
RUN cp -r ./scripts /build
RUN cd /build && yarn install --frozen-lockfile --non-interactive
FROM test_build AS test

View File

@ -8,7 +8,7 @@ LABEL org.label-schema.vendor="ocelot.social Community"
LABEL org.label-schema.schema-version="1.0"
LABEL maintainer="devops@ocelot.social"
FROM node:25.3.0-alpine AS styleguide
FROM node:25.4.0-alpine AS styleguide
RUN apk --no-cache add git python3 make g++
RUN mkdir -p /app
WORKDIR /app
@ -16,7 +16,7 @@ COPY styleguide .
RUN yarn install --production=false --frozen-lockfile --non-interactive
RUN yarn run build:lib
FROM node:25.3.0-alpine AS build
FROM node:25.4.0-alpine AS build
ENV NODE_ENV="production"
RUN apk --no-cache add git python3 make g++ bash jq
COPY --from=styleguide ./app/ /styleguide/

View File

@ -62,6 +62,9 @@ describe('CommentCard.vue', () => {
Wrapper = () => {
const store = new Vuex.Store({
getters,
actions: {
'pinnedPosts/fetch': jest.fn(),
},
})
return mount(CommentCard, {
store,

View File

@ -50,9 +50,12 @@ describe('CommentList.vue', () => {
return { id: 'some-user' }
},
},
actions: {
'pinnedPosts/fetch': jest.fn(),
},
})
mocks = {
$t: jest.fn(),
$t: (key) => key,
$filters: {
truncate: (a) => a,
removeHtml: (a) => a,

View File

@ -4,6 +4,10 @@ import Component from './CtaUnblockAuthor.vue'
const localVue = global.localVue
const stubs = {
'nuxt-link': true,
}
describe('CtaUnblockAuthor.vue', () => {
let propsData, wrapper, mocks
@ -21,7 +25,7 @@ describe('CtaUnblockAuthor.vue', () => {
})
const Wrapper = () => {
return shallowMount(Component, { propsData, localVue, mocks })
return shallowMount(Component, { propsData, localVue, mocks, stubs })
}
describe('shallowMount', () => {

View File

@ -9,10 +9,10 @@ exports[`CtaUnblockAuthor.vue shallowMount renders 1`] = `
<ds-text-stub tag="p">
contribution.comment.commenting-disabled.blocked-author.call-to-action
</ds-text-stub>
<nuxt-link to="[object Object]">
<nuxt-link-stub to="[object Object]">
<base-button-stub filled="true" icon="arrow-right" size="regular" type="button">
contribution.comment.commenting-disabled.blocked-author.button-label
</base-button-stub>
</nuxt-link>
</nuxt-link-stub>
</ds-space-stub>
`;

View File

@ -4,7 +4,7 @@ import LocationInfo from './LocationInfo.vue'
const localVue = global.localVue
describe('LocationInfo', () => {
const Wrapper = ({ withDistance }) => {
const Wrapper = ({ withDistance, size = 'base', isOwner = false }) => {
return render(LocationInfo, {
localVue,
propsData: {
@ -12,6 +12,8 @@ describe('LocationInfo', () => {
name: 'Paris',
distanceToMe: withDistance ? 100 : null,
},
size,
isOwner,
},
mocks: {
$t: jest.fn((t) => t),
@ -33,12 +35,12 @@ describe('LocationInfo', () => {
describe('size', () => {
it('renders in base size', () => {
const wrapper = Wrapper({ size: 'base' })
const wrapper = Wrapper({ withDistance: false, size: 'base' })
expect(wrapper.container).toMatchSnapshot()
})
it('renders in small size', () => {
const wrapper = Wrapper({ size: 'small' })
const wrapper = Wrapper({ withDistance: false, size: 'small' })
expect(wrapper.container).toMatchSnapshot()
})
})

View File

@ -78,7 +78,7 @@ exports[`LocationInfo size renders in base size 1`] = `
exports[`LocationInfo size renders in small size 1`] = `
<div>
<div
class="location-info size-base"
class="location-info size-small"
>
<div
class="location"

View File

@ -15,10 +15,11 @@ const stubs = {
}
describe('SearchResults', () => {
let mocks, getters, propsData, wrapper
let mocks, getters, actions, propsData, wrapper
const Wrapper = () => {
const store = new Vuex.Store({
getters,
actions,
})
return mount(SearchResults, { mocks, localVue, propsData, store, stubs })
}
@ -34,6 +35,9 @@ describe('SearchResults', () => {
'auth/isModerator': () => false,
'categories/categoriesActive': () => false,
}
actions = {
'categories/init': jest.fn(),
}
propsData = {
pageSize: 12,
search: '',

View File

@ -266,9 +266,6 @@ export default {
** You can extend webpack config here
*/
extend(config, ctx) {
// Fix composition api reference for v-mapbox
config.resolve.alias['@vue/composition-api'] = '@nuxtjs/composition-api'
// Add the compilerOptions
ctx.loaders.vue.compilerOptions = {
// Add your compilerOptions here

View File

@ -18,7 +18,8 @@
"precommit": "yarn lint",
"test": "cross-env NODE_ENV=test jest --coverage --forceExit --detectOpenHandles",
"test:unit:update": "yarn test -- --updateSnapshot",
"test:unit:debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --no-cache --runInBand"
"test:unit:debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --no-cache --runInBand",
"postinstall": "node scripts/fix-vue2-jest.js && node scripts/fix-v-mapbox.js"
},
"dependencies": {
"@mapbox/mapbox-gl-geocoder": "^5.0.2",
@ -29,6 +30,7 @@
"@nuxtjs/pwa": "^3.0.0-beta.20",
"@nuxtjs/sentry": "^4.0.0",
"@nuxtjs/style-resources": "~1.1.0",
"@vue/composition-api": "^1.7.2",
"accounting": "~0.4.1",
"apollo-cache-inmemory": "~1.6.6",
"apollo-client": "~2.6.10",
@ -101,7 +103,7 @@
"jest": "29.7",
"jest-environment-jsdom": "^29.7.0",
"mutation-observer": "^1.0.3",
"prettier": "~3.8.0",
"prettier": "~3.8.1",
"sass-loader": "^10.4.1",
"storybook-design-token": "^0.8.1",
"storybook-vue-router": "^1.0.7",

View File

@ -7,6 +7,7 @@ const localVue = global.localVue
const stubs = {
'client-only': true,
'nuxt-child': true,
'nuxt-link': true,
}
describe('password-reset.vue', () => {

View File

@ -46,6 +46,7 @@ describe('PostSlug', () => {
},
actions: {
'categories/init': jest.fn(),
'pinnedPosts/fetch': jest.fn(),
},
})
const propsData = {}

View File

@ -154,7 +154,7 @@
>
<cta-unblock-author v-if="isBlocked" :author="post.author" />
<cta-join-leave-group
v-else-if="!commentingAllowedByGroupRole"
v-else-if="group && !commentingAllowedByGroupRole"
:group="group"
@update="updateJoinLeave"
/>

View File

@ -0,0 +1,63 @@
#!/usr/bin/env node
/**
* This script patches v-mapbox to fix the templateRefs issue with Vue 2.6 + @vue/composition-api.
*
* The problem: v-mapbox uses `ref(context.refs)` in setup(), but context.refs is empty
* until the component is mounted in Vue 2.6 with @vue/composition-api.
*
* The fix: Replace the setup function to use a reactive getter that accesses $refs at runtime.
*/
const fs = require('fs')
const path = require('path')
const vmapboxFile = path.join(
__dirname,
'..',
'node_modules',
'v-mapbox',
'dist',
'v-mapbox.esm.js',
)
if (fs.existsSync(vmapboxFile)) {
let content = fs.readFileSync(vmapboxFile, 'utf8')
// Check if already patched
if (content.includes('// PATCHED for Vue 2.6')) {
// eslint-disable-next-line no-console
console.log('v-mapbox already patched')
process.exit(0)
}
// Find and replace the problematic setup function
// Original: setup(_, context) { const templateRefs = ref(context.refs); return { templateRefs }; }
const originalSetup =
/setup\(_, context\)\s*\{\s*const templateRefs\s*=\s*ref\(context\.refs\);\s*return\s*\{\s*templateRefs\s*\};\s*\}/
const patchedSetup = `setup(_, context) {
// PATCHED for Vue 2.6 + @vue/composition-api compatibility
// Use a computed-like approach that accesses $refs at runtime
const templateRefs = ref({});
return { templateRefs };
}`
if (originalSetup.test(content)) {
content = content.replace(originalSetup, patchedSetup)
// Also patch the $_loadMap method to use this.$refs directly
content = content.replace(
/container:\s*this\.templateRefs\.container/g,
'container: this.$refs.container',
)
fs.writeFileSync(vmapboxFile, content)
// eslint-disable-next-line no-console
console.log('Patched v-mapbox for Vue 2.6 compatibility')
} else {
// eslint-disable-next-line no-console
console.log('v-mapbox setup pattern not found - may already be compatible or structure changed')
}
} else {
// eslint-disable-next-line no-console
console.log('v-mapbox not installed, skipping patch')
}

View File

@ -0,0 +1,30 @@
#!/usr/bin/env node
/**
* This script prevents vue2-jest from using Vue 3's compiler-sfc
* when Vue 3 is installed in parent node_modules (e.g., from vuepress).
*
* It creates a mock module at node_modules/vue/compiler-sfc that throws
* an error, forcing vue2-jest to fall back to @vue/component-compiler-utils.
*/
const fs = require('fs')
const path = require('path')
const vueDir = path.join(__dirname, '..', 'node_modules', 'vue')
const compilerSfcDir = path.join(vueDir, 'compiler-sfc')
const indexFile = path.join(compilerSfcDir, 'index.js')
// Only create if vue exists but compiler-sfc doesn't
if (fs.existsSync(vueDir) && !fs.existsSync(path.join(vueDir, 'compiler-sfc.js'))) {
if (!fs.existsSync(compilerSfcDir)) {
fs.mkdirSync(compilerSfcDir, { recursive: true })
}
const content = `// Auto-generated by scripts/fix-vue2-jest.js
// Prevents vue2-jest from using Vue 3's compiler-sfc from parent node_modules
throw new Error('vue/compiler-sfc is not available in Vue 2.6')
`
fs.writeFileSync(indexFile, content)
// eslint-disable-next-line no-console
console.log('Created vue/compiler-sfc mock for vue2-jest compatibility')
}

View File

@ -1,3 +1,4 @@
import Vue from 'vue'
import { createLocalVue } from '@vue/test-utils'
import Vuex from 'vuex'
import VTooltip from 'v-tooltip'
@ -10,6 +11,20 @@ import VueObserveVisibility from '~/plugins/vue-observe-visibility'
require('intersection-observer')
// Fail tests on Vue warnings
Vue.config.warnHandler = (msg, vm, trace) => {
throw new Error(`[Vue warn]: ${msg}${trace}`)
}
// Fail tests on console.error (catches Vuex errors like "unknown action type")
// eslint-disable-next-line no-console
const originalConsoleError = console.error
// eslint-disable-next-line no-console
console.error = (...args) => {
originalConsoleError.apply(console, args)
throw new Error(`console.error was called: ${args.join(' ')}`)
}
global.localVue = createLocalVue()
global.localVue.use(Vuex)

View File

@ -5571,6 +5571,11 @@
source-map "~0.6.1"
vue-template-es2015-compiler "^1.9.0"
"@vue/composition-api@^1.7.2":
version "1.7.2"
resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.7.2.tgz#0b656f3ec39fefc2cf40aaa8c12426bcfeae1b44"
integrity sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw==
"@vue/test-utils@1.3.4":
version "1.3.4"
resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.3.4.tgz#83a68179178cb3da4b2b7c5c59ac660dbdff8ef5"
@ -17391,10 +17396,10 @@ prettier@^1.18.2:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
prettier@~3.8.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.0.tgz#f72cf71505133f40cfa2ef77a2668cdc558fcd69"
integrity sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==
prettier@~3.8.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173"
integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==
pretty-bytes@^5.6.0:
version "5.6.0"

352
yarn.lock
View File

@ -861,6 +861,11 @@
split "^1.0.1"
uuid "^13.0.0"
"@bufbuild/protobuf@^2.5.0":
version "2.11.0"
resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.11.0.tgz#3ec3985c9074b23aea337957225fe15a0e845f8e"
integrity sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==
"@colors/colors@1.5.0":
version "1.5.0"
resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz"
@ -871,27 +876,27 @@
resolved "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-12.0.0.tgz"
integrity sha512-SqCEnbCNl3zCXCFpqGUuoaSNhLC0jLw4tKeFcAxTw9MD/QRlJjeAC/fyvVLFuXuSq0OunJlFfxLu+Z3HE+oLPg==
"@cucumber/cucumber-expressions@18.0.1", "@cucumber/cucumber-expressions@^18.0.0":
version "18.0.1"
resolved "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-18.0.1.tgz"
integrity sha512-NSid6bI+7UlgMywl5octojY5NXnxR9uq+JisjOrO52VbFsQM6gTWuQFE8syI10KnIBEdPzuEUSVEeZ0VFzRnZA==
"@cucumber/cucumber-expressions@18.1.0", "@cucumber/cucumber-expressions@^18.0.0":
version "18.1.0"
resolved "https://registry.yarnpkg.com/@cucumber/cucumber-expressions/-/cucumber-expressions-18.1.0.tgz#a7fb43ec458e178af1215c96b54e645c0a22f533"
integrity sha512-9yc+wForrn15FaqLWNjYb19iQ/gPXhcq1kc4X1Ex1lR7NcJpa5pGnCow3bc1HERVM5IoYH+gwwrcJogSMsf+Vw==
dependencies:
regexp-match-indices "1.0.2"
"@cucumber/cucumber@12.5.0", "@cucumber/cucumber@^12.0.0":
version "12.5.0"
resolved "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-12.5.0.tgz"
integrity sha512-+VWxkIIpm5EWFfaF3grP1GlHobzlDBIF54FqJutdYmfpx3LJc+IS8uWdIN97m6zxizo5CPrUopTWkxzwVswUzg==
"@cucumber/cucumber@12.6.0", "@cucumber/cucumber@^12.0.0":
version "12.6.0"
resolved "https://registry.yarnpkg.com/@cucumber/cucumber/-/cucumber-12.6.0.tgz#a77fd04c43da664443e309fbc9a3c67a5f5da178"
integrity sha512-z6XKBIcUnJebnR3W8+K7Q2jJKB+pKpoD1l3CygEa9ufq/aeGuS5LAlllNxrod8loepLJhNmp8J8aengGbkL4cg==
dependencies:
"@cucumber/ci-environment" "12.0.0"
"@cucumber/cucumber-expressions" "18.0.1"
"@cucumber/cucumber-expressions" "18.1.0"
"@cucumber/gherkin" "37.0.1"
"@cucumber/gherkin-streams" "6.0.0"
"@cucumber/gherkin-utils" "10.0.0"
"@cucumber/html-formatter" "22.3.0"
"@cucumber/junit-xml-formatter" "0.9.0"
"@cucumber/message-streams" "4.0.1"
"@cucumber/messages" "31.1.0"
"@cucumber/messages" "31.2.0"
"@cucumber/pretty-formatter" "1.0.1"
"@cucumber/tag-expressions" "8.1.0"
assertion-error-formatter "^3.0.0"
@ -977,10 +982,10 @@
resolved "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-4.0.1.tgz"
integrity sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==
"@cucumber/messages@31.1.0":
version "31.1.0"
resolved "https://registry.npmjs.org/@cucumber/messages/-/messages-31.1.0.tgz"
integrity sha512-BViwUQ9YMjcGL98Ww2QHMgu3S4JLUjbTz+Jo/jsq+8ZjS47/2v3IszpD6e12Y6IzZoGfrZriauZHPQ4PAmN9XA==
"@cucumber/messages@31.2.0", "@cucumber/messages@>=31.0.0 <32", "@cucumber/messages@^31.0.0":
version "31.2.0"
resolved "https://registry.npmjs.org/@cucumber/messages/-/messages-31.2.0.tgz"
integrity sha512-3urzBNCwmU/YKrKR0b3XdioFcOFNuxlLwEImsxeP8rXnweLs+Ky04QURcbKpFom3T6a6v9zVioLCfHUuSQ72pg==
dependencies:
class-transformer "0.5.1"
reflect-metadata "0.2.2"
@ -995,14 +1000,6 @@
reflect-metadata "0.2.2"
uuid "11.1.0"
"@cucumber/messages@>=31.0.0 <32", "@cucumber/messages@^31.0.0":
version "31.2.0"
resolved "https://registry.npmjs.org/@cucumber/messages/-/messages-31.2.0.tgz"
integrity sha512-3urzBNCwmU/YKrKR0b3XdioFcOFNuxlLwEImsxeP8rXnweLs+Ky04QURcbKpFom3T6a6v9zVioLCfHUuSQ72pg==
dependencies:
class-transformer "0.5.1"
reflect-metadata "0.2.2"
"@cucumber/messages@^29.0.0":
version "29.0.1"
resolved "https://registry.npmjs.org/@cucumber/messages/-/messages-29.0.1.tgz"
@ -1662,6 +1659,95 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
"@parcel/watcher-android-arm64@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz#5f32e0dba356f4ac9a11068d2a5c134ca3ba6564"
integrity sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==
"@parcel/watcher-darwin-arm64@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz#88d3e720b59b1eceffce98dac46d7c40e8be5e8e"
integrity sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==
"@parcel/watcher-darwin-x64@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz#bf05d76a78bc15974f15ec3671848698b0838063"
integrity sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==
"@parcel/watcher-freebsd-x64@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz#8bc26e9848e7303ac82922a5ae1b1ef1bdb48a53"
integrity sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==
"@parcel/watcher-linux-arm-glibc@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz#1328fee1deb0c2d7865079ef53a2ba4cc2f8b40a"
integrity sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==
"@parcel/watcher-linux-arm-musl@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz#bad0f45cb3e2157746db8b9d22db6a125711f152"
integrity sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==
"@parcel/watcher-linux-arm64-glibc@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz#b75913fbd501d9523c5f35d420957bf7d0204809"
integrity sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==
"@parcel/watcher-linux-arm64-musl@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz#da5621a6a576070c8c0de60dea8b46dc9c3827d4"
integrity sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==
"@parcel/watcher-linux-x64-glibc@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz#ce437accdc4b30f93a090b4a221fd95cd9b89639"
integrity sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==
"@parcel/watcher-linux-x64-musl@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz#02400c54b4a67efcc7e2327b249711920ac969e2"
integrity sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==
"@parcel/watcher-win32-arm64@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz#caae3d3c7583ca0a7171e6bd142c34d20ea1691e"
integrity sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==
"@parcel/watcher-win32-ia32@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz#9ac922550896dfe47bfc5ae3be4f1bcaf8155d6d"
integrity sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==
"@parcel/watcher-win32-x64@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz#73fdafba2e21c448f0e456bbe13178d8fe11739d"
integrity sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==
"@parcel/watcher@^2.4.1":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.6.tgz#3f932828c894f06d0ad9cfefade1756ecc6ef1f1"
integrity sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==
dependencies:
detect-libc "^2.0.3"
is-glob "^4.0.3"
node-addon-api "^7.0.0"
picomatch "^4.0.3"
optionalDependencies:
"@parcel/watcher-android-arm64" "2.5.6"
"@parcel/watcher-darwin-arm64" "2.5.6"
"@parcel/watcher-darwin-x64" "2.5.6"
"@parcel/watcher-freebsd-x64" "2.5.6"
"@parcel/watcher-linux-arm-glibc" "2.5.6"
"@parcel/watcher-linux-arm-musl" "2.5.6"
"@parcel/watcher-linux-arm64-glibc" "2.5.6"
"@parcel/watcher-linux-arm64-musl" "2.5.6"
"@parcel/watcher-linux-x64-glibc" "2.5.6"
"@parcel/watcher-linux-x64-musl" "2.5.6"
"@parcel/watcher-win32-arm64" "2.5.6"
"@parcel/watcher-win32-ia32" "2.5.6"
"@parcel/watcher-win32-x64" "2.5.6"
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz"
@ -3305,6 +3391,13 @@ chokidar@^3.6.0:
optionalDependencies:
fsevents "~2.3.2"
chokidar@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==
dependencies:
readdirp "^4.0.1"
chokidar@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz"
@ -3441,6 +3534,11 @@ colorette@^2.0.16:
resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
colorjs.io@^0.5.0:
version "0.5.2"
resolved "https://registry.yarnpkg.com/colorjs.io/-/colorjs.io-0.5.2.tgz#63b20139b007591ebc3359932bef84628eb3fcef"
integrity sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==
colors@1.0.3:
version "1.0.3"
resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz"
@ -3841,6 +3939,11 @@ des.js@^1.0.0:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
detect-libc@^2.0.3:
version "2.1.2"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad"
integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==
detective-amd@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/detective-amd/-/detective-amd-6.0.0.tgz"
@ -5035,6 +5138,11 @@ ignore@^5.2.0, ignore@^5.2.4:
resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz"
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
immutable@^5.0.2:
version "5.1.4"
resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f"
integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==
import-cwd@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz"
@ -5685,13 +5793,6 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
dependencies:
yallist "^4.0.0"
luxon@3.7.2, luxon@^3.5.0, luxon@^3.6.1:
version "3.7.2"
resolved "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz"
@ -6020,6 +6121,11 @@ no-case@^3.0.4:
lower-case "^2.0.2"
tslib "^2.0.3"
node-addon-api@^7.0.0:
version "7.1.1"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==
node-fetch@^2.6.1:
version "2.7.0"
resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz"
@ -6457,6 +6563,11 @@ picomatch@^4.0.2:
resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz"
integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
picomatch@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
pify@^2.2.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
@ -6941,10 +7052,10 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
rxjs@^7.5.1:
version "7.8.1"
resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz"
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
rxjs@^7.4.0, rxjs@^7.5.1:
version "7.8.2"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b"
integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==
dependencies:
tslib "^2.1.0"
@ -6963,6 +7074,132 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass-embedded-all-unknown@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.97.3.tgz#a0cf18681cc0ec5f51101b8b89640df158fb8dc3"
integrity sha512-t6N46NlPuXiY3rlmG6/+1nwebOBOaLFOOVqNQOC2cJhghOD4hh2kHNQQTorCsbY9S1Kir2la1/XLBwOJfui0xg==
dependencies:
sass "1.97.3"
sass-embedded-android-arm64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.97.3.tgz#8093d124f0b671fd691a925805d8d6b0c9d08a44"
integrity sha512-aiZ6iqiHsUsaDx0EFbbmmA0QgxicSxVVN3lnJJ0f1RStY0DthUkquGT5RJ4TPdaZ6ebeJWkboV4bra+CP766eA==
sass-embedded-android-arm@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.97.3.tgz#256236b9c857f83ece13229d8704a44587a0a660"
integrity sha512-cRTtf/KV/q0nzGZoUzVkeIVVFv3L/tS1w4WnlHapphsjTXF/duTxI8JOU1c/9GhRPiMdfeXH7vYNcMmtjwX7jg==
sass-embedded-android-riscv64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.97.3.tgz#c71cfef7a6a94cc043f74936ec62be89115c7a32"
integrity sha512-zVEDgl9JJodofGHobaM/q6pNETG69uuBIGQHRo789jloESxxZe82lI3AWJQuPmYCOG5ElfRthqgv89h3gTeLYA==
sass-embedded-android-x64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.97.3.tgz#07065245d9154d3353952bce5c30f87fbd7db59c"
integrity sha512-3ke0le7ZKepyXn/dKKspYkpBC0zUk/BMciyP5ajQUDy4qJwobd8zXdAq6kOkdiMB+d9UFJOmEkvgFJHl3lqwcw==
sass-embedded-darwin-arm64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.97.3.tgz#49887421ada0d00ba9e93012690e34d8aa132bc7"
integrity sha512-fuqMTqO4gbOmA/kC5b9y9xxNYw6zDEyfOtMgabS7Mz93wimSk2M1quQaTJnL98Mkcsl2j+7shNHxIS/qpcIDDA==
sass-embedded-darwin-x64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.97.3.tgz#5f9aef81f5337f5e8e67cf0bd2d8514a7529326e"
integrity sha512-b/2RBs/2bZpP8lMkyZ0Px0vkVkT8uBd0YXpOwK7iOwYkAT8SsO4+WdVwErsqC65vI5e1e5p1bb20tuwsoQBMVA==
sass-embedded-linux-arm64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.97.3.tgz#fd08cb53040c25c78a5e418914a47bc74a72d169"
integrity sha512-IP1+2otCT3DuV46ooxPaOKV1oL5rLjteRzf8ldZtfIEcwhSgSsHgA71CbjYgLEwMY9h4jeal8Jfv3QnedPvSjg==
sass-embedded-linux-arm@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.97.3.tgz#1fdd2e4e8d8f4b6144fb8a24e8e8bbb704696184"
integrity sha512-2lPQ7HQQg4CKsH18FTsj2hbw5GJa6sBQgDsls+cV7buXlHjqF8iTKhAQViT6nrpLK/e8nFCoaRgSqEC8xMnXuA==
sass-embedded-linux-musl-arm64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.97.3.tgz#21cbc27b312ff2460d6c7c8ea093bce2a549fbc2"
integrity sha512-Lij0SdZCsr+mNRSyDZ7XtJpXEITrYsaGbOTz5e6uFLJ9bmzUbV7M8BXz2/cA7bhfpRPT7/lwRKPdV4+aR9Ozcw==
sass-embedded-linux-musl-arm@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.97.3.tgz#f6d3905031e44313d3fb742c683ddbf45bf12c64"
integrity sha512-cBTMU68X2opBpoYsSZnI321gnoaiMBEtc+60CKCclN6PCL3W3uXm8g4TLoil1hDD6mqU9YYNlVG6sJ+ZNef6Lg==
sass-embedded-linux-musl-riscv64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.97.3.tgz#a42f9f4c51b42431e93287a6dc1df83e920bf658"
integrity sha512-sBeLFIzMGshR4WmHAD4oIM7WJVkSoCIEwutzptFtGlSlwfNiijULp+J5hA2KteGvI6Gji35apR5aWj66wEn/iA==
sass-embedded-linux-musl-x64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.97.3.tgz#55b5bd5e56b0ece474ed52a890131fae4e020675"
integrity sha512-/oWJ+OVrDg7ADDQxRLC/4g1+Nsz1g4mkYS2t6XmyMJKFTFK50FVI2t5sOdFH+zmMp+nXHKM036W94y9m4jjEcw==
sass-embedded-linux-riscv64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.97.3.tgz#d6367150d1c389a1310cbda539d4b503da7ff5a3"
integrity sha512-l3IfySApLVYdNx0Kjm7Zehte1CDPZVcldma3dZt+TfzvlAEerM6YDgsk5XEj3L8eHBCgHgF4A0MJspHEo2WNfA==
sass-embedded-linux-x64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.97.3.tgz#cebfe65b052cbaae76c8e02feac8f85e90942224"
integrity sha512-Kwqwc/jSSlcpRjULAOVbndqEy2GBzo6OBmmuBVINWUaJLJ8Kczz3vIsDUWLfWz/kTEw9FHBSiL0WCtYLVAXSLg==
sass-embedded-unknown-all@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.97.3.tgz#a4f82e5133e28de65034e67faf1e137790ac5ac6"
integrity sha512-/GHajyYJmvb0IABUQHbVHf1nuHPtIDo/ClMZ81IDr59wT5CNcMe7/dMNujXwWugtQVGI5UGmqXWZQCeoGnct8Q==
dependencies:
sass "1.97.3"
sass-embedded-win32-arm64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.97.3.tgz#41c539cc8732a11b9b4c0da2309d1fc5564655c3"
integrity sha512-RDGtRS1GVvQfMGAmVXNxYiUOvPzn9oO1zYB/XUM9fudDRnieYTcUytpNTQZLs6Y1KfJxgt5Y+giRceC92fT8Uw==
sass-embedded-win32-x64@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.97.3.tgz#e4e200e1e5a62ef075f962eb2d11d85dc58b762e"
integrity sha512-SFRa2lED9UEwV6vIGeBXeBOLKF+rowF3WmNfb/BzhxmdAsKofCXrJ8ePW7OcDVrvNEbTOGwhsReIsF5sH8fVaw==
sass-embedded@^1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass-embedded/-/sass-embedded-1.97.3.tgz#1cab95995787d7e310f6272d58f80c67b5ead4ba"
integrity sha512-eKzFy13Nk+IRHhlAwP3sfuv+PzOrvzUkwJK2hdoCKYcWGSdmwFpeGpWmyewdw8EgBnsKaSBtgf/0b2K635ecSA==
dependencies:
"@bufbuild/protobuf" "^2.5.0"
colorjs.io "^0.5.0"
immutable "^5.0.2"
rxjs "^7.4.0"
supports-color "^8.1.1"
sync-child-process "^1.0.2"
varint "^6.0.0"
optionalDependencies:
sass-embedded-all-unknown "1.97.3"
sass-embedded-android-arm "1.97.3"
sass-embedded-android-arm64 "1.97.3"
sass-embedded-android-riscv64 "1.97.3"
sass-embedded-android-x64 "1.97.3"
sass-embedded-darwin-arm64 "1.97.3"
sass-embedded-darwin-x64 "1.97.3"
sass-embedded-linux-arm "1.97.3"
sass-embedded-linux-arm64 "1.97.3"
sass-embedded-linux-musl-arm "1.97.3"
sass-embedded-linux-musl-arm64 "1.97.3"
sass-embedded-linux-musl-riscv64 "1.97.3"
sass-embedded-linux-musl-x64 "1.97.3"
sass-embedded-linux-riscv64 "1.97.3"
sass-embedded-linux-x64 "1.97.3"
sass-embedded-unknown-all "1.97.3"
sass-embedded-win32-arm64 "1.97.3"
sass-embedded-win32-x64 "1.97.3"
sass-lookup@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/sass-lookup/-/sass-lookup-6.0.1.tgz"
@ -6970,6 +7207,17 @@ sass-lookup@^6.0.1:
dependencies:
commander "^12.0.0"
sass@1.97.3:
version "1.97.3"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.3.tgz#9cb59339514fa7e2aec592b9700953ac6e331ab2"
integrity sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==
dependencies:
chokidar "^4.0.0"
immutable "^5.0.2"
source-map-js ">=0.6.2 <2.0.0"
optionalDependencies:
"@parcel/watcher" "^2.4.1"
sax@^1.2.4:
version "1.4.1"
resolved "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz"
@ -7003,7 +7251,7 @@ seedrandom@^3.0.5:
resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz"
integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==
semver@7.7.3, semver@^7.3.2:
semver@7.7.3, semver@^7.3.2, semver@^7.3.5, semver@^7.6.0:
version "7.7.3"
resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz"
integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==
@ -7018,18 +7266,6 @@ semver@^6.3.1:
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.3.5:
version "7.5.4"
resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
dependencies:
lru-cache "^6.0.0"
semver@^7.6.0:
version "7.6.3"
resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
serialize-javascript@^6.0.2:
version "6.0.2"
resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz"
@ -7226,7 +7462,7 @@ slimsearch@^2.1.1:
resolved "https://registry.npmjs.org/slimsearch/-/slimsearch-2.1.1.tgz"
integrity sha512-l1utJWal8F/RIheYk88DE2+enI12nIrn5SHt4ih/CNAH81PzkTv2GVBODlLynDJb7xan5hjd8XTL5f0L4cxLQA==
source-map-js@^1.2.0, source-map-js@^1.2.1:
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0, source-map-js@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz"
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
@ -7512,6 +7748,18 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
sync-child-process@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/sync-child-process/-/sync-child-process-1.0.2.tgz#45e7c72e756d1243e80b547ea2e17957ab9e367f"
integrity sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==
dependencies:
sync-message-port "^1.0.0"
sync-message-port@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/sync-message-port/-/sync-message-port-1.1.3.tgz#6055c565ee8c81d2f9ee5aae7db757e6d9088c0c"
integrity sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==
systeminformation@^5.27.14:
version "5.30.5"
resolved "https://registry.npmjs.org/systeminformation/-/systeminformation-5.30.5.tgz"
@ -7934,6 +8182,11 @@ validate-npm-package-license@^3.0.4:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
varint@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0"
integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==
verror@1.10.0:
version "1.10.0"
resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
@ -8322,11 +8575,6 @@ yallist@^3.0.2:
resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^2.2.2:
version "2.6.0"
resolved "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz"