Compare commits

...

28 Commits

Author SHA1 Message Date
d543c192a8
fix(webapp): fix lang query location (#9337) 2026-03-01 10:00:37 +00:00
4b0470310e
feat(webapp): metadata for link preview (#9335) 2026-03-01 07:06:50 +00:00
dependabot[bot]
3a56878899
build(deps-dev): bump the cypress group with 2 updates (#9309)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 06:42:48 +00:00
dependabot[bot]
762037c7b8
build(deps-dev): bump webpack from 5.105.2 to 5.105.3 (#9311)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 06:09:53 +00:00
dependabot[bot]
c10b2e1af7
build(deps): bump minimatch from 10.2.2 to 10.2.4 in /backend (#9313)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 05:45:18 +00:00
dependabot[bot]
6e53c53f38
build(deps-dev): bump @types/lodash from 4.17.23 to 4.17.24 in /backend (#9314)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 05:18:55 +00:00
dependabot[bot]
8690adf895
build(deps-dev): bump the vue group in /packages/ui with 2 updates (#9315)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 05:21:10 +01:00
dependabot[bot]
8216db5925
build(deps): bump @aws-sdk/lib-storage from 3.990.0 to 3.995.0 in /backend (#9316)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 03:27:24 +00:00
dependabot[bot]
9f71ac2ece
build(deps-dev): bump @storybook/vue3-vite from 10.2.10 to 10.2.13 in /packages/ui (#9318)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 03:59:15 +01:00
dependabot[bot]
f4bea134a2
build(deps-dev): bump eslint-plugin-jsdoc from 62.7.0 to 62.7.1 in /packages/ui (#9320)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 03:18:04 +01:00
dependabot[bot]
fb4830c0b0
build(deps-dev): bump @types/node from 25.3.0 to 25.3.2 in /backend (#9323)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 17:41:41 +01:00
dependabot[bot]
07ff56ccb3
build(deps-dev): bump @tailwindcss/vite from 4.2.0 to 4.2.1 in /packages/ui (#9325)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 13:50:31 +00:00
dependabot[bot]
73dfda12da
build(deps): bump graphql from 16.12.0 to 16.13.0 in /backend (#9324)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 14:25:56 +01:00
dependabot[bot]
907d9abcb6
build(deps-dev): bump @types/node from 25.3.0 to 25.3.2 in /packages/ui (#9328)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 12:14:26 +00:00
dependabot[bot]
272a6a4b0a
build(deps-dev): bump eslint-plugin-playwright from 2.7.0 to 2.8.0 in /packages/ui (#9329)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 10:19:25 +00:00
dependabot[bot]
c910931fc1
build(deps-dev): bump eslint-plugin-storybook from 10.2.10 to 10.2.13 in /packages/ui (#9330)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 09:38:32 +00:00
dependabot[bot]
9f742ffbde
build(deps): bump @aws-sdk/client-s3 from 3.995.0 to 3.1000.0 in /backend (#9331)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 08:57:51 +00:00
dependabot[bot]
85efb3b161
build(deps-dev): bump @tailwindcss/cli from 4.2.0 to 4.2.1 in /packages/ui (#9332)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 09:34:16 +01:00
dependabot[bot]
76362570de
build(deps-dev): bump tailwindcss from 4.2.0 to 4.2.1 in /packages/ui (#9333)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 07:49:13 +00:00
0f1504fb8a
fix(workflow): ensure cucumber-json-formatter (#9300) 2026-02-27 01:17:48 +00:00
795881e5b4
feat(e2e): e2e - chat notification (#9303) 2026-02-27 01:39:26 +01:00
d0348545ad
feat(webapp): complete translations + Albanian (#9301) 2026-02-26 23:47:15 +00:00
732ac9a2ad
fix(webapp): downgrade graphql - socket not working (#9302) 2026-02-26 23:01:19 +00:00
8feb34a41a
fix(webapp): fix landscape image distances (#9299) 2026-02-25 15:43:34 +00:00
dependabot[bot]
f40398ec66
build(deps): bump graphql from 14.7.0 to 16.12.0 in /webapp (#9045)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 14:59:51 +00:00
114a25025f
feat(webapp): first draft of landscape mode (#9298) 2026-02-25 14:34:20 +00:00
1174cf9a03
fix(webapp): fix time display in user teaser (#9297) 2026-02-25 14:06:39 +00:00
6b77839fb4
fix(webapp): fix embed in non-editor-mode (#9296) 2026-02-25 13:16:08 +00:00
49 changed files with 6315 additions and 5056 deletions

View File

@ -118,7 +118,8 @@ jobs:
- name: Install cypress requirements
run: |
sudo wget --no-verbose -O /opt/cucumber-json-formatter "https://github.com/cucumber/json-formatter/releases/download/v19.0.0/cucumber-json-formatter-linux-386"
sudo wget --no-verbose -O /opt/cucumber-json-formatter "https://github.com/cucumber/json-formatter/releases/download/v19.0.0/cucumber-json-formatter-linux-amd64"
echo "66a2ef158866c3ecb3d8e49a7189814a485bddca43e133e4ca5735b8d3951bf7 /opt/cucumber-json-formatter" | sha256sum -c -
sudo chmod +x /opt/cucumber-json-formatter
cd backend
yarn install
@ -200,10 +201,22 @@ jobs:
path: /tmp/webapp.tar
key: ${{ github.run_id }}-e2e-webapp-cache
- name: Copy env files
run: |
cp webapp/.env.template webapp/.env
cp backend/.env.test_e2e backend/.env
- name: Ensure cucumber-json-formatter exists
run: |
if [ ! -f /opt/cucumber-json-formatter ]; then
sudo wget --no-verbose -O /opt/cucumber-json-formatter "https://github.com/cucumber/json-formatter/releases/download/v19.0.0/cucumber-json-formatter-linux-amd64"
echo "66a2ef158866c3ecb3d8e49a7189814a485bddca43e133e4ca5735b8d3951bf7 /opt/cucumber-json-formatter" | sha256sum -c -
fi
sudo chmod +x /opt/cucumber-json-formatter
sudo ln -fs /opt/cucumber-json-formatter /usr/bin/cucumber-json-formatter
- name: Boot up test system | docker compose
run: |
chmod +x /opt/cucumber-json-formatter
sudo ln -fs /opt/cucumber-json-formatter /usr/bin/cucumber-json-formatter
docker load < /tmp/neo4j.tar
docker load < /tmp/backend.tar
docker load < /tmp/minio.tar

View File

@ -32,8 +32,8 @@
},
"dependencies": {
"@apollo/server": "^4.11.3",
"@aws-sdk/client-s3": "^3.995.0",
"@aws-sdk/lib-storage": "^3.990.0",
"@aws-sdk/client-s3": "^3.1000.0",
"@aws-sdk/lib-storage": "^3.1000.0",
"@graphql-tools/load-files": "^7.0.0",
"@graphql-tools/merge": "^9.0.0",
"@sentry/node": "^5.30.0",
@ -45,7 +45,7 @@
"dotenv": "~17.0.1",
"email-templates": "^13.0.1",
"express": "^4.22.1",
"graphql": "^16.11.0",
"graphql": "^16.13.0",
"graphql-middleware": "~6.1.35",
"graphql-redis-subscriptions": "^2.7.0",
"graphql-shield": "^7.6.5",
@ -75,7 +75,7 @@
"metascraper-youtube": "^5.49.24",
"migrate": "^2.1.0",
"mime-types": "^3.0.2",
"minimatch": "^10.2.2",
"minimatch": "^10.2.4",
"mustache": "^4.2.0",
"neo4j-driver": "^4.4.11",
"neo4j-graphql-js": "2.11.5",
@ -100,8 +100,8 @@
"@types/email-templates": "^10.0.4",
"@types/jest": "^30.0.0",
"@types/jsonwebtoken": "~8.5.1",
"@types/lodash": "^4.17.23",
"@types/node": "^25.3.0",
"@types/lodash": "^4.17.24",
"@types/node": "^25.3.2",
"@types/request": "^2.48.13",
"@types/slug": "^5.0.9",
"@types/uuid": "~9.0.1",

View File

@ -40,6 +40,7 @@ export const getContext =
req,
cypherParams: {
currentUserId: user ? user.id : null,
languageDefault: config.LANGUAGE_DEFAULT.toUpperCase(),
},
config,
}

View File

@ -13,6 +13,7 @@ export default {
nameNL: { type: 'string' },
namePL: { type: 'string' },
nameRU: { type: 'string' },
nameSQ: { type: 'string' },
isIn: {
type: 'relationship',
relationship: 'IS_IN',

View File

@ -14,6 +14,7 @@ export interface LocationDbProperties {
namePL: string
namePT: string
nameRU: string
nameSQ: string
type: string
}

View File

@ -42,8 +42,6 @@ mutation CreateGroup(
location {
id
name
nameDE
nameEN
}
myRole
}

View File

@ -25,8 +25,6 @@ query Group($isMember: Boolean, $id: ID, $slug: String) {
location {
id
name
nameDE
nameEN
}
myRole
inviteCodes {

View File

@ -43,8 +43,6 @@ mutation UpdateGroup(
location {
id
name
nameDE
nameEN
}
myRole
}

View File

@ -37,9 +37,6 @@ mutation UpdateUser(
location {
id
name
nameDE
nameEN
nameRU
}
emailNotificationSettings {
type

View File

@ -302,8 +302,6 @@ describe('in mode', () => {
locationName: 'Hamburg, Germany',
location: expect.objectContaining({
name: 'Hamburg',
nameDE: 'Hamburg',
nameEN: 'Hamburg',
}),
},
},
@ -551,8 +549,6 @@ describe('in mode', () => {
locationName: 'Hamburg, Germany',
location: expect.objectContaining({
name: 'Hamburg',
nameDE: 'Hamburg',
nameEN: 'Hamburg',
}),
myRole: 'owner',
}),
@ -2895,8 +2891,6 @@ describe('in mode', () => {
locationName: 'Berlin, Germany',
location: expect.objectContaining({
name: 'Berlin',
nameDE: 'Berlin',
nameEN: 'Berlin',
}),
myRole: 'owner',
},
@ -2947,8 +2941,6 @@ describe('in mode', () => {
locationName: 'Paris, France',
location: expect.objectContaining({
name: 'Paris',
nameDE: 'Paris',
nameEN: 'Paris',
}),
myRole: 'owner',
},
@ -2975,8 +2967,6 @@ describe('in mode', () => {
locationName: 'Hamburg, Germany',
location: expect.objectContaining({
name: 'Hamburg',
nameDE: 'Hamburg',
nameEN: 'Hamburg',
}),
myRole: 'owner',
},

View File

@ -1,17 +1,29 @@
/* eslint-disable @typescript-eslint/no-unsafe-call */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
import { parse } from 'graphql'
import Factory, { cleanDatabase } from '@db/factories'
import UpdateUser from '@graphql/queries/users/UpdateUser.gql'
import User from '@graphql/queries/users/User.gql'
import { createApolloTestSetup } from '@root/test/helpers'
import type { ApolloTestSetup } from '@root/test/helpers'
import type { Context } from '@src/context'
const UserLocationName = parse(`
query User($id: ID, $lang: String) {
User(id: $id) {
id
location {
id
name(lang: $lang)
}
}
}
`)
let authenticatedUser: Context['user']
const context = () => ({ authenticatedUser })
let mutate: ApolloTestSetup['mutate']
let query: ApolloTestSetup['query']
let database: ApolloTestSetup['database']
let server: ApolloTestSetup['server']
@ -19,7 +31,6 @@ let server: ApolloTestSetup['server']
beforeAll(async () => {
await cleanDatabase()
const apolloSetup = await createApolloTestSetup({ context })
mutate = apolloSetup.mutate
query = apolloSetup.query
database = apolloSetup.database
server = apolloSetup.server
@ -39,41 +50,84 @@ afterEach(async () => {
describe('resolvers', () => {
describe('Location', () => {
describe('custom mutation, not handled by neo4j-graphql-js', () => {
let variables
describe('name(lang)', () => {
beforeEach(async () => {
variables = {
id: 'u47',
name: 'John Doughnut',
}
const Paris = await Factory.build('location', {
id: 'region.9397217726497330',
name: 'Paris',
const Hamburg = await Factory.build('location', {
id: 'region.5127278006398860',
name: 'Hamburg',
type: 'region',
lng: 2.35183,
lat: 48.85658,
nameEN: 'Paris',
lng: 10.0,
lat: 53.55,
nameEN: 'Hamburg',
nameDE: 'Hamburg',
nameIT: 'Amburgo',
nameRU: 'Гамбург',
nameFR: 'Hambourg',
nameES: 'Hamburgo',
})
const user = await Factory.build('user', {
id: 'u47',
name: 'John Doe',
})
await user.relateTo(Paris, 'isIn')
await user.relateTo(Hamburg, 'isIn')
authenticatedUser = await user.toJson()
})
it('returns `null` if location translation is not available', async () => {
await expect(mutate({ mutation: UpdateUser, variables })).resolves.toMatchObject({
it('returns the name in the requested language', async () => {
await expect(
query({ query: UserLocationName, variables: { id: 'u47', lang: 'RU' } }),
).resolves.toMatchObject({
data: {
UpdateUser: {
name: 'John Doughnut',
location: {
nameRU: null,
nameEN: 'Paris',
},
},
User: [
expect.objectContaining({
location: expect.objectContaining({ name: 'Гамбург' }),
}),
],
},
errors: undefined,
})
})
it('returns a different name for a different language', async () => {
await expect(
query({ query: UserLocationName, variables: { id: 'u47', lang: 'IT' } }),
).resolves.toMatchObject({
data: {
User: [
expect.objectContaining({
location: expect.objectContaining({ name: 'Amburgo' }),
}),
],
},
errors: undefined,
})
})
it('returns the default name when no lang is provided', async () => {
await expect(
query({ query: UserLocationName, variables: { id: 'u47' } }),
).resolves.toMatchObject({
data: {
User: [
expect.objectContaining({
location: expect.objectContaining({ name: 'Hamburg' }),
}),
],
},
errors: undefined,
})
})
it('falls back to default when the requested translation does not exist', async () => {
await expect(
query({ query: UserLocationName, variables: { id: 'u47', lang: 'ZZ' } }),
).resolves.toMatchObject({
data: {
User: [
expect.objectContaining({
location: expect.objectContaining({ name: 'Hamburg' }),
}),
],
},
errors: undefined,
})

View File

@ -5,26 +5,12 @@
/* eslint-disable @typescript-eslint/return-await */
import { UserInputError } from '@graphql/errors'
import Resolver from './helpers/Resolver'
import { queryLocations } from './users/location'
import type { Context } from '@src/context'
export default {
Location: {
...Resolver('Location', {
undefinedToNull: [
'nameEN',
'nameDE',
'nameFR',
'nameNL',
'nameIT',
'nameES',
'namePT',
'namePL',
'nameRU',
],
}),
distanceToMe: async (parent, _params, context: Context, _resolveInfo) => {
if (!parent.id) {
throw new Error('Can not identify selected Location!')

View File

@ -245,8 +245,6 @@ describe('UpdateUser', () => {
locationName: 'Hamburg, New Jersey, United States',
location: expect.objectContaining({
name: 'Hamburg',
nameDE: 'Hamburg',
nameEN: 'Hamburg',
}),
},
},

View File

@ -34,6 +34,7 @@ const newlyCreatedNodesWithLocales = [
nameRU: 'Вельцхайм',
nameNL: 'Welzheim',
namePL: 'Welzheim',
nameSQ: 'Welzheim',
lng: 9.634301,
lat: 48.874393,
},
@ -50,6 +51,7 @@ const newlyCreatedNodesWithLocales = [
namePL: 'Badenia-Wirtembergia',
namePT: 'Baden-Württemberg',
nameRU: 'Баден-Вюртемберг',
nameSQ: 'Baden-Vyrtemberg',
},
country: {
id: expect.stringContaining('country'),
@ -64,6 +66,7 @@ const newlyCreatedNodesWithLocales = [
namePL: 'Niemcy',
namePT: 'Alemanha',
nameRU: 'Германия',
nameSQ: 'Gjermania',
},
},
]

View File

@ -13,7 +13,7 @@ import { UserInputError } from '@graphql/errors'
import type { Context } from '@src/context'
const locales = ['en', 'de', 'fr', 'nl', 'it', 'es', 'pt', 'pl', 'ru']
const locales = ['en', 'de', 'fr', 'nl', 'it', 'es', 'pt', 'pl', 'ru', 'sq']
const REQUEST_TIMEOUT = 3000
@ -29,6 +29,7 @@ const createLocation = async (session, mapboxData) => {
namePT: mapboxData.text_pt,
namePL: mapboxData.text_pl,
nameRU: mapboxData.text_ru,
nameSQ: mapboxData.text_sq,
type: mapboxData.id.split('.')[0].toLowerCase(),
address: mapboxData.address,
lng: mapboxData.center?.length ? mapboxData.center[0] : null,
@ -47,6 +48,7 @@ const createLocation = async (session, mapboxData) => {
'l.namePT = $namePT, ' +
'l.namePL = $namePL, ' +
'l.nameRU = $nameRU, ' +
'l.nameSQ = $nameSQ, ' +
'l.type = $type'
if (data.lat && data.lng) {

View File

@ -1,15 +1,17 @@
type Location {
id: ID!
name: String!
nameEN: String
nameDE: String
nameFR: String
nameNL: String
nameIT: String
nameES: String
namePT: String
namePL: String
nameRU: String
name(lang: String = ""): String!
@cypher(
statement: """
RETURN COALESCE(
CASE WHEN $lang <> '' THEN this['name' + toUpper($lang)] END,
this['name' + $cypherParams.languageDefault],
this.name,
this.nameEN,
this.id
)
"""
)
type: String!
lat: Float
lng: Float

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
Feature: Chat notification badge
As a user
I want to see a notification badge on the chat icon
When another user sends me a chat message
Background:
Given the following "users" are in the database:
| slug | email | password | id | name | termsAndConditionsAgreedVersion |
| alice | alice@example.org | 1234 | alice | Alice | 0.0.4 |
| bob | bob@example.org | 4321 | bob | Bob | 0.0.4 |
Scenario: Receive chat notification live via websocket
Given I am logged in as "bob"
And I navigate to page "/"
And I see no unread chat messages in the header
When "alice" sends a chat message "Hello Bob!" to "bob"
Then I see 1 unread chat message in the header

View File

@ -0,0 +1,13 @@
import { defineStep } from '@badeball/cypress-cucumber-preprocessor'
defineStep('I see no unread chat messages in the header', () => {
cy.get('.chat-notification-menu:visible', { timeout: 15000 }).should('exist')
cy.get('.chat-notification-menu:visible .count.--danger').should('not.exist')
})
defineStep('I see {int} unread chat message in the header', (count) => {
cy.get('.chat-notification-menu:visible .count.--danger', { timeout: 15000 }).should(
'contain',
count,
)
})

View File

@ -0,0 +1,46 @@
import { defineStep } from '@badeball/cypress-cucumber-preprocessor'
import './../../commands'
import './../../factories'
const createRoomMutation = `
mutation ($userId: ID!) {
CreateRoom(userId: $userId) {
id
}
}
`
const createMessageMutation = `
mutation ($roomId: ID!, $content: String) {
CreateMessage(roomId: $roomId, content: $content) {
id
}
}
`
defineStep(
'{string} sends a chat message {string} to {string}',
(senderSlug, message, recipientSlug) => {
cy.neode()
.then((neode) => {
return neode.cypher(
`MATCH (sender:User {slug: $senderSlug})-[:PRIMARY_EMAIL]->(e:EmailAddress)
MATCH (recipient:User {slug: $recipientSlug})
RETURN e.email AS senderEmail, recipient.id AS recipientId`,
{ senderSlug, recipientSlug },
)
})
.then((result) => {
expect(result.records).to.have.length.greaterThan(0,
`No users found for sender "${senderSlug}" or recipient "${recipientSlug}"`)
const senderEmail = result.records[0].get('senderEmail')
const recipientId = result.records[0].get('recipientId')
return cy.authenticateAs({ email: senderEmail, password: '1234' }).then((client) => {
return client.request(createRoomMutation, { userId: recipientId }).then((roomData) => {
const roomId = roomData.CreateRoom.id
return client.request(createMessageMutation, { roomId, content: message })
})
})
})
},
)

271
package-lock.json generated
View File

@ -13,10 +13,10 @@
"@babel/preset-env": "^7.29.0",
"@babel/register": "^7.28.6",
"@badeball/cypress-cucumber-preprocessor": "^24.0.1",
"@cucumber/cucumber": "12.6.0",
"@cucumber/cucumber": "12.7.0",
"@cypress/webpack-preprocessor": "^7.0.2",
"auto-changelog": "^2.5.0",
"cypress": "^15.10.0",
"cypress": "^15.11.0",
"cypress-network-idle": "^1.15.0",
"date-fns": "^3.6.0",
"dotenv": "^17.3.1",
@ -25,7 +25,7 @@
"multiple-cucumber-html-reporter": "^3.10.0",
"node-polyfill-webpack-plugin": "^4.1.0",
"sass-embedded": "^1.97.3",
"webpack": "^5.105.2"
"webpack": "^5.105.3"
},
"optionalDependencies": {
"@vuepress/bundler-vite": "^2.0.0-rc.18",
@ -1677,54 +1677,6 @@
"cypress": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0"
}
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/ci-environment": {
"version": "13.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-13.0.0.tgz",
"integrity": "sha512-cs+3NzfNkGbcmHPddjEv4TKFiBpZRQ6WJEEufB9mw+ExS22V/4R/zpDSEG+fsJ/iSNCd6A2sATdY8PFOyY3YnA==",
"dev": true,
"license": "MIT"
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/cucumber-expressions": {
"version": "19.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-19.0.0.tgz",
"integrity": "sha512-4FKoOQh2Uf6F6/Ln+1OxuK8LkTg6PyAqekhf2Ix8zqV2M54sH+m7XNJNLhOFOAW/t9nxzRbw2CcvXbCLjcvHZg==",
"dev": true,
"license": "MIT",
"dependencies": {
"regexp-match-indices": "1.0.2"
}
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/gherkin": {
"version": "38.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-38.0.0.tgz",
"integrity": "sha512-duEXK+KDfQUzu3vsSzXjkxQ2tirF5PRsc1Xrts6THKHJO6mjw4RjM8RV+vliuDasmhhrmdLcOcM7d9nurNTJKw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@cucumber/messages": ">=31.0.0 <33"
}
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/html-formatter": {
"version": "23.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-23.0.0.tgz",
"integrity": "sha512-WwcRzdM8Ixy4e53j+Frm3fKM5rNuIyWUfy4HajEN+Xk/YcjA6yW0ACGTFDReB++VDZz/iUtwYdTlPRY36NbqJg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
"@cucumber/messages": ">=18"
}
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/messages": {
"version": "32.0.1",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-32.0.1.tgz",
"integrity": "sha512-1OSoW+GQvFUNAl6tdP2CTBexTXMNJF0094goVUcvugtQeXtJ0K8sCP0xbq7GGoiezs/eJAAOD03+zAPT64orHQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"class-transformer": "0.5.1",
"reflect-metadata": "0.2.2"
}
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/pretty-formatter": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@cucumber/pretty-formatter/-/pretty-formatter-3.2.0.tgz",
@ -1753,13 +1705,6 @@
"@cucumber/messages": "*"
}
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/@cucumber/tag-expressions": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-9.1.0.tgz",
"integrity": "sha512-bvHjcRFZ+J1TqIa9eFNO1wGHqwx4V9ZKV3hYgkuK/VahHx73uiP4rKV3JVrvWSMrwrFvJG6C8aEwnCWSvbyFdQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@badeball/cypress-cucumber-preprocessor/node_modules/glob": {
"version": "13.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz",
@ -1853,30 +1798,30 @@
}
},
"node_modules/@cucumber/ci-environment": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-12.0.0.tgz",
"integrity": "sha512-SqCEnbCNl3zCXCFpqGUuoaSNhLC0jLw4tKeFcAxTw9MD/QRlJjeAC/fyvVLFuXuSq0OunJlFfxLu+Z3HE+oLPg==",
"version": "13.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-13.0.0.tgz",
"integrity": "sha512-cs+3NzfNkGbcmHPddjEv4TKFiBpZRQ6WJEEufB9mw+ExS22V/4R/zpDSEG+fsJ/iSNCd6A2sATdY8PFOyY3YnA==",
"dev": true,
"license": "MIT"
},
"node_modules/@cucumber/cucumber": {
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-12.6.0.tgz",
"integrity": "sha512-z6XKBIcUnJebnR3W8+K7Q2jJKB+pKpoD1l3CygEa9ufq/aeGuS5LAlllNxrod8loepLJhNmp8J8aengGbkL4cg==",
"version": "12.7.0",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-12.7.0.tgz",
"integrity": "sha512-7A/9CJpJDxv1SQ7hAZU0zPn2yRxx6XMR+LO4T94Enm3cYNWsEEj+RGX38NLX4INT+H6w5raX3Csb/qs4vUBsOA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@cucumber/ci-environment": "12.0.0",
"@cucumber/cucumber-expressions": "18.1.0",
"@cucumber/gherkin": "37.0.1",
"@cucumber/ci-environment": "13.0.0",
"@cucumber/cucumber-expressions": "19.0.0",
"@cucumber/gherkin": "38.0.0",
"@cucumber/gherkin-streams": "6.0.0",
"@cucumber/gherkin-utils": "10.0.0",
"@cucumber/html-formatter": "22.3.0",
"@cucumber/gherkin-utils": "11.0.0",
"@cucumber/html-formatter": "23.0.0",
"@cucumber/junit-xml-formatter": "0.9.0",
"@cucumber/message-streams": "4.0.1",
"@cucumber/messages": "31.2.0",
"@cucumber/messages": "32.0.1",
"@cucumber/pretty-formatter": "1.0.1",
"@cucumber/tag-expressions": "8.1.0",
"@cucumber/tag-expressions": "9.1.0",
"assertion-error-formatter": "^3.0.0",
"capital-case": "^1.0.4",
"chalk": "^4.1.2",
@ -1899,7 +1844,7 @@
"mz": "^2.7.0",
"progress": "^2.0.3",
"read-package-up": "^12.0.0",
"semver": "7.7.3",
"semver": "7.7.4",
"string-argv": "0.3.1",
"supports-color": "^8.1.1",
"type-fest": "^4.41.0",
@ -1918,9 +1863,9 @@
}
},
"node_modules/@cucumber/cucumber-expressions": {
"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==",
"version": "19.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-19.0.0.tgz",
"integrity": "sha512-4FKoOQh2Uf6F6/Ln+1OxuK8LkTg6PyAqekhf2Ix8zqV2M54sH+m7XNJNLhOFOAW/t9nxzRbw2CcvXbCLjcvHZg==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -1989,9 +1934,9 @@
}
},
"node_modules/@cucumber/cucumber/node_modules/semver": {
"version": "7.7.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@ -2015,13 +1960,13 @@
}
},
"node_modules/@cucumber/gherkin": {
"version": "37.0.1",
"resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-37.0.1.tgz",
"integrity": "sha512-VmX+PKa9vqKZiycZoQKYlCsA0N7gAfiOfrcHSjK+suEVUwvKEH2sjO47NznrFFLmVWYTRmw3DLHQnpBAznkYEA==",
"version": "38.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-38.0.0.tgz",
"integrity": "sha512-duEXK+KDfQUzu3vsSzXjkxQ2tirF5PRsc1Xrts6THKHJO6mjw4RjM8RV+vliuDasmhhrmdLcOcM7d9nurNTJKw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@cucumber/messages": ">=31.0.0 <32"
"@cucumber/messages": ">=31.0.0 <33"
}
},
"node_modules/@cucumber/gherkin-streams": {
@ -2044,60 +1989,36 @@
}
},
"node_modules/@cucumber/gherkin-utils": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-10.0.0.tgz",
"integrity": "sha512-BcujlDT343GXXNrMPl3ws6Il3zs8dQw3Yp/d3HnOJF8i2snGGgiapoTbko7MdvAt7ivDL7SDo+e1d5Cnpl3llA==",
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-11.0.0.tgz",
"integrity": "sha512-LJ+s4+TepHTgdKWDR4zbPyT7rQjmYIcukTwNbwNwgqr6i8Gjcmzf6NmtbYDA19m1ZFg6kWbFsmHnj37ZuX+kZA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@cucumber/gherkin": "^34.0.0",
"@cucumber/messages": "^29.0.0",
"@cucumber/gherkin": "^38.0.0",
"@cucumber/messages": "^32.0.0",
"@teppeis/multimaps": "3.0.0",
"commander": "14.0.0",
"commander": "14.0.2",
"source-map-support": "^0.5.21"
},
"bin": {
"gherkin-utils": "bin/gherkin-utils"
}
},
"node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin": {
"version": "34.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-34.0.0.tgz",
"integrity": "sha512-659CCFsrsyvuBi/Eix1fnhSheMnojSfnBcqJ3IMPNawx7JlrNJDcXYSSdxcUw3n/nG05P+ptCjmiZY3i14p+tA==",
"node_modules/@cucumber/gherkin-utils/node_modules/commander": {
"version": "14.0.2",
"resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz",
"integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@cucumber/messages": ">=19.1.4 <29"
}
},
"node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin/node_modules/@cucumber/messages": {
"version": "28.1.0",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-28.1.0.tgz",
"integrity": "sha512-2LzZtOwYKNlCuNf31ajkrekoy2M4z0Z1QGiPH40n4gf5t8VOUFb7m1ojtR4LmGvZxBGvJZP8voOmRqDWzBzYKA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/uuid": "10.0.0",
"class-transformer": "0.5.1",
"reflect-metadata": "0.2.2",
"uuid": "11.1.0"
}
},
"node_modules/@cucumber/gherkin-utils/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"
"engines": {
"node": ">=20"
}
},
"node_modules/@cucumber/html-formatter": {
"version": "22.3.0",
"resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-22.3.0.tgz",
"integrity": "sha512-0s3G7kznCRDiiesQ4K0yBdswGqU9E0j2AWUug41NpedBzhaY+Hn192ANRF597GZtuWrCjE53aFb3fOyOsT8B+g==",
"version": "23.0.0",
"resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-23.0.0.tgz",
"integrity": "sha512-WwcRzdM8Ixy4e53j+Frm3fKM5rNuIyWUfy4HajEN+Xk/YcjA6yW0ACGTFDReB++VDZz/iUtwYdTlPRY36NbqJg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@ -2130,9 +2051,9 @@
}
},
"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==",
"version": "32.0.1",
"resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-32.0.1.tgz",
"integrity": "sha512-1OSoW+GQvFUNAl6tdP2CTBexTXMNJF0094goVUcvugtQeXtJ0K8sCP0xbq7GGoiezs/eJAAOD03+zAPT64orHQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -2171,9 +2092,9 @@
}
},
"node_modules/@cucumber/tag-expressions": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-8.1.0.tgz",
"integrity": "sha512-UFeOVUyc711/E7VHjThxMwg3jbGod9TlbM1gxNixX/AGDKg82Eha4cE0tKki3GGUs7uB2NyI+hQAuhB8rL2h5A==",
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-9.1.0.tgz",
"integrity": "sha512-bvHjcRFZ+J1TqIa9eFNO1wGHqwx4V9ZKV3hYgkuK/VahHx73uiP4rKV3JVrvWSMrwrFvJG6C8aEwnCWSvbyFdQ==",
"dev": true,
"license": "MIT"
},
@ -3828,13 +3749,6 @@
"integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
"optional": true
},
"node_modules/@types/uuid": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
"integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/web-bluetooth": {
"version": "0.0.20",
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
@ -5646,6 +5560,19 @@
"dev": true,
"license": "Apache-2.0"
},
"node_modules/acorn": {
"version": "8.16.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"devOptional": true,
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
@ -7180,9 +7107,9 @@
"optional": true
},
"node_modules/cypress": {
"version": "15.10.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-15.10.0.tgz",
"integrity": "sha512-OtUh7OMrfEjKoXydlAD1CfG2BvKxIqgWGY4/RMjrqQ3BKGBo5JFKoYNH+Tpcj4xKxWH4XK0Xri+9y8WkxhYbqQ==",
"version": "15.11.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-15.11.0.tgz",
"integrity": "sha512-NXDE6/fqZuzh1Zr53nyhCCa4lcANNTYWQNP9fJO+tzD3qVTDaTUni5xXMuigYjMujQ7CRiT9RkJJONmPQSsDFw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@ -7224,9 +7151,10 @@
"proxy-from-env": "1.0.0",
"request-progress": "^3.0.0",
"supports-color": "^8.1.1",
"systeminformation": "^5.27.14",
"systeminformation": "^5.31.1",
"tmp": "~0.2.4",
"tree-kill": "1.2.2",
"tslib": "1.14.1",
"untildify": "^4.0.0",
"yauzl": "^2.10.0"
},
@ -7320,6 +7248,13 @@
"node": ">= 6"
}
},
"node_modules/cypress/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true,
"license": "0BSD"
},
"node_modules/dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@ -8492,18 +8427,6 @@
"update-test-count": "bin/update-test-count.js"
}
},
"node_modules/find-test-names/node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/find-test-names/node_modules/acorn-walk": {
"version": "8.3.4",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
@ -14496,9 +14419,9 @@
}
},
"node_modules/systeminformation": {
"version": "5.30.5",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.30.5.tgz",
"integrity": "sha512-DpWmpCckhwR3hG+6udb6/aQB7PpiqVnvSljrjbKxNSvTRsGsg7NVE3/vouoYf96xgwMxXFKcS4Ux+cnkFwYM7A==",
"version": "5.31.1",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.31.1.tgz",
"integrity": "sha512-6pRwxoGeV/roJYpsfcP6tN9mep6pPeCtXbUOCdVa0nme05Brwcwdge/fVNhIZn2wuUitAKZm4IYa7QjnRIa9zA==",
"dev": true,
"license": "MIT",
"os": [
@ -14603,19 +14526,6 @@
}
}
},
"node_modules/terser/node_modules/acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"devOptional": true,
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@ -16679,9 +16589,9 @@
"dev": true
},
"node_modules/webpack": {
"version": "5.105.2",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.2.tgz",
"integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==",
"version": "5.105.3",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.3.tgz",
"integrity": "sha512-LLBBA4oLmT7sZdHiYE/PeVuifOxYyE2uL/V+9VQP7YSYdJU7bSf7H8bZRRxW8kEPMkmVjnrXmoR3oejIdX0xbg==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -16691,7 +16601,7 @@
"@webassemblyjs/ast": "^1.14.1",
"@webassemblyjs/wasm-edit": "^1.14.1",
"@webassemblyjs/wasm-parser": "^1.14.1",
"acorn": "^8.15.0",
"acorn": "^8.16.0",
"acorn-import-phases": "^1.0.3",
"browserslist": "^4.28.1",
"chrome-trace-event": "^1.0.2",
@ -16709,7 +16619,7 @@
"tapable": "^2.3.0",
"terser-webpack-plugin": "^5.3.16",
"watchpack": "^2.5.1",
"webpack-sources": "^3.3.3"
"webpack-sources": "^3.3.4"
},
"bin": {
"webpack": "bin/webpack.js"
@ -16728,9 +16638,9 @@
}
},
"node_modules/webpack-sources": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz",
"integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==",
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz",
"integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==",
"dev": true,
"license": "MIT",
"engines": {
@ -16744,19 +16654,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/webpack/node_modules/acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/webpack/node_modules/acorn-import-phases": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",

View File

@ -40,10 +40,10 @@
"@babel/preset-env": "^7.29.0",
"@babel/register": "^7.28.6",
"@badeball/cypress-cucumber-preprocessor": "^24.0.1",
"@cucumber/cucumber": "12.6.0",
"@cucumber/cucumber": "12.7.0",
"@cypress/webpack-preprocessor": "^7.0.2",
"auto-changelog": "^2.5.0",
"cypress": "^15.10.0",
"cypress": "^15.11.0",
"cypress-network-idle": "^1.15.0",
"date-fns": "^3.6.0",
"dotenv": "^17.3.1",
@ -52,7 +52,7 @@
"multiple-cucumber-html-reporter": "^3.10.0",
"node-polyfill-webpack-plugin": "^4.1.0",
"sass-embedded": "^1.97.3",
"webpack": "^5.105.2"
"webpack": "^5.105.3"
},
"optionalDependencies": {
"@vuepress/bundler-vite": "^2.0.0-rc.18",

View File

@ -20,18 +20,18 @@
"@fontsource-variable/inter": "^5.2.8",
"@playwright/test": "^1.58.2",
"@size-limit/file": "^12.0.0",
"@storybook/vue3-vite": "^10.2.10",
"@tailwindcss/cli": "^4.2.0",
"@tailwindcss/vite": "^4.2.0",
"@types/node": "^25.3.0",
"@storybook/vue3-vite": "^10.2.13",
"@tailwindcss/cli": "^4.2.1",
"@tailwindcss/vite": "^4.2.1",
"@types/node": "^25.3.2",
"@vitejs/plugin-vue": "^6.0.4",
"@vitest/coverage-v8": "^4.0.18",
"@vue/test-utils": "^2.4.6",
"eslint": "^9.39.2",
"eslint-config-it4c": "^0.11.2",
"eslint-plugin-jsdoc": "^62.7.0",
"eslint-plugin-playwright": "^2.7.0",
"eslint-plugin-storybook": "^10.2.10",
"eslint-plugin-jsdoc": "^62.7.1",
"eslint-plugin-playwright": "^2.8.0",
"eslint-plugin-storybook": "^10.2.13",
"eslint-plugin-vuejs-accessibility": "^2.5.0",
"glob": "^13.0.6",
"jsdom": "^28.1.0",
@ -39,15 +39,15 @@
"size-limit": "^12.0.0",
"storybook": "^10.2.7",
"tailwind-csstree": "^0.1.4",
"tailwindcss": "^4.2.0",
"tailwindcss": "^4.2.1",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vite": "^7.3.1",
"vite-plugin-dts": "^4.5.4",
"vite-tsconfig-paths": "^6.1.1",
"vitest": "^4.0.18",
"vue": "^3.5.28",
"vue-tsc": "^3.2.4"
"vue": "^3.5.29",
"vue-tsc": "^3.2.5"
},
"engines": {
"node": ">=18.0.0"
@ -3597,13 +3597,13 @@
"license": "MIT"
},
"node_modules/@storybook/builder-vite": {
"version": "10.2.10",
"resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.2.10.tgz",
"integrity": "sha512-Wd6CYL7LvRRNiXMz977x9u/qMm7nmMw/7Dow2BybQo+Xbfy1KhVjIoZ/gOiG515zpojSozctNrJUbM0+jH1jwg==",
"version": "10.2.13",
"resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.2.13.tgz",
"integrity": "sha512-UMlPPPBa5ZbcaCXSKrFIi4tTEb0W72JTByqlJ5cGtDXGkN2uX69aL5n2JLIP0F4NzRRl6rNTeu9tGPPcD4r/CA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@storybook/csf-plugin": "10.2.10",
"@storybook/csf-plugin": "10.2.13",
"ts-dedent": "^2.0.0"
},
"funding": {
@ -3611,14 +3611,14 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
"storybook": "^10.2.10",
"storybook": "^10.2.13",
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0"
}
},
"node_modules/@storybook/csf-plugin": {
"version": "10.2.10",
"resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.2.10.tgz",
"integrity": "sha512-aFvgaNDAnKMjuyhPK5ialT22pPqMN0XfPBNPeeNVPYztngkdKBa8WFqF/umDd47HxAjebq+vn6uId1xHyOHH3g==",
"version": "10.2.13",
"resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.2.13.tgz",
"integrity": "sha512-gUCR7PmyrWYj3dIJJgxOm25dcXFolPIUPmug3z90Aaon7YPXw3pUN+dNDx8KqDJqRK1WDIB4HaefgYZIm5V7iA==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3631,7 +3631,7 @@
"peerDependencies": {
"esbuild": "*",
"rollup": "*",
"storybook": "^10.2.10",
"storybook": "^10.2.13",
"vite": "*",
"webpack": "*"
},
@ -3669,9 +3669,9 @@
}
},
"node_modules/@storybook/vue3": {
"version": "10.2.10",
"resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-10.2.10.tgz",
"integrity": "sha512-hp9d11+Nz2hQCbAoggVJYDuNIguEUwaeuBmYjX84vSUI2jafYHAo9ir3xE2jdWwQsbvdNIUc0puFKD0S3WR0TA==",
"version": "10.2.13",
"resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-10.2.13.tgz",
"integrity": "sha512-a/XDCUQZB6/9PTEN1WAZbzdQmUtOvLthkbOLZgSfNAPNKUcoLArjo9Zp1/dr8g84IgYwhIZG5O99gxTwxU+W6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3684,19 +3684,19 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
"storybook": "^10.2.10",
"storybook": "^10.2.13",
"vue": "^3.0.0"
}
},
"node_modules/@storybook/vue3-vite": {
"version": "10.2.10",
"resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-10.2.10.tgz",
"integrity": "sha512-r2mmbY2Cskk/pN56OTVT0cu9Ocn+h8/sq8M2C0NhViJWQeoANTMCCScR1a2GxFuYs1bX8YMWnwR6wghgvGJLBw==",
"version": "10.2.13",
"resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-10.2.13.tgz",
"integrity": "sha512-iXrJ5J+J/AXvAnUjBrgqdOSzhzc/r0GDPW38IihAv/kQ2Uqu9y/UmrKnDU+qtDxcbFNqv615MBr75KArGUPElQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@storybook/builder-vite": "10.2.10",
"@storybook/vue3": "10.2.10",
"@storybook/builder-vite": "10.2.13",
"@storybook/vue3": "10.2.13",
"magic-string": "^0.30.0",
"typescript": "^5.9.3",
"vue-component-meta": "^2.0.0",
@ -3707,7 +3707,7 @@
"url": "https://opencollective.com/storybook"
},
"peerDependencies": {
"storybook": "^10.2.10",
"storybook": "^10.2.13",
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0"
}
},
@ -3732,28 +3732,28 @@
}
},
"node_modules/@tailwindcss/cli": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.2.0.tgz",
"integrity": "sha512-C62SWDp+6Rj5DHJDlMyAqESpmljiQ35H4SncAcVn3Gm0rEPrKFDIdAheT74s9zAbrsa2D/L+jJaPgCO1fyZG6g==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.2.1.tgz",
"integrity": "sha512-b7MGn51IA80oSG+7fuAgzfQ+7pZBgjzbqwmiv6NO7/+a1sev32cGqnwhscT7h0EcAvMa9r7gjRylqOH8Xhc4DA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@parcel/watcher": "^2.5.1",
"@tailwindcss/node": "4.2.0",
"@tailwindcss/oxide": "4.2.0",
"@tailwindcss/node": "4.2.1",
"@tailwindcss/oxide": "4.2.1",
"enhanced-resolve": "^5.19.0",
"mri": "^1.2.0",
"picocolors": "^1.1.1",
"tailwindcss": "4.2.0"
"tailwindcss": "4.2.1"
},
"bin": {
"tailwindcss": "dist/index.mjs"
}
},
"node_modules/@tailwindcss/node": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.0.tgz",
"integrity": "sha512-Yv+fn/o2OmL5fh/Ir62VXItdShnUxfpkMA4Y7jdeC8O81WPB8Kf6TT6GSHvnqgSwDzlB5iT7kDpeXxLsUS0T6Q==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz",
"integrity": "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3763,37 +3763,37 @@
"lightningcss": "1.31.1",
"magic-string": "^0.30.21",
"source-map-js": "^1.2.1",
"tailwindcss": "4.2.0"
"tailwindcss": "4.2.1"
}
},
"node_modules/@tailwindcss/oxide": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.0.tgz",
"integrity": "sha512-AZqQzADaj742oqn2xjl5JbIOzZB/DGCYF/7bpvhA8KvjUj9HJkag6bBuwZvH1ps6dfgxNHyuJVlzSr2VpMgdTQ==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.1.tgz",
"integrity": "sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 20"
},
"optionalDependencies": {
"@tailwindcss/oxide-android-arm64": "4.2.0",
"@tailwindcss/oxide-darwin-arm64": "4.2.0",
"@tailwindcss/oxide-darwin-x64": "4.2.0",
"@tailwindcss/oxide-freebsd-x64": "4.2.0",
"@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.0",
"@tailwindcss/oxide-linux-arm64-gnu": "4.2.0",
"@tailwindcss/oxide-linux-arm64-musl": "4.2.0",
"@tailwindcss/oxide-linux-x64-gnu": "4.2.0",
"@tailwindcss/oxide-linux-x64-musl": "4.2.0",
"@tailwindcss/oxide-wasm32-wasi": "4.2.0",
"@tailwindcss/oxide-win32-arm64-msvc": "4.2.0",
"@tailwindcss/oxide-win32-x64-msvc": "4.2.0"
"@tailwindcss/oxide-android-arm64": "4.2.1",
"@tailwindcss/oxide-darwin-arm64": "4.2.1",
"@tailwindcss/oxide-darwin-x64": "4.2.1",
"@tailwindcss/oxide-freebsd-x64": "4.2.1",
"@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1",
"@tailwindcss/oxide-linux-arm64-gnu": "4.2.1",
"@tailwindcss/oxide-linux-arm64-musl": "4.2.1",
"@tailwindcss/oxide-linux-x64-gnu": "4.2.1",
"@tailwindcss/oxide-linux-x64-musl": "4.2.1",
"@tailwindcss/oxide-wasm32-wasi": "4.2.1",
"@tailwindcss/oxide-win32-arm64-msvc": "4.2.1",
"@tailwindcss/oxide-win32-x64-msvc": "4.2.1"
}
},
"node_modules/@tailwindcss/oxide-android-arm64": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.0.tgz",
"integrity": "sha512-F0QkHAVaW/JNBWl4CEKWdZ9PMb0khw5DCELAOnu+RtjAfx5Zgw+gqCHFvqg3AirU1IAd181fwOtJQ5I8Yx5wtw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.1.tgz",
"integrity": "sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==",
"cpu": [
"arm64"
],
@ -3808,9 +3808,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-arm64": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.0.tgz",
"integrity": "sha512-I0QylkXsBsJMZ4nkUNSR04p6+UptjcwhcVo3Zu828ikiEqHjVmQL9RuQ6uT/cVIiKpvtVA25msu/eRV97JeNSA==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.1.tgz",
"integrity": "sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==",
"cpu": [
"arm64"
],
@ -3825,9 +3825,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-x64": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.0.tgz",
"integrity": "sha512-6TmQIn4p09PBrmnkvbYQ0wbZhLtbaksCDx7Y7R3FYYx0yxNA7xg5KP7dowmQ3d2JVdabIHvs3Hx4K3d5uCf8xg==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.1.tgz",
"integrity": "sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==",
"cpu": [
"x64"
],
@ -3842,9 +3842,9 @@
}
},
"node_modules/@tailwindcss/oxide-freebsd-x64": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.0.tgz",
"integrity": "sha512-qBudxDvAa2QwGlq9y7VIzhTvp2mLJ6nD/G8/tI70DCDoneaUeLWBJaPcbfzqRIWraj+o969aDQKvKW9dvkUizw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.1.tgz",
"integrity": "sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==",
"cpu": [
"x64"
],
@ -3859,9 +3859,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.0.tgz",
"integrity": "sha512-7XKkitpy5NIjFZNUQPeUyNJNJn1CJeV7rmMR+exHfTuOsg8rxIO9eNV5TSEnqRcaOK77zQpsyUkBWmPy8FgdSg==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.1.tgz",
"integrity": "sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==",
"cpu": [
"arm"
],
@ -3876,9 +3876,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.0.tgz",
"integrity": "sha512-Mff5a5Q3WoQR01pGU1gr29hHM1N93xYrKkGXfPw/aRtK4bOc331Ho4Tgfsm5WDGvpevqMpdlkCojT3qlCQbCpA==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.1.tgz",
"integrity": "sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==",
"cpu": [
"arm64"
],
@ -3893,9 +3893,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.0.tgz",
"integrity": "sha512-XKcSStleEVnbH6W/9DHzZv1YhjE4eSS6zOu2eRtYAIh7aV4o3vIBs+t/B15xlqoxt6ef/0uiqJVB6hkHjWD/0A==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.1.tgz",
"integrity": "sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==",
"cpu": [
"arm64"
],
@ -3910,9 +3910,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.0.tgz",
"integrity": "sha512-/hlXCBqn9K6fi7eAM0RsobHwJYa5V/xzWspVTzxnX+Ft9v6n+30Pz8+RxCn7sQL/vRHHLS30iQPrHQunu6/vJA==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.1.tgz",
"integrity": "sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==",
"cpu": [
"x64"
],
@ -3927,9 +3927,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-musl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.0.tgz",
"integrity": "sha512-lKUaygq4G7sWkhQbfdRRBkaq4LY39IriqBQ+Gk6l5nKq6Ay2M2ZZb1tlIyRNgZKS8cbErTwuYSor0IIULC0SHw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.1.tgz",
"integrity": "sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==",
"cpu": [
"x64"
],
@ -3944,9 +3944,9 @@
}
},
"node_modules/@tailwindcss/oxide-wasm32-wasi": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.0.tgz",
"integrity": "sha512-xuDjhAsFdUuFP5W9Ze4k/o4AskUtI8bcAGU4puTYprr89QaYFmhYOPfP+d1pH+k9ets6RoE23BXZM1X1jJqoyw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.1.tgz",
"integrity": "sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==",
"bundleDependencies": [
"@napi-rs/wasm-runtime",
"@emnapi/core",
@ -4038,9 +4038,9 @@
"optional": true
},
"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.0.tgz",
"integrity": "sha512-2UU/15y1sWDEDNJXxEIrfWKC2Yb4YgIW5Xz2fKFqGzFWfoMHWFlfa1EJlGO2Xzjkq/tvSarh9ZTjvbxqWvLLXA==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.1.tgz",
"integrity": "sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==",
"cpu": [
"arm64"
],
@ -4055,9 +4055,9 @@
}
},
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.0.tgz",
"integrity": "sha512-CrFadmFoc+z76EV6LPG1jx6XceDsaCG3lFhyLNo/bV9ByPrE+FnBPckXQVP4XRkN76h3Fjt/a+5Er/oA/nCBvQ==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.1.tgz",
"integrity": "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==",
"cpu": [
"x64"
],
@ -4072,15 +4072,15 @@
}
},
"node_modules/@tailwindcss/vite": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.0.tgz",
"integrity": "sha512-da9mFCaHpoOgtQiWtDGIikTrSpUFBtIZCG3jy/u2BGV+l/X1/pbxzmIUxNt6JWm19N3WtGi4KlJdSH/Si83WOA==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.1.tgz",
"integrity": "sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@tailwindcss/node": "4.2.0",
"@tailwindcss/oxide": "4.2.0",
"tailwindcss": "4.2.0"
"@tailwindcss/node": "4.2.1",
"@tailwindcss/oxide": "4.2.1",
"tailwindcss": "4.2.1"
},
"peerDependencies": {
"vite": "^5.2.0 || ^6 || ^7"
@ -4237,9 +4237,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "25.3.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz",
"integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==",
"version": "25.3.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.2.tgz",
"integrity": "sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -5047,13 +5047,13 @@
}
},
"node_modules/@vue/compiler-core": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.28.tgz",
"integrity": "sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.29.tgz",
"integrity": "sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.29.0",
"@vue/shared": "3.5.28",
"@vue/shared": "3.5.29",
"entities": "^7.0.1",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.1"
@ -5078,26 +5078,26 @@
"license": "MIT"
},
"node_modules/@vue/compiler-dom": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.28.tgz",
"integrity": "sha512-/1ZepxAb159jKR1btkefDP+J2xuWL5V3WtleRmxaT+K2Aqiek/Ab/+Ebrw2pPj0sdHO8ViAyyJWfhXXOP/+LQA==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.29.tgz",
"integrity": "sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==",
"license": "MIT",
"dependencies": {
"@vue/compiler-core": "3.5.28",
"@vue/shared": "3.5.28"
"@vue/compiler-core": "3.5.29",
"@vue/shared": "3.5.29"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.28.tgz",
"integrity": "sha512-6TnKMiNkd6u6VeVDhZn/07KhEZuBSn43Wd2No5zaP5s3xm8IqFTHBj84HJah4UepSUJTro5SoqqlOY22FKY96g==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.29.tgz",
"integrity": "sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.29.0",
"@vue/compiler-core": "3.5.28",
"@vue/compiler-dom": "3.5.28",
"@vue/compiler-ssr": "3.5.28",
"@vue/shared": "3.5.28",
"@vue/compiler-core": "3.5.29",
"@vue/compiler-dom": "3.5.29",
"@vue/compiler-ssr": "3.5.29",
"@vue/shared": "3.5.29",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.21",
"postcss": "^8.5.6",
@ -5111,13 +5111,13 @@
"license": "MIT"
},
"node_modules/@vue/compiler-ssr": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.28.tgz",
"integrity": "sha512-JCq//9w1qmC6UGLWJX7RXzrGpKkroubey/ZFqTpvEIDJEKGgntuDMqkuWiZvzTzTA5h2qZvFBFHY7fAAa9475g==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.29.tgz",
"integrity": "sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==",
"license": "MIT",
"dependencies": {
"@vue/compiler-dom": "3.5.28",
"@vue/shared": "3.5.28"
"@vue/compiler-dom": "3.5.29",
"@vue/shared": "3.5.29"
}
},
"node_modules/@vue/compiler-vue2": {
@ -5209,53 +5209,53 @@
}
},
"node_modules/@vue/reactivity": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.28.tgz",
"integrity": "sha512-gr5hEsxvn+RNyu9/9o1WtdYdwDjg5FgjUSBEkZWqgTKlo/fvwZ2+8W6AfKsc9YN2k/+iHYdS9vZYAhpi10kNaw==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.29.tgz",
"integrity": "sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA==",
"license": "MIT",
"dependencies": {
"@vue/shared": "3.5.28"
"@vue/shared": "3.5.29"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.28.tgz",
"integrity": "sha512-POVHTdbgnrBBIpnbYU4y7pOMNlPn2QVxVzkvEA2pEgvzbelQq4ZOUxbp2oiyo+BOtiYlm8Q44wShHJoBvDPAjQ==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.29.tgz",
"integrity": "sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg==",
"license": "MIT",
"dependencies": {
"@vue/reactivity": "3.5.28",
"@vue/shared": "3.5.28"
"@vue/reactivity": "3.5.29",
"@vue/shared": "3.5.29"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.28.tgz",
"integrity": "sha512-4SXxSF8SXYMuhAIkT+eBRqOkWEfPu6nhccrzrkioA6l0boiq7sp18HCOov9qWJA5HML61kW8p/cB4MmBiG9dSA==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.29.tgz",
"integrity": "sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg==",
"license": "MIT",
"dependencies": {
"@vue/reactivity": "3.5.28",
"@vue/runtime-core": "3.5.28",
"@vue/shared": "3.5.28",
"@vue/reactivity": "3.5.29",
"@vue/runtime-core": "3.5.29",
"@vue/shared": "3.5.29",
"csstype": "^3.2.3"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.28.tgz",
"integrity": "sha512-pf+5ECKGj8fX95bNincbzJ6yp6nyzuLDhYZCeFxUNp8EBrQpPpQaLX3nNCp49+UbgbPun3CeVE+5CXVV1Xydfg==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.29.tgz",
"integrity": "sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g==",
"license": "MIT",
"dependencies": {
"@vue/compiler-ssr": "3.5.28",
"@vue/shared": "3.5.28"
"@vue/compiler-ssr": "3.5.29",
"@vue/shared": "3.5.29"
},
"peerDependencies": {
"vue": "3.5.28"
"vue": "3.5.29"
}
},
"node_modules/@vue/shared": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.28.tgz",
"integrity": "sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.29.tgz",
"integrity": "sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==",
"license": "MIT"
},
"node_modules/@vue/test-utils": {
@ -7390,9 +7390,9 @@
}
},
"node_modules/eslint-plugin-jsdoc": {
"version": "62.7.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.7.0.tgz",
"integrity": "sha512-jootujJOIGMkCLN+/WgDFKtaclCt2MEEy9cZ1RyK19Az1JvVI3awbeMXNlJ6y4h8RWIJpcXqmxsu4t9NThYbNw==",
"version": "62.7.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.7.1.tgz",
"integrity": "sha512-4Zvx99Q7d1uggYBUX/AIjvoyqXhluGbbKrRmG8SQTLprPFg6fa293tVJH1o1GQwNe3lUydd8ZHzn37OaSncgSQ==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@ -7527,9 +7527,9 @@
}
},
"node_modules/eslint-plugin-playwright": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-2.7.0.tgz",
"integrity": "sha512-kUgwDZL3knnuJF53WSf5xNnB1aLPnX8furoh0PSrmmFIfMfIMmY3sNd4gtZ2MUUnaIX1/A9ndYtD7bhV1dj+1g==",
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-2.8.0.tgz",
"integrity": "sha512-BRCXbnX20l/ZPOOi1jEqNvqU/UjXpkZRJaghQxSM2kjAvsDph8+osn9u1iMmvoa9Cegbp9d0Skh7vro7242t+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -7665,9 +7665,9 @@
}
},
"node_modules/eslint-plugin-storybook": {
"version": "10.2.10",
"resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.2.10.tgz",
"integrity": "sha512-aWkoh2rhTaEsMA4yB1iVIcISM5wb0uffp09ZqhwpoD4GAngCs131uq6un+QdnOMc7vXyAnBBfsuhtOj8WwCUgw==",
"version": "10.2.13",
"resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.2.13.tgz",
"integrity": "sha512-ftNfZVL5zXhGMPEy/7PTCEriVH0zCBI89uiYYgSSTtM1b4l++VP+/MzJ17U1R1/jgENsp9LJm+jwRJnViv79RQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -7675,7 +7675,7 @@
},
"peerDependencies": {
"eslint": ">=8",
"storybook": "^10.2.10"
"storybook": "^10.2.13"
}
},
"node_modules/eslint-plugin-vue": {
@ -12371,9 +12371,9 @@
}
},
"node_modules/storybook": {
"version": "10.2.10",
"resolved": "https://registry.npmjs.org/storybook/-/storybook-10.2.10.tgz",
"integrity": "sha512-N4U42qKgzMHS7DjqLz5bY4P7rnvJtYkWFCyKspZr3FhPUuy6CWOae3aYC2BjXkHrdug0Jyta6VxFTuB1tYUKhg==",
"version": "10.2.13",
"resolved": "https://registry.npmjs.org/storybook/-/storybook-10.2.13.tgz",
"integrity": "sha512-heMfJjOfbHvL+wlCAwFZlSxcakyJ5yQDam6e9k2RRArB1veJhRnsjO6lO1hOXjJYrqxfHA/ldIugbBVlCDqfvQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -12755,9 +12755,9 @@
}
},
"node_modules/tailwindcss": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.0.tgz",
"integrity": "sha512-yYzTZ4++b7fNYxFfpnberEEKu43w44aqDMNM9MHMmcKuCH7lL8jJ4yJ7LGHv7rSwiqM0nkiobF9I6cLlpS2P7Q==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz",
"integrity": "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==",
"dev": true,
"license": "MIT"
},
@ -13688,16 +13688,16 @@
"license": "MIT"
},
"node_modules/vue": {
"version": "3.5.28",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.28.tgz",
"integrity": "sha512-BRdrNfeoccSoIZeIhyPBfvWSLFP4q8J3u8Ju8Ug5vu3LdD+yTM13Sg4sKtljxozbnuMu1NB1X5HBHRYUzFocKg==",
"version": "3.5.29",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.29.tgz",
"integrity": "sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==",
"license": "MIT",
"dependencies": {
"@vue/compiler-dom": "3.5.28",
"@vue/compiler-sfc": "3.5.28",
"@vue/runtime-dom": "3.5.28",
"@vue/server-renderer": "3.5.28",
"@vue/shared": "3.5.28"
"@vue/compiler-dom": "3.5.29",
"@vue/compiler-sfc": "3.5.29",
"@vue/runtime-dom": "3.5.29",
"@vue/server-renderer": "3.5.29",
"@vue/shared": "3.5.29"
},
"peerDependencies": {
"typescript": "*"
@ -13925,14 +13925,14 @@
}
},
"node_modules/vue-tsc": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.4.tgz",
"integrity": "sha512-xj3YCvSLNDKt1iF9OcImWHhmYcihVu9p4b9s4PGR/qp6yhW+tZJaypGxHScRyOrdnHvaOeF+YkZOdKwbgGvp5g==",
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.5.tgz",
"integrity": "sha512-/htfTCMluQ+P2FISGAooul8kO4JMheOTCbCy4M6dYnYYjqLe3BExZudAua6MSIKSFYQtFOYAll7XobYwcpokGA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@volar/typescript": "2.4.27",
"@vue/language-core": "3.2.4"
"@volar/typescript": "2.4.28",
"@vue/language-core": "3.2.5"
},
"bin": {
"vue-tsc": "bin/vue-tsc.js"
@ -13941,43 +13941,14 @@
"typescript": ">=5.0.0"
}
},
"node_modules/vue-tsc/node_modules/@volar/language-core": {
"version": "2.4.27",
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz",
"integrity": "sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@volar/source-map": "2.4.27"
}
},
"node_modules/vue-tsc/node_modules/@volar/source-map": {
"version": "2.4.27",
"resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz",
"integrity": "sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==",
"dev": true,
"license": "MIT"
},
"node_modules/vue-tsc/node_modules/@volar/typescript": {
"version": "2.4.27",
"resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz",
"integrity": "sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@volar/language-core": "2.4.27",
"path-browserify": "^1.0.1",
"vscode-uri": "^3.0.8"
}
},
"node_modules/vue-tsc/node_modules/@vue/language-core": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.4.tgz",
"integrity": "sha512-bqBGuSG4KZM45KKTXzGtoCl9cWju5jsaBKaJJe3h5hRAAWpZUuj5G+L+eI01sPIkm4H6setKRlw7E85wLdDNew==",
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.5.tgz",
"integrity": "sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@volar/language-core": "2.4.27",
"@volar/language-core": "2.4.28",
"@vue/compiler-dom": "^3.5.0",
"@vue/shared": "^3.5.0",
"alien-signals": "^3.0.0",

View File

@ -88,18 +88,18 @@
"@fontsource-variable/inter": "^5.2.8",
"@playwright/test": "^1.58.2",
"@size-limit/file": "^12.0.0",
"@storybook/vue3-vite": "^10.2.10",
"@tailwindcss/cli": "^4.2.0",
"@tailwindcss/vite": "^4.2.0",
"@types/node": "^25.3.0",
"@storybook/vue3-vite": "^10.2.13",
"@tailwindcss/cli": "^4.2.1",
"@tailwindcss/vite": "^4.2.1",
"@types/node": "^25.3.2",
"@vitejs/plugin-vue": "^6.0.4",
"@vitest/coverage-v8": "^4.0.18",
"@vue/test-utils": "^2.4.6",
"eslint": "^9.39.2",
"eslint-config-it4c": "^0.11.2",
"eslint-plugin-jsdoc": "^62.7.0",
"eslint-plugin-playwright": "^2.7.0",
"eslint-plugin-storybook": "^10.2.10",
"eslint-plugin-jsdoc": "^62.7.1",
"eslint-plugin-playwright": "^2.8.0",
"eslint-plugin-storybook": "^10.2.13",
"eslint-plugin-vuejs-accessibility": "^2.5.0",
"glob": "^13.0.6",
"jsdom": "^28.1.0",
@ -107,15 +107,15 @@
"size-limit": "^12.0.0",
"storybook": "^10.2.7",
"tailwind-csstree": "^0.1.4",
"tailwindcss": "^4.2.0",
"tailwindcss": "^4.2.1",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vite": "^7.3.1",
"vite-plugin-dts": "^4.5.4",
"vite-tsconfig-paths": "^6.1.1",
"vitest": "^4.0.18",
"vue": "^3.5.28",
"vue-tsc": "^3.2.4"
"vue": "^3.5.29",
"vue-tsc": "^3.2.5"
},
"engines": {
"node": ">=18.0.0"

View File

@ -1,17 +1,34 @@
#! /usr/bin/env bash
ROOT_DIR=$(dirname "$0")/../..
LOCALES_DIR="$ROOT_DIR/webapp/locales"
sorting="jq -f $ROOT_DIR/scripts/translations/sort_filter.jq"
english="$sorting $ROOT_DIR/webapp/locales/en.json"
german="$sorting $ROOT_DIR/webapp/locales/de.json"
english="$sorting $LOCALES_DIR/en.json"
listPaths="jq -c 'path(..)|[.[]|tostring]|join(\".\")'"
diffString="<( $english | $listPaths ) <( $german | $listPaths )"
if eval "diff -q $diffString";
then
: # all good
else
eval "diff -y $diffString | grep '[|<>]'";
printf "\nEnglish and German translation keys do not match, see diff above.\n"
has_error=0
for file in "$LOCALES_DIR"/*.json; do
lang=$(basename "$file" .json)
# skip english itself
if [ "$lang" = "en" ]; then
continue
fi
other="$sorting $file"
diffString="<( $english | $listPaths ) <( $other | $listPaths )"
if eval "diff -q $diffString" > /dev/null 2>&1; then
: # all good
else
eval "diff -y $diffString | grep '[|<>]'"
printf "\nEnglish and %s (%s) translation keys do not match, see diff above.\n\n" "$lang" "$file"
has_error=1
fi
done
if [ "$has_error" -eq 1 ]; then
exit 1
fi

View File

@ -269,7 +269,7 @@ export default {
.ProseMirror[contenteditable='false'] {
.close-button {
display: none;
display: none !important;
}
}
</style>

View File

@ -1,6 +1,7 @@
<template>
<nuxt-link
class="post-teaser"
:class="{ 'post-teaser--horizontal': singleColumn && post.image }"
:to="{ name: 'post-id-slug', params: { id: post.id, slug: post.slug } }"
>
<os-card
@ -215,6 +216,10 @@ export default {
type: Boolean,
default: false,
},
singleColumn: {
type: Boolean,
default: false,
},
},
data() {
return {
@ -334,16 +339,12 @@ export default {
> .post-ribbon-w-img {
position: absolute;
// 14px (~height of ribbon element) + 24px(=margin of hero image)
top: -38px;
// 7px+24px(=padding of parent) - 1px adjustment
top: -36px;
right: -29px;
}
> .post-ribbon {
position: absolute;
// 14px (~height of ribbon element) + 24px(=margin of hero image)
top: -24px;
// 7px(=offset)+24px(=margin of parent) - 2px adjustment
top: -16px;
right: -29px;
}
}
@ -491,4 +492,38 @@ export default {
}
}
}
.post-teaser--horizontal > .os-card {
@media (min-width: 640px) {
flex-direction: row;
padding-bottom: 0 !important;
> .os-card__hero-image {
flex: 0 0 40%;
max-width: 40%;
border-top-right-radius: 0;
border-bottom-left-radius: 5px;
}
.image-placeholder {
height: 100%;
aspect-ratio: unset !important;
> .image {
height: 100%;
object-fit: cover;
}
}
> .os-card__content {
flex: 1;
min-width: 0;
padding-bottom: $space-x-small !important;
}
.post-ribbon-w-img {
top: -16px;
}
}
}
</style>

View File

@ -59,6 +59,7 @@ describe('LocationSelect', () => {
place: 'nowhere',
lang: 'en',
},
fetchPolicy: 'network-only',
})
})
@ -69,8 +70,8 @@ describe('LocationSelect', () => {
it('emits an empty string', () => {
expect(wrapper.emitted().input).toBeTruthy()
expect(wrapper.emitted().input.length).toBe(1)
expect(wrapper.emitted().input[0]).toEqual([''])
const lastEmit = wrapper.emitted().input[wrapper.emitted().input.length - 1]
expect(lastEmit).toEqual([''])
})
})

View File

@ -40,6 +40,7 @@ export default {
components: { OsButton, OsIcon },
props: {
value: {
type: [String, Object],
required: true,
},
canBeCleared: {
@ -55,10 +56,7 @@ export default {
},
async created() {
this.icons = iconRegistry
const result = await this.requestGeoData(this.locationName)
this.$nextTick(() => {
this.currentValue = result || this.locationName
})
await this.resolveLocalizedLocation()
},
data() {
return {
@ -74,6 +72,9 @@ export default {
locationNameLabelAddOnOldName() {
return this.locationName !== '' && this.showPreviousLocation ? ' — ' + this.locationName : ''
},
currentLocale() {
return this.$store && this.$store.state.i18n && this.$store.state.i18n.locale
},
},
watch: {
currentValue() {
@ -81,10 +82,19 @@ export default {
this.$emit('input', this.currentValue)
}
},
value() {
if (this.value !== this.currentValue) {
this.currentValue = this.value
value(newVal, oldVal) {
if (newVal !== this.currentValue) {
this.currentValue = newVal
}
// resolve when value is set after initial mount (e.g. settings page)
const newName = typeof newVal === 'object' ? newVal.value : newVal
const oldName = typeof oldVal === 'object' ? oldVal.value : oldVal
if (newName && newName !== oldName) {
this.resolveLocalizedLocation()
}
},
currentLocale() {
this.resolveLocalizedLocation()
},
},
methods: {
@ -124,7 +134,11 @@ export default {
const {
data: { queryLocations: result },
} = await this.$apollo.query({ query: queryLocations(), variables: { place, lang } })
} = await this.$apollo.query({
query: queryLocations(),
variables: { place, lang },
fetchPolicy: 'network-only',
})
this.cities = this.processLocationsResult(result)
this.loadingGeo = false
@ -136,6 +150,13 @@ export default {
this.loadingGeo = false
}
},
async resolveLocalizedLocation() {
if (!this.locationName) return
const result = await this.requestGeoData(this.locationName)
this.$nextTick(() => {
this.currentValue = result || (this.cities.length ? this.cities[0] : this.locationName)
})
},
clearLocationName() {
this.currentValue = ''
},

View File

@ -114,7 +114,7 @@ export default {
> a,
> button,
> span:not(.group-info) {
> span:not(.group-info):not(.text) {
display: contents;
}
}

View File

@ -7,4 +7,9 @@ export default {
ORGANIZATION_NAME: 'ocelot.social Community',
ORGANIZATION_JURISDICTION: 'City of Angels',
THEME_COLOR: 'rgb(23, 181, 63)', // $color-primary as the main color in general. e.g. the color in the background of the app that is visible behind the transparent iPhone status bar to name one use case, or the current color of SVGs to name another use case
OG_IMAGE: '/img/custom/logo-squared.png', // Open Graph image for link previews (Telegram, Discord, etc.) relative URL, override with absolute URL in branding
OG_IMAGE_ALT: 'ocelot.social Logo', // alt text for the Open Graph image
OG_IMAGE_WIDTH: '1200', // width of the Open Graph image in pixels
OG_IMAGE_HEIGHT: '1140', // height of the Open Graph image in pixels
OG_IMAGE_TYPE: 'image/png', // MIME type of the Open Graph image
}

View File

@ -5,7 +5,7 @@ export const location = (type, lang) => gql`
locationName
location {
id
name: name${lang}
name(lang: "${lang}")
lng
lat
distanceToMe

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
import { enUS, de, nl, fr, es, it, pt, pl, ru } from 'date-fns/locale'
import { enUS, de, nl, fr, es, it, pt, pl, ru, sq } from 'date-fns/locale'
import find from 'lodash/find'
const locales = [
@ -74,6 +74,14 @@ const locales = [
enabled: true,
dateFnsLocale: ru,
},
{
name: 'Shqip',
code: 'sq',
iso: 'sq-AL',
flag: '🇦🇱',
enabled: true,
dateFnsLocale: sq,
},
]
export default locales

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1281
webapp/locales/sq.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,20 @@ import path from 'path'
import fs from 'fs'
import manifest from './constants/manifest.js'
import metadata from './constants/metadata.js'
import locales from './locales/index.js'
const CONFIG = require('./config').default // we need to use require since this is only evaluated at compile time.
// Map language code (e.g. 'de') to Open Graph locale (e.g. 'de_DE') using existing locales definition
const toOgLocale = (code) => {
const locale = locales.find((l) => l.code === code)
return locale ? locale.iso.replace('-', '_') : null
}
const ogLocale = toOgLocale(CONFIG.LANGUAGE_DEFAULT)
const ogLocaleAlternates = locales
.filter((l) => l.enabled && l.code !== CONFIG.LANGUAGE_DEFAULT)
.map((l) => l.iso.replace('-', '_'))
const styleguidePath = '../styleguide'
const styleguideStyles = [
// `${styleguidePath}/src/system/styles/main.scss`,
@ -60,6 +71,23 @@ export default {
name: 'description',
content: CONFIG.DESCRIPTION,
},
...[
{ hid: 'og:title', property: 'og:title', content: manifest.name },
{ hid: 'og:description', property: 'og:description', content: CONFIG.DESCRIPTION },
{ hid: 'og:site_name', property: 'og:site_name', content: manifest.name },
{ hid: 'og:image', property: 'og:image', content: metadata.OG_IMAGE },
{ hid: 'og:image:alt', property: 'og:image:alt', content: metadata.OG_IMAGE_ALT },
{ hid: 'og:image:width', property: 'og:image:width', content: metadata.OG_IMAGE_WIDTH },
{ hid: 'og:image:height', property: 'og:image:height', content: metadata.OG_IMAGE_HEIGHT },
{ hid: 'og:image:type', property: 'og:image:type', content: metadata.OG_IMAGE_TYPE },
{ hid: 'og:type', property: 'og:type', content: 'website' },
{ hid: 'og:locale', property: 'og:locale', content: ogLocale },
...ogLocaleAlternates.map((alt) => ({
property: 'og:locale:alternate',
content: alt,
})),
{ hid: 'twitter:card', name: 'twitter:card', content: 'summary_large_image' },
].filter((tag) => tag.content),
],
link: [
{

View File

@ -111,6 +111,7 @@
"vue-svg-loader": "~0.16.0"
},
"resolutions": {
"graphql": "14.7.0",
"nan": "2.17.0",
"vue": "2.7.16",
"vue-server-renderer": "2.7.16"

View File

@ -149,8 +149,6 @@ describe('GroupProfileSlug', () => {
locationName: 'France',
location: {
name: 'Paris',
nameDE: 'Paris',
nameEN: 'Paris',
},
isMutedByMe: true,
membersCount: 0,
@ -193,8 +191,6 @@ describe('GroupProfileSlug', () => {
locationName: 'Hamburg, Germany',
location: {
name: 'Hamburg',
nameDE: 'Hamburg',
nameEN: 'Hamburg',
},
isMutedByMe: false,
membersCount: 0,

View File

@ -135,6 +135,7 @@
>
<post-teaser
:post="post"
:single-column="singleColumn"
:postsFilter="postsFilter['categories_some']"
@removePostFromList="posts = removePostFromList(post, posts)"
@pinPost="pinPost(post, refetchPostList)"

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View File

@ -3840,7 +3840,7 @@
dependencies:
class-variance-authority "^0.7.1"
clsx "^2.1.1"
tailwind-merge "^3.3.0"
tailwind-merge "^3.5.0"
vue-demi "^0.14.10"
"@oclif/color@^0.0.0":
@ -11912,18 +11912,13 @@ graphql-upload@^8.0.2:
http-errors "^1.7.3"
object-path "^0.11.4"
"graphql@14.0.2 - 14.2.0 || ^14.3.1", graphql@14.7.0, graphql@^14.5.8:
"graphql@14.0.2 - 14.2.0 || ^14.3.1", graphql@14.7.0, graphql@^14.5.8, graphql@^15.3.0:
version "14.7.0"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72"
integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==
dependencies:
iterall "^1.2.2"
graphql@^15.3.0:
version "15.10.1"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.10.1.tgz#e9ff3bb928749275477f748b14aa5c30dcad6f2f"
integrity sha512-BL/Xd/T9baO6NFzoMpiMD7YUZ62R6viR5tp/MULVEnbYJXZA//kRNW7J0j1w/wXArgL0sCxhDfK5dczSKn3+cg==
grid-index@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/grid-index/-/grid-index-1.1.0.tgz#97f8221edec1026c8377b86446a7c71e79522ea7"
@ -20020,10 +20015,10 @@ table@^6.0.9:
string-width "^4.2.3"
strip-ansi "^6.0.1"
tailwind-merge@^3.3.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-3.4.0.tgz#5a264e131a096879965f1175d11f8c36e6b64eca"
integrity sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==
tailwind-merge@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-3.5.0.tgz#06502f4496ba15151445d97d916a26564d50d1ca"
integrity sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==
tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.3:
version "1.1.3"

189
yarn.lock
View File

@ -870,46 +870,34 @@
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
"@cucumber/ci-environment@12.0.0":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@cucumber/ci-environment/-/ci-environment-12.0.0.tgz#8a7f8a46a88b88fa78beda415fb2c64952208e20"
integrity sha512-SqCEnbCNl3zCXCFpqGUuoaSNhLC0jLw4tKeFcAxTw9MD/QRlJjeAC/fyvVLFuXuSq0OunJlFfxLu+Z3HE+oLPg==
"@cucumber/ci-environment@^13.0.0":
"@cucumber/ci-environment@13.0.0", "@cucumber/ci-environment@^13.0.0":
version "13.0.0"
resolved "https://registry.yarnpkg.com/@cucumber/ci-environment/-/ci-environment-13.0.0.tgz#0a9c4e279814af864cd1591c4c16f284e14af39b"
integrity sha512-cs+3NzfNkGbcmHPddjEv4TKFiBpZRQ6WJEEufB9mw+ExS22V/4R/zpDSEG+fsJ/iSNCd6A2sATdY8PFOyY3YnA==
"@cucumber/cucumber-expressions@18.1.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-expressions@^19.0.0":
"@cucumber/cucumber-expressions@19.0.0", "@cucumber/cucumber-expressions@^19.0.0":
version "19.0.0"
resolved "https://registry.yarnpkg.com/@cucumber/cucumber-expressions/-/cucumber-expressions-19.0.0.tgz#562c932b1e6808485e4a45bf9cbcc93cdc3b1d45"
integrity sha512-4FKoOQh2Uf6F6/Ln+1OxuK8LkTg6PyAqekhf2Ix8zqV2M54sH+m7XNJNLhOFOAW/t9nxzRbw2CcvXbCLjcvHZg==
dependencies:
regexp-match-indices "1.0.2"
"@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==
"@cucumber/cucumber@12.7.0", "@cucumber/cucumber@^12.0.0":
version "12.7.0"
resolved "https://registry.yarnpkg.com/@cucumber/cucumber/-/cucumber-12.7.0.tgz#ca90eaa64a992a47e9781e210b84039433f1f478"
integrity sha512-7A/9CJpJDxv1SQ7hAZU0zPn2yRxx6XMR+LO4T94Enm3cYNWsEEj+RGX38NLX4INT+H6w5raX3Csb/qs4vUBsOA==
dependencies:
"@cucumber/ci-environment" "12.0.0"
"@cucumber/cucumber-expressions" "18.1.0"
"@cucumber/gherkin" "37.0.1"
"@cucumber/ci-environment" "13.0.0"
"@cucumber/cucumber-expressions" "19.0.0"
"@cucumber/gherkin" "38.0.0"
"@cucumber/gherkin-streams" "6.0.0"
"@cucumber/gherkin-utils" "10.0.0"
"@cucumber/html-formatter" "22.3.0"
"@cucumber/gherkin-utils" "11.0.0"
"@cucumber/html-formatter" "23.0.0"
"@cucumber/junit-xml-formatter" "0.9.0"
"@cucumber/message-streams" "4.0.1"
"@cucumber/messages" "31.2.0"
"@cucumber/messages" "32.0.1"
"@cucumber/pretty-formatter" "1.0.1"
"@cucumber/tag-expressions" "8.1.0"
"@cucumber/tag-expressions" "9.1.0"
assertion-error-formatter "^3.0.0"
capital-case "^1.0.4"
chalk "^4.1.2"
@ -932,7 +920,7 @@
mz "^2.7.0"
progress "^2.0.3"
read-package-up "^12.0.0"
semver "7.7.3"
semver "7.7.4"
string-argv "0.3.1"
supports-color "^8.1.1"
type-fest "^4.41.0"
@ -948,44 +936,25 @@
commander "14.0.0"
source-map-support "0.5.21"
"@cucumber/gherkin-utils@10.0.0":
version "10.0.0"
resolved "https://registry.yarnpkg.com/@cucumber/gherkin-utils/-/gherkin-utils-10.0.0.tgz#c0d5518784d69875f8aab85220db5fdc5f507683"
integrity sha512-BcujlDT343GXXNrMPl3ws6Il3zs8dQw3Yp/d3HnOJF8i2snGGgiapoTbko7MdvAt7ivDL7SDo+e1d5Cnpl3llA==
"@cucumber/gherkin-utils@11.0.0":
version "11.0.0"
resolved "https://registry.yarnpkg.com/@cucumber/gherkin-utils/-/gherkin-utils-11.0.0.tgz#167afa559978cf6fbe2b583d3d5f9e7c4741c28a"
integrity sha512-LJ+s4+TepHTgdKWDR4zbPyT7rQjmYIcukTwNbwNwgqr6i8Gjcmzf6NmtbYDA19m1ZFg6kWbFsmHnj37ZuX+kZA==
dependencies:
"@cucumber/gherkin" "^34.0.0"
"@cucumber/messages" "^29.0.0"
"@cucumber/gherkin" "^38.0.0"
"@cucumber/messages" "^32.0.0"
"@teppeis/multimaps" "3.0.0"
commander "14.0.0"
commander "14.0.2"
source-map-support "^0.5.21"
"@cucumber/gherkin@37.0.1":
version "37.0.1"
resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-37.0.1.tgz#53eb330a32cdbf9276a7341df3c22929a2fea53f"
integrity sha512-VmX+PKa9vqKZiycZoQKYlCsA0N7gAfiOfrcHSjK+suEVUwvKEH2sjO47NznrFFLmVWYTRmw3DLHQnpBAznkYEA==
dependencies:
"@cucumber/messages" ">=31.0.0 <32"
"@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==
dependencies:
"@cucumber/messages" ">=19.1.4 <29"
"@cucumber/gherkin@^38.0.0":
"@cucumber/gherkin@38.0.0", "@cucumber/gherkin@^38.0.0":
version "38.0.0"
resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-38.0.0.tgz#6c74388f95694e4c92762aeddf3d5638dbedf540"
integrity sha512-duEXK+KDfQUzu3vsSzXjkxQ2tirF5PRsc1Xrts6THKHJO6mjw4RjM8RV+vliuDasmhhrmdLcOcM7d9nurNTJKw==
dependencies:
"@cucumber/messages" ">=31.0.0 <33"
"@cucumber/html-formatter@22.3.0":
version "22.3.0"
resolved "https://registry.yarnpkg.com/@cucumber/html-formatter/-/html-formatter-22.3.0.tgz#b624c6904c63c571183493b1667b6b4b5d10304d"
integrity sha512-0s3G7kznCRDiiesQ4K0yBdswGqU9E0j2AWUug41NpedBzhaY+Hn192ANRF597GZtuWrCjE53aFb3fOyOsT8B+g==
"@cucumber/html-formatter@^23.0.0":
"@cucumber/html-formatter@23.0.0", "@cucumber/html-formatter@^23.0.0":
version "23.0.0"
resolved "https://registry.yarnpkg.com/@cucumber/html-formatter/-/html-formatter-23.0.0.tgz#066f548f55274b58b67b4930836bd73579a9bf07"
integrity sha512-WwcRzdM8Ixy4e53j+Frm3fKM5rNuIyWUfy4HajEN+Xk/YcjA6yW0ACGTFDReB++VDZz/iUtwYdTlPRY36NbqJg==
@ -1005,25 +974,7 @@
resolved "https://registry.yarnpkg.com/@cucumber/message-streams/-/message-streams-4.0.1.tgz#a5339d3504594bb2edb5732aaae94dddb24d0970"
integrity sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==
"@cucumber/messages@31.2.0", "@cucumber/messages@>=31.0.0 <32":
version "31.2.0"
resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-31.2.0.tgz#9d8fd71dd4a12878cf22abeb2832c8967f3b5198"
integrity sha512-3urzBNCwmU/YKrKR0b3XdioFcOFNuxlLwEImsxeP8rXnweLs+Ky04QURcbKpFom3T6a6v9zVioLCfHUuSQ72pg==
dependencies:
class-transformer "0.5.1"
reflect-metadata "0.2.2"
"@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==
dependencies:
"@types/uuid" "10.0.0"
class-transformer "0.5.1"
reflect-metadata "0.2.2"
uuid "11.1.0"
"@cucumber/messages@>=31.0.0 <33", "@cucumber/messages@^32.0.0":
"@cucumber/messages@32.0.1", "@cucumber/messages@>=31.0.0 <33", "@cucumber/messages@^32.0.0":
version "32.0.1"
resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-32.0.1.tgz#500a8be56e89b02db5a217a26dd2ba80d4cca912"
integrity sha512-1OSoW+GQvFUNAl6tdP2CTBexTXMNJF0094goVUcvugtQeXtJ0K8sCP0xbq7GGoiezs/eJAAOD03+zAPT64orHQ==
@ -1031,14 +982,6 @@
class-transformer "0.5.1"
reflect-metadata "0.2.2"
"@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/pretty-formatter@1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@cucumber/pretty-formatter/-/pretty-formatter-1.0.1.tgz#65d6c1df436920036a7bd02d08cb44d20e7af0ab"
@ -1073,12 +1016,7 @@
"@teppeis/multimaps" "3.0.0"
lodash.sortby "^4.7.0"
"@cucumber/tag-expressions@8.1.0":
version "8.1.0"
resolved "https://registry.yarnpkg.com/@cucumber/tag-expressions/-/tag-expressions-8.1.0.tgz#0e83385f24059369b6568e192ad8001da6b8fe94"
integrity sha512-UFeOVUyc711/E7VHjThxMwg3jbGod9TlbM1gxNixX/AGDKg82Eha4cE0tKki3GGUs7uB2NyI+hQAuhB8rL2h5A==
"@cucumber/tag-expressions@^9.0.0":
"@cucumber/tag-expressions@9.1.0", "@cucumber/tag-expressions@^9.0.0":
version "9.1.0"
resolved "https://registry.yarnpkg.com/@cucumber/tag-expressions/-/tag-expressions-9.1.0.tgz#5c63cf716b6d688f140d0e4c0cc858bfd5703618"
integrity sha512-bvHjcRFZ+J1TqIa9eFNO1wGHqwx4V9ZKV3hYgkuK/VahHx73uiP4rKV3JVrvWSMrwrFvJG6C8aEwnCWSvbyFdQ==
@ -2210,11 +2148,6 @@
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c"
integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==
"@types/uuid@10.0.0":
version "10.0.0"
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d"
integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==
"@types/web-bluetooth@^0.0.20":
version "0.0.20"
resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597"
@ -3040,10 +2973,10 @@ acorn-walk@^8.2.0:
dependencies:
acorn "^8.11.0"
acorn@^8.11.0, acorn@^8.15.0:
version "8.15.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
acorn@^8.11.0, acorn@^8.15.0, acorn@^8.16.0:
version "8.16.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a"
integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==
aggregate-error@^3.0.0:
version "3.1.0"
@ -3851,16 +3784,16 @@ commander@14.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.0.tgz#f244fc74a92343514e56229f16ef5c5e22ced5e9"
integrity sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==
commander@14.0.2, commander@^14.0.0, commander@^14.0.2:
version "14.0.2"
resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e"
integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==
commander@^12.1.0:
version "12.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
commander@^14.0.0, commander@^14.0.2:
version "14.0.2"
resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e"
integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@ -4051,10 +3984,10 @@ cypress-network-idle@^1.15.0:
resolved "https://registry.yarnpkg.com/cypress-network-idle/-/cypress-network-idle-1.15.0.tgz#e249f08695a46f1ddce18a95d5293937f277cbb3"
integrity sha512-8zU16zhc7S3nMl1NTEEcNsZYlJy/ZzP2zPTTrngGxyXH32Ipake/xfHLZsgrzeWCieiS2AVhQsakhWqFzO3hpw==
cypress@^15.10.0:
version "15.10.0"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.10.0.tgz#06bed98a690fad1b98a21010613f9c8c7fa9f639"
integrity sha512-OtUh7OMrfEjKoXydlAD1CfG2BvKxIqgWGY4/RMjrqQ3BKGBo5JFKoYNH+Tpcj4xKxWH4XK0Xri+9y8WkxhYbqQ==
cypress@^15.11.0:
version "15.11.0"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.11.0.tgz#7402d0a2bb4573b6c6655191ad170cff1985ff3f"
integrity sha512-NXDE6/fqZuzh1Zr53nyhCCa4lcANNTYWQNP9fJO+tzD3qVTDaTUni5xXMuigYjMujQ7CRiT9RkJJONmPQSsDFw==
dependencies:
"@cypress/request" "^3.0.10"
"@cypress/xvfb" "^1.2.4"
@ -4093,9 +4026,10 @@ cypress@^15.10.0:
proxy-from-env "1.0.0"
request-progress "^3.0.0"
supports-color "^8.1.1"
systeminformation "^5.27.14"
systeminformation "^5.31.1"
tmp "~0.2.4"
tree-kill "1.2.2"
tslib "1.14.1"
untildify "^4.0.0"
yauzl "^2.10.0"
@ -7587,10 +7521,10 @@ seedrandom@^3.0.5:
resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7"
integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==
semver@7.7.3, semver@^7.3.2, semver@^7.3.5, semver@^7.7.3:
version "7.7.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946"
integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==
semver@7.7.4, semver@^7.3.2, semver@^7.3.5, semver@^7.7.3:
version "7.7.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a"
integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==
semver@^5.6.0:
version "5.7.2"
@ -8089,10 +8023,10 @@ synckit@^0.11.11:
dependencies:
"@pkgr/core" "^0.2.9"
systeminformation@^5.27.14:
version "5.30.5"
resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.30.5.tgz#0b8840ff697b8f036901bf4f8586c9278c7c9e88"
integrity sha512-DpWmpCckhwR3hG+6udb6/aQB7PpiqVnvSljrjbKxNSvTRsGsg7NVE3/vouoYf96xgwMxXFKcS4Ux+cnkFwYM7A==
systeminformation@^5.31.1:
version "5.31.1"
resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.31.1.tgz#5f88aa1db7470af87b6288baf1738603cafd1c4a"
integrity sha512-6pRwxoGeV/roJYpsfcP6tN9mep6pPeCtXbUOCdVa0nme05Brwcwdge/fVNhIZn2wuUitAKZm4IYa7QjnRIa9zA==
tagged-tag@^1.0.0:
version "1.0.0"
@ -8258,6 +8192,11 @@ tsconfig-paths@^4.2.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
tslib@1.14.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.3, tslib@^2.1.0:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
@ -8506,7 +8445,7 @@ util@^0.12.4, util@^0.12.5:
is-typed-array "^1.1.3"
which-typed-array "^1.1.2"
uuid@11.1.0, uuid@^11.1.0:
uuid@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912"
integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==
@ -8756,15 +8695,15 @@ webidl-conversions@^3.0.0:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
webpack-sources@^3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723"
integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==
webpack-sources@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.4.tgz#a338b95eb484ecc75fbb196cbe8a2890618b4891"
integrity sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==
webpack@^5.105.2:
version "5.105.2"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.105.2.tgz#f3b76f9fc36f1152e156e63ffda3bbb82e6739ea"
integrity sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==
webpack@^5.105.3:
version "5.105.3"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.105.3.tgz#307ad95bafffd08bc81049d6519477b16e42e7ba"
integrity sha512-LLBBA4oLmT7sZdHiYE/PeVuifOxYyE2uL/V+9VQP7YSYdJU7bSf7H8bZRRxW8kEPMkmVjnrXmoR3oejIdX0xbg==
dependencies:
"@types/eslint-scope" "^3.7.7"
"@types/estree" "^1.0.8"
@ -8772,7 +8711,7 @@ webpack@^5.105.2:
"@webassemblyjs/ast" "^1.14.1"
"@webassemblyjs/wasm-edit" "^1.14.1"
"@webassemblyjs/wasm-parser" "^1.14.1"
acorn "^8.15.0"
acorn "^8.16.0"
acorn-import-phases "^1.0.3"
browserslist "^4.28.1"
chrome-trace-event "^1.0.2"
@ -8790,7 +8729,7 @@ webpack@^5.105.2:
tapable "^2.3.0"
terser-webpack-plugin "^5.3.16"
watchpack "^2.5.1"
webpack-sources "^3.3.3"
webpack-sources "^3.3.4"
whatwg-encoding@^3.1.1:
version "3.1.1"