From 0dfc86f1d263b701993542facbeeb1fc896a754c Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 17 Apr 2023 14:22:09 +0200 Subject: [PATCH 001/406] feat(backend): seed posts as article --- backend/src/db/factories.js | 2 +- backend/src/db/neo4j.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/db/factories.js b/backend/src/db/factories.js index 44af5bbea..15162aed7 100644 --- a/backend/src/db/factories.js +++ b/backend/src/db/factories.js @@ -165,7 +165,7 @@ Factory.define('post') }) .after(async (buildObject, options) => { const [post, author, image, /* categories, */ tags] = await Promise.all([ - neode.create('Post', buildObject), + neode.create('Article', buildObject), options.author, options.image, // options.categories, diff --git a/backend/src/db/neo4j.js b/backend/src/db/neo4j.js index 6d46a0279..78b52237e 100644 --- a/backend/src/db/neo4j.js +++ b/backend/src/db/neo4j.js @@ -23,6 +23,7 @@ export function getNeode(options = {}) { if (!neodeInstance) { const { uri, username, password } = { ...defaultOptions, ...options } neodeInstance = new Neode(uri, username, password).with(models) + neodeInstance.extend('Post', 'Article', {}) return neodeInstance } return neodeInstance From 8058f764055dfaeffd95a5066d779ef7838e94b5 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 18 Apr 2023 12:00:49 +0200 Subject: [PATCH 002/406] timeoute to 50000 --- cypress/cypress.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/cypress.json b/cypress/cypress.json index de323f736..abde18802 100644 --- a/cypress/cypress.json +++ b/cypress/cypress.json @@ -1,6 +1,6 @@ { "projectId": "qa7fe2", - "defaultCommandTimeout": 10000, + "defaultCommandTimeout": 50000, "ignoreTestFiles": "*.js", "chromeWebSecurity": false, "baseUrl": "http://localhost:3000", From 09dcd1d5a76700511b39c89de3d2efa1a9c7722c Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 15 May 2023 23:55:16 +0200 Subject: [PATCH 003/406] update neo4j docker file --- neo4j/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/neo4j/Dockerfile b/neo4j/Dockerfile index dc5a912f0..a88c16c09 100644 --- a/neo4j/Dockerfile +++ b/neo4j/Dockerfile @@ -1,7 +1,7 @@ ################################################################################## # COMMUNITY ###################################################################### ################################################################################## -FROM amd64/neo4j:3.5.14 as community +FROM amd64/neo4j:4.4-community as community # ENVs ## We Cannot do `$(date -u +'%Y-%m-%dT%H:%M:%SZ')` here so we use unix timestamp=0 @@ -31,15 +31,15 @@ LABEL maintainer="devops@ocelot.social" ## install: wget, htop (TODO: why do we need htop?) RUN apt-get update && apt-get -y install wget htop ## install: apoc plugin for neo4j -RUN wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/3.5.0.4/apoc-3.5.0.4-all.jar -P plugins/ +RUN wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.4.0.17/apoc-4.4.0.17-all.jar -P plugins/ ################################################################################## # ENTERPRISE ##################################################################### ################################################################################## -FROM neo4j:3.5.14-enterprise as enterprise +FROM neo4j:4.4-enterprise as enterprise # Install Additional Software ## install: wget, htop (TODO: why do we need htop?) RUN apt-get update && apt-get -y install wget htop ## install: apoc plugin for neo4j -RUN wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/3.5.0.4/apoc-3.5.0.4-all.jar -P plugins/ \ No newline at end of file +RUN wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.4.0.17/apoc-4.4.0.17-all.jar -P plugins/ \ No newline at end of file From a9b06e6779e52e483f318d881c589107c2167bb0 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 15 May 2023 23:55:38 +0200 Subject: [PATCH 004/406] allow migration of neo4j database in docker --- docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index aeb26e4fd..759986d25 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -111,6 +111,9 @@ services: # TODO: This sounds scary for a production environment - NEO4J_AUTH=none - NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.* + - NEO4J_dbms_connector_http_listen__address=:7474 + - NEO4J_dbms_allow__format__migration=true # TODO enable this in kubernetes setup + - NEO4J_dbms_allow__upgrade=true # TODO enable this in kubernetes setup # Uncomment following line for Neo4j Enterprise version instead of Community version # TODO: clarify if that is the only thing needed to unlock the Enterprise version # - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes From 3c023e877cd801031a6f8afcbdd2c887842019c8 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 15 May 2023 23:55:52 +0200 Subject: [PATCH 005/406] fix broken query due to outdated query format --- backend/src/schema/resolvers/users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index 1ce3b986f..8a7037397 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -319,7 +319,7 @@ export default { email: async (parent, params, context, resolveInfo) => { if (typeof parent.email !== 'undefined') return parent.email const { id } = parent - const statement = `MATCH(u:User {id: {id}})-[:PRIMARY_EMAIL]->(e:EmailAddress) RETURN e` + const statement = `MATCH(u:User {id: $id})-[:PRIMARY_EMAIL]->(e:EmailAddress) RETURN e` const result = await neode.cypher(statement, { id }) const [{ email }] = result.records.map((r) => r.get('e').properties) return email From 168aed6233fbd823aff76c24af53af8477449e1a Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 00:15:41 +0200 Subject: [PATCH 006/406] migrate kubernetes cluster(untested) --- deployment/src/kubernetes/templates/neo4j/ConfigMap.yml | 2 ++ docker-compose.yml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/deployment/src/kubernetes/templates/neo4j/ConfigMap.yml b/deployment/src/kubernetes/templates/neo4j/ConfigMap.yml index 9f0aa4bee..10edc50f7 100644 --- a/deployment/src/kubernetes/templates/neo4j/ConfigMap.yml +++ b/deployment/src/kubernetes/templates/neo4j/ConfigMap.yml @@ -18,4 +18,6 @@ data: NEO4J_dbms_memory_heap_max__size: "{{ .Values.NEO4J.DBMS_MEMORY_HEAP_MAX_SIZE }}" NEO4J_dbms_memory_pagecache_size: "{{ .Values.NEO4J.DBMS_MEMORY_PAGECACHE_SIZE }}" NEO4J_dbms_security_procedures_unrestricted: "{{ .Values.NEO4J.DBMS_SECURITY_PROCEDURES_UNRESTRICTED }}" + NEO4J_dbms_allow__format__migration: true + NEO4J_dbms_allow__upgrade: true NEO4J_apoc_import_file_enabled: "{{ .Values.NEO4J.APOC_IMPORT_FILE_ENABLED }}" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 759986d25..1f4e4646f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -112,8 +112,8 @@ services: - NEO4J_AUTH=none - NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.* - NEO4J_dbms_connector_http_listen__address=:7474 - - NEO4J_dbms_allow__format__migration=true # TODO enable this in kubernetes setup - - NEO4J_dbms_allow__upgrade=true # TODO enable this in kubernetes setup + - NEO4J_dbms_allow__format__migration=true + - NEO4J_dbms_allow__upgrade=true # Uncomment following line for Neo4j Enterprise version instead of Community version # TODO: clarify if that is the only thing needed to unlock the Enterprise version # - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes From a326b2777f7b6826d497bd1a5f4afbee98bb0dc9 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 00:38:02 +0200 Subject: [PATCH 007/406] fix migrations --- ...te_fulltext_indices_and_unique_keys_for_groups.js | 12 ++++++------ .../20230320130345-fulltext-search-indexes.js | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js b/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js index b87e5632a..4c4c145f9 100644 --- a/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js +++ b/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js @@ -12,12 +12,12 @@ export async function up(next) { try { // Implement your migration here. - await transaction.run(` - CREATE CONSTRAINT ON ( group:Group ) ASSERT group.id IS UNIQUE - `) - await transaction.run(` - CREATE CONSTRAINT ON ( group:Group ) ASSERT group.slug IS UNIQUE - `) + //await transaction.run(` + // CREATE CONSTRAINT ON ( group:Group ) ASSERT group.id IS UNIQUE + //`) + //await transaction.run(` + // CREATE CONSTRAINT ON ( group:Group ) ASSERT group.slug IS UNIQUE + //`) await transaction.run(` CALL db.index.fulltext.createNodeIndex("group_fulltext_search",["Group"],["name", "slug", "about", "description"]) `) diff --git a/backend/src/db/migrations/20230320130345-fulltext-search-indexes.js b/backend/src/db/migrations/20230320130345-fulltext-search-indexes.js index 11029bea6..40ebc6c2e 100644 --- a/backend/src/db/migrations/20230320130345-fulltext-search-indexes.js +++ b/backend/src/db/migrations/20230320130345-fulltext-search-indexes.js @@ -10,7 +10,7 @@ export async function up(next) { try { // Drop indexes if they exist because due to legacy code they might be set already const indexesResponse = await transaction.run(`CALL db.indexes()`) - const indexes = indexesResponse.records.map((record) => record.get('indexName')) + const indexes = indexesResponse.records.map((record) => record.get('name')) if (indexes.indexOf('user_fulltext_search') > -1) { await transaction.run(`CALL db.index.fulltext.drop("user_fulltext_search")`) } From 44700f8a4192474deb9d0e03273836d0ceed1628 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 00:43:37 +0200 Subject: [PATCH 008/406] lint + comment --- ..._fulltext_indices_and_unique_keys_for_groups.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js b/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js index 4c4c145f9..63e40c72b 100644 --- a/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js +++ b/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.js @@ -11,13 +11,13 @@ export async function up(next) { const transaction = session.beginTransaction() try { - // Implement your migration here. - //await transaction.run(` - // CREATE CONSTRAINT ON ( group:Group ) ASSERT group.id IS UNIQUE - //`) - //await transaction.run(` - // CREATE CONSTRAINT ON ( group:Group ) ASSERT group.slug IS UNIQUE - //`) + // Those two indexes already exist + // await transaction.run(` + // CREATE CONSTRAINT ON ( group:Group ) ASSERT group.id IS UNIQUE + // `) + // await transaction.run(` + // CREATE CONSTRAINT ON ( group:Group ) ASSERT group.slug IS UNIQUE + // `) await transaction.run(` CALL db.index.fulltext.createNodeIndex("group_fulltext_search",["Group"],["name", "slug", "about", "description"]) `) From 33b18a5431dae9dcfc0e7bb5db38aec37c288ca9 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 11:53:40 +0200 Subject: [PATCH 009/406] fix searches --- backend/src/schema/resolvers/searches.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/src/schema/resolvers/searches.js b/backend/src/schema/resolvers/searches.js index a67abe90d..08825fad0 100644 --- a/backend/src/schema/resolvers/searches.js +++ b/backend/src/schema/resolvers/searches.js @@ -12,7 +12,7 @@ const cypherTemplate = (setup) => ` RETURN ${setup.returnClause} AS result - SKIP $skip + SKIP toInteger($skip) ${setup.limit} ` @@ -45,7 +45,7 @@ const searchPostsSetup = { clickedCount: toString(resource.clickedCount), viewedTeaserCount: toString(resource.viewedTeaserCount) }`, - limit: 'LIMIT $limit', + limit: 'LIMIT toInteger($limit)', } const searchUsersSetup = { @@ -54,7 +54,7 @@ const searchUsersSetup = { whereClause: simpleWhereClause, withClause: '', returnClause: 'resource {.*, __typename: labels(resource)[0]}', - limit: 'LIMIT $limit', + limit: 'LIMIT toInteger($limit)', } const searchHashtagsSetup = { @@ -63,7 +63,7 @@ const searchHashtagsSetup = { whereClause: simpleWhereClause, withClause: '', returnClause: 'resource {.*, __typename: labels(resource)[0]}', - limit: 'LIMIT $limit', + limit: 'LIMIT toInteger($limit)', } const searchGroupsSetup = { @@ -78,7 +78,7 @@ const searchGroupsSetup = { OR membership.role IN ['usual', 'admin', 'owner'])`, withClause: 'WITH resource, membership', returnClause: 'resource { .*, myRole: membership.role, __typename: labels(resource)[0] }', - limit: 'LIMIT $limit', + limit: 'LIMIT toInteger($limit)', } const countSetup = { From d86efa0a555144ab60f8e850b55704223da05d77 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 11:54:01 +0200 Subject: [PATCH 010/406] use write permissions for delete queries --- backend/src/schema/resolvers/users.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index 8a7037397..513b1a28f 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -81,7 +81,7 @@ export default { muteUser: async (_parent, params, context, _resolveInfo) => { const { user: currentUser } = context if (currentUser.id === params.id) return null - await neode.cypher( + await neode.writeCypher( ` MATCH(u:User {id: $currentUser.id})-[previousRelationship:FOLLOWS]->(b:User {id: $params.id}) DELETE previousRelationship @@ -98,7 +98,7 @@ export default { unmuteUser: async (_parent, params, context, _resolveInfo) => { const { user: currentUser } = context if (currentUser.id === params.id) return null - await neode.cypher( + await neode.writeCypher( ` MATCH(u:User {id: $currentUser.id})-[previousRelationship:MUTED]->(b:User {id: $params.id}) DELETE previousRelationship From c2583bad0cba6ef66e42146aeff10200a95f9810 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 11:54:10 +0200 Subject: [PATCH 011/406] new query format --- backend/src/schema/resolvers/registration.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/schema/resolvers/registration.spec.js b/backend/src/schema/resolvers/registration.spec.js index bfc6a5fa6..54e7f1ba7 100644 --- a/backend/src/schema/resolvers/registration.spec.js +++ b/backend/src/schema/resolvers/registration.spec.js @@ -251,7 +251,7 @@ describe('SignupVerification', () => { it('connects User with EmailAddress', async () => { const cypher = ` - MATCH(email:EmailAddress)-[:BELONGS_TO]->(u:User {name: {name}}) + MATCH(email:EmailAddress)-[:BELONGS_TO]->(u:User {name: $name}) RETURN email ` await mutate({ mutation, variables }) @@ -281,7 +281,7 @@ describe('SignupVerification', () => { it('marks the EmailAddress as primary', async () => { const cypher = ` - MATCH(email:EmailAddress)<-[:PRIMARY_EMAIL]-(u:User {name: {name}}) + MATCH(email:EmailAddress)<-[:PRIMARY_EMAIL]-(u:User {name: $name}) RETURN email ` await mutate({ mutation, variables }) From 46af4d80d01c76f177bcafa2f303545577cc29f8 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 11:54:22 +0200 Subject: [PATCH 012/406] new query format --- backend/src/schema/resolvers/follow.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/follow.spec.js b/backend/src/schema/resolvers/follow.spec.js index 0d9d524ff..c9d8dc1bf 100644 --- a/backend/src/schema/resolvers/follow.spec.js +++ b/backend/src/schema/resolvers/follow.spec.js @@ -147,7 +147,7 @@ describe('follow', () => { variables, }) const relation = await neode.cypher( - 'MATCH (user:User {id: {id}})-[relationship:FOLLOWS]->(followed:User) WHERE relationship.createdAt IS NOT NULL RETURN relationship', + 'MATCH (user:User {id: $id})-[relationship:FOLLOWS]->(followed:User) WHERE relationship.createdAt IS NOT NULL RETURN relationship', { id: 'u1' }, ) const relationshipProperties = relation.records.map( From 5e758328f1db735c842830d4f40a7ed1b29ab303 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 11:54:36 +0200 Subject: [PATCH 013/406] write query for delete operations --- backend/src/schema/resolvers/follow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/follow.js b/backend/src/schema/resolvers/follow.js index 80cce8400..6cf4938c7 100644 --- a/backend/src/schema/resolvers/follow.js +++ b/backend/src/schema/resolvers/follow.js @@ -29,7 +29,7 @@ export default { * It's suggested to use query builder feature (https://github.com/adam-cowley/neode/issues/67) * However, pure cypher query looks cleaner IMO */ - await neode.cypher( + await neode.writeCypher( `MATCH (user:User {id: $currentUser.id})-[relation:FOLLOWS]->(followedUser:User {id: $followedUserId}) DELETE relation RETURN COUNT(relation) > 0 as isFollowed`, From 4ce324cba23ca0ecd881cf90eb6d75d015de1d64 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 May 2023 12:11:21 +0200 Subject: [PATCH 014/406] corrected old query format --- backend/src/schema/resolvers/comments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/comments.js b/backend/src/schema/resolvers/comments.js index a3a0c7290..c6f07245c 100644 --- a/backend/src/schema/resolvers/comments.js +++ b/backend/src/schema/resolvers/comments.js @@ -21,7 +21,7 @@ export default { MATCH (post:Post {id: $postId}) MATCH (author:User {id: $userId}) WITH post, author - CREATE (comment:Comment {params}) + CREATE (comment:Comment $params) SET comment.createdAt = toString(datetime()) SET comment.updatedAt = toString(datetime()) MERGE (post)<-[:COMMENTS]-(comment)<-[:WROTE]-(author) From 144d39b35aea94a495ac29f0468cab2dcb0ca1ed Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 22 May 2023 15:58:19 +0200 Subject: [PATCH 015/406] fixed updatedAt field for fileReport --- backend/src/schema/resolvers/reports.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/reports.js b/backend/src/schema/resolvers/reports.js index da8d794c5..da61e6f10 100644 --- a/backend/src/schema/resolvers/reports.js +++ b/backend/src/schema/resolvers/reports.js @@ -13,7 +13,7 @@ export default { MATCH (resource {id: $resourceId}) WHERE resource:User OR resource:Post OR resource:Comment MERGE (resource)<-[:BELONGS_TO]-(report:Report {closed: false}) - ON CREATE SET report.id = randomUUID(), report.createdAt = $createdAt, report.updatedAt = report.createdAt, report.rule = 'latestReviewUpdatedAtRules', report.disable = resource.disabled, report.closed = false + ON CREATE SET report.id = randomUUID(), report.createdAt = $createdAt, report.updatedAt = $createdAt, report.rule = 'latestReviewUpdatedAtRules', report.disable = resource.disabled, report.closed = false WITH submitter, resource, report CREATE (report)<-[filed:FILED {createdAt: $createdAt, reasonCategory: $reasonCategory, reasonDescription: $reasonDescription}]-(submitter) From 2204b29c0a9459a1e4a92799064ea9c12522f92d Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 22 May 2023 16:08:50 +0200 Subject: [PATCH 016/406] fixed review updatedAt mutation --- backend/src/schema/resolvers/moderation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/moderation.js b/backend/src/schema/resolvers/moderation.js index c261d187e..97f48ec43 100644 --- a/backend/src/schema/resolvers/moderation.js +++ b/backend/src/schema/resolvers/moderation.js @@ -12,7 +12,7 @@ export default { MATCH (resource {id: $params.resourceId})<-[:BELONGS_TO]-(report:Report {closed: false}) WHERE resource:User OR resource:Post OR resource:Comment MERGE (report)<-[review:REVIEWED]-(moderator) - ON CREATE SET review.createdAt = $dateTime, review.updatedAt = review.createdAt + ON CREATE SET review.createdAt = $dateTime, review.updatedAt = $dateTime ON MATCH SET review.updatedAt = $dateTime SET review.disable = $params.disable SET report.updatedAt = $dateTime, report.disable = review.disable, report.closed = $params.closed From 8223024c308cc3ed785d9618270a5ab55d16bb03 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 22 May 2023 16:58:04 +0200 Subject: [PATCH 017/406] removed write rights from query where its not needed --- cypress/support/factories.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/support/factories.js b/cypress/support/factories.js index 2ca46c483..f8f86f9f7 100644 --- a/cypress/support/factories.js +++ b/cypress/support/factories.js @@ -9,7 +9,7 @@ const neo4jConfigs = { } const neodeInstance = getNeode(neo4jConfigs) -beforeEach(() => cy.then(() => neodeInstance.cypher('MATCH (everything) DETACH DELETE everything;'))) +beforeEach(() => cy.then(() => neodeInstance.writeCypher('MATCH (everything) DETACH DELETE everything;'))) Cypress.Commands.add('neode', () => { return neodeInstance From 0c4b789da1b956cd7cc1fb011575cd131d7ff96c Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 22 May 2023 16:58:19 +0200 Subject: [PATCH 018/406] remove write rights where its not needed --- backend/src/middleware/notifications/notificationsMiddleware.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/middleware/notifications/notificationsMiddleware.js b/backend/src/middleware/notifications/notificationsMiddleware.js index 1c97e9591..fd8629715 100644 --- a/backend/src/middleware/notifications/notificationsMiddleware.js +++ b/backend/src/middleware/notifications/notificationsMiddleware.js @@ -15,7 +15,7 @@ const queryNotificationEmails = async (context, notificationUserIds) => { RETURN emailAddress {.email} ` const session = context.driver.session() - const writeTxResultPromise = session.writeTransaction(async (transaction) => { + const writeTxResultPromise = session.readTransaction(async (transaction) => { const emailAddressTransactionResponse = await transaction.run(userEmailCypher, { notificationUserIds, }) From da179706252e52ea6a9159a09f039bb4e213fb1c Mon Sep 17 00:00:00 2001 From: mahula Date: Wed, 24 May 2023 11:24:06 +0200 Subject: [PATCH 019/406] linting --- webapp/components/ContributionForm/ContributionForm.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 584e3597a..51efbc6a4 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -287,7 +287,7 @@ export default { eventVenue: this.formData.eventVenue, eventEnd: this.formData.eventEnd, eventIsOnline: this.formData.eventIsOnline, - eventLocationName: this.formData.eventLocationName + eventLocationName: this.formData.eventLocationName, } } return undefined From 156b907b7752a88b2a4f79f140a4207951e40ef0 Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 25 May 2023 13:19:31 +0200 Subject: [PATCH 020/406] set cypress to test only a specific feature and record a video for debugging --- .github/workflows/test-e2e.yml | 18 +++--- cypress/cypress.json | 2 +- .../Moderation.ReportContent.feature | 56 +++++++++---------- 3 files changed, 40 insertions(+), 36 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index d76ab129f..f4d31d6c1 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -5,12 +5,12 @@ jobs: fullstack_tests: name: Fullstack tests runs-on: ubuntu-latest - env: - jobs: 8 - strategy: - matrix: - # run copies of the current job in parallel - job: [1, 2, 3, 4, 5, 6, 7, 8] + # env: + # jobs: 8 + # strategy: + # matrix: + # # run copies of the current job in parallel + # job: [1, 2, 3, 4, 5, 6, 7, 8] steps: - name: Checkout code uses: actions/checkout@v3 @@ -28,7 +28,8 @@ jobs: id: e2e-tests run: | yarn install - yarn run cypress:run --spec $(cypress/parallel-features.sh ${{ matrix.job }} ${{ env.jobs }} ) + # yarn run cypress:run --spec $(cypress/parallel-features.sh ${{ matrix.job }} ${{ env.jobs }} ) + yarn run cypress:run --spec cypress/integration/Moderation.ReportContent.feature ########################################################################## # UPLOAD SCREENSHOTS - IF TESTS FAIL ##################################### @@ -39,3 +40,6 @@ jobs: with: name: cypress-screenshots path: cypress/screenshots/ + name: cypress-videos + path: cypress/videos/ + diff --git a/cypress/cypress.json b/cypress/cypress.json index abde18802..7a0c37e1c 100644 --- a/cypress/cypress.json +++ b/cypress/cypress.json @@ -4,7 +4,7 @@ "ignoreTestFiles": "*.js", "chromeWebSecurity": false, "baseUrl": "http://localhost:3000", - "video":false, + "video": true, "retries": { "runMode": 2, "openMode": 0 diff --git a/cypress/integration/Moderation.ReportContent.feature b/cypress/integration/Moderation.ReportContent.feature index 518020bd0..c1741b398 100644 --- a/cypress/integration/Moderation.ReportContent.feature +++ b/cypress/integration/Moderation.ReportContent.feature @@ -18,30 +18,30 @@ Feature: Report and Moderate | annoying-user | p1 | The Truth about the Holocaust | It never existed! | | annoying-user | p2 | Fake news | This content is demonstratably infactual in some way | - Scenario Outline: Report a post from various pages - When I am logged in as "user" - And I navigate to page "" - And I click on "Report Post" from the content menu of the post - And I confirm the reporting dialog because it is a criminal act under German law: - """ - Do you really want to report the contribution "The Truth about the Holocaust"? - """ - Then I see a toaster with "Thanks for reporting!" - Examples: - | Page | - | / | - | /post/p1 | + # Scenario Outline: Report a post from various pages + # When I am logged in as "user" + # And I navigate to page "" + # And I click on "Report Post" from the content menu of the post + # And I confirm the reporting dialog because it is a criminal act under German law: + # """ + # Do you really want to report the contribution "The Truth about the Holocaust"? + # """ + # Then I see a toaster with "Thanks for reporting!" + # Examples: + # | Page | + # | / | + # | /post/p1 | - Scenario: Report user - Given I am logged in as "user" - And I navigate to page "/post/the-truth-about-the-holocaust" - When I click on the author - And I click on "Report User" from the content menu in the user info box - And I confirm the reporting dialog because he is a holocaust denier: - """ - Do you really want to report the user "I'm gonna mute Moderators and …"? - """ - Then I see a toaster with "Thanks for reporting!" + # Scenario: Report user + # Given I am logged in as "user" + # And I navigate to page "/post/the-truth-about-the-holocaust" + # When I click on the author + # And I click on "Report User" from the content menu in the user info box + # And I confirm the reporting dialog because he is a holocaust denier: + # """ + # Do you really want to report the user "I'm gonna mute Moderators and …"? + # """ + # Then I see a toaster with "Thanks for reporting!" Scenario: Review reported content Given somebody reported the following posts: @@ -66,8 +66,8 @@ Feature: Report and Moderate Then I see all the reported posts including from the user who muted me And I can visit the post page - Scenario: Normal user can't see the moderation page - Given I am logged in as "user" - And I navigate to page "/" - When I click on the avatar menu in the top right corner - Then I can't see the moderation menu item + # Scenario: Normal user can't see the moderation page + # Given I am logged in as "user" + # And I navigate to page "/" + # When I click on the avatar menu in the top right corner + # Then I can't see the moderation menu item From 648ee8178c171410e262172362b8b4daa3bcab8a Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 25 May 2023 13:19:31 +0200 Subject: [PATCH 021/406] set cypress to test only a specific feature and record a video for debugging --- .github/workflows/test-e2e.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index f4d31d6c1..6cad0dcf7 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -11,6 +11,12 @@ jobs: # matrix: # # run copies of the current job in parallel # job: [1, 2, 3, 4, 5, 6, 7, 8] + # env: + # jobs: 8 + # strategy: + # matrix: + # # run copies of the current job in parallel + # job: [1, 2, 3, 4, 5, 6, 7, 8] steps: - name: Checkout code uses: actions/checkout@v3 @@ -28,7 +34,6 @@ jobs: id: e2e-tests run: | yarn install - # yarn run cypress:run --spec $(cypress/parallel-features.sh ${{ matrix.job }} ${{ env.jobs }} ) yarn run cypress:run --spec cypress/integration/Moderation.ReportContent.feature ########################################################################## @@ -43,3 +48,6 @@ jobs: name: cypress-videos path: cypress/videos/ + name: cypress-videos + path: cypress/videos/ + From 2cfd6d57dfacee938c79be90ffd21a4b0ba584bf Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 25 May 2023 13:19:31 +0200 Subject: [PATCH 022/406] set cypress to test only a specific feature and record a video for debugging --- .github/workflows/test-e2e.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 6cad0dcf7..c0c8f7788 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -45,6 +45,11 @@ jobs: with: name: cypress-screenshots path: cypress/screenshots/ + + - name: Full stack tests | if any test failed, upload videos + if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} + uses: actions/upload-artifact@v3 + with: name: cypress-videos path: cypress/videos/ From 433111604d3294695f74f4a1bb62991ee21fd7e9 Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 25 May 2023 13:19:31 +0200 Subject: [PATCH 023/406] set cypress to test only a specific feature and record a video for debugging --- .github/workflows/test-e2e.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index c0c8f7788..d4f61d589 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -53,6 +53,3 @@ jobs: name: cypress-videos path: cypress/videos/ - name: cypress-videos - path: cypress/videos/ - From edb9618b1f568081665ce129e4a4cdefe6b199bc Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 25 May 2023 14:25:07 +0200 Subject: [PATCH 024/406] increase cypress page load timeout --- cypress/cypress.json | 1 + 1 file changed, 1 insertion(+) diff --git a/cypress/cypress.json b/cypress/cypress.json index 7a0c37e1c..bbc4d21be 100644 --- a/cypress/cypress.json +++ b/cypress/cypress.json @@ -1,6 +1,7 @@ { "projectId": "qa7fe2", "defaultCommandTimeout": 50000, + "pageLoadTimeout": 180000, "ignoreTestFiles": "*.js", "chromeWebSecurity": false, "baseUrl": "http://localhost:3000", From eeb1e7dd360dbed68ea5ccd60b171d4b6076abee Mon Sep 17 00:00:00 2001 From: mahula Date: Thu, 25 May 2023 14:25:07 +0200 Subject: [PATCH 025/406] increase cypress page load timeout --- cypress/cypress.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/cypress.json b/cypress/cypress.json index bbc4d21be..498d73bdc 100644 --- a/cypress/cypress.json +++ b/cypress/cypress.json @@ -1,6 +1,6 @@ { "projectId": "qa7fe2", - "defaultCommandTimeout": 50000, + "defaultCommandTimeout": 180000, "pageLoadTimeout": 180000, "ignoreTestFiles": "*.js", "chromeWebSecurity": false, From 48a88a17c375829d2e6eaeb1d6269e87096db6e6 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 08:18:28 +0200 Subject: [PATCH 026/406] add waiting to preparation step --- .../somebody_reported_the_following_posts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index 3ca39e6e6..a7c874495 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -18,5 +18,6 @@ Given('somebody reported the following posts:', table => { reasonCategory, reasonDescription }) + cy.wait(10000) }) }) \ No newline at end of file From 8b4c176c29476b878b79b7c07fba356e42572d27 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 08:18:28 +0200 Subject: [PATCH 027/406] add waiting to preparation step --- .../somebody_reported_the_following_posts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index a7c874495..d23bb957d 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -18,6 +18,6 @@ Given('somebody reported the following posts:', table => { reasonCategory, reasonDescription }) - cy.wait(10000) + cy.wait(120000) }) }) \ No newline at end of file From b2b9ebc40043f9f439b5d7bfa56e637e521f44b2 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 10:47:35 +0200 Subject: [PATCH 028/406] wait for network to be idle in cypress tests --- .../Moderation.ReportContent.feature | 22 +++++++++---------- .../somebody_reported_the_following_posts.js | 3 ++- .../common/I_navigate_to_page_{string}.js | 3 +++ cypress/support/commands.js | 7 ++++-- package.json | 1 + 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/cypress/integration/Moderation.ReportContent.feature b/cypress/integration/Moderation.ReportContent.feature index c1741b398..46b2ac4df 100644 --- a/cypress/integration/Moderation.ReportContent.feature +++ b/cypress/integration/Moderation.ReportContent.feature @@ -54,17 +54,17 @@ Feature: Report and Moderate Then I see all the reported posts including the one from above And each list item links to the post page - Scenario: Review reported posts of a user who's muted a moderator - Given somebody reported the following posts: - | submitterEmail | resourceId | reasonCategory | reasonDescription | - | p2.submitter@example.org | p2 | other | Offensive content | - And I am logged in as "moderator" - And I navigate to page "/" - And there is an annoying user who has muted me - When I click on the avatar menu in the top right corner - And I click on "Moderation" - Then I see all the reported posts including from the user who muted me - And I can visit the post page + # Scenario: Review reported posts of a user who's muted a moderator + # Given somebody reported the following posts: + # | submitterEmail | resourceId | reasonCategory | reasonDescription | + # | p2.submitter@example.org | p2 | other | Offensive content | + # And I am logged in as "moderator" + # And I navigate to page "/" + # And there is an annoying user who has muted me + # When I click on the avatar menu in the top right corner + # And I click on "Moderation" + # Then I see all the reported posts including from the user who muted me + # And I can visit the post page # Scenario: Normal user can't see the moderation page # Given I am logged in as "user" diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index d23bb957d..6d433c324 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -1,4 +1,5 @@ import { Given } from "cypress-cucumber-preprocessor/steps"; +import 'cypress-network-idle'; Given('somebody reported the following posts:', table => { table.hashes().forEach(({ submitterEmail, resourceId, reasonCategory, reasonDescription }) => { @@ -18,6 +19,6 @@ Given('somebody reported the following posts:', table => { reasonCategory, reasonDescription }) - cy.wait(120000) + cy.waitForNetworkIdle(2000) }) }) \ No newline at end of file diff --git a/cypress/integration/common/I_navigate_to_page_{string}.js b/cypress/integration/common/I_navigate_to_page_{string}.js index aa929c80a..f6d92f878 100644 --- a/cypress/integration/common/I_navigate_to_page_{string}.js +++ b/cypress/integration/common/I_navigate_to_page_{string}.js @@ -1,5 +1,8 @@ import { Given } from "cypress-cucumber-preprocessor/steps"; +import 'cypress-network-idle'; + Given("I navigate to page {string}", page => { cy.visit(page); + cy.waitForNetworkIdle(2000) }); \ No newline at end of file diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 7d3738a3d..4c1355c82 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -48,9 +48,12 @@ Cypress.Commands.add( Cypress.Commands.add( 'mutate', { prevSubject: true }, - (graphQLClient, mutation, variables) => { - return new Cypress.Promise((resolve, reject) => { + (graphQLClient, mutation, variables, response) => { + return new Cypress.Promise(async (resolve, reject) => { + const response = await graphQLClient.request(mutation, variables) + console.log('Cypress command mutate:', data) graphQLClient.request(mutation, variables).then(() => resolve(graphQLClient)) + }) }) diff --git a/package.json b/package.json index a1a6336df..8a75d6432 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "cypress": "^7.0.1", "cypress-cucumber-preprocessor": "^2.2.1", "cypress-file-upload": "^3.5.3", + "cypress-network-idle": "^1.14.2", "date-fns": "^2.30.0", "dotenv": "^8.2.0", "expect": "^29.5.0", From 18288efa1bba4819e4aaaf3abb5890929264ee3e Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 10:47:35 +0200 Subject: [PATCH 029/406] wait for network to be idle in cypress tests --- cypress/support/commands.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 4c1355c82..5327a018e 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -51,7 +51,7 @@ Cypress.Commands.add( (graphQLClient, mutation, variables, response) => { return new Cypress.Promise(async (resolve, reject) => { const response = await graphQLClient.request(mutation, variables) - console.log('Cypress command mutate:', data) + console.log('Cypress command mutate:', response) graphQLClient.request(mutation, variables).then(() => resolve(graphQLClient)) }) From 0e046e222ce79b9479e3d474429d1d2149aaa6bd Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 12:53:18 +0200 Subject: [PATCH 030/406] add network interception to cypress test --- .../somebody_reported_the_following_posts.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index 6d433c324..e7de8b96e 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -2,6 +2,12 @@ import { Given } from "cypress-cucumber-preprocessor/steps"; import 'cypress-network-idle'; Given('somebody reported the following posts:', table => { + cy.intercept({ + method: 'POST', + url: '/', + hostname: 'localhost', + }).as('postToLocalhoast') + table.hashes().forEach(({ submitterEmail, resourceId, reasonCategory, reasonDescription }) => { const submitter = { email: submitterEmail, @@ -19,6 +25,19 @@ Given('somebody reported the following posts:', table => { reasonCategory, reasonDescription }) + cy.wait(['@postToLocalhoast']).then((interception) => { + cy.wrap(interception.response.statusCode).should('eq', 200) + }) + cy.wait(['@postToLocalhoast']).then((interception) => { + cy.wrap(interception.response.statusCode).should('eq', 200) + }) + cy.wait(['@postToLocalhoast']).then((interception) => { + console.log('Cypress interception:', interception) + cy.wrap(interception.response.statusCode).should('eq', 200) + cy.wrap(interception.response.body) + .should('have.nested.property', 'data.fileReport.reportId') + }) + console.log('Cypress waited for fileReport request') cy.waitForNetworkIdle(2000) }) }) \ No newline at end of file From 7528d32dfce11581b3a4f18b19841d4ae9d99252 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 12:53:18 +0200 Subject: [PATCH 031/406] add network interception to cypress test --- cypress/cypress.json | 2 +- .../somebody_reported_the_following_posts.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cypress/cypress.json b/cypress/cypress.json index 498d73bdc..52e1c1038 100644 --- a/cypress/cypress.json +++ b/cypress/cypress.json @@ -1,6 +1,6 @@ { "projectId": "qa7fe2", - "defaultCommandTimeout": 180000, + "defaultCommandTimeout": 5000, "pageLoadTimeout": 180000, "ignoreTestFiles": "*.js", "chromeWebSecurity": false, diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index e7de8b96e..c119845e2 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -2,10 +2,12 @@ import { Given } from "cypress-cucumber-preprocessor/steps"; import 'cypress-network-idle'; Given('somebody reported the following posts:', table => { + const reportIdRegex = /^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/ cy.intercept({ method: 'POST', url: '/', hostname: 'localhost', + port: 4000, }).as('postToLocalhoast') table.hashes().forEach(({ submitterEmail, resourceId, reasonCategory, reasonDescription }) => { @@ -36,6 +38,7 @@ Given('somebody reported the following posts:', table => { cy.wrap(interception.response.statusCode).should('eq', 200) cy.wrap(interception.response.body) .should('have.nested.property', 'data.fileReport.reportId') + .and('match', reportIdRegex) }) console.log('Cypress waited for fileReport request') cy.waitForNetworkIdle(2000) From a5eca59f8848fcb42842eab2c726fbc3ed57cb65 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 13:38:44 +0200 Subject: [PATCH 032/406] fix typo --- .../somebody_reported_the_following_posts.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index c119845e2..87c28022e 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -8,7 +8,7 @@ Given('somebody reported the following posts:', table => { url: '/', hostname: 'localhost', port: 4000, - }).as('postToLocalhoast') + }).as('postToLocalhost') table.hashes().forEach(({ submitterEmail, resourceId, reasonCategory, reasonDescription }) => { const submitter = { @@ -27,13 +27,13 @@ Given('somebody reported the following posts:', table => { reasonCategory, reasonDescription }) - cy.wait(['@postToLocalhoast']).then((interception) => { + cy.wait(['@postToLocalhost']).then((interception) => { cy.wrap(interception.response.statusCode).should('eq', 200) }) - cy.wait(['@postToLocalhoast']).then((interception) => { + cy.wait(['@postToLocalhost']).then((interception) => { cy.wrap(interception.response.statusCode).should('eq', 200) }) - cy.wait(['@postToLocalhoast']).then((interception) => { + cy.wait(['@postToLocalhost']).then((interception) => { console.log('Cypress interception:', interception) cy.wrap(interception.response.statusCode).should('eq', 200) cy.wrap(interception.response.body) From 14ed84620ba811d8d490906f61c9c81a43250da4 Mon Sep 17 00:00:00 2001 From: mahula Date: Fri, 26 May 2023 17:28:04 +0200 Subject: [PATCH 033/406] add network waiting to several cypress steps --- .../I_click_on_the_avatar_menu_in_the_top_right_corner.js | 2 ++ .../somebody_reported_the_following_posts.js | 5 ----- cypress/integration/common/I_click_on_{string}.js | 2 ++ cypress/support/commands.js | 2 -- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/cypress/integration/Moderation.ReportContent/I_click_on_the_avatar_menu_in_the_top_right_corner.js b/cypress/integration/Moderation.ReportContent/I_click_on_the_avatar_menu_in_the_top_right_corner.js index 27830b239..f6df925f5 100644 --- a/cypress/integration/Moderation.ReportContent/I_click_on_the_avatar_menu_in_the_top_right_corner.js +++ b/cypress/integration/Moderation.ReportContent/I_click_on_the_avatar_menu_in_the_top_right_corner.js @@ -1,5 +1,7 @@ import { When } from "cypress-cucumber-preprocessor/steps"; +import 'cypress-network-idle'; When("I click on the avatar menu in the top right corner", () => { cy.get(".avatar-menu").click(); + cy.waitForNetworkIdle(2000); }); \ No newline at end of file diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index 87c28022e..577f3edce 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -7,7 +7,6 @@ Given('somebody reported the following posts:', table => { method: 'POST', url: '/', hostname: 'localhost', - port: 4000, }).as('postToLocalhost') table.hashes().forEach(({ submitterEmail, resourceId, reasonCategory, reasonDescription }) => { @@ -30,9 +29,6 @@ Given('somebody reported the following posts:', table => { cy.wait(['@postToLocalhost']).then((interception) => { cy.wrap(interception.response.statusCode).should('eq', 200) }) - cy.wait(['@postToLocalhost']).then((interception) => { - cy.wrap(interception.response.statusCode).should('eq', 200) - }) cy.wait(['@postToLocalhost']).then((interception) => { console.log('Cypress interception:', interception) cy.wrap(interception.response.statusCode).should('eq', 200) @@ -40,7 +36,6 @@ Given('somebody reported the following posts:', table => { .should('have.nested.property', 'data.fileReport.reportId') .and('match', reportIdRegex) }) - console.log('Cypress waited for fileReport request') cy.waitForNetworkIdle(2000) }) }) \ No newline at end of file diff --git a/cypress/integration/common/I_click_on_{string}.js b/cypress/integration/common/I_click_on_{string}.js index 5f43eb912..fa79ef384 100644 --- a/cypress/integration/common/I_click_on_{string}.js +++ b/cypress/integration/common/I_click_on_{string}.js @@ -1,4 +1,5 @@ import { When } from "cypress-cucumber-preprocessor/steps"; +import 'cypress-network-idle'; When("I click on {string}", element => { const elementSelectors = { @@ -16,4 +17,5 @@ When("I click on {string}", element => { cy.get(elementSelectors[element]) .click() .wait(750); + cy.waitForNetworkIdle(2000); }); \ No newline at end of file diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 5327a018e..7e706c970 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -50,8 +50,6 @@ Cypress.Commands.add( { prevSubject: true }, (graphQLClient, mutation, variables, response) => { return new Cypress.Promise(async (resolve, reject) => { - const response = await graphQLClient.request(mutation, variables) - console.log('Cypress command mutate:', response) graphQLClient.request(mutation, variables).then(() => resolve(graphQLClient)) }) From 7576347658b2cdb1c1838d65d711d8096d061419 Mon Sep 17 00:00:00 2001 From: mahula Date: Sat, 27 May 2023 09:16:06 +0200 Subject: [PATCH 034/406] deactivate video recording and upload in e2e test workflow --- .github/workflows/test-e2e.yml | 8 -------- cypress/cypress.json | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index d4f61d589..2b295dafe 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -45,11 +45,3 @@ jobs: with: name: cypress-screenshots path: cypress/screenshots/ - - - name: Full stack tests | if any test failed, upload videos - if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} - uses: actions/upload-artifact@v3 - with: - name: cypress-videos - path: cypress/videos/ - diff --git a/cypress/cypress.json b/cypress/cypress.json index 52e1c1038..337e0a198 100644 --- a/cypress/cypress.json +++ b/cypress/cypress.json @@ -5,7 +5,7 @@ "ignoreTestFiles": "*.js", "chromeWebSecurity": false, "baseUrl": "http://localhost:3000", - "video": true, + "video": false, "retries": { "runMode": 2, "openMode": 0 From 3a79884db35d0239887de8ec885dc88d87b1e5c4 Mon Sep 17 00:00:00 2001 From: mahula Date: Sat, 27 May 2023 10:13:24 +0200 Subject: [PATCH 035/406] add network interception to e2e test step --- ...rted_posts_including_the_one_from_above.js | 104 +++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) diff --git a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js index 66c9baf61..e04655166 100644 --- a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js +++ b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js @@ -1,7 +1,109 @@ import { Then } from "cypress-cucumber-preprocessor/steps"; Then('I see all the reported posts including the one from above', () => { + cy.intercept({ + method: 'POST', + url: '/api', + hostname: 'localhost', + }).as('postToApi') + + cy.wait(['@postToApi']).then((interception) => { + console.log('Cypress interception:', interception) + cy.wrap(interception.response.statusCode).should('eq', 200) + cy.wrap(interception.request.body) + .should('have.property', 'query', `query ($orderBy: ReportOrdering, $first: Int, $offset: Int, $reviewed: Boolean, $closed: Boolean) { + reports(orderBy: $orderBy, first: $first, offset: $offset, reviewed: $reviewed, closed: $closed) { + id + createdAt + updatedAt + closed + reviewed { + createdAt + updatedAt + disable + moderator { + id + slug + name + __typename + } + __typename + } + resource { + __typename + ... on User { + id + slug + name + disabled + deleted + __typename + } + ... on Comment { + id + contentExcerpt + disabled + deleted + author { + id + slug + name + disabled + deleted + __typename + } + post { + id + slug + title + disabled + deleted + __typename + } + __typename + } + ... on Post { + id + slug + title + disabled + deleted + author { + id + slug + name + disabled + deleted + __typename + } + __typename + } + } + filed { + submitter { + id + slug + name + disabled + deleted + __typename + } + createdAt + reasonCategory + reasonDescription + __typename + } + __typename + } +} +` + ) + cy.wrap(interception.response.body) + .should('have.nested.property', 'data.reports.0') + // .and('not.be', null) + }) + cy.get('table tbody').within(() => { cy.contains('tr', 'The Truth about the Holocaust') }) -}) \ No newline at end of file +}) From 2fa8be30c5b9cc02aa9a898d7cdcd539ead76233 Mon Sep 17 00:00:00 2001 From: mahula Date: Sat, 27 May 2023 10:13:24 +0200 Subject: [PATCH 036/406] add network interception to e2e test step --- ...e_all_the_reported_posts_including_the_one_from_above.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js index e04655166..12085ef1e 100644 --- a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js +++ b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js @@ -5,9 +5,9 @@ Then('I see all the reported posts including the one from above', () => { method: 'POST', url: '/api', hostname: 'localhost', - }).as('postToApi') + }).as('getReports') - cy.wait(['@postToApi']).then((interception) => { + cy.wait(['@getReports']).then((interception) => { console.log('Cypress interception:', interception) cy.wrap(interception.response.statusCode).should('eq', 200) cy.wrap(interception.request.body) @@ -100,7 +100,7 @@ Then('I see all the reported posts including the one from above', () => { ) cy.wrap(interception.response.body) .should('have.nested.property', 'data.reports.0') - // .and('not.be', null) + .and('not.be.null') }) cy.get('table tbody').within(() => { From 9e5925f82ce04ae07473ee95b5c5057e625c0ded Mon Sep 17 00:00:00 2001 From: mahula Date: Sat, 27 May 2023 13:48:41 +0200 Subject: [PATCH 037/406] clean up --- .../somebody_reported_the_following_posts.js | 1 - cypress/integration/common/I_click_on_{string}.js | 1 - 2 files changed, 2 deletions(-) diff --git a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js index 577f3edce..d599f42ac 100644 --- a/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js +++ b/cypress/integration/Moderation.ReportContent/somebody_reported_the_following_posts.js @@ -30,7 +30,6 @@ Given('somebody reported the following posts:', table => { cy.wrap(interception.response.statusCode).should('eq', 200) }) cy.wait(['@postToLocalhost']).then((interception) => { - console.log('Cypress interception:', interception) cy.wrap(interception.response.statusCode).should('eq', 200) cy.wrap(interception.response.body) .should('have.nested.property', 'data.fileReport.reportId') diff --git a/cypress/integration/common/I_click_on_{string}.js b/cypress/integration/common/I_click_on_{string}.js index fa79ef384..12707dd04 100644 --- a/cypress/integration/common/I_click_on_{string}.js +++ b/cypress/integration/common/I_click_on_{string}.js @@ -17,5 +17,4 @@ When("I click on {string}", element => { cy.get(elementSelectors[element]) .click() .wait(750); - cy.waitForNetworkIdle(2000); }); \ No newline at end of file From 56e61db4441bf0f96f8b38c326a8b42fbf61d6db Mon Sep 17 00:00:00 2001 From: mahula Date: Sat, 27 May 2023 13:50:26 +0200 Subject: [PATCH 038/406] refine interception assertion --- ...see_all_the_reported_posts_including_the_one_from_above.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js index 12085ef1e..ad6f04274 100644 --- a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js +++ b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js @@ -99,8 +99,8 @@ Then('I see all the reported posts including the one from above', () => { ` ) cy.wrap(interception.response.body) - .should('have.nested.property', 'data.reports.0') - .and('not.be.null') + .should('have.nested.property', 'data.reports.0.resource.author.id') + .and('equal', 'annoying-user') }) cy.get('table tbody').within(() => { From eecdb66024a6dce2e246ea89bef01549cceb8fa8 Mon Sep 17 00:00:00 2001 From: mahula Date: Sat, 27 May 2023 13:50:26 +0200 Subject: [PATCH 039/406] refine interception assertion --- ...I_see_all_the_reported_posts_including_the_one_from_above.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js index ad6f04274..e454bd30b 100644 --- a/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js +++ b/cypress/integration/Moderation.ReportContent/I_see_all_the_reported_posts_including_the_one_from_above.js @@ -7,7 +7,7 @@ Then('I see all the reported posts including the one from above', () => { hostname: 'localhost', }).as('getReports') - cy.wait(['@getReports']).then((interception) => { + cy.wait(['@getReports'],{ timeout: 10000 }).then((interception) => { console.log('Cypress interception:', interception) cy.wrap(interception.response.statusCode).should('eq', 200) cy.wrap(interception.request.body) From 1ca274fad43147410a3fb1e5f663623849b75742 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 31 May 2023 11:01:28 +0200 Subject: [PATCH 040/406] Add creatEvent to the update post so the form has event specific fields. Co-authored-by: elweyn Co-authored-by: maeckes-infinitylabs --- webapp/pages/post/edit/_id.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/webapp/pages/post/edit/_id.vue b/webapp/pages/post/edit/_id.vue index d365709be..d05eef449 100644 --- a/webapp/pages/post/edit/_id.vue +++ b/webapp/pages/post/edit/_id.vue @@ -12,6 +12,7 @@   From e18fa0cea03fb817e70235093dda0dd82de7279b Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 31 May 2023 12:32:48 +0200 Subject: [PATCH 041/406] Fix test of post edit. Co-authored-by: maeckes-infinitylabs --- webapp/pages/post/edit/_id.spec.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webapp/pages/post/edit/_id.spec.js b/webapp/pages/post/edit/_id.spec.js index aa25eb8e8..3bb68b098 100644 --- a/webapp/pages/post/edit/_id.spec.js +++ b/webapp/pages/post/edit/_id.spec.js @@ -29,7 +29,10 @@ describe('post/_id.vue', () => { defaultClient: { query: jest.fn().mockResolvedValue({ data: { - Post: [{ author: { id: authorId } }], + Post: [{ + author: { id: authorId }, + postType: ['Article'], + }], }, }), }, From ef7bb652bc29647094aeac6ae0f467408e6088ea Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 31 May 2023 20:44:44 +0200 Subject: [PATCH 042/406] Fix linting. Co-authored-by: maeckes-infinitylabs --- webapp/pages/post/edit/_id.spec.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/webapp/pages/post/edit/_id.spec.js b/webapp/pages/post/edit/_id.spec.js index 3bb68b098..2773483a4 100644 --- a/webapp/pages/post/edit/_id.spec.js +++ b/webapp/pages/post/edit/_id.spec.js @@ -29,10 +29,12 @@ describe('post/_id.vue', () => { defaultClient: { query: jest.fn().mockResolvedValue({ data: { - Post: [{ - author: { id: authorId }, - postType: ['Article'], - }], + Post: [ + { + author: { id: authorId }, + postType: ['Article'], + }, + ], }, }), }, From 540cd40e10ec0461ef17379cb93d914839f3a84f Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 1 Jun 2023 11:47:21 +0200 Subject: [PATCH 043/406] fixed coverage reporting --- webapp/jest.config.js | 3 +- webapp/package.json | 10 +- webapp/yarn.lock | 1077 +++++++++++++++++++++++------------------ 3 files changed, 610 insertions(+), 480 deletions(-) diff --git a/webapp/jest.config.js b/webapp/jest.config.js index b38b05ecd..5c107ce74 100644 --- a/webapp/jest.config.js +++ b/webapp/jest.config.js @@ -20,9 +20,10 @@ module.exports = { lines: 83, }, }, + coverageProvider: "v8", setupFiles: ['/test/registerContext.js', '/test/testSetup.js'], transform: { - '.*\\.(vue)$': 'vue-jest', + '.*\\.(vue)$': '@vue/vue2-jest', '^.+\\.js$': 'babel-jest', }, testMatch: ['**/?(*.)+(spec|test).js?(x)'], diff --git a/webapp/package.json b/webapp/package.json index 9c0b91155..a0be5d184 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -66,9 +66,9 @@ "zxcvbn": "^4.4.2" }, "devDependencies": { - "@babel/core": "~7.21.4", + "@babel/core": "~7.22.1", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/preset-env": "^7.20.2", + "@babel/preset-env": "^7.22.4", "@faker-js/faker": "5.1.0", "@nuxtjs/composition-api": "0.32.0", "@storybook/addon-a11y": "^6.3.6", @@ -79,11 +79,12 @@ "@vue/eslint-config-prettier": "~6.0.0", "@vue/server-test-utils": "~1.0.0-beta.31", "@vue/test-utils": "1.3.4", + "@vue/vue2-jest": "29", "async-validator": "^3.2.4", - "babel-core": "~7.0.0-bridge.0", + "babel-core": "^7.0.0-bridge.0", "babel-eslint": "~10.1.0", "babel-jest": "29.5", - "babel-loader": "~8.1.0", + "babel-loader": "~9.1.2", "babel-plugin-require-context-hook": "^1.0.0", "babel-preset-vue": "~2.0.2", "core-js": "~2.6.10", @@ -110,7 +111,6 @@ "storybook-vue-router": "^1.0.7", "style-loader": "~0.23.1", "style-resources-loader": "~1.3.3", - "vue-jest": "~3.0.5", "vue-svg-loader": "~0.16.0", "vue-template-compiler": "^2.6.11" }, diff --git a/webapp/yarn.lock b/webapp/yarn.lock index e5e84ac1e..2431765fc 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -114,21 +114,21 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1": +"@babel/compat-data@^7.17.7": version "7.20.14" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== -"@babel/compat-data@^7.20.5": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" - integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== - "@babel/compat-data@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== +"@babel/compat-data@^7.22.0", "@babel/compat-data@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.3.tgz#cd502a6a0b6e37d7ad72ce7e71a7160a3ae36f7e" + integrity sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ== + "@babel/compat-data@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" @@ -160,7 +160,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.6", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.16.7", "@babel/core@^7.9.0", "@babel/core@~7.21.4": +"@babel/core@^7.1.6", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.16.7", "@babel/core@^7.9.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== @@ -181,6 +181,27 @@ json5 "^2.2.2" semver "^6.3.0" +"@babel/core@~7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.1.tgz#5de51c5206f4c6f5533562838337a603c1033cfd" + integrity sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.22.0" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-module-transforms" "^7.22.1" + "@babel/helpers" "^7.22.0" + "@babel/parser" "^7.22.0" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + "@babel/generator@7.6.4": version "7.6.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671" @@ -201,6 +222,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.22.0", "@babel/generator@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.3.tgz#0ff675d2edb93d7596c5f6728b52615cfc0df01e" + integrity sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A== + dependencies: + "@babel/types" "^7.22.3" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" @@ -255,7 +286,7 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4", "@babel/helper-compilation-targets@^7.8.7": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4", "@babel/helper-compilation-targets@^7.8.7": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== @@ -266,6 +297,17 @@ lru-cache "^5.1.1" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz#bfcd6b7321ffebe33290d68550e2c9d7eb7c7a58" + integrity sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ== + dependencies: + "@babel/compat-data" "^7.22.0" + "@babel/helper-validator-option" "^7.21.0" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz#a6f8c3de208b1e5629424a9a63567f56501955fc" @@ -278,19 +320,20 @@ "@babel/helper-replace-supers" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" - integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== +"@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.1.tgz#ae3de70586cc757082ae3eba57240d42f468c41b" + integrity sha512-SowrZ9BWzYFgzUMwUmowbPSGu6CXL5MSuuCkG3bejahSpSymioPmuLdhPxNOc9MjuNGjy7M/HaXvJ8G82Lywlw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.22.0" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-replace-supers" "^7.22.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" + semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.8.3": version "7.8.6" @@ -312,7 +355,7 @@ "@babel/helper-annotate-as-pure" "^7.14.5" regexpu-core "^4.7.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": +"@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== @@ -320,6 +363,15 @@ "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.2.1" +"@babel/helper-create-regexp-features-plugin@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz#a7ed9a8488b45b467fca353cd1a44dc5f0cf5c70" + integrity sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.3.1" + semver "^6.3.0" + "@babel/helper-create-regexp-features-plugin@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" @@ -374,10 +426,10 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-define-polyfill-provider@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" + integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg== dependencies: "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -391,6 +443,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" + integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== + "@babel/helper-explode-assignable-expression@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" @@ -496,6 +553,13 @@ dependencies: "@babel/types" "^7.20.7" +"@babel/helper-member-expression-to-functions@^7.22.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.3.tgz#4b77a12c1b4b8e9e28736ed47d8b91f00976911f" + integrity sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA== + dependencies: + "@babel/types" "^7.22.3" + "@babel/helper-member-expression-to-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" @@ -524,6 +588,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-module-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2", "@babel/helper-module-transforms@^7.9.0": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" @@ -538,6 +609,20 @@ "@babel/traverse" "^7.21.2" "@babel/types" "^7.21.2" +"@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz#e0cad47fedcf3cae83c11021696376e2d5a50c63" + integrity sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" @@ -574,6 +659,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== +"@babel/helper-plugin-utils@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" + integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== + "@babel/helper-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" @@ -633,6 +723,18 @@ "@babel/traverse" "^7.20.7" "@babel/types" "^7.20.7" +"@babel/helper-replace-supers@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.1.tgz#38cf6e56f7dc614af63a21b45565dd623f0fdc95" + integrity sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-member-expression-to-functions" "^7.22.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + "@babel/helper-replace-supers@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" @@ -667,6 +769,13 @@ dependencies: "@babel/types" "^7.20.2" +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== + dependencies: + "@babel/types" "^7.21.5" + "@babel/helper-simple-access@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" @@ -715,6 +824,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + "@babel/helper-validator-identifier@^7.14.5": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" @@ -730,11 +844,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - "@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" @@ -779,6 +888,15 @@ "@babel/traverse" "^7.21.0" "@babel/types" "^7.21.0" +"@babel/helpers@^7.22.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.3.tgz#53b74351da9684ea2f694bf0877998da26dd830e" + integrity sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w== + dependencies: + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.3" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -793,6 +911,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== +"@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" + integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -809,14 +932,14 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.3.tgz#a75be1365c0c3188c51399a662168c1c98108659" + integrity sha512-6r4yRwEnorYByILoDRnEqxtojYKuiIv9FojW2E8GUKo9eWBwbKcd9IiZOZpdyXc64RmyGGyPu3/uAcrz/dq2kQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" + "@babel/plugin-transform-optional-chaining" "^7.22.3" "@babel/plugin-proposal-async-generator-functions@^7.14.7": version "7.14.7" @@ -827,16 +950,6 @@ "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" @@ -854,14 +967,6 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-proposal-class-properties@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" @@ -879,15 +984,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7" - integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-proposal-decorators@^7.12.12": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" @@ -914,14 +1010,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" @@ -946,14 +1034,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-proposal-json-strings@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" @@ -962,14 +1042,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-proposal-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" @@ -986,14 +1058,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" @@ -1002,14 +1066,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" @@ -1026,14 +1082,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" @@ -1062,17 +1110,6 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.5" -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - "@babel/plugin-proposal-object-rest-spread@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" @@ -1089,14 +1126,6 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" @@ -1114,15 +1143,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" - integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-proposal-optional-chaining@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" @@ -1139,14 +1159,6 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" @@ -1157,13 +1169,13 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" - integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== +"@babel/plugin-proposal-private-property-in-object@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" + integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-create-class-features-plugin" "^7.21.0" "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" @@ -1175,14 +1187,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": version "7.8.8" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" @@ -1275,7 +1279,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-attributes@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.3.tgz#d7168f22b9b49a6cc1792cec78e06a18ad2e7b4b" + integrity sha512-i35jZJv6aO7hxEbIWQ41adVfOzjm9dcYDNeWlBMd8p0ZQRtNUCBrmGwZt+H5lb+oOC9a3svp956KP0oWGA1YsA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -1436,6 +1447,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" @@ -1443,12 +1462,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== +"@babel/plugin-transform-arrow-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" + integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-arrow-functions@^7.8.3": version "7.8.3" @@ -1457,6 +1476,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-async-generator-functions@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.3.tgz#3ed99924c354fb9e80dabb2cc8d002c702e94527" + integrity sha512-36A4Aq48t66btydbZd5Fk0/xJqbpg/v4QWI4AH4cYHBXy9Mu42UOupZpebKFiCFNT9S9rJFcsld0gsv0ayLjtA== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-transform-async-to-generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" @@ -1466,7 +1495,7 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.14.5" -"@babel/plugin-transform-async-to-generator@^7.18.6": +"@babel/plugin-transform-async-to-generator@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== @@ -1512,10 +1541,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz#3e1b2aa9cbbe1eb8d644c823141a9c5c2a22392d" - integrity sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA== +"@babel/plugin-transform-block-scoping@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -1527,6 +1556,23 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" +"@babel/plugin-transform-class-properties@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.3.tgz#3407145e513830df77f0cef828b8b231c166fe4c" + integrity sha512-mASLsd6rhOrLZ5F3WbCxkzl67mmOnqik0zrg5W6D/X0QMW7HtvnoL1dRARLKIbMP3vXwkwziuLesPqWVGIl6Bw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-class-static-block@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.3.tgz#e352cf33567385c731a8f21192efeba760358773" + integrity sha512-5BirgNWNOx7cwbTJCOmKFJ1pZjwk5MUfMIwiBBvsirCJMZeQgs5pk6i1OlkVg+1Vef5LfBahFOrdCnAWvkVKMw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" @@ -1540,15 +1586,15 @@ "@babel/helper-split-export-declaration" "^7.14.5" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" - integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== +"@babel/plugin-transform-classes@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-compilation-targets" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" + "@babel/helper-function-name" "^7.21.0" "@babel/helper-optimise-call-expression" "^7.18.6" "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-replace-supers" "^7.20.7" @@ -1576,12 +1622,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== +"@babel/plugin-transform-computed-properties@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" + integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/template" "^7.20.7" "@babel/plugin-transform-computed-properties@^7.8.3": @@ -1598,10 +1644,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-destructuring@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" - integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== +"@babel/plugin-transform-destructuring@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -1657,6 +1703,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-dynamic-import@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.1.tgz#6c56afaf896a07026330cf39714532abed8d9ed1" + integrity sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" @@ -1681,6 +1735,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-export-namespace-from@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.3.tgz#9b8700aa495007d3bebac8358d1c562434b680b9" + integrity sha512-5Ti1cHLTDnt3vX61P9KZ5IG09bFXp4cDVFJIAeCZuxu9OXXJJZp5iP0n/rzM2+iAutJY+KWEyyHcRaHlpQ/P5g== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-transform-flow-strip-types@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz#0dc9c1d11dcdc873417903d6df4bed019ef0f85e" @@ -1696,12 +1758,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== +"@babel/plugin-transform-for-of@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" + integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-for-of@^7.9.0": version "7.9.0" @@ -1735,6 +1797,14 @@ "@babel/helper-function-name" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-json-strings@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.3.tgz#a181b8679cf7c93e9d0e3baa5b1776d65be601a9" + integrity sha512-IuvOMdeOOY2X4hRNAT6kwbePtK21BUyrAEgLKviL8pL6AEEVUVcqtRdN/HJXBLGIbt9T3ETmXRnFedRRmQNTYw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-transform-literals@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" @@ -1756,6 +1826,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-logical-assignment-operators@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.3.tgz#9e021455810f33b0baccb82fb759b194f5dc36f0" + integrity sha512-CbayIfOw4av2v/HYZEsH+Klks3NC2/MFIR3QR8gnpGNNPEaq2fdlVCRYG/paKs7/5hvBLQ+H70pGWOHtlNEWNA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-transform-member-expression-literals@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" @@ -1786,7 +1864,7 @@ "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-amd@^7.19.6": +"@babel/plugin-transform-modules-amd@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== @@ -1813,14 +1891,14 @@ "@babel/helper-simple-access" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" - integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" + integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" "@babel/plugin-transform-modules-commonjs@^7.9.0": version "7.9.0" @@ -1843,14 +1921,14 @@ "@babel/helper-validator-identifier" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== +"@babel/plugin-transform-modules-systemjs@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e" + integrity sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-transforms" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-validator-identifier" "^7.19.1" "@babel/plugin-transform-modules-systemjs@^7.9.0": @@ -1894,13 +1972,13 @@ dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.3.tgz#db6fb77e6b3b53ec3b8d370246f0b7cf67d35ab4" + integrity sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": version "7.8.3" @@ -1916,12 +1994,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== +"@babel/plugin-transform-new-target@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.3.tgz#deb0377d741cbee2f45305868b9026dcd6dd96e2" + integrity sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-new-target@^7.8.3": version "7.8.3" @@ -1930,6 +2008,33 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.3.tgz#8c519f8bf5af94a9ca6f65cf422a9d3396e542b9" + integrity sha512-CpaoNp16nX7ROtLONNuCyenYdY/l7ZsR6aoVa7rW7nMWisoNoQNIH5Iay/4LDyRjKMuElMqXiBoOQCDLTMGZiw== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.3.tgz#02493070ca6685884b0eee705363ee4da2132ab0" + integrity sha512-+AF88fPDJrnseMh5vD9+SH6wq4ZMvpiTMHh58uLs+giMEyASFVhcT3NkoyO+NebFCNnpHJEq5AXO2txV4AGPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.3.tgz#da6fba693effb8c203d8c3bdf7bf4e2567e802e9" + integrity sha512-38bzTsqMMCI46/TQnJwPPpy33EjLCc1Gsm2hRTF6zTMWnKsN61vdrpuzIEGQyKEhDSYDKyZHrrd5FMj4gcUHhw== + dependencies: + "@babel/compat-data" "^7.22.3" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.3" + "@babel/plugin-transform-object-super@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" @@ -1954,6 +2059,23 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" +"@babel/plugin-transform-optional-catch-binding@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.3.tgz#e971a083fc7d209d9cd18253853af1db6d8dc42f" + integrity sha512-bnDFWXFzWY0BsOyqaoSXvMQ2F35zutQipugog/rqotL2S4ciFOKlRYUu9djt4iq09oh2/34hqfRR2k1dIvuu4g== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.3.tgz#5fd24a4a7843b76da6aeec23c7f551da5d365290" + integrity sha512-63v3/UFFxhPKT8j8u1jTTGVyITxl7/7AfOqK8C5gz1rHURPUGe3y5mvIf68eYKGoBNahtJnTxBKug4BQOnzeJg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" @@ -1961,12 +2083,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" - integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== +"@babel/plugin-transform-parameters@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.3.tgz#24477acfd2fd2bc901df906c9bf17fbcfeee900d" + integrity sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-parameters@^7.8.7": version "7.8.7" @@ -1977,6 +2099,24 @@ "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-private-methods@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.3.tgz#adac38020bab5047482d3297107c1f58e9c574f6" + integrity sha512-fC7jtjBPFqhqpPAE+O4LKwnLq7gGkD3ZmC2E3i4qWH34mH3gOg2Xrq5YMHUq6DM30xhqM1DNftiRaSqVjEG+ug== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.3.tgz#031621b02c7b7d95389de1a3dba2fe9e8c548e56" + integrity sha512-C7MMl4qWLpgVCbXfj3UW8rR1xeCnisQ0cU7YJHV//8oNBS0aCIVg1vFnZXxOckHhEpQyqNNkWmvSEWnMLlc+Vw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-transform-property-literals@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" @@ -2038,12 +2178,12 @@ dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== +"@babel/plugin-transform-regenerator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" + integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.21.5" regenerator-transform "^0.15.1" "@babel/plugin-transform-regenerator@^7.8.7": @@ -2113,7 +2253,7 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" -"@babel/plugin-transform-spread@^7.19.0": +"@babel/plugin-transform-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== @@ -2209,12 +2349,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== +"@babel/plugin-transform-unicode-escapes@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" + integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.3.tgz#597b6a614dc93eaae605ee293e674d79d32eb380" + integrity sha512-5ScJ+OmdX+O6HRuMGW4kv7RL9vIKdtdAj9wuWUKy1wbHY3jaM/UlyIiC1G7J6UJiiyMukjjK0QwL3P0vBd0yYg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" "@babel/plugin-transform-unicode-regex@^7.14.5": version "7.14.5" @@ -2240,6 +2388,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-unicode-sets-regex@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.3.tgz#7c14ee33fa69782b0101d0f7143d3fc73ce00700" + integrity sha512-hNufLdkF8vqywRp+P55j4FHXqAX2LRUccoZHH7AFn1pq5ZOO2ISKW9w13bFZVjBoTqeve2HOgoJCcaziJVhGNw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.12.11": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.8.tgz#254942f5ca80ccabcfbb2a9f524c74bca574005b" @@ -2319,38 +2475,26 @@ core-js-compat "^3.15.0" semver "^6.3.0" -"@babel/preset-env@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== +"@babel/preset-env@^7.22.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.4.tgz#c86a82630f0e8c61d9bb9327b7b896732028cbed" + integrity sha512-c3lHOjbwBv0TkhYCr+XCR6wKcSZ1QbQTVdSkZUaVpLv8CVWotBMArWUi5UAJrcrQaEnleVkkvaV8F/pmc/STZQ== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" + "@babel/compat-data" "^7.22.3" + "@babel/helper-compilation-targets" "^7.22.1" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.3" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-attributes" "^7.22.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -2360,44 +2504,61 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.3" + "@babel/plugin-transform-async-to-generator" "^7.20.7" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-class-properties" "^7.22.3" + "@babel/plugin-transform-class-static-block" "^7.22.3" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" "@babel/plugin-transform-dotall-regex" "^7.18.6" "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-dynamic-import" "^7.22.1" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-export-namespace-from" "^7.22.3" + "@babel/plugin-transform-for-of" "^7.21.5" "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-json-strings" "^7.22.3" "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.3" "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.3" "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.3" + "@babel/plugin-transform-new-target" "^7.22.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.3" + "@babel/plugin-transform-numeric-separator" "^7.22.3" + "@babel/plugin-transform-object-rest-spread" "^7.22.3" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-optional-catch-binding" "^7.22.3" + "@babel/plugin-transform-optional-chaining" "^7.22.3" + "@babel/plugin-transform-parameters" "^7.22.3" + "@babel/plugin-transform-private-methods" "^7.22.3" + "@babel/plugin-transform-private-property-in-object" "^7.22.3" "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-spread" "^7.20.7" "@babel/plugin-transform-sticky-regex" "^7.18.6" "@babel/plugin-transform-template-literals" "^7.18.9" "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.3" "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.3" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" + "@babel/types" "^7.22.4" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" + core-js-compat "^3.30.2" semver "^6.3.0" "@babel/preset-env@^7.9.0": @@ -2583,6 +2744,15 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" +"@babel/template@^7.21.9": + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" + integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/parser" "^7.21.9" + "@babel/types" "^7.21.5" + "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.16.8", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" @@ -2599,6 +2769,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.22.1": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.4.tgz#c3cf96c5c290bd13b55e29d025274057727664c0" + integrity sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.22.3" + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.22.4" + "@babel/types" "^7.22.4" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@7.6.3": version "7.6.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09" @@ -2617,6 +2803,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" + integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -5359,6 +5554,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + "@types/keygrip@*": version "1.0.2" resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" @@ -5960,6 +6160,18 @@ lodash "^4.17.15" pretty "^2.0.0" +"@vue/vue2-jest@29": + version "29.2.4" + resolved "https://registry.yarnpkg.com/@vue/vue2-jest/-/vue2-jest-29.2.4.tgz#f17b61bbde629a2809db5ed85f88bee972ebe97b" + integrity sha512-oU/Ai4sufLlrhsj8GqRqfhMr6Ud4rehmwYP358/SjKcvUqOCoKa2lOBndDzG4uZVMNnQqQbKWIg7wqL3aRYPBA== + dependencies: + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@vue/component-compiler-utils" "^3.1.0" + chalk "^2.1.0" + css-tree "^2.0.1" + source-map "0.5.6" + tsconfig "^7.0.0" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -6289,6 +6501,13 @@ ajv-errors@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + ajv-keywords@^3.1.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" @@ -6304,6 +6523,13 @@ ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" @@ -6334,6 +6560,16 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.0, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -7239,7 +7475,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.1, atob@^2.1.2: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -7312,16 +7548,7 @@ axios@^0.19.2: dependencies: follow-redirects "1.5.10" -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^7.0.0-bridge.0, babel-core@~7.0.0-bridge.0: +babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== @@ -7356,7 +7583,7 @@ babel-jest@29.5, babel-jest@^29.5.0: graceful-fs "^4.2.9" slash "^3.0.0" -babel-loader@^8.1.0, babel-loader@~8.1.0: +babel-loader@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== @@ -7377,12 +7604,13 @@ babel-loader@^8.2.2: make-dir "^3.1.0" schema-utils "^2.6.5" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= +babel-loader@~9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.2.tgz#a16a080de52d08854ee14570469905a5fc00d39c" + integrity sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA== dependencies: - babel-runtime "^6.22.0" + find-cache-dir "^3.3.2" + schema-utils "^4.0.0" babel-plugin-apply-mdx-type-prop@1.6.22: version "1.6.22" @@ -7532,13 +7760,13 @@ babel-plugin-polyfill-corejs2@^0.2.2: "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== +babel-plugin-polyfill-corejs2@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd" + integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw== dependencies: "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.1.0: @@ -7557,13 +7785,13 @@ babel-plugin-polyfill-corejs3@^0.2.2: "@babel/helper-define-polyfill-provider" "^0.2.2" core-js-compat "^3.14.0" -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== +babel-plugin-polyfill-corejs3@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a" + integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" + "@babel/helper-define-polyfill-provider" "^0.4.0" + core-js-compat "^3.30.1" babel-plugin-polyfill-regenerator@^0.2.2: version "0.2.2" @@ -7572,12 +7800,12 @@ babel-plugin-polyfill-regenerator@^0.2.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== +babel-plugin-polyfill-regenerator@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380" + integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.0" babel-plugin-require-context-hook@^1.0.0: version "1.0.0" @@ -7589,24 +7817,6 @@ babel-plugin-syntax-jsx@^6.18.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= -babel-plugin-transform-es2015-modules-commonjs@^6.26.0: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - babel-plugin-transform-vue-jsx@^3.5.0: version "3.7.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-3.7.0.tgz#d40492e6692a36b594f7e9a1928f43e969740960" @@ -7660,7 +7870,7 @@ babel-preset-vue@~2.0.2: babel-plugin-syntax-jsx "^6.18.0" babel-plugin-transform-vue-jsx "^3.5.0" -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.18.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -7668,42 +7878,6 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - babel-walk@3.0.0-canary-5: version "3.0.0-canary-5" resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" @@ -7711,11 +7885,6 @@ babel-walk@3.0.0-canary-5: dependencies: "@babel/types" "^7.9.6" -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - backo2@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -8791,16 +8960,16 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -clone@2.x, clone@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -9001,7 +9170,7 @@ condense-newlines@^0.2.1: is-whitespace "^0.3.0" kind-of "^3.0.2" -config-chain@^1.1.12, config-chain@^1.1.13: +config-chain@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== @@ -9180,10 +9349,10 @@ core-js-compat@^3.14.0, core-js-compat@^3.15.0, core-js-compat@^3.8.1: browserslist "^4.16.6" semver "7.0.0" -core-js-compat@^3.25.1: - version "3.28.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.28.0.tgz#c08456d854608a7264530a2afa281fadf20ecee6" - integrity sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg== +core-js-compat@^3.30.1, core-js-compat@^3.30.2: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" + integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== dependencies: browserslist "^4.21.5" @@ -9565,6 +9734,14 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" +css-tree@^2.0.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + css-unit-converter@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" @@ -9580,16 +9757,6 @@ css-what@2.1, css-what@^2.1.2: resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== -css@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - csscolorparser@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/csscolorparser/-/csscolorparser-1.0.3.tgz#b34f391eea4da8f3e98231e2ccd8df9c041f171b" @@ -9791,7 +9958,7 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -11135,13 +11302,6 @@ extract-files@^5.0.1: resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-5.0.1.tgz#c9492a8410be643e260a376f0151361993d5f659" integrity sha512-qRW6y9eKF0VbCyOoOEtFhzJ3uykAw8GKwQVXyAIqwocyEWW4m+v+evec34RwtUkkxxHh7NKBLJ6AnXM8W4dH5w== -extract-from-css@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" - integrity sha1-HqffLnx8brmSL6COitrqSG9vj5I= - dependencies: - css "^2.1.0" - extract-stack@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-1.0.0.tgz#b97acaf9441eea2332529624b732fc5a1c8165fa" @@ -11366,14 +11526,6 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-babel-config@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" - integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== - dependencies: - json5 "^0.5.1" - path-exists "^3.0.0" - find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" @@ -11410,6 +11562,15 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-cache-dir@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-root@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -12067,11 +12228,6 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - globalthis@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" @@ -14205,17 +14361,6 @@ js-beautify@^1.6.12: glob "^8.0.3" nopt "^6.0.0" -js-beautify@^1.6.14: - version "1.10.0" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.0.tgz#9753a13c858d96828658cd18ae3ca0e5783ea672" - integrity sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q== - dependencies: - config-chain "^1.1.12" - editorconfig "^0.15.3" - glob "^7.1.3" - mkdirp "~0.5.1" - nopt "~4.0.1" - js-message@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" @@ -14243,11 +14388,6 @@ js-stringify@^1.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.13.0, js-yaml@^3.9.0: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -14387,6 +14527,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -14402,7 +14547,7 @@ json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^0.5.0, json5@^0.5.1: +json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= @@ -14867,7 +15012,7 @@ lodash.xorby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.xorby/-/lodash.xorby-4.7.0.tgz#9c19a6f9f063a6eb53dd03c1b6871799801463d7" integrity sha1-nBmm+fBjputT3QPBtocXmYAUY9c= -lodash@4.x, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: +lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@~4.17.10: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15157,6 +15302,11 @@ mdast-util-to-hast@10.0.1: unist-util-position "^3.0.0" unist-util-visit "^2.0.0" +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" @@ -15701,14 +15851,6 @@ node-ask@^1.0.1: resolved "https://registry.yarnpkg.com/node-ask/-/node-ask-1.0.1.tgz#caaa1076cc58e0364267a0903e3eadfac158396b" integrity sha1-yqoQdsxY4DZCZ6CQPj6t+sFYOWs= -node-cache@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-4.2.0.tgz#48ac796a874e762582692004a376d26dfa875811" - integrity sha512-obRu6/f7S024ysheAjoYFEEBqqDWv4LOMNJEuO8vMeEw2AT4z+NCzO4hlc2lhI4vATzbCQv6kke9FVdx0RbCOw== - dependencies: - clone "2.x" - lodash "4.x" - node-dir@^0.1.17: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -15883,14 +16025,6 @@ nopt@~1.0.10: dependencies: abbrev "1" -nopt@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -18918,6 +19052,18 @@ regexpu-core@^5.2.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + registry-auth-token@^3.0.1: version "3.4.0" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" @@ -19090,7 +19236,7 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.1: +require-from-string@^2.0.1, require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -19407,6 +19553,16 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.1.tgz#eb2d042df8b01f4b5c276a2dfd41ba0faab72e8d" + integrity sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + select@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" @@ -19770,6 +19926,11 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== +source-map-js@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -19781,17 +19942,6 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-resolve@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - source-map-support@0.5.13, source-map-support@~0.5.12: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -20879,11 +21029,6 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -21982,22 +22127,6 @@ vue-izitoast@^1.2.1: dependencies: izitoast "^1.4.0" -vue-jest@~3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.5.tgz#d6f124b542dcbff207bf9296c19413f4c40b70c9" - integrity sha512-xWDxde91pDqYBGDlODENZ3ezPgw+IQFoVDtf+5Awlg466w3KvMSqWzs8PxcTeTr+wmAHi0j+a+Lm3R7aUJa1jA== - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.26.0" - chalk "^2.1.0" - extract-from-css "^0.4.4" - find-babel-config "^1.1.0" - js-beautify "^1.6.14" - node-cache "^4.1.1" - object-assign "^4.1.1" - source-map "^0.5.6" - tsconfig "^7.0.0" - vue-template-es2015-compiler "^1.6.0" - vue-loader@^15.9.1: version "15.9.1" resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.1.tgz#bd2ab8f3d281e51d7b81d15390a58424d142243e" @@ -22091,7 +22220,7 @@ vue-template-compiler@^2.6.11: de-indent "^1.0.2" he "^1.1.0" -vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: +vue-template-es2015-compiler@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== From e767024df824fd26dca4d18f8ebca77a0dbb23ef Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 1 Jun 2023 11:50:48 +0200 Subject: [PATCH 044/406] renamed broken and unsed components & tests to .old to avoid them beeing tested --- .../FilterMenu/{EmotionsFilter.vue => EmotionsFilter.vue.old} | 0 .../FilterMenu/{FilterMenu.spec.js => FilterMenu.spec.js.old} | 0 .../{LanguagesFilter.spec.js => LanguagesFilter.spec.js.old} | 0 .../FilterMenu/{LanguagesFilter.vue => LanguagesFilter.vue.old} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename webapp/components/FilterMenu/{EmotionsFilter.vue => EmotionsFilter.vue.old} (100%) rename webapp/components/FilterMenu/{FilterMenu.spec.js => FilterMenu.spec.js.old} (100%) rename webapp/components/FilterMenu/{LanguagesFilter.spec.js => LanguagesFilter.spec.js.old} (100%) rename webapp/components/FilterMenu/{LanguagesFilter.vue => LanguagesFilter.vue.old} (100%) diff --git a/webapp/components/FilterMenu/EmotionsFilter.vue b/webapp/components/FilterMenu/EmotionsFilter.vue.old similarity index 100% rename from webapp/components/FilterMenu/EmotionsFilter.vue rename to webapp/components/FilterMenu/EmotionsFilter.vue.old diff --git a/webapp/components/FilterMenu/FilterMenu.spec.js b/webapp/components/FilterMenu/FilterMenu.spec.js.old similarity index 100% rename from webapp/components/FilterMenu/FilterMenu.spec.js rename to webapp/components/FilterMenu/FilterMenu.spec.js.old diff --git a/webapp/components/FilterMenu/LanguagesFilter.spec.js b/webapp/components/FilterMenu/LanguagesFilter.spec.js.old similarity index 100% rename from webapp/components/FilterMenu/LanguagesFilter.spec.js rename to webapp/components/FilterMenu/LanguagesFilter.spec.js.old diff --git a/webapp/components/FilterMenu/LanguagesFilter.vue b/webapp/components/FilterMenu/LanguagesFilter.vue.old similarity index 100% rename from webapp/components/FilterMenu/LanguagesFilter.vue rename to webapp/components/FilterMenu/LanguagesFilter.vue.old From 773382d3aea7c2f961eadb3d080a6314bfa7eb9f Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 1 Jun 2023 12:03:03 +0200 Subject: [PATCH 045/406] reverated wrong rename, reanmed proper file to .old --- .../{EmotionsFilter.spec.js => EmotionsFilter.spec.js.old} | 0 .../FilterMenu/{FilterMenu.spec.js.old => FilterMenu.spec.js} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename webapp/components/FilterMenu/{EmotionsFilter.spec.js => EmotionsFilter.spec.js.old} (100%) rename webapp/components/FilterMenu/{FilterMenu.spec.js.old => FilterMenu.spec.js} (100%) diff --git a/webapp/components/FilterMenu/EmotionsFilter.spec.js b/webapp/components/FilterMenu/EmotionsFilter.spec.js.old similarity index 100% rename from webapp/components/FilterMenu/EmotionsFilter.spec.js rename to webapp/components/FilterMenu/EmotionsFilter.spec.js.old diff --git a/webapp/components/FilterMenu/FilterMenu.spec.js.old b/webapp/components/FilterMenu/FilterMenu.spec.js similarity index 100% rename from webapp/components/FilterMenu/FilterMenu.spec.js.old rename to webapp/components/FilterMenu/FilterMenu.spec.js From fd961cb529704a51e4e2de1b3d6b1a8ebb697e92 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 1 Jun 2023 12:03:56 +0200 Subject: [PATCH 046/406] fixed lint problem --- webapp/jest.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/jest.config.js b/webapp/jest.config.js index 5c107ce74..e9185f60e 100644 --- a/webapp/jest.config.js +++ b/webapp/jest.config.js @@ -20,7 +20,7 @@ module.exports = { lines: 83, }, }, - coverageProvider: "v8", + coverageProvider: 'v8', setupFiles: ['/test/registerContext.js', '/test/testSetup.js'], transform: { '.*\\.(vue)$': '@vue/vue2-jest', From 17e0d0a85c92102e99a42cd29d093ccf27745922 Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 1 Jun 2023 13:04:06 +0200 Subject: [PATCH 047/406] Rename creatEvent to createEvent --- .../ContributionForm/ContributionForm.vue | 14 +++++++------- webapp/pages/post/create.vue | 16 ++++++++-------- webapp/pages/post/edit/_id.vue | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 997a25341..eea00e444 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -54,7 +54,7 @@ -
+

@@ -210,7 +210,7 @@ export default { type: Object, default: () => null, }, - creatEvent: { + createEvent: { type: Boolean, default: false, }, @@ -266,9 +266,9 @@ export default { return [] }, }, - eventStart: { required: !!this.creatEvent }, - eventVenue: { required: !!this.creatEvent, min: 3, max: 100 }, - eventLocationName: { required: !!this.creatEvent, min: 3, max: 100 }, + eventStart: { required: !!this.createEvent }, + eventVenue: { required: !!this.createEvent, min: 3, max: 100 }, + eventLocationName: { required: !!this.createEvent, min: 3, max: 100 }, }, loading: false, users: [], @@ -284,7 +284,7 @@ export default { currentUser: 'auth/user', }), eventInput() { - if (this.creatEvent) { + if (this.createEvent) { return { eventStart: this.formData.eventStart, eventVenue: this.formData.eventVenue, @@ -356,7 +356,7 @@ export default { id: this.contribution.id || null, image, groupId: this.groupId, - postType: !this.creatEvent ? 'Article' : 'Event', + postType: !this.createEvent ? 'Article' : 'Event', eventInput: this.eventInput, }, }) diff --git a/webapp/pages/post/create.vue b/webapp/pages/post/create.vue index 199cc14a4..9da1a85e9 100644 --- a/webapp/pages/post/create.vue +++ b/webapp/pages/post/create.vue @@ -4,10 +4,10 @@ - +
{{ $t('post.createNewPost.title') }} - + {{ $t('post.createNewPost.title') }}
- +
{{ $t('post.createNewEvent.title') }} - + {{ $t('post.createNewEvent.title') }}
@@ -50,7 +50,7 @@ - +   @@ -69,7 +69,7 @@ export default { const { groupId = null } = this.$route.query return { groupId, - creatEvent: false, + createEvent: false, } }, computed: { diff --git a/webapp/pages/post/edit/_id.vue b/webapp/pages/post/edit/_id.vue index d05eef449..649174ca3 100644 --- a/webapp/pages/post/edit/_id.vue +++ b/webapp/pages/post/edit/_id.vue @@ -12,7 +12,7 @@
  From 726640a7593c07f802ccb069118b3072a1f444df Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 1 Jun 2023 13:36:24 +0200 Subject: [PATCH 048/406] Create a function to switch between Article and Event. --- webapp/pages/post/create.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/webapp/pages/post/create.vue b/webapp/pages/post/create.vue index 9da1a85e9..dbe58eaa0 100644 --- a/webapp/pages/post/create.vue +++ b/webapp/pages/post/create.vue @@ -15,7 +15,7 @@ > {{ $t('post.createNewPost.title') }} - + {{ $t('post.createNewPost.title') }}
@@ -34,7 +34,7 @@ > {{ $t('post.createNewEvent.title') }} - + {{ $t('post.createNewEvent.title') }}
@@ -98,6 +98,11 @@ export default { fetchPolicy: 'cache-and-network', }, }, + methods: { + switchPostType() { + this.createEvent = !this.createEvent + }, + }, } From dcd5e5629b6f7057e0b62c0614ba013fd111fd2e Mon Sep 17 00:00:00 2001 From: entermex Date: Fri, 2 Jun 2023 09:49:45 +0200 Subject: [PATCH 153/406] refactor(webapp): changed color a bit litter for event-ribbons --- webapp/assets/_new/styles/tokens.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/assets/_new/styles/tokens.scss b/webapp/assets/_new/styles/tokens.scss index f3e308573..c01b7d2cc 100644 --- a/webapp/assets/_new/styles/tokens.scss +++ b/webapp/assets/_new/styles/tokens.scss @@ -11,7 +11,7 @@ $color-primary-inverse: rgb(241, 253, 244); $color-secondary: rgb(0, 142, 230); $color-secondary-active: rgb(10, 161, 255); $color-secondary-inverse: rgb(240, 249, 255); -$color-third: rgb(149,74,255); +$color-third: rgb(160,103,255); $color-success: rgb(23, 181, 63); $color-success-active: rgb(26, 203, 71); $color-success-inverse: rgb(241, 253, 244); From d711f90fc14fb2d3ac8fedb9b39ffde663d09f11 Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 5 Jun 2023 12:57:15 +0200 Subject: [PATCH 154/406] Add background color definitions Add background ribbon colors Co-authored-by: Tirokk Co-authored-by: entermex --- webapp/assets/_new/styles/tokens.scss | 13 ++++++++++++- webapp/components/Ribbon/index.vue | 8 ++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/webapp/assets/_new/styles/tokens.scss b/webapp/assets/_new/styles/tokens.scss index c01b7d2cc..22e0214ff 100644 --- a/webapp/assets/_new/styles/tokens.scss +++ b/webapp/assets/_new/styles/tokens.scss @@ -11,7 +11,6 @@ $color-primary-inverse: rgb(241, 253, 244); $color-secondary: rgb(0, 142, 230); $color-secondary-active: rgb(10, 161, 255); $color-secondary-inverse: rgb(240, 249, 255); -$color-third: rgb(160,103,255); $color-success: rgb(23, 181, 63); $color-success-active: rgb(26, 203, 71); $color-success-inverse: rgb(241, 253, 244); @@ -91,6 +90,9 @@ $background-color-primary-inverse: rgb(241, 253, 244); $background-color-secondary: rgb(0, 142, 230); $background-color-secondary-active: rgb(10, 161, 255); $background-color-secondary-inverse: rgb(240, 249, 255); +$background-color-third: rgb(126, 82, 204); +$background-color-third-active: rgb(160, 103, 255); +$background-color-third-inverse: rgb(239, 230, 255); $background-color-success: rgb(23, 181, 63); $background-color-success-active: rgb(26, 203, 71); $background-color-success-inverse: rgb(241, 253, 244); @@ -396,3 +398,12 @@ $color-toast-orange: $color-warning; $color-toast-yellow: $color-yellow; $color-toast-blue: $color-secondary; $color-toast-green: $color-success; + +/** + * @tokens Ribbon Color + */ + +$color-ribbon-event: $background-color-third; +$color-ribbon-event-active: $background-color-third-active; +$color-ribbon-article: $background-color-secondary; +$color-ribbon-article-active: $background-color-secondary-active; \ No newline at end of file diff --git a/webapp/components/Ribbon/index.vue b/webapp/components/Ribbon/index.vue index 89b84e817..8595c0f5d 100644 --- a/webapp/components/Ribbon/index.vue +++ b/webapp/components/Ribbon/index.vue @@ -25,7 +25,7 @@ export default { padding: $size-ribbon $size-ribbon; border-radius: $border-radius-small 0 0 $border-radius-small; color: $color-neutral-100; - background-color: $background-color-secondary-active; + background-color: $color-ribbon-article-active; font-size: $font-size-x-small; font-weight: $font-weight-bold; @@ -36,7 +36,7 @@ export default { bottom: -$size-ribbon; border-width: $border-size-large 4px $border-size-large $border-size-large; border-style: solid; - border-color: $background-color-secondary transparent transparent $background-color-secondary; + border-color: $color-ribbon-article transparent transparent $color-ribbon-article; } &.--pinned { @@ -48,10 +48,10 @@ export default { } } .eventBg { - background-color: $color-third; + background-color: $color-ribbon-event-active; &::before { - border-color: $color-third transparent transparent $color-third; + border-color: $color-ribbon-event transparent transparent $color-ribbon-event; } } From 1b37e91ce2e2a6f13a871d1aefd31af640ae7f71 Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 5 Jun 2023 13:03:46 +0200 Subject: [PATCH 155/406] Change ribbon text from 'post' to 'article' Co-authored-by: Tirokk Co-authored-by: entermex --- webapp/locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/locales/en.json b/webapp/locales/en.json index d4d52e071..0719d8cbf 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -740,7 +740,7 @@ "unpin": "Unpin post", "unpinnedSuccessfully": "Post unpinned successfully!" }, - "name": "Post", + "name": "Article", "pinned": "Announcement", "takeAction": { "name": "Take action" From 70ad8abc4da33b0ad02825bc6f88f1e69054cd89 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 31 May 2023 18:05:29 +0200 Subject: [PATCH 156/406] fix(webapp): warnings in unit tests --- webapp/components/InviteButton/InviteButton.spec.js | 4 +++- webapp/pages/post/create.spec.js | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/webapp/components/InviteButton/InviteButton.spec.js b/webapp/components/InviteButton/InviteButton.spec.js index cb73ecfd1..1282c2bad 100644 --- a/webapp/components/InviteButton/InviteButton.spec.js +++ b/webapp/components/InviteButton/InviteButton.spec.js @@ -1,6 +1,8 @@ import { mount } from '@vue/test-utils' import InviteButton from './InviteButton.vue' +const localVue = global.localVue + const stubs = { 'v-popover': { template: '', @@ -26,7 +28,7 @@ describe('InviteButton.vue', () => { describe('mount', () => { const Wrapper = () => { - return mount(InviteButton, { mocks, propsData, stubs }) + return mount(InviteButton, { mocks, localVue, propsData, stubs }) } beforeEach(() => { diff --git a/webapp/pages/post/create.spec.js b/webapp/pages/post/create.spec.js index 4f786aaa9..45ac5f3f3 100644 --- a/webapp/pages/post/create.spec.js +++ b/webapp/pages/post/create.spec.js @@ -18,9 +18,13 @@ describe('create.vue', () => { }, } + const stubs = { + ContributionForm: true, + } + describe('mount', () => { const Wrapper = () => { - return mount(create, { mocks, localVue }) + return mount(create, { mocks, localVue, stubs }) } beforeEach(() => { @@ -28,7 +32,7 @@ describe('create.vue', () => { }) it('renders', () => { - expect(wrapper.findAll('.contribution-form')).toHaveLength(1) + expect(wrapper.findComponent({ name: 'ContributionForm' }).exists()).toBe(true) }) }) }) From 4dc322ff6d81baba7d6e7fd1ee9c34f85704609a Mon Sep 17 00:00:00 2001 From: mahula Date: Mon, 5 Jun 2023 22:41:16 +0200 Subject: [PATCH 157/406] update neode package version globally --- backend/src/models/index.js | 49 ++++++++++++------------------------- package.json | 2 +- 2 files changed, 17 insertions(+), 34 deletions(-) diff --git a/backend/src/models/index.js b/backend/src/models/index.js index 347c3a029..fa3a1e193 100644 --- a/backend/src/models/index.js +++ b/backend/src/models/index.js @@ -1,37 +1,20 @@ // NOTE: We cannot use `fs` here to clean up the code. Cypress breaks on any npm // module that is not browser-compatible. Node's `fs` module is server-side only export default { - Image: typeof Cypress !== 'undefined' ? require('./Image.js') : require('./Image.js').default, - Badge: typeof Cypress !== 'undefined' ? require('./Badge.js') : require('./Badge.js').default, - User: typeof Cypress !== 'undefined' ? require('./User.js') : require('./User.js').default, - Group: typeof Cypress !== 'undefined' ? require('./Group.js') : require('./Group.js').default, - EmailAddress: - typeof Cypress !== 'undefined' - ? require('./EmailAddress.js') - : require('./EmailAddress.js').default, - UnverifiedEmailAddress: - typeof Cypress !== 'undefined' - ? require('./UnverifiedEmailAddress.js') - : require('./UnverifiedEmailAddress.js').default, - SocialMedia: - typeof Cypress !== 'undefined' - ? require('./SocialMedia.js') - : require('./SocialMedia.js').default, - Post: typeof Cypress !== 'undefined' ? require('./Post.js') : require('./Post.js').default, - Comment: - typeof Cypress !== 'undefined' ? require('./Comment.js') : require('./Comment.js').default, - Category: - typeof Cypress !== 'undefined' ? require('./Category.js') : require('./Category.js').default, - Tag: typeof Cypress !== 'undefined' ? require('./Tag.js') : require('./Tag.js').default, - Location: - typeof Cypress !== 'undefined' ? require('./Location.js') : require('./Location.js').default, - Donations: - typeof Cypress !== 'undefined' ? require('./Donations.js') : require('./Donations.js').default, - Report: typeof Cypress !== 'undefined' ? require('./Report.js') : require('./Report.js').default, - Migration: - typeof Cypress !== 'undefined' ? require('./Migration.js') : require('./Migration.js').default, - InviteCode: - typeof Cypress !== 'undefined' - ? require('./InviteCode.js') - : require('./InviteCode.js').default, + Image: require('./Image.js'), + Badge:require('./Badge.js'), + User:require('./User.js'), + Group:require('./Group.js'), + EmailAddress: typeof require('./EmailAddress.js'), + UnverifiedEmailAddress: typeof require('./UnverifiedEmailAddress.js'), + SocialMedia: typeof require('./SocialMedia.js'), + Post: require('./Post.js'), + Comment: require('./Comment.js'), + Category: require('./Category.js'), + Tag: require('./Tag.js'), + Location: require('./Location.js'), + Donations: require('./Donations.js'), + Report: require('./Report.js'), + Migration: require('./Migration.js'), + InviteCode: require('./InviteCode.js'), } diff --git a/package.json b/package.json index 9af315e12..241fac6e3 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "jsonwebtoken": "^8.5.1", "mock-socket": "^9.0.3", "neo4j-driver": "^4.3.4", - "neode": "^0.4.8", + "neode": "^0.4.9", "rosie": "^2.1.0", "slug": "^6.0.0", "wait-on": "^7.0.1" From 92eb4982711fc2d17f015015aa70876dba166680 Mon Sep 17 00:00:00 2001 From: mahula Date: Mon, 5 Jun 2023 23:07:33 +0200 Subject: [PATCH 158/406] Revert "update neode package version globally" This reverts commit 6797c03a337f0cd7068275ebd5cf30cac43e9799. --- backend/src/models/index.js | 49 +++++++++++++++++++++++++------------ package.json | 2 +- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/backend/src/models/index.js b/backend/src/models/index.js index fa3a1e193..347c3a029 100644 --- a/backend/src/models/index.js +++ b/backend/src/models/index.js @@ -1,20 +1,37 @@ // NOTE: We cannot use `fs` here to clean up the code. Cypress breaks on any npm // module that is not browser-compatible. Node's `fs` module is server-side only export default { - Image: require('./Image.js'), - Badge:require('./Badge.js'), - User:require('./User.js'), - Group:require('./Group.js'), - EmailAddress: typeof require('./EmailAddress.js'), - UnverifiedEmailAddress: typeof require('./UnverifiedEmailAddress.js'), - SocialMedia: typeof require('./SocialMedia.js'), - Post: require('./Post.js'), - Comment: require('./Comment.js'), - Category: require('./Category.js'), - Tag: require('./Tag.js'), - Location: require('./Location.js'), - Donations: require('./Donations.js'), - Report: require('./Report.js'), - Migration: require('./Migration.js'), - InviteCode: require('./InviteCode.js'), + Image: typeof Cypress !== 'undefined' ? require('./Image.js') : require('./Image.js').default, + Badge: typeof Cypress !== 'undefined' ? require('./Badge.js') : require('./Badge.js').default, + User: typeof Cypress !== 'undefined' ? require('./User.js') : require('./User.js').default, + Group: typeof Cypress !== 'undefined' ? require('./Group.js') : require('./Group.js').default, + EmailAddress: + typeof Cypress !== 'undefined' + ? require('./EmailAddress.js') + : require('./EmailAddress.js').default, + UnverifiedEmailAddress: + typeof Cypress !== 'undefined' + ? require('./UnverifiedEmailAddress.js') + : require('./UnverifiedEmailAddress.js').default, + SocialMedia: + typeof Cypress !== 'undefined' + ? require('./SocialMedia.js') + : require('./SocialMedia.js').default, + Post: typeof Cypress !== 'undefined' ? require('./Post.js') : require('./Post.js').default, + Comment: + typeof Cypress !== 'undefined' ? require('./Comment.js') : require('./Comment.js').default, + Category: + typeof Cypress !== 'undefined' ? require('./Category.js') : require('./Category.js').default, + Tag: typeof Cypress !== 'undefined' ? require('./Tag.js') : require('./Tag.js').default, + Location: + typeof Cypress !== 'undefined' ? require('./Location.js') : require('./Location.js').default, + Donations: + typeof Cypress !== 'undefined' ? require('./Donations.js') : require('./Donations.js').default, + Report: typeof Cypress !== 'undefined' ? require('./Report.js') : require('./Report.js').default, + Migration: + typeof Cypress !== 'undefined' ? require('./Migration.js') : require('./Migration.js').default, + InviteCode: + typeof Cypress !== 'undefined' + ? require('./InviteCode.js') + : require('./InviteCode.js').default, } diff --git a/package.json b/package.json index 241fac6e3..9af315e12 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "jsonwebtoken": "^8.5.1", "mock-socket": "^9.0.3", "neo4j-driver": "^4.3.4", - "neode": "^0.4.9", + "neode": "^0.4.8", "rosie": "^2.1.0", "slug": "^6.0.0", "wait-on": "^7.0.1" From 000695aece6c19557ead1de32df9545e09794c77 Mon Sep 17 00:00:00 2001 From: mahula Date: Tue, 6 Jun 2023 08:57:19 +0200 Subject: [PATCH 159/406] update neode package --- backend/src/models/index.js | 49 ++++++++++++------------------------- package.json | 2 +- 2 files changed, 17 insertions(+), 34 deletions(-) diff --git a/backend/src/models/index.js b/backend/src/models/index.js index 347c3a029..503dc2ac3 100644 --- a/backend/src/models/index.js +++ b/backend/src/models/index.js @@ -1,37 +1,20 @@ // NOTE: We cannot use `fs` here to clean up the code. Cypress breaks on any npm // module that is not browser-compatible. Node's `fs` module is server-side only export default { - Image: typeof Cypress !== 'undefined' ? require('./Image.js') : require('./Image.js').default, - Badge: typeof Cypress !== 'undefined' ? require('./Badge.js') : require('./Badge.js').default, - User: typeof Cypress !== 'undefined' ? require('./User.js') : require('./User.js').default, - Group: typeof Cypress !== 'undefined' ? require('./Group.js') : require('./Group.js').default, - EmailAddress: - typeof Cypress !== 'undefined' - ? require('./EmailAddress.js') - : require('./EmailAddress.js').default, - UnverifiedEmailAddress: - typeof Cypress !== 'undefined' - ? require('./UnverifiedEmailAddress.js') - : require('./UnverifiedEmailAddress.js').default, - SocialMedia: - typeof Cypress !== 'undefined' - ? require('./SocialMedia.js') - : require('./SocialMedia.js').default, - Post: typeof Cypress !== 'undefined' ? require('./Post.js') : require('./Post.js').default, - Comment: - typeof Cypress !== 'undefined' ? require('./Comment.js') : require('./Comment.js').default, - Category: - typeof Cypress !== 'undefined' ? require('./Category.js') : require('./Category.js').default, - Tag: typeof Cypress !== 'undefined' ? require('./Tag.js') : require('./Tag.js').default, - Location: - typeof Cypress !== 'undefined' ? require('./Location.js') : require('./Location.js').default, - Donations: - typeof Cypress !== 'undefined' ? require('./Donations.js') : require('./Donations.js').default, - Report: typeof Cypress !== 'undefined' ? require('./Report.js') : require('./Report.js').default, - Migration: - typeof Cypress !== 'undefined' ? require('./Migration.js') : require('./Migration.js').default, - InviteCode: - typeof Cypress !== 'undefined' - ? require('./InviteCode.js') - : require('./InviteCode.js').default, + Image: require('./Image.js').default, + Badge:require('./Badge.js').default, + User:require('./User.js').default, + Group:require('./Group.js').default, + EmailAddress: require('./EmailAddress.js').default, + UnverifiedEmailAddress: require('./UnverifiedEmailAddress.js').default, + SocialMedia: require('./SocialMedia.js').default, + Post: require('./Post.js').default, + Comment: require('./Comment.js').default, + Category: require('./Category.js').default, + Tag: require('./Tag.js').default, + Location: require('./Location.js').default, + Donations: require('./Donations.js').default, + Report: require('./Report.js').default, + Migration: require('./Migration.js').default, + InviteCode: require('./InviteCode.js').default, } diff --git a/package.json b/package.json index 9af315e12..241fac6e3 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "jsonwebtoken": "^8.5.1", "mock-socket": "^9.0.3", "neo4j-driver": "^4.3.4", - "neode": "^0.4.8", + "neode": "^0.4.9", "rosie": "^2.1.0", "slug": "^6.0.0", "wait-on": "^7.0.1" From ec686bf29845f9d459a7c8819e14f59ca4cc1542 Mon Sep 17 00:00:00 2001 From: mahula Date: Tue, 6 Jun 2023 09:43:31 +0200 Subject: [PATCH 160/406] Revert "update neode package" This reverts commit fafca69dbb86d494cf391a2653b5f2b229074573. --- backend/src/models/index.js | 49 +++++++++++++++++++++++++------------ package.json | 2 +- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/backend/src/models/index.js b/backend/src/models/index.js index 503dc2ac3..347c3a029 100644 --- a/backend/src/models/index.js +++ b/backend/src/models/index.js @@ -1,20 +1,37 @@ // NOTE: We cannot use `fs` here to clean up the code. Cypress breaks on any npm // module that is not browser-compatible. Node's `fs` module is server-side only export default { - Image: require('./Image.js').default, - Badge:require('./Badge.js').default, - User:require('./User.js').default, - Group:require('./Group.js').default, - EmailAddress: require('./EmailAddress.js').default, - UnverifiedEmailAddress: require('./UnverifiedEmailAddress.js').default, - SocialMedia: require('./SocialMedia.js').default, - Post: require('./Post.js').default, - Comment: require('./Comment.js').default, - Category: require('./Category.js').default, - Tag: require('./Tag.js').default, - Location: require('./Location.js').default, - Donations: require('./Donations.js').default, - Report: require('./Report.js').default, - Migration: require('./Migration.js').default, - InviteCode: require('./InviteCode.js').default, + Image: typeof Cypress !== 'undefined' ? require('./Image.js') : require('./Image.js').default, + Badge: typeof Cypress !== 'undefined' ? require('./Badge.js') : require('./Badge.js').default, + User: typeof Cypress !== 'undefined' ? require('./User.js') : require('./User.js').default, + Group: typeof Cypress !== 'undefined' ? require('./Group.js') : require('./Group.js').default, + EmailAddress: + typeof Cypress !== 'undefined' + ? require('./EmailAddress.js') + : require('./EmailAddress.js').default, + UnverifiedEmailAddress: + typeof Cypress !== 'undefined' + ? require('./UnverifiedEmailAddress.js') + : require('./UnverifiedEmailAddress.js').default, + SocialMedia: + typeof Cypress !== 'undefined' + ? require('./SocialMedia.js') + : require('./SocialMedia.js').default, + Post: typeof Cypress !== 'undefined' ? require('./Post.js') : require('./Post.js').default, + Comment: + typeof Cypress !== 'undefined' ? require('./Comment.js') : require('./Comment.js').default, + Category: + typeof Cypress !== 'undefined' ? require('./Category.js') : require('./Category.js').default, + Tag: typeof Cypress !== 'undefined' ? require('./Tag.js') : require('./Tag.js').default, + Location: + typeof Cypress !== 'undefined' ? require('./Location.js') : require('./Location.js').default, + Donations: + typeof Cypress !== 'undefined' ? require('./Donations.js') : require('./Donations.js').default, + Report: typeof Cypress !== 'undefined' ? require('./Report.js') : require('./Report.js').default, + Migration: + typeof Cypress !== 'undefined' ? require('./Migration.js') : require('./Migration.js').default, + InviteCode: + typeof Cypress !== 'undefined' + ? require('./InviteCode.js') + : require('./InviteCode.js').default, } diff --git a/package.json b/package.json index 241fac6e3..9af315e12 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "jsonwebtoken": "^8.5.1", "mock-socket": "^9.0.3", "neo4j-driver": "^4.3.4", - "neode": "^0.4.9", + "neode": "^0.4.8", "rosie": "^2.1.0", "slug": "^6.0.0", "wait-on": "^7.0.1" From 2ac1d26947475b39ebc6f57a833af52cda75d216 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 09:26:51 +0200 Subject: [PATCH 161/406] Add free line to ContributionForm spec. --- webapp/components/InputCheckbox/InputCheckbox.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/webapp/components/InputCheckbox/InputCheckbox.spec.js b/webapp/components/InputCheckbox/InputCheckbox.spec.js index e69de29bb..8b1378917 100644 --- a/webapp/components/InputCheckbox/InputCheckbox.spec.js +++ b/webapp/components/InputCheckbox/InputCheckbox.spec.js @@ -0,0 +1 @@ + From 9715df70f855a751553941de16889113ff013361 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 09:35:54 +0200 Subject: [PATCH 162/406] Merge @maeckes PR in @elweyn PR. Co-authored-by: maeckes --- .../ContributionForm/ContributionForm.vue | 46 ++++++++++++++----- webapp/locales/en.json | 2 +- webapp/pages/post/create.vue | 18 +++++--- 3 files changed, 48 insertions(+), 18 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 61f100310..d346cf3a7 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -58,9 +58,9 @@
- + -
+
-
+
- + - - + +
- + {{ $t('post.viewEvent.eventIsOnline') }}
@@ -153,7 +153,7 @@ - + .base-card { @@ -497,6 +515,12 @@ export default { min-width: fit-content; } } + + > .buttons-footer-helper { + margin-right: 16px; + // important needed because of component inline style + margin-bottom: 6px !important; + } } .blur-toggle { diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 4021c053a..0f0b9c6b4 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -722,7 +722,7 @@ "forGroup": { "title": "For The Group “{name}”" }, - "title": "Create A New Post" + "title": "Create A New Article" }, "edited": "edited", "editPost": { diff --git a/webapp/pages/post/create.vue b/webapp/pages/post/create.vue index dbe58eaa0..cc4fb828a 100644 --- a/webapp/pages/post/create.vue +++ b/webapp/pages/post/create.vue @@ -1,10 +1,10 @@ @@ -114,4 +112,12 @@ export default { font-size: 30px; text-align: center; } + +// copy hover effect from ghost button to use for ds-card +.create-form-btn:not(.ds-card-primary):hover { + background-color: #faf9fa; +} +.create-form-btn .ds-button-ghost:hover { + background-color: transparent; +} From 3d99382df9889b96056f5af83cc80ec6550503da Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 10:18:53 +0200 Subject: [PATCH 163/406] Add change event for checkbox. --- webapp/components/ContributionForm/ContributionForm.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index d346cf3a7..b95e977a1 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -134,6 +134,7 @@ v-model="formData.eventIsOnline" name="eventIsOnline" class="event-grid-item-font-helper" + @change="changeEventIsOnline($event)" /> {{ $t('post.viewEvent.eventIsOnline') }} @@ -384,6 +385,9 @@ export default { updateEditorContent(value) { this.$refs.contributionForm.update('content', value) }, + changeEventIsOnline(event) { + this.$refs.contributionForm.update('eventIsOnline', event.target.value) + }, addHeroImage(file) { this.formData.image = null if (file) { From 89503b6b13376fade9a844cf71b1b670938e9d98 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 10:20:28 +0200 Subject: [PATCH 164/406] Add change event for eventEnd. --- webapp/components/ContributionForm/ContributionForm.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index b95e977a1..eb630ec46 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -96,6 +96,7 @@ :disabled-date="notBeforeEventDay" :disabled-time="notBeforeEvent" :show-second="false" + @change="changeEventEnd($event)" >
@@ -388,6 +389,9 @@ export default { changeEventIsOnline(event) { this.$refs.contributionForm.update('eventIsOnline', event.target.value) }, + changeEventEnd(event) { + this.$refs.contributionForm.update('eventEnd', event.target.value) + }, addHeroImage(file) { this.formData.image = null if (file) { From c0ae044182b479b73297078a5c9853915c865c5b Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 10:31:22 +0200 Subject: [PATCH 165/406] WIP add change event on DatePicker. --- .../ContributionForm/ContributionForm.vue | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index eb630ec46..472d0db54 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -73,6 +73,7 @@ :disabled-date="notBeforeToday" :disabled-time="notBeforeNow" :show-second="false" + @change="changeEventStart($event)" >
@@ -86,6 +87,7 @@ Date: Wed, 7 Jun 2023 10:49:27 +0200 Subject: [PATCH 166/406] Make form interactive.. --- .../ContributionForm/ContributionForm.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 472d0db54..f4fc9ec46 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -116,7 +116,7 @@
- + Date: Wed, 7 Jun 2023 10:51:35 +0200 Subject: [PATCH 167/406] Remove unused InputCheckbox component. --- .../InputCheckbox/InputCheckbox.spec.js | 1 - .../InputCheckbox/InputCheckbox.vue | 42 ------------------- 2 files changed, 43 deletions(-) delete mode 100644 webapp/components/InputCheckbox/InputCheckbox.spec.js delete mode 100644 webapp/components/InputCheckbox/InputCheckbox.vue diff --git a/webapp/components/InputCheckbox/InputCheckbox.spec.js b/webapp/components/InputCheckbox/InputCheckbox.spec.js deleted file mode 100644 index 8b1378917..000000000 --- a/webapp/components/InputCheckbox/InputCheckbox.spec.js +++ /dev/null @@ -1 +0,0 @@ - diff --git a/webapp/components/InputCheckbox/InputCheckbox.vue b/webapp/components/InputCheckbox/InputCheckbox.vue deleted file mode 100644 index 04177d233..000000000 --- a/webapp/components/InputCheckbox/InputCheckbox.vue +++ /dev/null @@ -1,42 +0,0 @@ - - From 2c31453bb0b08467ccc6ca8fb6a21a25f777271e Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 7 Jun 2023 11:50:46 +0200 Subject: [PATCH 168/406] test event data form --- .../ContributionForm/ContributionForm.spec.js | 89 ++++++++++++++++++- .../ContributionForm/ContributionForm.vue | 4 +- 2 files changed, 90 insertions(+), 3 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.spec.js b/webapp/components/ContributionForm/ContributionForm.spec.js index 6b9db448b..9095665fc 100644 --- a/webapp/components/ContributionForm/ContributionForm.spec.js +++ b/webapp/components/ContributionForm/ContributionForm.spec.js @@ -1,8 +1,8 @@ import { mount } from '@vue/test-utils' import ContributionForm from './ContributionForm.vue' +import PostMutations from '~/graphql/PostMutations.js' import Vuex from 'vuex' -import PostMutations from '~/graphql/PostMutations.js' import ImageUploader from '~/components/Uploader/ImageUploader' import MutationObserver from 'mutation-observer' @@ -108,6 +108,10 @@ describe('ContributionForm.vue', () => { await wrapper.vm.updateEditorContent(postContent) }) + it('has no event data block', () => { + expect(wrapper.find('div.eventDatas').exists()).toBe(false) + }) + it('title cannot be empty', async () => { postTitleInput.setValue('') wrapper.find('form').trigger('submit') @@ -293,5 +297,88 @@ describe('ContributionForm.vue', () => { }) }) }) + + describe('Events', () => { + beforeEach(() => { + propsData.createEvent = true + wrapper = Wrapper() + }) + + it('has event data block', () => { + expect(wrapper.find('div.eventDatas').exists()).toBe(true) + }) + + describe('is online event', () => { + it('has false as default', () => { + expect(wrapper.vm.formData.eventIsOnline).toBe(false) + }) + + it('has input for event location', () => { + expect(wrapper.find('input[name="eventLocationName"]').exists()).toBe(true) + }) + + describe('click is online event', () => { + beforeEach(() => { + wrapper.find('input[name="eventIsOnline"]').setChecked(true) + }) + + it('has no input for event location', () => { + expect(wrapper.find('input[name="eventLocationName"]').exists()).toBe(false) + }) + }) + + describe('invalid form', () => { + beforeEach(() => { + wrapper.find('input[name="title"]').setValue('Illegaler Kindergeburtstag') + wrapper.vm.updateEditorContent('Elli hat Geburtstag!') + }) + + it('has submit button disabled', () => { + expect(wrapper.find('button[type="submit"]').attributes('disabled')).toBe('disabled') + }) + }) + + describe('valid form', () => { + const now = new Date() + + beforeEach(() => { + wrapper.find('input[name="title"]').setValue('Illegaler Kindergeburtstag') + wrapper.vm.updateEditorContent('Elli hat Geburtstag!') + wrapper + .findComponent({ name: 'DatePicker' }) + .vm.$emit('change', new Date(now.getFullYear(), now.getMonth() + 1).toISOString()) + wrapper.find('input[name="eventVenue"]').setValue('Ellis Kinderzimmer') + wrapper.find('input[name="eventLocationName"]').setValue('Deutschland') + }) + + it('has submit button not disabled', () => { + expect(wrapper.find('button[type="submit"]').attributes('disabled')).toBe(undefined) + }) + + describe('submit', () => { + beforeEach(() => { + wrapper.find('form').trigger('submit') + }) + + it('calls create post', () => { + expect(mocks.$apollo.mutate).toHaveBeenCalledWith({ + mutation: PostMutations().CreatePost, + variables: expect.objectContaining({ + title: 'Illegaler Kindergeburtstag', + content: 'Elli hat Geburtstag!', + eventInput: { + eventStart: new Date(now.getFullYear(), now.getMonth() + 1).toISOString(), + eventVenue: 'Ellis Kinderzimmer', + eventLocationName: 'Deutschland', + eventIsOnline: false, + eventEnd: null, + }, + }), + }) + }) + }) + }) + }) + }) }) }) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index f4fc9ec46..31ff849a3 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -106,7 +106,7 @@
@@ -119,7 +119,7 @@
From de553e1f8262c8a1775e9a60f6d6114740708565 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 12:27:09 +0200 Subject: [PATCH 169/406] Make eventEnd removable. Co-authored-by: maeckes --- backend/src/schema/resolvers/helpers/events.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/src/schema/resolvers/helpers/events.js b/backend/src/schema/resolvers/helpers/events.js index 84e64299d..e97d7aeac 100644 --- a/backend/src/schema/resolvers/helpers/events.js +++ b/backend/src/schema/resolvers/helpers/events.js @@ -5,10 +5,10 @@ export const validateEventParams = (params) => { const { eventInput } = params validateEventDate(eventInput.eventStart) params.eventStart = eventInput.eventStart - if (eventInput.eventEnd) { - validateEventEnd(eventInput.eventStart, eventInput.eventEnd) - params.eventEnd = eventInput.eventEnd - } + + validateEventEnd(eventInput.eventStart, eventInput.eventEnd) + params.eventEnd = eventInput.eventEnd + if (eventInput.eventLocationName && !eventInput.eventVenue) { throw new UserInputError('Event venue must be present if event location is given!') } @@ -38,6 +38,7 @@ const validateEventDate = (dateString) => { } const validateEventEnd = (start, end) => { + if (end === null) return const endDate = new Date(end) if (endDate.toString() === 'Invalid Date') throw new UserInputError('Event end date must be a valid date!') From 3dadfd43299aa54e92dbfed56d158d63d67b2965 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 12:34:09 +0200 Subject: [PATCH 170/406] Add a trim to check if locationName is not empty. --- backend/src/schema/resolvers/helpers/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/helpers/events.js b/backend/src/schema/resolvers/helpers/events.js index e97d7aeac..41f8b0d74 100644 --- a/backend/src/schema/resolvers/helpers/events.js +++ b/backend/src/schema/resolvers/helpers/events.js @@ -18,7 +18,7 @@ export const validateEventParams = (params) => { } delete params.eventInput let locationName - if (params.eventLocationName) { + if (params.eventLocationName.trim()) { locationName = params.eventLocationName } else { params.eventLocationName = null From 4e43b77da2ea05859c334ab1d24530bfe79f8f91 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 12:55:21 +0200 Subject: [PATCH 171/406] Add custom error messages for events. Co-authored-by: maeckes --- .../ContributionForm/ContributionForm.vue | 23 ++++++++++++++++++- webapp/locales/de.json | 4 ++++ webapp/locales/en.json | 4 ++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 31ff849a3..ae1a7654b 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -286,11 +286,32 @@ export default { }, }, eventStart: { required: !!this.createEvent }, - eventVenue: { required: !!this.createEvent, min: 3, max: 100 }, + eventVenue: { + required: !!this.createEvent, + min: 3, + max: 100, + validator: (_, value = '') => { + if (!value.trim()) { + return [new Error(this.$t('common.validations.eventVenueNotEmpty'))] + } + if (value.length < 3 || value.length > 100) { + return [new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 }))] + } + return [] + }, }, eventLocationName: { required: !!this.createEvent && !this.formData.eventIsOnline, min: 3, max: 100, + validator: (_, value = '') => { + if (!value.trim()) { + return [new Error(this.$t('common.validations.eventLocationNameNotEmpty'))] + } + if (value.length < 3 || value.length > 100) { + return [new Error(this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }))] + } + return [] + }, }, } }, diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 1b57fb0dc..5acab107e 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -115,6 +115,10 @@ "validations": { "categories": "es müssen eine bis drei Themen ausgewählt werden", "email": "muss eine gültige E-Mail-Adresse sein", + "eventLocationNameLength": "Mindestens {min} Maximal {max}", + "eventLocationNameNotEmpty": "es dürfen nicht nur Freizeichen eingetragen werden", + "eventVenueLength": "Mindestens {min} Maximal {max}", + "eventVenueNotEmpty": "es dürfen nicht nur Freizeichen eingetragen werden", "url": "muss eine gültige URL sein" }, "versus": "Versus" diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 0f0b9c6b4..565f4b80a 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -115,6 +115,10 @@ "validations": { "categories": "at least one and at most three topics must be selected", "email": "must be a valid e-mail address", + "eventLocationNameLength": "minimal {min} maximal {max}", + "eventLocationNameNotEmpty": "only empty characters are not allowed", + "eventVenueLength": "minimal {min} maximal {max}", + "eventVenueNotEmpty": "only empty characters are not allowed", "url": "must be a valid URL" }, "versus": "Versus" From 7ad74b139863ba518ec74d24fcded15c873a681d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Wed, 7 Jun 2023 14:06:28 +0200 Subject: [PATCH 172/406] Move date time range to an own component --- .../ContributionForm/ContributionForm.vue | 15 ++- webapp/components/DateRange/DateRange.vue | 114 ++++++++++++++++++ webapp/components/PostTeaser/PostTeaser.vue | 23 ++-- webapp/pages/post/_id/_slug/index.vue | 56 ++------- 4 files changed, 146 insertions(+), 62 deletions(-) create mode 100644 webapp/components/DateRange/DateRange.vue diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index ae1a7654b..b1b9b3935 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -286,7 +286,7 @@ export default { }, }, eventStart: { required: !!this.createEvent }, - eventVenue: { + eventVenue: { required: !!this.createEvent, min: 3, max: 100, @@ -295,10 +295,13 @@ export default { return [new Error(this.$t('common.validations.eventVenueNotEmpty'))] } if (value.length < 3 || value.length > 100) { - return [new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 }))] + return [ + new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 })), + ] } return [] - }, }, + }, + }, eventLocationName: { required: !!this.createEvent && !this.formData.eventIsOnline, min: 3, @@ -308,7 +311,11 @@ export default { return [new Error(this.$t('common.validations.eventLocationNameNotEmpty'))] } if (value.length < 3 || value.length > 100) { - return [new Error(this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }))] + return [ + new Error( + this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }), + ), + ] } return [] }, diff --git a/webapp/components/DateRange/DateRange.vue b/webapp/components/DateRange/DateRange.vue new file mode 100644 index 000000000..be895f31a --- /dev/null +++ b/webapp/components/DateRange/DateRange.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/webapp/components/PostTeaser/PostTeaser.vue b/webapp/components/PostTeaser/PostTeaser.vue index 604fb121f..5f18d5d5b 100644 --- a/webapp/components/PostTeaser/PostTeaser.vue +++ b/webapp/components/PostTeaser/PostTeaser.vue @@ -44,10 +44,12 @@ - - - {{ getEventDateString }} - + @@ -113,12 +115,12 @@ import Category from '~/components/Category' import ContentMenu from '~/components/ContentMenu/ContentMenu' import CounterIcon from '~/components/_new/generic/CounterIcon/CounterIcon' +import DateRange from '~/components/DateRange/DateRange' import HcRibbon from '~/components/Ribbon' import UserTeaser from '~/components/UserTeaser/UserTeaser' import { mapGetters } from 'vuex' import PostMutations from '~/graphql/PostMutations' import { postMenuModalsData, deletePostMutation } from '~/components/utils/PostHelpers' -import { format } from 'date-fns' export default { name: 'PostTeaser', @@ -126,6 +128,7 @@ export default { Category, ContentMenu, CounterIcon, + DateRange, HcRibbon, UserTeaser, }, @@ -185,15 +188,6 @@ export default { if (this.post.postType[0] === 'Event') return this.$t('post.event') return this.$t('post.name') }, - getEventDateString() { - if (this.post.eventEnd) { - const eventStart = format(new Date(this.post.eventStart), 'dd.MM.') - const eventEnd = format(new Date(this.post.eventEnd), 'dd.MM.yyyy') - return `${eventStart} - ${eventEnd}` - } else { - return format(new Date(this.post.eventStart), 'dd.MM.yyyy') - } - }, }, methods: { async deletePostCallback() { @@ -228,6 +222,7 @@ export default { }, } + diff --git a/webapp/components/PostTeaser/PostTeaser.vue b/webapp/components/PostTeaser/PostTeaser.vue index 615b18054..c76ebfc7b 100644 --- a/webapp/components/PostTeaser/PostTeaser.vue +++ b/webapp/components/PostTeaser/PostTeaser.vue @@ -32,15 +32,13 @@ > - - - - {{ $t('post.viewEvent.eventIsOnline') }} - - - {{ post.eventLocationName }} - - + - - - {{ post.eventVenue }} - - - {{ post.eventLocationName }} - - - {{ $t('post.viewEvent.eventIsOnline') }} - - + Date: Wed, 7 Jun 2023 16:43:38 +0200 Subject: [PATCH 180/406] Fix eventLocationName validator and remove eventLocationName of query parameters if eventIsOnline true. --- webapp/components/ContributionForm/ContributionForm.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index ae1a7654b..c305b1fed 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -304,6 +304,7 @@ export default { min: 3, max: 100, validator: (_, value = '') => { + if (this.formData.eventIsOnline) return [] if (!value.trim()) { return [new Error(this.$t('common.validations.eventLocationNameNotEmpty'))] } @@ -322,7 +323,7 @@ export default { eventVenue: this.formData.eventVenue, eventEnd: this.formData.eventEnd, eventIsOnline: this.formData.eventIsOnline, - eventLocationName: this.formData.eventLocationName, + eventLocationName: !this.formData.eventIsOnline ? this.formData.eventLocationName : null, } } return undefined From 107a9491ca046a38aadb8d7f8f257b14b4fdeb16 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 16:47:30 +0200 Subject: [PATCH 181/406] Correct some locales. --- webapp/locales/de.json | 4 ++-- webapp/locales/en.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 5acab107e..1ce7d2f61 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -115,9 +115,9 @@ "validations": { "categories": "es müssen eine bis drei Themen ausgewählt werden", "email": "muss eine gültige E-Mail-Adresse sein", - "eventLocationNameLength": "Mindestens {min} Maximal {max}", + "eventLocationNameLength": "Minimum {min}, Maximum {max} Zeichen", "eventLocationNameNotEmpty": "es dürfen nicht nur Freizeichen eingetragen werden", - "eventVenueLength": "Mindestens {min} Maximal {max}", + "eventVenueLength": "Minimum {min}, Maximum {max} Zeichen", "eventVenueNotEmpty": "es dürfen nicht nur Freizeichen eingetragen werden", "url": "muss eine gültige URL sein" }, diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 565f4b80a..f25cc8575 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -115,9 +115,9 @@ "validations": { "categories": "at least one and at most three topics must be selected", "email": "must be a valid e-mail address", - "eventLocationNameLength": "minimal {min} maximal {max}", + "eventLocationNameLength": "minimum {min} or maximum {max} characters", "eventLocationNameNotEmpty": "only empty characters are not allowed", - "eventVenueLength": "minimal {min} maximal {max}", + "eventVenueLength": "minimum {min} or maximum {max} characters", "eventVenueNotEmpty": "only empty characters are not allowed", "url": "must be a valid URL" }, From 930c1f219b613a60060b0057ba8b52511d6683b4 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 17:08:31 +0200 Subject: [PATCH 182/406] Fix linting of webapp. --- .../ContributionForm/ContributionForm.vue | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index c305b1fed..6db9f7e02 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -286,7 +286,7 @@ export default { }, }, eventStart: { required: !!this.createEvent }, - eventVenue: { + eventVenue: { required: !!this.createEvent, min: 3, max: 100, @@ -295,10 +295,13 @@ export default { return [new Error(this.$t('common.validations.eventVenueNotEmpty'))] } if (value.length < 3 || value.length > 100) { - return [new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 }))] + return [ + new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 })), + ] } return [] - }, }, + }, + }, eventLocationName: { required: !!this.createEvent && !this.formData.eventIsOnline, min: 3, @@ -309,7 +312,11 @@ export default { return [new Error(this.$t('common.validations.eventLocationNameNotEmpty'))] } if (value.length < 3 || value.length > 100) { - return [new Error(this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }))] + return [ + new Error( + this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }), + ), + ] } return [] }, From e18baf34f3c491fa4cac95c4ed036fc08c79d9db Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 17:09:19 +0200 Subject: [PATCH 183/406] Fix linting of backend. --- backend/src/schema/resolvers/helpers/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/helpers/events.js b/backend/src/schema/resolvers/helpers/events.js index bb573021f..835088d8c 100644 --- a/backend/src/schema/resolvers/helpers/events.js +++ b/backend/src/schema/resolvers/helpers/events.js @@ -11,7 +11,7 @@ export const validateEventParams = (params) => { validateEventEnd(eventInput.eventStart, eventInput.eventEnd) params.eventEnd = eventInput.eventEnd } else { - params.eventEnd = null + params.eventEnd = null } if (eventInput.eventLocationName && !eventInput.eventVenue) { From 2f87ea0de7a05896af9d71018806989ca1ee1fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Wed, 7 Jun 2023 17:21:06 +0200 Subject: [PATCH 184/406] Fix linting in backend --- backend/src/schema/resolvers/helpers/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/helpers/events.js b/backend/src/schema/resolvers/helpers/events.js index bb573021f..835088d8c 100644 --- a/backend/src/schema/resolvers/helpers/events.js +++ b/backend/src/schema/resolvers/helpers/events.js @@ -11,7 +11,7 @@ export const validateEventParams = (params) => { validateEventEnd(eventInput.eventStart, eventInput.eventEnd) params.eventEnd = eventInput.eventEnd } else { - params.eventEnd = null + params.eventEnd = null } if (eventInput.eventLocationName && !eventInput.eventVenue) { From a8659e37bd3d06133060018af7e3f8f676a8e563 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 7 Jun 2023 17:46:06 +0200 Subject: [PATCH 185/406] check required in valiator --- .../ContributionForm/#ContributionForm.vue# | 623 ++++++++++++++++++ .../ContributionForm/ContributionForm.vue | 17 +- 2 files changed, 636 insertions(+), 4 deletions(-) create mode 100644 webapp/components/ContributionForm/#ContributionForm.vue# diff --git a/webapp/components/ContributionForm/#ContributionForm.vue# b/webapp/components/ContributionForm/#ContributionForm.vue# new file mode 100644 index 000000000..1d1353b1e --- /dev/null +++ b/webapp/components/ContributionForm/#ContributionForm.vue# @@ -0,0 +1,623 @@ + + + + diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index c305b1fed..47841c717 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -286,30 +286,39 @@ export default { }, }, eventStart: { required: !!this.createEvent }, - eventVenue: { + eventVenue: { required: !!this.createEvent, min: 3, max: 100, validator: (_, value = '') => { + if (!this.createEvent) return [] if (!value.trim()) { return [new Error(this.$t('common.validations.eventVenueNotEmpty'))] } if (value.length < 3 || value.length > 100) { - return [new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 }))] + return [ + new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 })), + ] } return [] - }, }, + }, + }, eventLocationName: { required: !!this.createEvent && !this.formData.eventIsOnline, min: 3, max: 100, validator: (_, value = '') => { + if (!this.createEvent) return [] if (this.formData.eventIsOnline) return [] if (!value.trim()) { return [new Error(this.$t('common.validations.eventLocationNameNotEmpty'))] } if (value.length < 3 || value.length > 100) { - return [new Error(this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }))] + return [ + new Error( + this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }), + ), + ] } return [] }, From a669f799ae5cea661e3cb2dcc17ac2e3aa483c17 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 7 Jun 2023 17:48:06 +0200 Subject: [PATCH 186/406] remove emacs backup --- .../ContributionForm/#ContributionForm.vue# | 623 ------------------ 1 file changed, 623 deletions(-) delete mode 100644 webapp/components/ContributionForm/#ContributionForm.vue# diff --git a/webapp/components/ContributionForm/#ContributionForm.vue# b/webapp/components/ContributionForm/#ContributionForm.vue# deleted file mode 100644 index 1d1353b1e..000000000 --- a/webapp/components/ContributionForm/#ContributionForm.vue# +++ /dev/null @@ -1,623 +0,0 @@ - - - - From 9ee47c13625295842b882aac681f87d06442e213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Wed, 7 Jun 2023 20:10:10 +0200 Subject: [PATCH 187/406] Fulfill Mogges suggestions Co-Authored-By: Mogge --- .../DateTimeRange/DateTimeRange.vue | 25 +++++++++++-------- webapp/locales/de.json | 5 ++++ webapp/locales/en.json | 5 ++++ 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/webapp/components/DateTimeRange/DateTimeRange.vue b/webapp/components/DateTimeRange/DateTimeRange.vue index 8d318709a..de9b442c5 100644 --- a/webapp/components/DateTimeRange/DateTimeRange.vue +++ b/webapp/components/DateTimeRange/DateTimeRange.vue @@ -8,11 +8,12 @@
{{ - getStartTimeString + (this.endDateAsDate && isSameDay ? '—' + getEndTimeString : '') + getStartTimeString + + (this.endDateAsDate && isSameDayLocal ? '—' + getEndTimeString : '') }}
-