diff --git a/.github/workflows/cd-manual.yml b/.github/workflows/cd-manual.yml index ac701fcc50..1f8651fa29 100644 --- a/.github/workflows/cd-manual.yml +++ b/.github/workflows/cd-manual.yml @@ -20,11 +20,26 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Extract version parts from input + id: extract_version + run: | + echo "version=$(echo ${{ github.event.inputs.version }})" >> $GITHUB_ENV + echo "major=$(echo ${{ github.event.inputs.version }} | cut -d. -f1)" >> $GITHUB_ENV + echo "minor=$(echo ${{ github.event.inputs.version }} | cut -d. -f2)" >> $GITHUB_ENV + + - name: Generate tags + id: generate_tags + run: | + echo "tag_major=$(echo ${{ matrix.db-type }}-${{ env.major }})" >> $GITHUB_ENV + echo "tag_minor=$(echo ${{ matrix.db-type }}-${{ env.major }}.${{ env.minor }})" >> $GITHUB_ENV + echo "tag_patch=$(echo ${{ matrix.db-type }}-${{ env.version }})" >> $GITHUB_ENV + echo "tag_latest=$(echo ${{ matrix.db-type }}-latest)" >> $GITHUB_ENV + - uses: mr-smithers-excellent/docker-build-push@v6 name: Build & push Docker image to ghcr.io for ${{ matrix.db-type }} with: image: umami - tags: ${{ matrix.db-type }}-${{ inputs.version }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: ghcr.io multiPlatform: true @@ -36,7 +51,7 @@ jobs: name: Build & push Docker image to docker.io for ${{ matrix.db-type }} with: image: umamisoftware/umami - tags: ${{ matrix.db-type }}-${{ inputs.version }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: docker.io username: ${{ secrets.DOCKER_USERNAME }} diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index b4de549922..f67f51c385 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -17,14 +17,21 @@ jobs: - name: Set env run: | - echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV echo "NOW=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV + + - name: Generate tags + id: generate_tags + run: | + echo "tag_patch=$(echo ${{ matrix.db-type }})-${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + echo "tag_minor=$(echo ${{ matrix.db-type }})-$(echo ${GITHUB_REF#refs/tags/} | cut -d. -f1,2)" >> $GITHUB_ENV + echo "tag_major=$(echo ${{ matrix.db-type }})-$(echo ${GITHUB_REF#refs/tags/} | cut -d. -f1)" >> $GITHUB_ENV + echo "tag_latest=$(echo ${{ matrix.db-type }})-latest" >> $GITHUB_ENV - uses: mr-smithers-excellent/docker-build-push@v6 name: Build & push Docker image to ghcr.io for ${{ matrix.db-type }} with: image: umami - tags: ${{ matrix.db-type }}-${{ env.RELEASE_VERSION }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: ghcr.io multiPlatform: true @@ -32,12 +39,11 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - uses: mr-smithers-excellent/docker-build-push@v6 name: Build & push Docker image to docker.io for ${{ matrix.db-type }} with: image: umamisoftware/umami - tags: ${{ matrix.db-type }}-${{ env.RELEASE_VERSION }}, ${{ matrix.db-type }}-latest + tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: docker.io username: ${{ secrets.DOCKER_USERNAME }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 22a083c08a..314c6944bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,9 +16,9 @@ jobs: strategy: matrix: include: - - node-version: 18.17 + - node-version: 18.18 db-type: postgresql - - node-version: 18.17 + - node-version: 18.18 db-type: mysql steps: diff --git a/Dockerfile b/Dockerfile index 0f7c2d3500..824c16db06 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,7 @@ RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs RUN set -x \ - && apk add --no-cache curl \ + && apk add --no-cache curl openssl \ && yarn add npm-run-all dotenv semver prisma@5.17.0 # You only need to copy next.config.js if you are NOT using the default configuration diff --git a/README.md b/README.md index 33a5aac39a..b13784283e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Umami Logo + Umami Logo

Umami

@@ -35,8 +35,8 @@ A detailed getting started guide can be found at [umami.is/docs](https://umami.i ### Requirements -- A server with Node.js version 16.13 or newer -- A database. Umami supports [MySQL](https://www.mysql.com/) (minimum v8.0) and [PostgreSQL](https://www.postgresql.org/) (minimum v12.14) databases. +- A server with Node.js version 18.18 or newer +- A database. Umami supports [MariaDB](https://www.mariadb.org/) (minimum v10.5), [MySQL](https://www.mysql.com/) (minimum v8.0) and [PostgreSQL](https://www.postgresql.org/) (minimum v12.14) databases. ### Install Yarn diff --git a/db/mysql/migrations/01_init/migration.sql b/db/mysql/migrations/01_init/migration.sql index bd332805a4..d66e2a9ccf 100644 --- a/db/mysql/migrations/01_init/migration.sql +++ b/db/mysql/migrations/01_init/migration.sql @@ -11,7 +11,7 @@ CREATE TABLE `user` ( UNIQUE INDEX `user_user_id_key`(`user_id`), UNIQUE INDEX `user_username_key`(`username`), PRIMARY KEY (`user_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `session` ( @@ -33,7 +33,7 @@ CREATE TABLE `session` ( INDEX `session_created_at_idx`(`created_at`), INDEX `session_website_id_idx`(`website_id`), PRIMARY KEY (`session_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `website` ( @@ -53,7 +53,7 @@ CREATE TABLE `website` ( INDEX `website_created_at_idx`(`created_at`), INDEX `website_share_id_idx`(`share_id`), PRIMARY KEY (`website_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `website_event` ( @@ -76,7 +76,7 @@ CREATE TABLE `website_event` ( INDEX `website_event_website_id_created_at_idx`(`website_id`, `created_at`), INDEX `website_event_website_id_session_id_created_at_idx`(`website_id`, `session_id`, `created_at`), PRIMARY KEY (`event_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `event_data` ( @@ -95,7 +95,7 @@ CREATE TABLE `event_data` ( INDEX `event_data_website_event_id_idx`(`website_event_id`), INDEX `event_data_website_id_website_event_id_created_at_idx`(`website_id`, `website_event_id`, `created_at`), PRIMARY KEY (`event_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `team` ( @@ -109,7 +109,7 @@ CREATE TABLE `team` ( UNIQUE INDEX `team_access_code_key`(`access_code`), INDEX `team_access_code_idx`(`access_code`), PRIMARY KEY (`team_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `team_user` ( @@ -124,7 +124,7 @@ CREATE TABLE `team_user` ( INDEX `team_user_team_id_idx`(`team_id`), INDEX `team_user_user_id_idx`(`user_id`), PRIMARY KEY (`team_user_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `team_website` ( @@ -137,7 +137,7 @@ CREATE TABLE `team_website` ( INDEX `team_website_team_id_idx`(`team_id`), INDEX `team_website_website_id_idx`(`website_id`), PRIMARY KEY (`team_website_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- AddSystemUser INSERT INTO user (user_id, username, role, password) VALUES ('41e2b680-648e-4b09-bcd7-3e2b10c06264' , 'admin', 'admin', '$2b$10$BUli0c.muyCW1ErNJc3jL.vFRFtFJWrT8/GcR4A.sUdCznaXiqFXa'); \ No newline at end of file diff --git a/db/mysql/migrations/02_report_schema_session_data/migration.sql b/db/mysql/migrations/02_report_schema_session_data/migration.sql index 1649ace2d8..b165383a6c 100644 --- a/db/mysql/migrations/02_report_schema_session_data/migration.sql +++ b/db/mysql/migrations/02_report_schema_session_data/migration.sql @@ -21,7 +21,7 @@ CREATE TABLE `session_data` ( INDEX `session_data_website_id_idx`(`website_id`), INDEX `session_data_session_id_idx`(`session_id`), PRIMARY KEY (`session_data_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `report` ( @@ -41,7 +41,7 @@ CREATE TABLE `report` ( INDEX `report_type_idx`(`type`), INDEX `report_name_idx`(`name`), PRIMARY KEY (`report_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- EventData migration UPDATE event_data diff --git a/db/postgresql/schema.prisma b/db/postgresql/schema.prisma index 364986dcd2..504f70e505 100644 --- a/db/postgresql/schema.prisma +++ b/db/postgresql/schema.prisma @@ -1,5 +1,6 @@ generator client { - provider = "prisma-client-js" + provider = "prisma-client-js" + binaryTargets = ["native", "linux-musl-openssl-3.0.x"] } datasource db { @@ -19,8 +20,8 @@ model User { updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz(6) deletedAt DateTime? @map("deleted_at") @db.Timestamptz(6) - websiteUser Website[] @relation("user") - websiteCreateUser Website[] @relation("createUser") + websiteUser Website[] @relation("user") + websiteCreateUser Website[] @relation("createUser") teamUser TeamUser[] report Report[] @@ -112,7 +113,6 @@ model WebsiteEvent { @@index([visitId]) @@index([websiteId]) @@index([websiteId, createdAt]) - @@index([websiteId, createdAt, urlPath]) @@index([websiteId, createdAt, urlQuery]) @@index([websiteId, createdAt, referrerDomain]) @@ -150,7 +150,7 @@ model SessionData { id String @id() @map("session_data_id") @db.Uuid websiteId String @map("website_id") @db.Uuid sessionId String @map("session_id") @db.Uuid - dataKey String @map("data_key") @db.VarChar(500) + dataKey String @map("data_key") @db.VarChar(500) stringValue String? @map("string_value") @db.VarChar(500) numberValue Decimal? @map("number_value") @db.Decimal(19, 4) dateValue DateTime? @map("date_value") @db.Timestamptz(6) diff --git a/docker-compose.yml b/docker-compose.yml index 08f00b7c3c..185f1d0e66 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,6 +12,7 @@ services: depends_on: db: condition: service_healthy + init: true restart: always healthcheck: test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"] diff --git a/next.config.js b/next.config.js index cc295c8997..5e3a1225bb 100644 --- a/next.config.js +++ b/next.config.js @@ -3,6 +3,8 @@ require('dotenv').config(); const path = require('path'); const pkg = require('./package.json'); +const TRACKER_SCRIPT = '/script.js'; + const basePath = process.env.BASE_PATH; const collectApiEndpoint = process.env.COLLECT_API_ENDPOINT; const cloudMode = process.env.CLOUD_MODE; @@ -14,6 +16,7 @@ const forceSSL = process.env.FORCE_SSL; const frameAncestors = process.env.ALLOWED_FRAME_URLS; const privateMode = process.env.PRIVATE_MODE; const trackerScriptName = process.env.TRACKER_SCRIPT_NAME; +const trackerScriptURL = process.env.TRACKER_SCRIPT_URL; const contentSecurityPolicy = [ `default-src 'self'`, @@ -24,7 +27,7 @@ const contentSecurityPolicy = [ `frame-ancestors 'self' ${frameAncestors}`, ]; -const headers = [ +const defaultHeaders = [ { key: 'X-DNS-Prefetch-Control', value: 'on', @@ -39,14 +42,43 @@ const headers = [ ]; if (forceSSL) { - headers.push({ + defaultHeaders.push({ key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload', }); } +const trackerHeaders = [ + { + key: 'Access-Control-Allow-Origin', + value: '*', + }, + { + key: 'Cache-Control', + value: 'public, max-age=86400, must-revalidate', + }, +]; + +const headers = [ + { + source: '/:path*', + headers: defaultHeaders, + }, + { + source: TRACKER_SCRIPT, + headers: trackerHeaders, + }, +]; + const rewrites = []; +if (trackerScriptURL) { + rewrites.push({ + source: TRACKER_SCRIPT, + destination: trackerScriptURL, + }); +} + if (collectApiEndpoint) { rewrites.push({ source: collectApiEndpoint, @@ -54,19 +86,6 @@ if (collectApiEndpoint) { }); } -if (trackerScriptName) { - const names = trackerScriptName?.split(',').map(name => name.trim()); - - if (names) { - names.forEach(name => { - rewrites.push({ - source: `/${name.replace(/^\/+/, '')}`, - destination: '/tracker.js', - }); - }); - } -} - const redirects = [ { source: '/settings', @@ -85,6 +104,27 @@ const redirects = [ }, ]; +// Adding rewrites + headers for all alternative tracker script names. +if (trackerScriptName) { + const names = trackerScriptName?.split(',').map(name => name.trim()); + + if (names) { + names.forEach(name => { + const normalizedSource = `/${name.replace(/^\/+/, '')}`; + + rewrites.push({ + source: normalizedSource, + destination: TRACKER_SCRIPT, + }); + + headers.push({ + source: normalizedSource, + headers: trackerHeaders, + }); + }); + } +} + if (cloudMode && cloudUrl) { redirects.push({ source: '/settings/:path*', @@ -153,20 +193,11 @@ const config = { return config; }, async headers() { - return [ - { - source: '/:path*', - headers, - }, - ]; + return headers; }, async rewrites() { return [ ...rewrites, - { - source: '/script.js', - destination: 'https://tracker-script.umami.dev/', - }, { source: '/telemetry.js', destination: '/api/scripts/telemetry', diff --git a/package.json b/package.json index c78a113750..d5d49701d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "umami", - "version": "2.13.2", + "version": "2.15.0", "description": "A simple, fast, privacy-focused alternative to Google Analytics.", "author": "Umami Software, Inc. ", "license": "MIT", @@ -63,18 +63,21 @@ "cacheDirectories": [ ".next/cache" ], + "resolutions": { + "jackspeak": "2.1.1" + }, "dependencies": { "@clickhouse/client": "^1.4.1", "@date-fns/utc": "^1.2.0", "@dicebear/collection": "^9.2.1", "@dicebear/core": "^9.2.1", "@fontsource/inter": "^4.5.15", - "@prisma/client": "5.17", + "@prisma/client": "5.22.0", "@prisma/extension-read-replicas": "^0.3.0", "@react-spring/web": "^9.7.3", "@tanstack/react-query": "^5.28.6", "@umami/prisma-client": "^0.14.0", - "@umami/redis-client": "^0.21.0", + "@umami/redis-client": "^0.24.0", "chalk": "^4.1.1", "chart.js": "^4.4.2", "chartjs-adapter-date-fns": "^3.0.0", @@ -99,16 +102,15 @@ "kafkajs": "^2.1.0", "maxmind": "^4.3.6", "md5": "^2.3.0", - "moment-timezone": "^0.5.35", - "next": "14.2.10", + "next": "15.0.4", "next-basics": "^0.39.0", "node-fetch": "^3.2.8", "npm-run-all": "^4.1.5", - "prisma": "5.17", - "react": "^18.2.0", + "prisma": "5.22.0", + "react": "^19.0.0", "react-basics": "^0.125.0", "react-beautiful-dnd": "^13.1.0", - "react-dom": "^18.2.0", + "react-dom": "^19.0.0", "react-error-boundary": "^4.0.4", "react-intl": "^6.5.5", "react-simple-maps": "^2.3.0", @@ -123,7 +125,7 @@ }, "devDependencies": { "@formatjs/cli": "^4.2.29", - "@netlify/plugin-nextjs": "^5.1.0", + "@netlify/plugin-nextjs": "^5.8.1", "@rollup/plugin-alias": "^5.0.0", "@rollup/plugin-commonjs": "^25.0.4", "@rollup/plugin-json": "^6.0.0", @@ -132,7 +134,7 @@ "@svgr/rollup": "^8.1.0", "@svgr/webpack": "^8.1.0", "@types/cypress": "^1.1.3", - "@types/jest": "^29.5.12", + "@types/jest": "^29.5.14", "@types/node": "^20.9.0", "@types/react": "^18.2.41", "@types/react-dom": "^18.2.17", diff --git a/public/intl/messages/cs-CZ.json b/public/intl/messages/cs-CZ.json index 26ae71415c..aa08174e13 100644 --- a/public/intl/messages/cs-CZ.json +++ b/public/intl/messages/cs-CZ.json @@ -2,7 +2,7 @@ "label.access-code": [ { "type": 0, - "value": "Access code" + "value": "Přístupový kód" } ], "label.actions": [ @@ -14,31 +14,31 @@ "label.activity": [ { "type": 0, - "value": "Activity log" + "value": "Log aktivity" } ], "label.add": [ { "type": 0, - "value": "Add" + "value": "Přidat" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Přidat popis" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Přidat člena" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Přidat krok" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "Po" } ], "label.all": [ @@ -68,7 +68,7 @@ "label.all-time": [ { "type": 0, - "value": "All time" + "value": "Celá doba" } ], "label.analytics": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "Průměr" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "Před" } ], "label.bounce-rate": [ @@ -110,13 +110,13 @@ "label.browser": [ { "type": 0, - "value": "Browser" + "value": "Prohlížeč" } ], "label.browsers": [ { "type": 0, - "value": "Prohlížeč" + "value": "Prohlížeče" } ], "label.cancel": [ @@ -134,31 +134,31 @@ "label.cities": [ { "type": 0, - "value": "Cities" + "value": "Města" } ], "label.city": [ { "type": 0, - "value": "City" + "value": "Město" } ], "label.clear-all": [ { "type": 0, - "value": "Clear all" + "value": "Vyčistit vše" } ], "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Porovnat" } ], "label.confirm": [ { "type": 0, - "value": "Confirm" + "value": "Potvrdit" } ], "label.confirm-password": [ @@ -170,61 +170,61 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Obsahuje" } ], "label.continue": [ { "type": 0, - "value": "Continue" + "value": "Pokračovat" } ], "label.count": [ { "type": 0, - "value": "Count" + "value": "Počet" } ], "label.countries": [ { "type": 0, - "value": "Země" + "value": "Státy" } ], "label.country": [ { "type": 0, - "value": "Country" + "value": "Stát" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Vytvořit" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Vytvořit hlášení" } ], "label.create-team": [ { "type": 0, - "value": "Create team" + "value": "Vytvořit tým" } ], "label.create-user": [ { "type": 0, - "value": "Create user" + "value": "Vytvořit uživatele" } ], "label.created": [ { "type": 0, - "value": "Created" + "value": "Vytvořeno" } ], "label.created-by": [ @@ -236,7 +236,7 @@ "label.current": [ { "type": 0, - "value": "Current" + "value": "Aktuální" } ], "label.current-password": [ @@ -266,7 +266,7 @@ "label.date": [ { "type": 0, - "value": "Date" + "value": "Datum" } ], "label.date-range": [ @@ -278,7 +278,7 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "Den" } ], "label.default-date-range": [ @@ -296,19 +296,19 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Smazat hlášení" } ], "label.delete-team": [ { "type": 0, - "value": "Delete team" + "value": "Smazat tým" } ], "label.delete-user": [ { "type": 0, - "value": "Delete user" + "value": "Smazat uživatele" } ], "label.delete-website": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Popis" } ], "label.desktop": [ @@ -332,13 +332,13 @@ "label.details": [ { "type": 0, - "value": "Details" + "value": "Detaily" } ], "label.device": [ { "type": 0, - "value": "Device" + "value": "Zařízení" } ], "label.devices": [ @@ -356,7 +356,7 @@ "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Neobsahuje" } ], "label.domain": [ @@ -380,13 +380,13 @@ "label.edit-dashboard": [ { "type": 0, - "value": "Edit dashboard" + "value": "Upravit dashboard" } ], "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Upravit člena" } ], "label.enable-share-url": [ @@ -404,13 +404,13 @@ "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "Vstupní URL" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Událost" } ], "label.event-data": [ @@ -440,7 +440,7 @@ "label.field": [ { "type": 0, - "value": "Field" + "value": "Pole" } ], "label.fields": [ @@ -452,7 +452,7 @@ "label.filter": [ { "type": 0, - "value": "Filter" + "value": "Filtr" } ], "label.filter-combined": [ @@ -470,7 +470,7 @@ "label.filters": [ { "type": 0, - "value": "Filters" + "value": "Filtry" } ], "label.first-seen": [ @@ -494,13 +494,13 @@ "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Cíl" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Cíle" } ], "label.goals-description": [ @@ -596,13 +596,13 @@ "label.language": [ { "type": 0, - "value": "Language" + "value": "Jazyk" } ], "label.languages": [ { "type": 0, - "value": "Languages" + "value": "Jazyky" } ], "label.laptop": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Posledních " }, { "type": 1, @@ -650,7 +650,7 @@ }, { "type": 0, - "value": " months" + "value": " měsíců" } ], "label.last-seen": [ @@ -662,13 +662,13 @@ "label.leave": [ { "type": 0, - "value": "Leave" + "value": "Opustit" } ], "label.leave-team": [ { "type": 0, - "value": "Leave team" + "value": "Opustit tým" } ], "label.less-than": [ @@ -698,13 +698,13 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Spravovat" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Správce" } ], "label.max": [ @@ -716,13 +716,13 @@ "label.member": [ { "type": 0, - "value": "Member" + "value": "Člen" } ], "label.members": [ { "type": 0, - "value": "Members" + "value": "Členové" } ], "label.min": [ @@ -746,13 +746,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Můj účet" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Mé weby" } ], "label.name": [ @@ -822,13 +822,13 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Přehled" } ], "label.owner": [ { "type": 0, - "value": "Owner" + "value": "Vlastník" } ], "label.page-of": [ @@ -858,7 +858,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Název stránky" } ], "label.pages": [ @@ -876,13 +876,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Cesta" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Cesty" } ], "label.powered-by": [ @@ -1444,13 +1444,13 @@ "label.visitors": [ { "type": 0, - "value": "Návštěvy" + "value": "Návštěvníci" } ], "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Návštěvy" } ], "label.website": [ @@ -1474,13 +1474,13 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Okno" } ], "label.yesterday": [ { "type": 0, - "value": "Yesterday" + "value": "Včera" } ], "message.action-confirmation": [ diff --git a/public/intl/messages/de-CH.json b/public/intl/messages/de-CH.json index 7b46c539b0..37f1b9de6e 100644 --- a/public/intl/messages/de-CH.json +++ b/public/intl/messages/de-CH.json @@ -20,25 +20,25 @@ "label.add": [ { "type": 0, - "value": "Add" + "value": "hinzuefüege" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Beschriibig hinzuefüege" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Mitglied hinzuefüege" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Schritt hinzuefüege" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "Nach" } ], "label.all": [ @@ -68,7 +68,7 @@ "label.all-time": [ { "type": 0, - "value": "Gesamte Zitruum" + "value": "Gsamte Zitruum" } ], "label.analytics": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "Durchschnitt" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "Vor" } ], "label.bounce-rate": [ @@ -104,7 +104,7 @@ "label.breakdown": [ { "type": 0, - "value": "Breakdown" + "value": "Uufschlüsselig" } ], "label.browser": [ @@ -140,7 +140,7 @@ "label.city": [ { "type": 0, - "value": "City" + "value": "Stadt" } ], "label.clear-all": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Vergliiche" } ], "label.confirm": [ @@ -170,7 +170,7 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Enthaltet" } ], "label.continue": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "Azahl" } ], "label.countries": [ @@ -194,19 +194,19 @@ "label.country": [ { "type": 0, - "value": "Country" + "value": "Land" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Erstelle" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Bricht erstelle" } ], "label.create-team": [ @@ -236,13 +236,13 @@ "label.current": [ { "type": 0, - "value": "Current" + "value": "Aktuell" } ], "label.current-password": [ { "type": 0, - "value": "Jetzigs Passwort" + "value": "Aktuells Passwort" } ], "label.custom-range": [ @@ -266,7 +266,7 @@ "label.date": [ { "type": 0, - "value": "Date" + "value": "Datum" } ], "label.date-range": [ @@ -278,13 +278,13 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "Tag" } ], "label.default-date-range": [ { "type": 0, - "value": "Vorigstellte Datumsbereich" + "value": "Voriigstellte Datumsbereich" } ], "label.delete": [ @@ -296,7 +296,7 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Bricht lösche" } ], "label.delete-team": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Beschriibig" } ], "label.desktop": [ @@ -338,7 +338,7 @@ "label.device": [ { "type": 0, - "value": "Device" + "value": "Grät" } ], "label.devices": [ @@ -350,13 +350,13 @@ "label.dismiss": [ { "type": 0, - "value": "Verwerfe" + "value": "Verwärfe" } ], "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Enthaltet nid" } ], "label.domain": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "Dropoff" + "value": "Absprung" } ], "label.edit": [ @@ -386,7 +386,7 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Mitglied bearbeite" } ], "label.enable-share-url": [ @@ -398,25 +398,25 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Schlussschritt" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "Iigangs URL" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Ereigniss" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "Ereigniss Date" } ], "label.events": [ @@ -428,25 +428,25 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "Uusgangs URL" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "Falsch" } ], "label.field": [ { "type": 0, - "value": "Field" + "value": "Fäld" } ], "label.fields": [ { "type": 0, - "value": "Fields" + "value": "Fälder" } ], "label.filter": [ @@ -476,49 +476,49 @@ "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Erstmal gse" } ], "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Tunnel" } ], "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Verstönd Sie d Konversions- und Abspruungsrate vo Nutzer." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Ziel" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Ziele" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "verfolged Sie Ihri Ziel für Siitenufrüef und Ereigniss." } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "Grösser als" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "Grösser oder gliich" } ], "label.host": [ @@ -536,37 +536,37 @@ "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Iiblick" } ], "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Vertüfed Sie sich i Ihri Date, mit Hilf vo Segment und Filter." } ], "label.is": [ { "type": 0, - "value": "Is" + "value": "Isch" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "Isch nid" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "Isch ned gsetzt" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "Isch gsetzt" } ], "label.join": [ @@ -584,13 +584,13 @@ "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Reis" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Verstönd Sie, wie Nutzer dur Ihri Website navigiered." } ], "label.language": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Letzti " }, { "type": 1, @@ -650,13 +650,13 @@ }, { "type": 0, - "value": " months" + "value": " Mönet" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Zletzt gse" } ], "label.leave": [ @@ -674,31 +674,31 @@ "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "Kliiner als" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "Kliiner oder gliich" } ], "label.login": [ { "type": 0, - "value": "Aamelde" + "value": "Aamälde" } ], "label.logout": [ { "type": 0, - "value": "Abmelde" + "value": "Abmälde" } ], "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Verwalte" } ], "label.manager": [ @@ -716,7 +716,7 @@ "label.member": [ { "type": 0, - "value": "Member" + "value": "Mitglied" } ], "label.members": [ @@ -734,7 +734,7 @@ "label.mobile": [ { "type": 0, - "value": "Handy" + "value": "Händy" } ], "label.more": [ @@ -746,13 +746,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Min Account" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Mini Websiite" } ], "label.name": [ @@ -822,7 +822,7 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Übersicht" } ], "label.owner": [ @@ -834,7 +834,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "Siite " }, { "type": 1, @@ -842,7 +842,7 @@ }, { "type": 0, - "value": " of " + "value": " vo " }, { "type": 1, @@ -858,7 +858,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Siitetitel" } ], "label.pages": [ @@ -876,19 +876,19 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Pfad" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Pfade" } ], "label.powered-by": [ { "type": 0, - "value": "Betribe dur " + "value": "Betriibe dur " }, { "type": 1, @@ -898,19 +898,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Vorherig" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Vorherigi Periode" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Vorherigs Jahr" } ], "label.profile": [ @@ -940,7 +940,7 @@ "label.query": [ { "type": 0, - "value": "Query" + "value": "Abfrag" } ], "label.query-parameters": [ @@ -958,13 +958,13 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "Verwiiser" } ], "label.referrers": [ { "type": 0, - "value": "Referrer" + "value": "Verwiisendi" } ], "label.refresh": [ @@ -1000,13 +1000,13 @@ "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Mitglied entferne" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "Brichte" } ], "label.required": [ @@ -1036,25 +1036,25 @@ "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Mässed Sie d Verwiilduur vo Ihrere Website, indem Sie verfolged wie oft ihri Nutzer zruggkehred." } ], "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Umsatz" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Lueged Sie sich Ihre Umsatz im Lauf vor Ziit a." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Umsatzeigenschafte" } ], "label.role": [ @@ -1066,7 +1066,7 @@ "label.run-query": [ { "type": 0, - "value": "Run query" + "value": "Abfrag starte" } ], "label.save": [ @@ -1084,25 +1084,25 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "Sueche" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Auswähle" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "Datä uuswähle" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Rollä uuswähle" } ], "label.select-website": [ @@ -1114,13 +1114,13 @@ "label.session": [ { "type": 0, - "value": "Session" + "value": "Sitzig" } ], "label.sessions": [ { "type": 0, - "value": "Sessions" + "value": "Sitzige" } ], "label.settings": [ @@ -1144,19 +1144,19 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Startschritt" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Schritt" } ], "label.sum": [ { "type": 0, - "value": "Sum" + "value": "Summe" } ], "label.tablet": [ @@ -1180,7 +1180,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Team Manager" } ], "label.team-member": [ @@ -1192,7 +1192,7 @@ "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "Team Name" } ], "label.team-owner": [ @@ -1204,13 +1204,13 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Nur für Teammitglieder sichtbar" } ], "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "Team Websiite" } ], "label.teams": [ @@ -1228,19 +1228,19 @@ "label.this-month": [ { "type": 0, - "value": "De Monet" + "value": "Dä Monet" } ], "label.this-week": [ { "type": 0, - "value": "Die Wuche" + "value": "Diä Wuuche" } ], "label.this-year": [ { "type": 0, - "value": "Das Jahr" + "value": "Das Johr" } ], "label.timezone": [ @@ -1264,7 +1264,7 @@ "label.toggle-charts": [ { "type": 0, - "value": "Schaubilder umschalte" + "value": "Charts umschalte" } ], "label.total": [ @@ -1276,7 +1276,7 @@ "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "Gsamti Datesätz" } ], "label.tracking-code": [ @@ -1288,49 +1288,49 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Transaktione" } ], "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "Transferiere" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "Websiite transferiere" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "Wahr" } ], "label.type": [ { "type": 0, - "value": "Type" + "value": "Typ" } ], "label.unique": [ { "type": 0, - "value": "Unique" + "value": "Einzigartigi" } ], "label.unique-visitors": [ { "type": 0, - "value": "Eidütigi Bsuecher" + "value": "Einzigartigi Bsuecher" } ], "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Einzigartigi Kunde" } ], "label.unknown": [ @@ -1342,7 +1342,7 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "Unbennant" } ], "label.update": [ @@ -1372,7 +1372,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Benutzereigeschafte" } ], "label.username": [ @@ -1396,13 +1396,13 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Tracked Sie Ihri Kampagnen mit UTM Parameters." } ], "label.value": [ { "type": 0, - "value": "Value" + "value": "Wärt" } ], "label.view": [ @@ -1420,7 +1420,7 @@ "label.view-only": [ { "type": 0, - "value": "View only" + "value": "Nume aluege" } ], "label.views": [ @@ -1432,7 +1432,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Ufrüef pro Bsuech" } ], "label.visit-duration": [ @@ -1450,7 +1450,7 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Bsüech" } ], "label.website": [ @@ -1474,7 +1474,7 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Fenster" } ], "label.yesterday": [ @@ -1486,7 +1486,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Typed Sie " }, { "type": 1, @@ -1494,7 +1494,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " is Feld underhalb um z bestätige." } ], "message.active-users": [ @@ -1534,7 +1534,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Gsammleti Date" } ], "message.confirm-delete": [ @@ -1568,7 +1568,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Sind Sie sich sicher, dass Sie " }, { "type": 1, @@ -1576,13 +1576,13 @@ }, { "type": 0, - "value": "?" + "value": " wänd entferne?" } ], "message.confirm-reset": [ { "type": 0, - "value": "Sind Sie sicher, dass Sie dStatistike vo " + "value": "Sind Sie sicher, dass Sie d Statistike vo " }, { "type": 1, @@ -1590,25 +1590,25 @@ }, { "type": 0, - "value": " zruggsetze wend?" + "value": " zruggsetze wänd?" } ], "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "Es Team lösche dued ebefalls alli team Websiite lösche." } ], "message.delete-website-warning": [ { "type": 0, - "value": "Alli dezueghörige Date werdet ebefalls glöscht." + "value": "Alli dezueghörige Date werded ebefalls glöscht." } ], "message.error": [ { "type": 0, - "value": "Es isch en Fehler uftrete." + "value": "Es isch en Fehler ufträte." } ], "message.event-log": [ @@ -1634,7 +1634,7 @@ "message.incorrect-username-password": [ { "type": 0, - "value": "Falschs Passwort oder Benutzername." + "value": "Falsches Passwort oder Benutzername." } ], "message.invalid-domain": [ @@ -1660,7 +1660,7 @@ "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "Es isch en neue Version vo Umami " }, { "type": 1, @@ -1668,7 +1668,7 @@ }, { "type": 0, - "value": " is available!" + "value": " verfügbar!" } ], "message.no-data-available": [ @@ -1680,7 +1680,7 @@ "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "Es sind kei Event Date verfügbar." } ], "message.no-match-password": [ @@ -1692,7 +1692,7 @@ "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "Kei Ergäbnis gfunde." } ], "message.no-team-websites": [ @@ -1728,7 +1728,7 @@ "message.reset-website": [ { "type": 0, - "value": "To reset this website, type " + "value": "Um die Websiite zruggzsetze, typed Sie " }, { "type": 1, @@ -1736,7 +1736,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " is Feld unde dran." } ], "message.reset-website-warning": [ @@ -1760,7 +1760,7 @@ "message.team-already-member": [ { "type": 0, - "value": "Sie sind bereits es Mitglied vo dem Team." + "value": "Sie sind bereits es Mitglied vo däm Team." } ], "message.team-not-found": [ @@ -1772,7 +1772,7 @@ "message.team-websites-info": [ { "type": 0, - "value": "Websiite chönd vo jedem im Team agluegt werde" + "value": "Websiite chöi vo jedem im Team agluegt werde" } ], "message.tracking-code": [ @@ -1784,37 +1784,37 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Websiite uf zu Ihrem Account transferiere?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Wähled Sie s Team zum däm Websiite transferiert werde söll." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Übertraged Sie d Websiite Eigetümerrecht uf Ihre Account oder uf es anders Team" } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Usglösts Ereigniss" } ], "message.user-deleted": [ { "type": 0, - "value": "Benutzer glöscht." + "value": "Bnutzer glöscht." } ], "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Siite agluegt" } ], "message.visitor-log": [ @@ -1828,7 +1828,7 @@ }, { "type": 0, - "value": " benutzt " + "value": " nutzt " }, { "type": 1, @@ -1854,7 +1854,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Bsuercher verlore" } ] } diff --git a/public/intl/messages/de-DE.json b/public/intl/messages/de-DE.json index 84e7364c53..b5ec879314 100644 --- a/public/intl/messages/de-DE.json +++ b/public/intl/messages/de-DE.json @@ -410,13 +410,13 @@ "label.event": [ { "type": 0, - "value": "Ereigniss" + "value": "Ereignis" } ], "label.event-data": [ { "type": 0, - "value": "Ereignissdaten" + "value": "Ereignisdaten" } ], "label.events": [ @@ -1798,7 +1798,7 @@ "message.triggered-event": [ { "type": 0, - "value": "Ausgelöstes Ereigniss" + "value": "Ereignis ausgelöst" } ], "message.user-deleted": [ diff --git a/public/intl/messages/fr-FR.json b/public/intl/messages/fr-FR.json index 0bfe6e7a0e..ba620b6054 100644 --- a/public/intl/messages/fr-FR.json +++ b/public/intl/messages/fr-FR.json @@ -404,7 +404,7 @@ "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL d'entrée" } ], "label.event": [ @@ -476,7 +476,7 @@ "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Vu pour la première fois" } ], "label.funnel": [ @@ -506,7 +506,7 @@ "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Suivez vos objectifs en matière de pages vues et d'événements." } ], "label.greater-than": [ @@ -590,7 +590,7 @@ "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Comprendre comment les utilisateurs naviguent sur votre site web." } ], "label.language": [ @@ -886,19 +886,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Précédent" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Période précédente" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Année précédente" } ], "label.profile": [ @@ -910,13 +910,13 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Propriétés" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "Propriété" } ], "label.queries": [ @@ -1036,13 +1036,13 @@ "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Examinez vos revenus au fil du temps." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Propriétés des revenues" } ], "label.role": [ @@ -1078,7 +1078,7 @@ "label.select": [ { "type": 0, - "value": "Select" + "value": "Selectionner" } ], "label.select-date": [ @@ -1132,7 +1132,7 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Etape de démarrage" } ], "label.steps": [ @@ -1168,7 +1168,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Manager de l'équipe" } ], "label.team-member": [ @@ -1192,7 +1192,7 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Vue d'équipe uniquement" } ], "label.team-websites": [ @@ -1318,7 +1318,7 @@ "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Clients uniques" } ], "label.unknown": [ @@ -1360,7 +1360,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Propriétés d'utilisateurs" } ], "label.username": [ diff --git a/public/intl/messages/ja-JP.json b/public/intl/messages/ja-JP.json index 5a13b4b1bb..abb2c27c39 100644 --- a/public/intl/messages/ja-JP.json +++ b/public/intl/messages/ja-JP.json @@ -1450,7 +1450,7 @@ "label.visits": [ { "type": 0, - "value": "訪問者数" + "value": "訪問数" } ], "label.website": [ diff --git a/public/intl/messages/nb-NO.json b/public/intl/messages/nb-NO.json index 051c362c26..bb2dec35ab 100644 --- a/public/intl/messages/nb-NO.json +++ b/public/intl/messages/nb-NO.json @@ -2,7 +2,7 @@ "label.access-code": [ { "type": 0, - "value": "Access code" + "value": "Tilgangskode" } ], "label.actions": [ @@ -14,31 +14,31 @@ "label.activity": [ { "type": 0, - "value": "Activity log" + "value": "Aktivitetslogg" } ], "label.add": [ { "type": 0, - "value": "Add" + "value": "Legg til" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Legg til beskrivelse" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Legg til bruker" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Legg til steg" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "Etter" } ], "label.all": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "Gjennomsnnitt" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "Før" } ], "label.bounce-rate": [ @@ -104,13 +104,13 @@ "label.breakdown": [ { "type": 0, - "value": "Breakdown" + "value": "Nedbrytning" } ], "label.browser": [ { "type": 0, - "value": "Browser" + "value": "Nettleser" } ], "label.browsers": [ @@ -134,31 +134,31 @@ "label.cities": [ { "type": 0, - "value": "Cities" + "value": "Byer" } ], "label.city": [ { "type": 0, - "value": "City" + "value": "By" } ], "label.clear-all": [ { "type": 0, - "value": "Clear all" + "value": "Tøm alle" } ], "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Sammenlign" } ], "label.confirm": [ { "type": 0, - "value": "Confirm" + "value": "Bekreft" } ], "label.confirm-password": [ @@ -170,19 +170,19 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Inneholder" } ], "label.continue": [ { "type": 0, - "value": "Continue" + "value": "Fortsett" } ], "label.count": [ { "type": 0, - "value": "Count" + "value": "Antall" } ], "label.countries": [ @@ -194,49 +194,49 @@ "label.country": [ { "type": 0, - "value": "Country" + "value": "Land" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Opprett" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Opprett rapport" } ], "label.create-team": [ { "type": 0, - "value": "Create team" + "value": "Opprett team" } ], "label.create-user": [ { "type": 0, - "value": "Create user" + "value": "Opprett bruker" } ], "label.created": [ { "type": 0, - "value": "Created" + "value": "Opprettet" } ], "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Opprettet av" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Nåværende" } ], "label.current-password": [ @@ -266,7 +266,7 @@ "label.date": [ { "type": 0, - "value": "Date" + "value": "Dato" } ], "label.date-range": [ @@ -278,7 +278,7 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "Dag" } ], "label.default-date-range": [ @@ -332,13 +332,13 @@ "label.details": [ { "type": 0, - "value": "Details" + "value": "Detaljer" } ], "label.device": [ { "type": 0, - "value": "Device" + "value": "Enhet" } ], "label.devices": [ @@ -356,7 +356,7 @@ "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Innholder ikke" } ], "label.domain": [ @@ -380,13 +380,13 @@ "label.edit-dashboard": [ { "type": 0, - "value": "Edit dashboard" + "value": "Rediger dashboard" } ], "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Rediger bruker" } ], "label.enable-share-url": [ @@ -398,55 +398,55 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Avslutt steg" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "Inngangs-URL" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Hendelse" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "Hendelsesdata" } ], "label.events": [ { "type": 0, - "value": "Arrangementer" + "value": "Hendelser" } ], "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "Utgangs-URL" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "Usant" } ], "label.field": [ { "type": 0, - "value": "Field" + "value": "Felt" } ], "label.fields": [ { "type": 0, - "value": "Fields" + "value": "Felt" } ], "label.filter": [ @@ -470,127 +470,127 @@ "label.filters": [ { "type": 0, - "value": "Filters" + "value": "Filter" } ], "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Først sett" } ], "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Trakt" } ], "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Forstå konverteringen og drop-off frafallsfrekvens av brukere." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Mål" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Mål" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Spor dine mål for sidevisninger og hendelser." } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "Mer enn" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "Mer enn eller lik" } ], "label.host": [ { "type": 0, - "value": "Host" + "value": "Vert" } ], "label.hosts": [ { "type": 0, - "value": "Hosts" + "value": "Verter" } ], "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Innsikt" } ], "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Dykk dypere i din data ved bruk av segmentering og filtre." } ], "label.is": [ { "type": 0, - "value": "Is" + "value": "Er" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "Er ikke" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "Er ikke satt" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "Er satt" } ], "label.join": [ { "type": 0, - "value": "Join" + "value": "Bli med" } ], "label.join-team": [ { "type": 0, - "value": "Join team" + "value": "Bli med i teamet" } ], "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Reise" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Forstå hvordan brukerene navigerer gjennom din side." } ], "label.language": [ @@ -656,31 +656,31 @@ "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Sist sett" } ], "label.leave": [ { "type": 0, - "value": "Leave" + "value": "Forlat" } ], "label.leave-team": [ { "type": 0, - "value": "Leave team" + "value": "Forlat team" } ], "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "Mindre enn" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "Mindre enn eller lik" } ], "label.login": [ @@ -698,31 +698,31 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Administrer" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Administrator" } ], "label.max": [ { "type": 0, - "value": "Max" + "value": "Maks" } ], "label.member": [ { "type": 0, - "value": "Member" + "value": "Bruker" } ], "label.members": [ { "type": 0, - "value": "Members" + "value": "Brukere" } ], "label.min": [ @@ -746,13 +746,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Min konto" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Mine nettsider" } ], "label.name": [ @@ -770,7 +770,7 @@ "label.none": [ { "type": 0, - "value": "None" + "value": "Ingen" } ], "label.number-of-records": [ @@ -822,7 +822,7 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Oversikt" } ], "label.owner": [ @@ -834,7 +834,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "Side " }, { "type": 1, @@ -842,7 +842,7 @@ }, { "type": 0, - "value": " of " + "value": " av " }, { "type": 1, @@ -858,7 +858,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Sidetittel" } ], "label.pages": [ @@ -876,13 +876,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Sti" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Stier" } ], "label.powered-by": [ @@ -898,19 +898,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Forrige" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Forrige periode" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Forrige år" } ], "label.profile": [ @@ -922,31 +922,31 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Egenskaper" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "Egenskap" } ], "label.queries": [ { "type": 0, - "value": "Queries" + "value": "Forspørsler" } ], "label.query": [ { "type": 0, - "value": "Query" + "value": "Forespørsel" } ], "label.query-parameters": [ { "type": 0, - "value": "Query parameters" + "value": "Forespørsel parametere" } ], "label.realtime": [ @@ -958,13 +958,13 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "Henviser" } ], "label.referrers": [ { "type": 0, - "value": "Referanser" + "value": "Henvisere" } ], "label.refresh": [ @@ -976,7 +976,7 @@ "label.regenerate": [ { "type": 0, - "value": "Regenerate" + "value": "Regenerer" } ], "label.region": [ @@ -988,25 +988,25 @@ "label.regions": [ { "type": 0, - "value": "Regions" + "value": "Regioner" } ], "label.remove": [ { "type": 0, - "value": "Remove" + "value": "Fjern" } ], "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Fjern bruker" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "Rapporter" } ], "label.required": [ @@ -1030,43 +1030,43 @@ "label.retention": [ { "type": 0, - "value": "Retention" + "value": "Retensjon" } ], "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Mål nettstedets klebrighet ved å spore hvor ofte brukere kommer tilbake." } ], "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Inntenker" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Se på inntektene dine over tid." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Inntektegenskaper" } ], "label.role": [ { "type": 0, - "value": "Role" + "value": "Rolle" } ], "label.run-query": [ { "type": 0, - "value": "Run query" + "value": "Kjør spørring" } ], "label.save": [ @@ -1078,49 +1078,49 @@ "label.screens": [ { "type": 0, - "value": "Screens" + "value": "Skjermer" } ], "label.search": [ { "type": 0, - "value": "Search" + "value": "Søk" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Velg" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "Velg dato" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Velg rolle" } ], "label.select-website": [ { "type": 0, - "value": "Select website" + "value": "Velg nettsted" } ], "label.session": [ { "type": 0, - "value": "Session" + "value": "Økt" } ], "label.sessions": [ { "type": 0, - "value": "Sessions" + "value": "Økter" } ], "label.settings": [ @@ -1138,19 +1138,19 @@ "label.single-day": [ { "type": 0, - "value": "Enkelt dag" + "value": "Enkeltdag" } ], "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Starttrinn" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Trinn" } ], "label.sum": [ @@ -1174,55 +1174,55 @@ "label.team-id": [ { "type": 0, - "value": "Team ID" + "value": "Team-ID" } ], "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Teamadministrator" } ], "label.team-member": [ { "type": 0, - "value": "Team member" + "value": "Teammedlem" } ], "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "Teamnavn" } ], "label.team-owner": [ { "type": 0, - "value": "Team owner" + "value": "Teameier" } ], "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Team (kun visning)" } ], "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "Team-nettsteder" } ], "label.teams": [ { "type": 0, - "value": "Teams" + "value": "Team" } ], "label.theme": [ { "type": 0, - "value": "Theme" + "value": "Tema" } ], "label.this-month": [ @@ -1252,7 +1252,7 @@ "label.title": [ { "type": 0, - "value": "Title" + "value": "Tittel" } ], "label.today": [ @@ -1270,13 +1270,13 @@ "label.total": [ { "type": 0, - "value": "Total" + "value": "Totalt" } ], "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "Totalt antall oppføringer" } ], "label.tracking-code": [ @@ -1288,25 +1288,25 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Transaksjoner" } ], "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "Overfør" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "Overfør nettsted" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "Sant" } ], "label.type": [ @@ -1318,7 +1318,7 @@ "label.unique": [ { "type": 0, - "value": "Unique" + "value": "Unike" } ], "label.unique-visitors": [ @@ -1330,7 +1330,7 @@ "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Unike kunder" } ], "label.unknown": [ @@ -1342,13 +1342,13 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "Uten tittel" } ], "label.update": [ { "type": 0, - "value": "Update" + "value": "Oppdater" } ], "label.url": [ @@ -1360,19 +1360,19 @@ "label.urls": [ { "type": 0, - "value": "URLs" + "value": "URL-er" } ], "label.user": [ { "type": 0, - "value": "User" + "value": "Bruker" } ], "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Brukeregenskap" } ], "label.username": [ @@ -1384,7 +1384,7 @@ "label.users": [ { "type": 0, - "value": "Users" + "value": "Brukere" } ], "label.utm": [ @@ -1396,19 +1396,19 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Spor kampanjene dine via UTM-parametre." } ], "label.value": [ { "type": 0, - "value": "Value" + "value": "Verdi" } ], "label.view": [ { "type": 0, - "value": "View" + "value": "Vis" } ], "label.view-details": [ @@ -1420,7 +1420,7 @@ "label.view-only": [ { "type": 0, - "value": "View only" + "value": "Kun visning" } ], "label.views": [ @@ -1432,7 +1432,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Visninger per besøk" } ], "label.visit-duration": [ @@ -1450,19 +1450,19 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Besøk" } ], "label.website": [ { "type": 0, - "value": "Website" + "value": "Nettsted" } ], "label.website-id": [ { "type": 0, - "value": "Website ID" + "value": "Nettsted-ID" } ], "label.websites": [ @@ -1474,19 +1474,19 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Vindu" } ], "label.yesterday": [ { "type": 0, - "value": "Yesterday" + "value": "I går" } ], "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Skriv " }, { "type": 1, @@ -1494,7 +1494,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " i feltet nedenfor for å bekrefte." } ], "message.active-users": [ @@ -1538,7 +1538,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Innsamlede data" } ], "message.confirm-delete": [ @@ -1558,7 +1558,7 @@ "message.confirm-leave": [ { "type": 0, - "value": "Are you sure you want to leave " + "value": "Er du sikker på at du vil forlate " }, { "type": 1, @@ -1572,7 +1572,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Er du sikker på at du vil fjerne " }, { "type": 1, @@ -1586,7 +1586,7 @@ "message.confirm-reset": [ { "type": 0, - "value": "Er du sikker på at du vil nullstille " + "value": "Er du sikker på at du vil nullstille statistikken til " }, { "type": 1, @@ -1594,19 +1594,19 @@ }, { "type": 0, - "value": "'s statistikk?" + "value": "?" } ], "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "Å slette et team vil også slette alle teamets nettsteder." } ], "message.delete-website-warning": [ { "type": 0, - "value": "Alle tilknyttede data slettes også." + "value": "Alle tilknyttede data vil også bli slettet." } ], "message.error": [ @@ -1622,7 +1622,7 @@ }, { "type": 0, - "value": " on " + "value": " på " }, { "type": 1, @@ -1650,7 +1650,7 @@ "message.min-password-length": [ { "type": 0, - "value": "Minimum length of " + "value": "Minimumslengde på " }, { "type": 1, @@ -1658,13 +1658,13 @@ }, { "type": 0, - "value": " characters" + "value": " tegn" } ], "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "En ny versjon av Umami " }, { "type": 1, @@ -1672,7 +1672,7 @@ }, { "type": 0, - "value": " is available!" + "value": " er tilgjengelig!" } ], "message.no-data-available": [ @@ -1684,7 +1684,7 @@ "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "Ingen hendelsesdata er tilgjengelig." } ], "message.no-match-password": [ @@ -1696,25 +1696,25 @@ "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "Ingen resultater funnet." } ], "message.no-team-websites": [ { "type": 0, - "value": "This team does not have any websites." + "value": "Dette teamet har ingen nettsteder." } ], "message.no-teams": [ { "type": 0, - "value": "You have not created any teams." + "value": "Du har ikke opprettet noen team." } ], "message.no-users": [ { "type": 0, - "value": "There are no users." + "value": "Ingen brukere." } ], "message.no-websites-configured": [ @@ -1726,13 +1726,13 @@ "message.page-not-found": [ { "type": 0, - "value": "Side ikke funnet." + "value": "Siden ble ikke funnet." } ], "message.reset-website": [ { "type": 0, - "value": "To reset this website, type " + "value": "For å nullstille dette nettstedet, skriv " }, { "type": 1, @@ -1740,13 +1740,13 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " i feltet nedenfor for å bekrefte." } ], "message.reset-website-warning": [ { "type": 0, - "value": "All statistikk for denne nettsiden vil bli slettet, men sporingskoden din vil forbli uberørt." + "value": "All statistikk for dette nettstedet vil bli slettet, men sporingskoden forblir uberørt." } ], "message.saved": [ @@ -1772,19 +1772,19 @@ "message.team-already-member": [ { "type": 0, - "value": "You are already a member of the team." + "value": "Du er allerede medlem av teamet." } ], "message.team-not-found": [ { "type": 0, - "value": "Team not found." + "value": "Teamet ble ikke funnet." } ], "message.team-websites-info": [ { "type": 0, - "value": "Websites can be viewed by anyone on the team." + "value": "Nettsteder kan vises av alle på teamet." } ], "message.tracking-code": [ @@ -1796,37 +1796,37 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Overfør dette nettstedet til kontoen din?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Velg teamet du vil overføre dette nettstedet til." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Overfør eierskapet til nettstedet til din konto eller et annet team." } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Utløst hendelse" } ], "message.user-deleted": [ { "type": 0, - "value": "User deleted." + "value": "Bruker slettet." } ], "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Vist side" } ], "message.visitor-log": [ @@ -1866,7 +1866,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Besøkende falt fra" } ] } diff --git a/public/intl/messages/ro-RO.json b/public/intl/messages/ro-RO.json index 1e5ac13af9..19541aca14 100644 --- a/public/intl/messages/ro-RO.json +++ b/public/intl/messages/ro-RO.json @@ -38,13 +38,13 @@ "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Adaugă pas" } ], "label.add-website": [ { "type": 0, - "value": "Adăugare site web" + "value": "Adaugă site web" } ], "label.admin": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Compară" } ], "label.confirm": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "Număr" } ], "label.countries": [ @@ -230,13 +230,13 @@ "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Creat de" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Curent" } ], "label.current-password": [ @@ -266,13 +266,13 @@ "label.date": [ { "type": 0, - "value": "Data" + "value": "Dată" } ], "label.date-range": [ { "type": 0, - "value": "Interval de date" + "value": "Interval" } ], "label.day": [ @@ -284,7 +284,7 @@ "label.default-date-range": [ { "type": 0, - "value": "Interval de date implicit" + "value": "Interval implicit" } ], "label.delete": [ @@ -314,7 +314,7 @@ "label.delete-website": [ { "type": 0, - "value": "Ștergere site web" + "value": "Șterge site web" } ], "label.description": [ @@ -398,13 +398,13 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Pas final" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL de intrare" } ], "label.event": [ @@ -428,7 +428,7 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "URL de ieșire" } ], "label.false": [ @@ -476,7 +476,7 @@ "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Văzut pentru prima dată" } ], "label.funnel": [ @@ -494,19 +494,19 @@ "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Obiectiv" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Obiective" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Urmărește obiectivele de vizualizări și evenimente." } ], "label.greater-than": [ @@ -584,13 +584,13 @@ "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Traseu" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Înțelege cum navighează vizitatorii prin website." } ], "label.language": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Ultimele " }, { "type": 1, @@ -650,13 +650,13 @@ }, { "type": 0, - "value": " months" + "value": " luni" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Văzut ultima dată" } ], "label.leave": [ @@ -876,13 +876,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Rută" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Rute" } ], "label.powered-by": [ @@ -898,19 +898,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Anterior" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Perioda anterioară" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Anul anterior" } ], "label.profile": [ @@ -922,13 +922,13 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Proprietăți" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "Proprietate" } ], "label.queries": [ @@ -1042,13 +1042,13 @@ "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Venit" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Urmărește venitul în timp." } ], "label.revenue-property": [ @@ -1114,7 +1114,7 @@ "label.session": [ { "type": 0, - "value": "Session" + "value": "Sesiune" } ], "label.sessions": [ @@ -1144,13 +1144,13 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Pas de început" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Pași" } ], "label.sum": [ @@ -1174,13 +1174,13 @@ "label.team-id": [ { "type": 0, - "value": "ID Echipa" + "value": "ID Echipă" } ], "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Manager echipă" } ], "label.team-member": [ @@ -1288,7 +1288,7 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Tranzacții" } ], "label.transfer": [ @@ -1330,7 +1330,7 @@ "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Clienți unici" } ], "label.unknown": [ @@ -1372,7 +1372,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Proprietatea utilizatorului" } ], "label.username": [ @@ -1396,7 +1396,7 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Urmărește campaniile tale cu parametri UTM." } ], "label.value": [ @@ -1432,7 +1432,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Vizualizări per vizită" } ], "label.visit-duration": [ @@ -1450,7 +1450,7 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Vizite" } ], "label.website": [ @@ -1534,7 +1534,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Date colectate" } ], "message.confirm-delete": [ diff --git a/public/intl/messages/ru-RU.json b/public/intl/messages/ru-RU.json index e8f7f5b4fc..b7c0165ca8 100644 --- a/public/intl/messages/ru-RU.json +++ b/public/intl/messages/ru-RU.json @@ -20,25 +20,25 @@ "label.add": [ { "type": 0, - "value": "Add" + "value": "Добавить" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Добавить описание" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Добавить участника" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Добавить шаг" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "После" } ], "label.all": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "Средний" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "До" } ], "label.bounce-rate": [ @@ -104,13 +104,13 @@ "label.breakdown": [ { "type": 0, - "value": "Breakdown" + "value": "Авария" } ], "label.browser": [ { "type": 0, - "value": "Browser" + "value": "Браузер" } ], "label.browsers": [ @@ -140,7 +140,7 @@ "label.city": [ { "type": 0, - "value": "City" + "value": "Город" } ], "label.clear-all": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Сравнить" } ], "label.confirm": [ @@ -170,7 +170,7 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Содержит" } ], "label.continue": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "Считать" } ], "label.countries": [ @@ -194,19 +194,19 @@ "label.country": [ { "type": 0, - "value": "Country" + "value": "Страна" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Создать" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Создать отчет" } ], "label.create-team": [ @@ -230,13 +230,13 @@ "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Создано" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Текущий" } ], "label.current-password": [ @@ -266,7 +266,7 @@ "label.date": [ { "type": 0, - "value": "Date" + "value": "Дата" } ], "label.date-range": [ @@ -278,7 +278,7 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "День" } ], "label.default-date-range": [ @@ -296,7 +296,7 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Удалить отчет" } ], "label.delete-team": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Описание" } ], "label.desktop": [ @@ -338,7 +338,7 @@ "label.device": [ { "type": 0, - "value": "Device" + "value": "Устройство" } ], "label.devices": [ @@ -356,7 +356,7 @@ "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Не содержит" } ], "label.domain": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "Dropoff" + "value": "Высадка" } ], "label.edit": [ @@ -386,7 +386,7 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Редактировать участника" } ], "label.enable-share-url": [ @@ -398,25 +398,25 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Конечный шаг" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL-адрес входа" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Событие" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "Данные о событии" } ], "label.events": [ @@ -428,31 +428,31 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "URL-адрес выхода" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "Ложь" } ], "label.field": [ { "type": 0, - "value": "Field" + "value": "Поле" } ], "label.fields": [ { "type": 0, - "value": "Fields" + "value": "Поля" } ], "label.filter": [ { "type": 0, - "value": "Filter" + "value": "Фильтр" } ], "label.filter-combined": [ @@ -470,55 +470,55 @@ "label.filters": [ { "type": 0, - "value": "Filters" + "value": "Фильтры" } ], "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Первый вход" } ], "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Воронка" } ], "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Изучите коэффициент конверсии и ухода пользователей." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Цель" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Цели" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Отслеживайте свои цели по просмотрам страниц и событиям." } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "Больше, чем" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "Больше или равно" } ], "label.host": [ @@ -536,37 +536,37 @@ "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Информация" } ], "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Погрузитесь глубже в свои данные с помощью сегментов и фильтров." } ], "label.is": [ { "type": 0, - "value": "Is" + "value": "Является" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "Не установлен" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "Не установлено" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "Установлен" } ], "label.join": [ @@ -590,7 +590,7 @@ "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Поймите, как пользователи перемещаются по вашему сайту." } ], "label.language": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Последние " }, { "type": 1, @@ -650,13 +650,13 @@ }, { "type": 0, - "value": " months" + "value": " месяцев" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Последний вход" } ], "label.leave": [ @@ -674,13 +674,13 @@ "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "Меньше, чем" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "Меньше или равно" } ], "label.login": [ @@ -698,25 +698,25 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Управление" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Менеджер" } ], "label.max": [ { "type": 0, - "value": "Max" + "value": "Максимум" } ], "label.member": [ { "type": 0, - "value": "Member" + "value": "Участник" } ], "label.members": [ @@ -728,7 +728,7 @@ "label.min": [ { "type": 0, - "value": "Min" + "value": "Минимум" } ], "label.mobile": [ @@ -746,13 +746,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Мой профиль" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Мои сайты" } ], "label.name": [ @@ -789,7 +789,7 @@ "value": [ { "type": 0, - "value": "record" + "value": "запись" } ] }, @@ -797,7 +797,7 @@ "value": [ { "type": 0, - "value": "records" + "value": "записи" } ] } @@ -822,7 +822,7 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Обзор" } ], "label.owner": [ @@ -834,7 +834,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "Страница " }, { "type": 1, @@ -842,7 +842,7 @@ }, { "type": 0, - "value": " of " + "value": " из " }, { "type": 1, @@ -858,7 +858,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Название страницы" } ], "label.pages": [ @@ -876,13 +876,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Путь" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Пути" } ], "label.powered-by": [ @@ -898,19 +898,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Предыдущий" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Предыдущий период" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Предыдущий год" } ], "label.profile": [ @@ -922,13 +922,13 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Свойства" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "Свойство" } ], "label.queries": [ @@ -940,7 +940,7 @@ "label.query": [ { "type": 0, - "value": "Query" + "value": "Запрос" } ], "label.query-parameters": [ @@ -958,7 +958,7 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "Реферер" } ], "label.referrers": [ @@ -982,7 +982,7 @@ "label.region": [ { "type": 0, - "value": "Region" + "value": "Регион" } ], "label.regions": [ @@ -1000,13 +1000,13 @@ "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Удалить участника" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "Отчеты" } ], "label.required": [ @@ -1030,31 +1030,31 @@ "label.retention": [ { "type": 0, - "value": "Retention" + "value": "Удержание" } ], "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Измерьте «прилипаемость» вашего сайта, отслеживая, как часто пользователи возвращаются на него." } ], "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Выручка" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Изучите свои доходы за определенное время." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Доходная недвижимость" } ], "label.role": [ @@ -1066,7 +1066,7 @@ "label.run-query": [ { "type": 0, - "value": "Run query" + "value": "Выполнить запрос" } ], "label.save": [ @@ -1084,25 +1084,25 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "Поиск" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Выберите" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "Выберите дату" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Выберите роль" } ], "label.select-website": [ @@ -1114,7 +1114,7 @@ "label.session": [ { "type": 0, - "value": "Session" + "value": "Сессия" } ], "label.sessions": [ @@ -1144,19 +1144,19 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Начальный этап" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Шаги" } ], "label.sum": [ { "type": 0, - "value": "Sum" + "value": "Сумма" } ], "label.tablet": [ @@ -1180,7 +1180,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Менеджер команды" } ], "label.team-member": [ @@ -1192,7 +1192,7 @@ "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "Название команды" } ], "label.team-owner": [ @@ -1204,13 +1204,13 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Только командный просмотр" } ], "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "Веб-сайты команды" } ], "label.teams": [ @@ -1270,13 +1270,13 @@ "label.total": [ { "type": 0, - "value": "Total" + "value": "Всего" } ], "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "Всего записей" } ], "label.tracking-code": [ @@ -1288,37 +1288,37 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Транзакции" } ], "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "Передача" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "Передать сайт" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "Правда" } ], "label.type": [ { "type": 0, - "value": "Type" + "value": "Тип" } ], "label.unique": [ { "type": 0, - "value": "Unique" + "value": "Уникальный" } ], "label.unique-visitors": [ @@ -1330,7 +1330,7 @@ "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Уникальные клиенты" } ], "label.unknown": [ @@ -1342,13 +1342,13 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "Без названия" } ], "label.update": [ { "type": 0, - "value": "Update" + "value": "Обновление" } ], "label.url": [ @@ -1372,7 +1372,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Собственность пользователя" } ], "label.username": [ @@ -1396,13 +1396,13 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Отслеживайте свои кампании с помощью UTM-параметров." } ], "label.value": [ { "type": 0, - "value": "Value" + "value": "Значение" } ], "label.view": [ @@ -1420,7 +1420,7 @@ "label.view-only": [ { "type": 0, - "value": "View only" + "value": "Только просмотр" } ], "label.views": [ @@ -1432,7 +1432,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Просмотров за посещение" } ], "label.visit-duration": [ @@ -1450,13 +1450,13 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Посещения" } ], "label.website": [ { "type": 0, - "value": "Website" + "value": "Сайт" } ], "label.website-id": [ @@ -1474,7 +1474,7 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Окно" } ], "label.yesterday": [ @@ -1486,7 +1486,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Введите " }, { "type": 1, @@ -1494,7 +1494,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " в поле ниже, чтобы подтвердить." } ], "message.active-users": [ @@ -1510,7 +1510,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Собранные данные" } ], "message.confirm-delete": [ @@ -1544,7 +1544,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Вы уверены, что хотите удалить " }, { "type": 1, @@ -1572,7 +1572,7 @@ "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "При удалении команды будут удалены и все ее веб-сайты." } ], "message.delete-website-warning": [ @@ -1594,7 +1594,7 @@ }, { "type": 0, - "value": " on " + "value": " на " }, { "type": 1, @@ -1636,7 +1636,7 @@ "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "Вышла новая версия Umami " }, { "type": 1, @@ -1644,7 +1644,7 @@ }, { "type": 0, - "value": " is available!" + "value": "!" } ], "message.no-data-available": [ @@ -1656,7 +1656,7 @@ "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "Данные о событиях отсутствуют." } ], "message.no-match-password": [ @@ -1668,7 +1668,7 @@ "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "Результаты не найдены." } ], "message.no-team-websites": [ @@ -1760,25 +1760,25 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Перенести этот сайт в свой прфоиль?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Выберите команду, которой нужно передать этот сайт." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Передайте право владения сайтом своей учетной записи или другой команде." } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Запущенное событие" } ], "message.user-deleted": [ @@ -1790,7 +1790,7 @@ "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Просмотренная страница" } ], "message.visitor-log": [ @@ -1830,7 +1830,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Высадка посетителей" } ] } diff --git a/public/intl/messages/zh-CN.json b/public/intl/messages/zh-CN.json index b3e97b9b0f..c2eb1c59af 100644 --- a/public/intl/messages/zh-CN.json +++ b/public/intl/messages/zh-CN.json @@ -476,7 +476,7 @@ "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "首次出现" } ], "label.funnel": [ @@ -656,7 +656,7 @@ "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "最后出现" } ], "label.leave": [ @@ -1050,19 +1050,19 @@ "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "收入" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "查看您的收入随时间的变化。" } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "收入值" } ], "label.role": [ @@ -1296,7 +1296,7 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "交易" } ], "label.transfer": [ @@ -1338,7 +1338,7 @@ "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "独特客户" } ], "label.unknown": [ @@ -1380,7 +1380,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "用户属性" } ], "label.username": [ diff --git a/public/intl/messages/zh-TW.json b/public/intl/messages/zh-TW.json index e03059f8d6..d8fb3d42dd 100644 --- a/public/intl/messages/zh-TW.json +++ b/public/intl/messages/zh-TW.json @@ -8,13 +8,13 @@ "label.actions": [ { "type": 0, - "value": "行動" + "value": "行為" } ], "label.activity": [ { "type": 0, - "value": "活動日誌" + "value": "活動紀錄" } ], "label.add": [ @@ -32,13 +32,13 @@ "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "新增成員" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "新增步驟" } ], "label.add-website": [ @@ -104,7 +104,7 @@ "label.breakdown": [ { "type": 0, - "value": "分解" + "value": "細項分析" } ], "label.browser": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "比較" } ], "label.confirm": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "數量" } ], "label.countries": [ @@ -206,7 +206,7 @@ "label.create-report": [ { "type": 0, - "value": "建立報告" + "value": "建立報表" } ], "label.create-team": [ @@ -230,13 +230,13 @@ "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "建立者" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "目前" } ], "label.current-password": [ @@ -296,7 +296,7 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "刪除報表" } ], "label.delete-team": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "退出" + "value": "離開" } ], "label.edit": [ @@ -386,25 +386,25 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "編輯成員" } ], "label.enable-share-url": [ { "type": 0, - "value": "啟用分享網址" + "value": "啟用分享連結" } ], "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "結束步驟" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "進入網址" } ], "label.event": [ @@ -428,7 +428,7 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "離開網址" } ], "label.false": [ @@ -470,43 +470,43 @@ "label.filters": [ { "type": 0, - "value": "篩選器" + "value": "篩選條件" } ], "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "首次造訪" } ], "label.funnel": [ { "type": 0, - "value": "漏斗" + "value": "漏斗分析" } ], "label.funnel-description": [ { "type": 0, - "value": "瞭解使用者的轉換率和退出率" + "value": "瞭解使用者的轉換率與流失率。" } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "目標" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "目標" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "追蹤網頁瀏覽和事件的目標。" } ], "label.greater-than": [ @@ -524,13 +524,13 @@ "label.host": [ { "type": 0, - "value": "Host" + "value": "主機名稱" } ], "label.hosts": [ { "type": 0, - "value": "Hosts" + "value": "主機名稱" } ], "label.insights": [ @@ -542,7 +542,7 @@ "label.insights-description": [ { "type": 0, - "value": "透過使用區段和篩選器來深入探索你的數據" + "value": "使用區段和篩選器來深入分析您的資料。" } ], "label.is": [ @@ -584,13 +584,13 @@ "label.journey": [ { "type": 0, - "value": "Journey" + "value": "使用者旅程" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "瞭解使用者如何瀏覽您的網站。" } ], "label.language": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "最近 " }, { "type": 1, @@ -650,13 +650,13 @@ }, { "type": 0, - "value": " months" + "value": " 個月" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "最後造訪" } ], "label.leave": [ @@ -698,25 +698,25 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "管理" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "管理者" } ], "label.max": [ { "type": 0, - "value": "最大" + "value": "最大值" } ], "label.member": [ { "type": 0, - "value": "Member" + "value": "成員" } ], "label.members": [ @@ -728,7 +728,7 @@ "label.min": [ { "type": 0, - "value": "最小" + "value": "最小值" } ], "label.mobile": [ @@ -746,7 +746,7 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "我的帳號" } ], "label.my-websites": [ @@ -780,31 +780,7 @@ }, { "type": 0, - "value": " " - }, - { - "offset": 0, - "options": { - "one": { - "value": [ - { - "type": 0, - "value": "record" - } - ] - }, - "other": { - "value": [ - { - "type": 0, - "value": "records" - } - ] - } - }, - "pluralType": "cardinal", - "type": 6, - "value": "x" + "value": " 筆紀錄" } ], "label.ok": [ @@ -822,7 +798,7 @@ "label.overview": [ { "type": 0, - "value": "概覽" + "value": "總覽" } ], "label.owner": [ @@ -834,7 +810,7 @@ "label.page-of": [ { "type": 0, - "value": "頁面 " + "value": "第 " }, { "type": 1, @@ -842,29 +818,33 @@ }, { "type": 0, - "value": " / " + "value": " 頁,共 " }, { "type": 1, "value": "total" + }, + { + "type": 0, + "value": " 頁" } ], "label.page-views": [ { "type": 0, - "value": "頁面瀏覽" + "value": "網頁瀏覽次數" } ], "label.pageTitle": [ { "type": 0, - "value": "頁面標題" + "value": "網頁標題" } ], "label.pages": [ { "type": 0, - "value": "頁面" + "value": "網頁" } ], "label.password": [ @@ -876,13 +856,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "路徑" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "路徑" } ], "label.powered-by": [ @@ -896,43 +876,43 @@ }, { "type": 0, - "value": " 提供" + "value": " 提供技術支援" } ], "label.previous": [ { "type": 0, - "value": "Previous" + "value": "上一個" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "上一期間" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "去年" } ], "label.profile": [ { "type": 0, - "value": "個人資料" + "value": "個人檔案" } ], "label.properties": [ { "type": 0, - "value": "Properties" + "value": "屬性" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "屬性" } ], "label.queries": [ @@ -986,13 +966,13 @@ "label.region": [ { "type": 0, - "value": "區域" + "value": "地區" } ], "label.regions": [ { "type": 0, - "value": "區域" + "value": "地區" } ], "label.remove": [ @@ -1004,13 +984,13 @@ "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "移除成員" } ], "label.reports": [ { "type": 0, - "value": "報告" + "value": "報表" } ], "label.required": [ @@ -1028,13 +1008,13 @@ "label.reset-website": [ { "type": 0, - "value": "重設網站" + "value": "重設網站統計資料" } ], "label.retention": [ { "type": 0, - "value": "保留" + "value": "留存率" } ], "label.retention-description": [ @@ -1046,19 +1026,19 @@ "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "營收" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "查看您的營收趨勢。" } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "營收屬性" } ], "label.role": [ @@ -1088,37 +1068,37 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "搜尋" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "選取" } ], "label.select-date": [ { "type": 0, - "value": "選擇日期" + "value": "選取日期" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "選取角色" } ], "label.select-website": [ { "type": 0, - "value": "選擇網站" + "value": "選取網站" } ], "label.session": [ { "type": 0, - "value": "Session" + "value": "工作階段" } ], "label.sessions": [ @@ -1136,7 +1116,7 @@ "label.share-url": [ { "type": 0, - "value": "分享網址" + "value": "分享連結" } ], "label.single-day": [ @@ -1148,13 +1128,13 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "起始步驟" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "步驟" } ], "label.sum": [ @@ -1184,7 +1164,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "團隊管理者" } ], "label.team-member": [ @@ -1208,7 +1188,7 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "團隊僅供檢視" } ], "label.team-websites": [ @@ -1280,7 +1260,7 @@ "label.total-records": [ { "type": 0, - "value": "總記錄" + "value": "紀錄總數" } ], "label.tracking-code": [ @@ -1292,19 +1272,19 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "交易" } ], "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "轉移" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "轉移網站" } ], "label.true": [ @@ -1322,19 +1302,19 @@ "label.unique": [ { "type": 0, - "value": "獨立" + "value": "不重複" } ], "label.unique-visitors": [ { "type": 0, - "value": "獨立訪客" + "value": "不重複訪客" } ], "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "不重複客戶" } ], "label.unknown": [ @@ -1346,13 +1326,13 @@ "label.untitled": [ { "type": 0, - "value": "無標題" + "value": "未命名" } ], "label.update": [ { "type": 0, - "value": "Update" + "value": "更新" } ], "label.url": [ @@ -1376,7 +1356,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "使用者屬性" } ], "label.username": [ @@ -1400,7 +1380,7 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "透過 UTM 參數追蹤您的行銷活動。" } ], "label.value": [ @@ -1430,19 +1410,19 @@ "label.views": [ { "type": 0, - "value": "檢視" + "value": "瀏覽次數" } ], "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "每次造訪的瀏覽次數" } ], "label.visit-duration": [ { "type": 0, - "value": "平均造訪時間" + "value": "造訪時間" } ], "label.visitors": [ @@ -1454,7 +1434,7 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "造訪次數" } ], "label.website": [ @@ -1490,7 +1470,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "請在下方欄位輸入 " }, { "type": 1, @@ -1498,7 +1478,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " 以確認。" } ], "message.active-users": [ @@ -1512,13 +1492,13 @@ }, { "type": 0, - "value": " 個活躍的訪客" + "value": " 位訪客" } ], "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "已蒐集的資料" } ], "message.confirm-delete": [ @@ -1552,7 +1532,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "您確定要移除 " }, { "type": 1, @@ -1560,7 +1540,7 @@ }, { "type": 0, - "value": "?" + "value": " 嗎?" } ], "message.confirm-reset": [ @@ -1574,19 +1554,19 @@ }, { "type": 0, - "value": " 嗎?" + "value": " 的統計資料嗎?" } ], "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "刪除團隊的同時也會刪除所有團隊的網站。" } ], "message.delete-website-warning": [ { "type": 0, - "value": "所有網站資料將被刪除。" + "value": "所有網站資料都將被刪除。" } ], "message.error": [ @@ -1596,17 +1576,21 @@ } ], "message.event-log": [ + { + "type": 0, + "value": "在 " + }, { "type": 1, - "value": "event" + "value": "url" }, { "type": 0, - "value": " 在 " + "value": " 上的 " }, { "type": 1, - "value": "url" + "value": "event" } ], "message.go-to-settings": [ @@ -1618,19 +1602,19 @@ "message.incorrect-username-password": [ { "type": 0, - "value": "使用者名稱和/或密碼不正確。" + "value": "使用者名稱或密碼不正確。" } ], "message.invalid-domain": [ { "type": 0, - "value": "無效的網域。請不要包含 http/https。" + "value": "無效的網域。請勿包含 http/https。" } ], "message.min-password-length": [ { "type": 0, - "value": "最少需要 " + "value": "密碼長度至少需 " }, { "type": 1, @@ -1652,7 +1636,7 @@ }, { "type": 0, - "value": " 的新版本已經可以使用!" + "value": " 的新版本已推出!" } ], "message.no-data-available": [ @@ -1694,7 +1678,7 @@ "message.no-users": [ { "type": 0, - "value": "沒有使用者。" + "value": "沒有任何使用者。" } ], "message.no-websites-configured": [ @@ -1706,13 +1690,13 @@ "message.page-not-found": [ { "type": 0, - "value": "找不到頁面" + "value": "找不到網頁" } ], "message.reset-website": [ { "type": 0, - "value": "要重設此網站,請在下方的方框中輸入 " + "value": "要重設此網站的統計資料,請在下方欄位輸入 " }, { "type": 1, @@ -1726,7 +1710,7 @@ "message.reset-website-warning": [ { "type": 0, - "value": "此網站的所有統計將被刪除,但您的設定將保持不變。" + "value": "此網站的所有統計資料都將被刪除,但您的設定將保持不變。" } ], "message.saved": [ @@ -1738,13 +1722,13 @@ "message.share-url": [ { "type": 0, - "value": "您的網站統計資料可以在以下網址公開檢視:" + "value": "您的網站統計資料可在以下網址公開檢視:" } ], "message.team-already-member": [ { "type": 0, - "value": "您已經是團隊的成員。" + "value": "您已是該團隊的成員。" } ], "message.team-not-found": [ @@ -1756,13 +1740,13 @@ "message.team-websites-info": [ { "type": 0, - "value": "團隊的任何成員都可以檢視網站。" + "value": "團隊中的所有成員都可以檢視網站。" } ], "message.tracking-code": [ { "type": 0, - "value": "要追蹤此網站的統計,請將以下代碼放在您的 HTML 的 " + "value": "要追蹤此網站的統計資料,請將以下程式碼放在您 HTML 的 " }, { "children": [ @@ -1782,25 +1766,25 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "要將此網站轉移至您的帳號嗎?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "請選擇要轉移此網站的團隊。" } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "將網站所有權轉移至您的帳號或其他團隊。" } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "已觸發的事件" } ], "message.user-deleted": [ @@ -1812,7 +1796,7 @@ "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "已瀏覽的網頁" } ], "message.visitor-log": [ @@ -1856,7 +1840,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "訪客已離開" } ] } diff --git a/rollup.tracker.config.mjs b/rollup.tracker.config.mjs index 4b1f0e0e25..05df28798d 100644 --- a/rollup.tracker.config.mjs +++ b/rollup.tracker.config.mjs @@ -5,7 +5,7 @@ import { terser } from 'rollup-plugin-terser'; export default { input: 'src/tracker/index.js', output: { - file: 'public/tracker.js', + file: 'public/script.js', format: 'iife', }, plugins: [ diff --git a/src/app/(main)/NavBar.tsx b/src/app/(main)/NavBar.tsx index 5e0e3da26b..5c8bba01ad 100644 --- a/src/app/(main)/NavBar.tsx +++ b/src/app/(main)/NavBar.tsx @@ -10,6 +10,8 @@ import TeamsButton from 'components/input/TeamsButton'; import Icons from 'components/icons'; import { useMessages, useNavigation, useTeamUrl } from 'components/hooks'; import styles from './NavBar.module.css'; +import { useEffect } from 'react'; +import { getItem, setItem } from 'next-basics'; export function NavBar() { const { formatMessage, labels } = useMessages(); @@ -74,10 +76,24 @@ export function NavBar() { const handleTeamChange = (teamId: string) => { const url = teamId ? `/teams/${teamId}` : '/'; - + if (!cloudMode) { + setItem('umami.team', { id: teamId }); + } router.push(cloudMode ? `${process.env.cloudUrl}${url}` : url); }; + useEffect(() => { + if (!cloudMode) { + const teamIdLocal = getItem('umami.team')?.id; + + if (teamIdLocal && teamIdLocal !== teamId) { + router.push( + pathname !== '/' && pathname !== '/dashboard' ? '/' : `/teams/${teamIdLocal}/dashboard`, + ); + } + } + }, [cloudMode]); + return (
diff --git a/src/app/(main)/console/[[...websiteId]]/page.tsx b/src/app/(main)/console/[[...websiteId]]/page.tsx index 2cbdddcc0a..93eafee470 100644 --- a/src/app/(main)/console/[[...websiteId]]/page.tsx +++ b/src/app/(main)/console/[[...websiteId]]/page.tsx @@ -5,7 +5,9 @@ async function getEnabled() { return !!process.env.ENABLE_TEST_CONSOLE; } -export default async function ({ params: { websiteId } }) { +export default async function ({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + const enabled = await getEnabled(); if (!enabled) { diff --git a/src/app/(main)/dashboard/DashboardEdit.module.css b/src/app/(main)/dashboard/DashboardEdit.module.css index febc551d44..19266d17a4 100644 --- a/src/app/(main)/dashboard/DashboardEdit.module.css +++ b/src/app/(main)/dashboard/DashboardEdit.module.css @@ -1,36 +1,36 @@ .buttons { display: flex; + align-items: center; justify-content: flex-end; gap: 10px; - margin-bottom: 20px; } .item { - padding: 5px 0; + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 20px; + border-radius: 5px; + border: 1px solid var(--base400); + background: var(--base50); + margin-bottom: 10px; } -.item h1 { +.text { + position: relative; +} + +.name { font-weight: 600; font-size: 16px; } -.item h2 { +.domain { font-size: 14px; color: var(--base700); } -.text { - padding: 20px; - border-radius: 5px; - border: 1px solid var(--base400); - background: var(--base50); -} - -.active .text { - border-color: var(--base600); - box-shadow: 4px 4px 4px var(--base100); -} - .dragActive { cursor: grab; } @@ -38,3 +38,20 @@ .dragActive:active { cursor: grabbing; } + +.header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 20px; + gap: 20px; +} + +.search { + max-width: 360px; +} + +.active { + border-color: var(--base600); + box-shadow: 4px 4px 4px var(--base100); +} diff --git a/src/app/(main)/dashboard/DashboardEdit.tsx b/src/app/(main)/dashboard/DashboardEdit.tsx index d702612f6e..42eb99ac87 100644 --- a/src/app/(main)/dashboard/DashboardEdit.tsx +++ b/src/app/(main)/dashboard/DashboardEdit.tsx @@ -1,7 +1,7 @@ -import { useState, useMemo } from 'react'; +import { useState, useMemo, useEffect } from 'react'; import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd'; import classNames from 'classnames'; -import { Button, Loading } from 'react-basics'; +import { Button, Loading, Toggle, SearchField } from 'react-basics'; import { firstBy } from 'thenby'; import useDashboard, { saveDashboard } from 'store/dashboard'; import { useMessages, useWebsites } from 'components/hooks'; @@ -11,20 +11,39 @@ const DRAG_ID = 'dashboard-website-ordering'; export function DashboardEdit({ teamId }: { teamId: string }) { const settings = useDashboard(); - const { websiteOrder } = settings; + const { websiteOrder, websiteActive, isEdited } = settings; const { formatMessage, labels } = useMessages(); const [order, setOrder] = useState(websiteOrder || []); + const [active, setActive] = useState(websiteActive || []); + const [edited, setEdited] = useState(isEdited); + const [websites, setWebsites] = useState([]); + const [search, setSearch] = useState(''); + const { result, query: { isLoading }, + setParams, } = useWebsites({ teamId }); - const websites = result?.data; + useEffect(() => { + if (result?.data) { + setWebsites(prevWebsites => { + const newWebsites = [...prevWebsites, ...result.data]; + if (newWebsites.length < result.count) { + setParams(prevParams => ({ ...prevParams, page: prevParams.page + 1 })); + } + return newWebsites; + }); + } + }, [result]); const ordered = useMemo(() => { if (websites) { return websites - .map((website: { id: any }) => ({ ...website, order: order.indexOf(website.id) })) + .map((website: { id: any; name: string; domain: string }) => ({ + ...website, + order: order.indexOf(website.id), + })) .sort(firstBy('order')); } return []; @@ -38,21 +57,33 @@ export function DashboardEdit({ teamId }: { teamId: string }) { orderedWebsites.splice(destination.index, 0, removed); setOrder(orderedWebsites.map(website => website?.id || 0)); + setEdited(true); + } + + function handleActiveWebsites(id: string) { + setActive(prevActive => + prevActive.includes(id) ? prevActive.filter(a => a !== id) : [...prevActive, id], + ); + setEdited(true); } function handleSave() { saveDashboard({ editing: false, + isEdited: edited, websiteOrder: order, + websiteActive: active, }); } function handleCancel() { - saveDashboard({ editing: false, websiteOrder }); + saveDashboard({ editing: false, websiteOrder, websiteActive, isEdited }); } function handleReset() { setOrder([]); + setActive([]); + setEdited(false); } if (isLoading) { @@ -61,16 +92,19 @@ export function DashboardEdit({ teamId }: { teamId: string }) { return ( <> -
- - - +
+ +
+ + + +
@@ -81,25 +115,38 @@ export function DashboardEdit({ teamId }: { teamId: string }) { ref={provided.innerRef} style={{ marginBottom: snapshot.isDraggingOver ? 260 : null }} > - {ordered.map(({ id, name, domain }, index) => ( - - {(provided, snapshot) => ( -
-
-

{name}

-

{domain}

+ {ordered.map(({ id, name, domain }, index) => { + if ( + search && + !`${name.toLowerCase()}${domain.toLowerCase()}`.includes(search.toLowerCase()) + ) { + return null; + } + + return ( + + {(provided, snapshot) => ( +
+
+
{name}
+
{domain}
+
+ handleActiveWebsites(id)} + />
-
- )} - - ))} + )} + + ); + })} {provided.placeholder}
)} diff --git a/src/app/(main)/dashboard/DashboardPage.tsx b/src/app/(main)/dashboard/DashboardPage.tsx index 60bf17998d..2a4bb91658 100644 --- a/src/app/(main)/dashboard/DashboardPage.tsx +++ b/src/app/(main)/dashboard/DashboardPage.tsx @@ -13,9 +13,9 @@ import LinkButton from 'components/common/LinkButton'; export function DashboardPage() { const { formatMessage, labels, messages } = useMessages(); const { teamId, renderTeamUrl } = useTeamUrl(); - const { showCharts, editing } = useDashboard(); + const { showCharts, editing, isEdited } = useDashboard(); const { dir } = useLocale(); - const pageSize = 10; + const pageSize = isEdited ? 200 : 10; const { result, query, params, setParams } = useWebsites({ teamId }, { pageSize }); const { page } = params; diff --git a/src/app/(main)/profile/TimezoneSetting.tsx b/src/app/(main)/profile/TimezoneSetting.tsx index 02f3e186f4..00858ac708 100644 --- a/src/app/(main)/profile/TimezoneSetting.tsx +++ b/src/app/(main)/profile/TimezoneSetting.tsx @@ -1,11 +1,10 @@ import { useState } from 'react'; import { Dropdown, Item, Button, Flexbox } from 'react-basics'; -import moment from 'moment-timezone'; import { useTimezone, useMessages } from 'components/hooks'; import { getTimezone } from 'lib/date'; import styles from './TimezoneSetting.module.css'; -const timezones = moment.tz.names(); +const timezones = Intl.supportedValuesOf('timeZone'); export function TimezoneSetting() { const [search, setSearch] = useState(''); diff --git a/src/app/(main)/reports/[reportId]/page.tsx b/src/app/(main)/reports/[reportId]/page.tsx index 690daf4780..85a97d1ca2 100644 --- a/src/app/(main)/reports/[reportId]/page.tsx +++ b/src/app/(main)/reports/[reportId]/page.tsx @@ -1,7 +1,9 @@ import { Metadata } from 'next'; import ReportPage from './ReportPage'; -export default function ({ params: { reportId } }) { +export default async function ({ params }: { params: { reportId: string } }) { + const { reportId } = await params; + return ; } diff --git a/src/app/(main)/settings/users/[userId]/page.tsx b/src/app/(main)/settings/users/[userId]/page.tsx index d5dc5005dd..3b3a3fac9c 100644 --- a/src/app/(main)/settings/users/[userId]/page.tsx +++ b/src/app/(main)/settings/users/[userId]/page.tsx @@ -1,7 +1,9 @@ import UserPage from './UserPage'; import { Metadata } from 'next'; -export default function ({ params: { userId } }) { +export default async function ({ params }: { params: { userId: string } }) { + const { userId } = await params; + return ; } diff --git a/src/app/(main)/settings/websites/[websiteId]/page.tsx b/src/app/(main)/settings/websites/[websiteId]/page.tsx index f3d87c7883..7e2feaf26e 100644 --- a/src/app/(main)/settings/websites/[websiteId]/page.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/page.tsx @@ -1,7 +1,9 @@ import WebsiteSettingsPage from './WebsiteSettingsPage'; import { Metadata } from 'next'; -export default async function ({ params: { websiteId } }) { +export default async function ({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + return ; } diff --git a/src/app/(main)/settings/websites/page.tsx b/src/app/(main)/settings/websites/page.tsx index d073b32b58..d05be0a5c8 100644 --- a/src/app/(main)/settings/websites/page.tsx +++ b/src/app/(main)/settings/websites/page.tsx @@ -1,7 +1,9 @@ import { Metadata } from 'next'; import WebsitesSettingsPage from './WebsitesSettingsPage'; -export default function ({ params: { teamId } }: { params: { teamId: string } }) { +export default async function ({ params }: { params: { teamId: string } }) { + const { teamId } = await params; + return ; } diff --git a/src/app/(main)/teams/[teamId]/layout.tsx b/src/app/(main)/teams/[teamId]/layout.tsx index e10cdb9431..0452ae9769 100644 --- a/src/app/(main)/teams/[teamId]/layout.tsx +++ b/src/app/(main)/teams/[teamId]/layout.tsx @@ -2,7 +2,15 @@ import TeamProvider from './TeamProvider'; import { Metadata } from 'next'; import TeamSettingsLayout from './settings/TeamSettingsLayout'; -export default function ({ children, params: { teamId } }) { +export default async function ({ + children, + params, +}: { + children: any; + params: { teamId: string }; +}) { + const { teamId } = await params; + return ( {children} diff --git a/src/app/(main)/teams/[teamId]/settings/members/page.tsx b/src/app/(main)/teams/[teamId]/settings/members/page.tsx index fbee6a8ea0..9810f7a20f 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/page.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/page.tsx @@ -1,7 +1,9 @@ -import TeamMembersPage from './TeamMembersPage'; import { Metadata } from 'next'; +import TeamMembersPage from './TeamMembersPage'; + +export default async function ({ params }: { params: { teamId: string } }) { + const { teamId } = await params; -export default function ({ params: { teamId } }) { return ; } diff --git a/src/app/(main)/teams/[teamId]/settings/team/page.tsx b/src/app/(main)/teams/[teamId]/settings/team/page.tsx index 0c4dd2012b..f15d5fb61f 100644 --- a/src/app/(main)/teams/[teamId]/settings/team/page.tsx +++ b/src/app/(main)/teams/[teamId]/settings/team/page.tsx @@ -1,7 +1,9 @@ import { Metadata } from 'next'; import TeamPage from './TeamPage'; -export default function ({ params: { teamId } }) { +export default async function ({ params }: { params: { teamId: string } }) { + const { teamId } = await params; + return ; } diff --git a/src/app/(main)/teams/[teamId]/settings/websites/page.tsx b/src/app/(main)/teams/[teamId]/settings/websites/page.tsx index cfb465fb42..6709eb6715 100644 --- a/src/app/(main)/teams/[teamId]/settings/websites/page.tsx +++ b/src/app/(main)/teams/[teamId]/settings/websites/page.tsx @@ -1,7 +1,9 @@ import TeamWebsitesPage from './TeamWebsitesPage'; import { Metadata } from 'next'; -export default function ({ params: { teamId } }) { +export default async function ({ params }: { params: { teamId: string } }) { + const { teamId } = await params; + return ; } diff --git a/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx b/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx index fa5ab69423..ddeba789d1 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteChart.tsx @@ -11,7 +11,7 @@ export function WebsiteChart({ compareMode?: boolean; }) { const { dateRange, dateCompare } = useDateRange(websiteId); - const { startDate, endDate, unit } = dateRange; + const { startDate, endDate, unit, value } = dateRange; const { data, isLoading } = useWebsitePageviews(websiteId, compareMode ? dateCompare : undefined); const { pageviews, sessions, compare } = (data || {}) as any; @@ -49,6 +49,7 @@ export function WebsiteChart({ maxDate={endDate.toISOString()} unit={unit} isLoading={isLoading} + isAllTime={value === 'all'} /> ); } diff --git a/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx b/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx index 398fbf8fde..e33e948af0 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx @@ -18,17 +18,16 @@ export default function WebsiteChartList({ limit?: number; }) { const { formatMessage, labels } = useMessages(); - const { websiteOrder } = useDashboard(); + const { websiteOrder, websiteActive } = useDashboard(); const { renderTeamUrl } = useTeamUrl(); const { dir } = useLocale(); - const ordered = useMemo( - () => - websites - .map(website => ({ ...website, order: websiteOrder.indexOf(website.id) || 0 })) - .sort(firstBy('order')), - [websites, websiteOrder], - ); + const ordered = useMemo(() => { + return websites + .filter(website => (websiteActive.length ? websiteActive.includes(website.id) : true)) + .map(website => ({ ...website, order: websiteOrder.indexOf(website.id) || 0 })) + .sort(firstBy('order')); + }, [websites, websiteOrder, websiteActive]); return (
diff --git a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.module.css b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.module.css index 007fa7f1b7..afe2028aed 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.module.css +++ b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.module.css @@ -59,5 +59,6 @@ align-items: center; justify-content: space-between; padding-inline-end: 0; + z-index: 10; } } diff --git a/src/app/(main)/websites/[websiteId]/compare/page.tsx b/src/app/(main)/websites/[websiteId]/compare/page.tsx index b3009fcaaa..bdd29bd54f 100644 --- a/src/app/(main)/websites/[websiteId]/compare/page.tsx +++ b/src/app/(main)/websites/[websiteId]/compare/page.tsx @@ -1,7 +1,9 @@ import WebsiteComparePage from './WebsiteComparePage'; import { Metadata } from 'next'; -export default function ({ params: { websiteId } }) { +export default async function ({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + return ; } diff --git a/src/app/(main)/websites/[websiteId]/events/page.tsx b/src/app/(main)/websites/[websiteId]/events/page.tsx index b5dc4d62ca..1b88824452 100644 --- a/src/app/(main)/websites/[websiteId]/events/page.tsx +++ b/src/app/(main)/websites/[websiteId]/events/page.tsx @@ -1,7 +1,9 @@ import { Metadata } from 'next'; import EventsPage from './EventsPage'; -export default async function ({ params: { websiteId } }) { +export default async function ({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + return ; } diff --git a/src/app/(main)/websites/[websiteId]/layout.tsx b/src/app/(main)/websites/[websiteId]/layout.tsx index f8756ea3e7..1df69cd316 100644 --- a/src/app/(main)/websites/[websiteId]/layout.tsx +++ b/src/app/(main)/websites/[websiteId]/layout.tsx @@ -1,7 +1,15 @@ import { Metadata } from 'next'; import WebsiteProvider from './WebsiteProvider'; -export default function ({ children, params: { websiteId } }) { +export default async function ({ + children, + params, +}: { + children: any; + params: { websiteId: string }; +}) { + const { websiteId } = await params; + return {children}; } diff --git a/src/app/(main)/websites/[websiteId]/page.tsx b/src/app/(main)/websites/[websiteId]/page.tsx index 49bca9b6f4..d3aa1633ac 100644 --- a/src/app/(main)/websites/[websiteId]/page.tsx +++ b/src/app/(main)/websites/[websiteId]/page.tsx @@ -1,7 +1,9 @@ import WebsiteDetailsPage from './WebsiteDetailsPage'; import { Metadata } from 'next'; -export default function WebsitePage({ params: { websiteId } }) { +export default async function WebsitePage({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + return ; } diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx index ae4967dab9..5166344101 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx @@ -12,7 +12,7 @@ export function RealtimeCountries({ data }) { const renderCountryName = useCallback( ({ x: code }) => ( - + {countryNames[code]} diff --git a/src/app/(main)/websites/[websiteId]/realtime/page.tsx b/src/app/(main)/websites/[websiteId]/realtime/page.tsx index 0ca7ffd83c..f205caddfc 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/page.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/page.tsx @@ -1,7 +1,9 @@ import WebsiteRealtimePage from './WebsiteRealtimePage'; import { Metadata } from 'next'; -export default function ({ params: { websiteId } }) { +export default async function ({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + return ; } diff --git a/src/app/(main)/websites/[websiteId]/reports/page.tsx b/src/app/(main)/websites/[websiteId]/reports/page.tsx index caa805a63c..15c79de9a6 100644 --- a/src/app/(main)/websites/[websiteId]/reports/page.tsx +++ b/src/app/(main)/websites/[websiteId]/reports/page.tsx @@ -1,7 +1,9 @@ import WebsiteReportsPage from './WebsiteReportsPage'; import { Metadata } from 'next'; -export default function ({ params: { websiteId } }) { +export default async function ({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + return ; } diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.module.css b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.module.css index b49230c7b8..fb830d3822 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.module.css +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.module.css @@ -5,7 +5,8 @@ } .row { - display: flex; + display: grid; + grid-template-columns: max-content max-content 1fr; align-items: center; gap: 20px; } @@ -15,10 +16,6 @@ width: 150px; } -.value { - white-space: nowrap; -} - .header { font-weight: bold; } diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx index fd498ac3ab..642b93d996 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionActivity.tsx @@ -42,7 +42,7 @@ export function SessionActivity({
{eventName ? : } -
{eventName || urlPath}
+
{eventName || urlPath}
); diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/page.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/page.tsx index 952e8cc580..f4882880cb 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/page.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/page.tsx @@ -1,7 +1,13 @@ import SessionDetailsPage from './SessionDetailsPage'; import { Metadata } from 'next'; -export default function WebsitePage({ params: { websiteId, sessionId } }) { +export default async function WebsitePage({ + params, +}: { + params: { websiteId: string; sessionId: string }; +}) { + const { websiteId, sessionId } = await params; + return ; } diff --git a/src/app/(main)/websites/[websiteId]/sessions/page.tsx b/src/app/(main)/websites/[websiteId]/sessions/page.tsx index 771f682ddc..d1ff96f58a 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/page.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/page.tsx @@ -1,7 +1,9 @@ import SessionsPage from './SessionsPage'; import { Metadata } from 'next'; -export default function ({ params: { websiteId } }) { +export default async function ({ params }: { params: { websiteId: string } }) { + const { websiteId } = await params; + return ; } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 92285c63dd..3c0ed43c9c 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,10 +1,10 @@ import { Metadata } from 'next'; import Providers from './Providers'; +import '@fontsource/inter/300.css'; import '@fontsource/inter/400.css'; +import '@fontsource/inter/500.css'; import '@fontsource/inter/700.css'; -import '@fontsource/inter/800.css'; import 'react-basics/dist/styles.css'; -import 'styles/locale.css'; import 'styles/index.css'; import 'styles/variables.css'; diff --git a/src/app/share/[...shareId]/page.tsx b/src/app/share/[...shareId]/page.tsx index e8ca8e607e..c06274aa03 100644 --- a/src/app/share/[...shareId]/page.tsx +++ b/src/app/share/[...shareId]/page.tsx @@ -1,5 +1,7 @@ import SharePage from './SharePage'; -export default function ({ params: { shareId } }) { +export default async function ({ params }: { params: { shareId: string } }) { + const { shareId } = await params; + return ; } diff --git a/src/assets/pushpin.svg b/src/assets/pushpin.svg new file mode 100644 index 0000000000..653a552d92 --- /dev/null +++ b/src/assets/pushpin.svg @@ -0,0 +1,8 @@ + + + \ No newline at end of file diff --git a/src/components/charts/BarChart.tsx b/src/components/charts/BarChart.tsx index eadc4af738..7c16730e7b 100644 --- a/src/components/charts/BarChart.tsx +++ b/src/components/charts/BarChart.tsx @@ -14,6 +14,7 @@ export interface BarChartProps extends ChartProps { YAxisType?: string; minDate?: number | string; maxDate?: number | string; + isAllTime?: boolean; } export function BarChart(props: BarChartProps) { @@ -29,6 +30,7 @@ export function BarChart(props: BarChartProps) { minDate, maxDate, currency, + isAllTime, } = props; const options: any = useMemo(() => { @@ -37,7 +39,7 @@ export function BarChart(props: BarChartProps) { x: { type: XAxisType, stacked: true, - min: minDate && new Date(minDate).getSeconds() === 0 ? minDate : '', + min: isAllTime ? '' : minDate, max: maxDate, time: { unit, diff --git a/src/components/common/Favicon.tsx b/src/components/common/Favicon.tsx index e78bdbc7de..47c65aab14 100644 --- a/src/components/common/Favicon.tsx +++ b/src/components/common/Favicon.tsx @@ -1,5 +1,5 @@ function getHostName(url: string) { - const match = url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:/\n?=]+)/im); + const match = url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?([^:/\n?=]+)/im); return match && match.length > 1 ? match[1] : null; } diff --git a/src/components/common/TypeIcon.tsx b/src/components/common/TypeIcon.tsx index d617e75925..2a180445fe 100644 --- a/src/components/common/TypeIcon.tsx +++ b/src/components/common/TypeIcon.tsx @@ -12,9 +12,12 @@ export function TypeIcon({ return ( <> { + e.currentTarget.src = `${process.env.basePath || ''}/images/${type}/unknown.png`; + }} alt={value} width={type === 'country' ? undefined : 16} height={type === 'country' ? undefined : 16} diff --git a/src/components/hooks/queries/useWebsiteMetrics.ts b/src/components/hooks/queries/useWebsiteMetrics.ts index 8a3976e103..1a4202e87d 100644 --- a/src/components/hooks/queries/useWebsiteMetrics.ts +++ b/src/components/hooks/queries/useWebsiteMetrics.ts @@ -1,6 +1,7 @@ import { UseQueryOptions } from '@tanstack/react-query'; import { useApi } from '../useApi'; import { useFilterParams } from '../useFilterParams'; +import { useSearchParams } from 'next/navigation'; export function useWebsiteMetrics( websiteId: string, @@ -9,6 +10,7 @@ export function useWebsiteMetrics( ) { const { get, useQuery } = useApi(); const params = useFilterParams(websiteId); + const searchParams = useSearchParams(); return useQuery({ queryKey: [ @@ -20,12 +22,9 @@ export function useWebsiteMetrics( }, ], queryFn: async () => { - const filters = { ...params }; - - filters[queryParams.type] = undefined; - const data = await get(`/websites/${websiteId}/metrics`, { - ...filters, + ...params, + [searchParams.get('view')]: undefined, ...queryParams, }); diff --git a/src/components/hooks/queries/useWebsiteValues.ts b/src/components/hooks/queries/useWebsiteValues.ts index 68e950f266..73a7c75536 100644 --- a/src/components/hooks/queries/useWebsiteValues.ts +++ b/src/components/hooks/queries/useWebsiteValues.ts @@ -1,4 +1,6 @@ import { useApi } from '../useApi'; +import { useCountryNames, useRegionNames } from 'components/hooks'; +import useLocale from '../useLocale'; export function useWebsiteValues({ websiteId, @@ -14,6 +16,36 @@ export function useWebsiteValues({ search?: string; }) { const { get, useQuery } = useApi(); + const { locale } = useLocale(); + const { countryNames } = useCountryNames(locale); + const { regionNames } = useRegionNames(locale); + + const names = { + country: countryNames, + region: regionNames, + }; + + const getSearch = (type: string, value: string) => { + if (value) { + const values = names[type]; + + if (values) { + return ( + Object.keys(values) + .reduce((arr: string[], key: string) => { + if (values[key].toLowerCase().includes(value.toLowerCase())) { + return arr.concat(key); + } + return arr; + }, []) + .slice(0, 5) + .join(',') || value + ); + } + + return value; + } + }; return useQuery({ queryKey: ['websites:values', { websiteId, type, startDate, endDate, search }], @@ -22,7 +54,7 @@ export function useWebsiteValues({ type, startAt: +startDate, endAt: +endDate, - search, + search: getSearch(type, search), }), enabled: !!(websiteId && type && startDate && endDate), }); diff --git a/src/components/hooks/useFormat.ts b/src/components/hooks/useFormat.ts index 631b3f03bb..1003072165 100644 --- a/src/components/hooks/useFormat.ts +++ b/src/components/hooks/useFormat.ts @@ -2,12 +2,14 @@ import useMessages from './useMessages'; import { BROWSERS, OS_NAMES } from 'lib/constants'; import useLocale from './useLocale'; import useCountryNames from './useCountryNames'; +import useLanguageNames from './useLanguageNames'; import regions from '../../../public/iso-3166-2.json'; export function useFormat() { const { formatMessage, labels } = useMessages(); const { locale } = useLocale(); const { countryNames } = useCountryNames(locale); + const { languageNames } = useLanguageNames(locale); const formatOS = (value: string): string => { return OS_NAMES[value] || value; @@ -34,6 +36,10 @@ export function useFormat() { return countryNames[country] ? `${value}, ${countryNames[country]}` : value; }; + const formatLanguage = (value: string): string => { + return languageNames[value?.split('-')[0]] || value; + }; + const formatValue = (value: string, type: string, data?: { [key: string]: any }): string => { switch (type) { case 'os': @@ -48,12 +54,23 @@ export function useFormat() { return formatRegion(value); case 'city': return formatCity(value, data?.country); + case 'language': + return formatLanguage(value); default: return value; } }; - return { formatOS, formatBrowser, formatDevice, formatCountry, formatRegion, formatValue }; + return { + formatOS, + formatBrowser, + formatDevice, + formatCountry, + formatRegion, + formatCity, + formatLanguage, + formatValue, + }; } export default useFormat; diff --git a/src/components/hooks/useLanguageNames.ts b/src/components/hooks/useLanguageNames.ts index 276faa1499..07b36a2c70 100644 --- a/src/components/hooks/useLanguageNames.ts +++ b/src/components/hooks/useLanguageNames.ts @@ -28,7 +28,7 @@ export function useLanguageNames(locale) { } }, [locale]); - return list; + return { languageNames: list }; } export default useLanguageNames; diff --git a/src/components/icons.ts b/src/components/icons.ts index 422f042ab2..1cf26543bc 100644 --- a/src/components/icons.ts +++ b/src/components/icons.ts @@ -19,6 +19,7 @@ import Moon from 'assets/moon.svg'; import Nodes from 'assets/nodes.svg'; import Overview from 'assets/overview.svg'; import Profile from 'assets/profile.svg'; +import PushPin from 'assets/pushpin.svg'; import Reports from 'assets/reports.svg'; import Sun from 'assets/sun.svg'; import User from 'assets/user.svg'; @@ -47,6 +48,7 @@ const icons = { Nodes, Overview, Profile, + PushPin, Reports, Sun, User, diff --git a/src/components/input/LanguageButton.tsx b/src/components/input/LanguageButton.tsx index fcaa4046ee..5da3bf7845 100644 --- a/src/components/input/LanguageButton.tsx +++ b/src/components/input/LanguageButton.tsx @@ -1,4 +1,4 @@ -import { Icon, Button, PopupTrigger, Popup, Text } from 'react-basics'; +import { Icon, Button, PopupTrigger, Popup } from 'react-basics'; import classNames from 'classnames'; import { languages } from 'lib/lang'; import { useLocale } from 'components/hooks'; @@ -33,7 +33,7 @@ export function LanguageButton() { className={classNames(styles.item, { [styles.selected]: value === locale })} onClick={(e: any) => handleSelect(value, close, e)} > - {label} + {label} {value === locale && ( diff --git a/src/components/metrics/CitiesTable.tsx b/src/components/metrics/CitiesTable.tsx index b3573b5c36..fd628e7fa7 100644 --- a/src/components/metrics/CitiesTable.tsx +++ b/src/components/metrics/CitiesTable.tsx @@ -1,25 +1,24 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; import { emptyFilter } from 'lib/filters'; import FilterLink from 'components/common/FilterLink'; -import TypeIcon from 'components/common/TypeIcon'; -import { useLocale } from 'components/hooks'; import { useMessages } from 'components/hooks'; -import { useCountryNames } from 'components/hooks'; +import { useFormat } from 'components/hooks'; export function CitiesTable(props: MetricsTableProps) { - const { locale } = useLocale(); const { formatMessage, labels } = useMessages(); - const { countryNames } = useCountryNames(locale); - - const renderLabel = (city: string, country: string) => { - const countryName = countryNames[country]; - return countryName ? `${city}, ${countryName}` : city; - }; + const { formatCity } = useFormat(); const renderLink = ({ x: city, country }) => { return ( - - {country && } + + {country && ( + {country} + )} ); }; @@ -32,6 +31,7 @@ export function CitiesTable(props: MetricsTableProps) { metric={formatMessage(labels.visitors)} dataFilter={emptyFilter} renderLabel={renderLink} + searchFormattedValues={true} /> ); } diff --git a/src/components/metrics/CountriesTable.tsx b/src/components/metrics/CountriesTable.tsx index 592ade8a0d..f4560ae347 100644 --- a/src/components/metrics/CountriesTable.tsx +++ b/src/components/metrics/CountriesTable.tsx @@ -14,8 +14,7 @@ export function CountriesTable({ ...props }: MetricsTableProps) { return ( @@ -30,6 +29,7 @@ export function CountriesTable({ ...props }: MetricsTableProps) { type="country" metric={formatMessage(labels.visitors)} renderLabel={renderLink} + searchFormattedValues={true} /> ); } diff --git a/src/components/metrics/DevicesTable.tsx b/src/components/metrics/DevicesTable.tsx index f2f3f1aabe..c25afe4fa8 100644 --- a/src/components/metrics/DevicesTable.tsx +++ b/src/components/metrics/DevicesTable.tsx @@ -23,6 +23,7 @@ export function DevicesTable(props: MetricsTableProps) { type="device" metric={formatMessage(labels.visitors)} renderLabel={renderLink} + searchFormattedValues={true} /> ); } diff --git a/src/components/metrics/EventsChart.tsx b/src/components/metrics/EventsChart.tsx index f5b283449b..2ba2caeecc 100644 --- a/src/components/metrics/EventsChart.tsx +++ b/src/components/metrics/EventsChart.tsx @@ -1,9 +1,9 @@ -import { useMemo } from 'react'; import { colord } from 'colord'; import BarChart from 'components/charts/BarChart'; -import { useLocale, useDateRange, useWebsiteEventsSeries } from 'components/hooks'; -import { CHART_COLORS } from 'lib/constants'; +import { useDateRange, useLocale, useWebsiteEventsSeries } from 'components/hooks'; import { renderDateLabels } from 'lib/charts'; +import { CHART_COLORS } from 'lib/constants'; +import { useMemo } from 'react'; export interface EventsChartProps { websiteId: string; @@ -12,7 +12,7 @@ export interface EventsChartProps { export function EventsChart({ websiteId, className }: EventsChartProps) { const { - dateRange: { startDate, endDate, unit }, + dateRange: { startDate, endDate, unit, value }, } = useDateRange(websiteId); const { locale } = useLocale(); const { data, isLoading } = useWebsiteEventsSeries(websiteId); @@ -55,6 +55,7 @@ export function EventsChart({ websiteId, className }: EventsChartProps) { stacked={true} renderXLabel={renderDateLabels(unit, locale)} isLoading={isLoading} + isAllTime={value === 'all'} /> ); } diff --git a/src/components/metrics/LanguagesTable.tsx b/src/components/metrics/LanguagesTable.tsx index 67b6e62237..24b62046f6 100644 --- a/src/components/metrics/LanguagesTable.tsx +++ b/src/components/metrics/LanguagesTable.tsx @@ -1,8 +1,8 @@ import MetricsTable, { MetricsTableProps } from './MetricsTable'; import { percentFilter } from 'lib/filters'; -import { useLanguageNames } from 'components/hooks'; import { useLocale } from 'components/hooks'; import { useMessages } from 'components/hooks'; +import { useFormat } from 'components/hooks'; export function LanguagesTable({ onDataLoad, @@ -10,10 +10,10 @@ export function LanguagesTable({ }: { onDataLoad: (data: any) => void } & MetricsTableProps) { const { formatMessage, labels } = useMessages(); const { locale } = useLocale(); - const languageNames = useLanguageNames(locale); + const { formatLanguage } = useFormat(); const renderLabel = ({ x }) => { - return
{languageNames[x?.split('-')[0]] ?? x}
; + return
{formatLanguage(x)}
; }; return ( @@ -24,6 +24,7 @@ export function LanguagesTable({ metric={formatMessage(labels.visitors)} onDataLoad={data => onDataLoad?.(percentFilter(data))} renderLabel={renderLabel} + searchFormattedValues={true} /> ); } diff --git a/src/components/metrics/Legend.tsx b/src/components/metrics/Legend.tsx index c7ef1022b0..4ebcf4b440 100644 --- a/src/components/metrics/Legend.tsx +++ b/src/components/metrics/Legend.tsx @@ -3,7 +3,6 @@ import { safeDecodeURIComponent } from 'next-basics'; import { colord } from 'colord'; import classNames from 'classnames'; import { LegendItem } from 'chart.js/auto'; -import { useLocale } from 'components/hooks'; import styles from './Legend.module.css'; export function Legend({ @@ -13,8 +12,6 @@ export function Legend({ items: any[]; onClick: (index: LegendItem) => void; }) { - const { locale } = useLocale(); - if (!items.find(({ text }) => text)) { return null; } @@ -32,7 +29,7 @@ export function Legend({ onClick={() => onClick(item)} > - {safeDecodeURIComponent(text)} + {safeDecodeURIComponent(text)}
); diff --git a/src/components/metrics/MetricsTable.tsx b/src/components/metrics/MetricsTable.tsx index 4ca3ff522e..4db599b960 100644 --- a/src/components/metrics/MetricsTable.tsx +++ b/src/components/metrics/MetricsTable.tsx @@ -26,6 +26,7 @@ export interface MetricsTableProps extends ListTableProps { onDataLoad?: (data: any) => void; onSearch?: (search: string) => void; allowSearch?: boolean; + searchFormattedValues?: boolean; showMore?: boolean; params?: { [key: string]: any }; children?: ReactNode; @@ -40,6 +41,7 @@ export function MetricsTable({ onDataLoad, delay = null, allowSearch = false, + searchFormattedValues = false, showMore = true, params, children, @@ -53,7 +55,7 @@ export function MetricsTable({ const { data, isLoading, isFetched, error } = useWebsiteMetrics( websiteId, - { type, limit, search, ...params }, + { type, limit, search: searchFormattedValues ? undefined : search, ...params }, { retryDelay: delay || DEFAULT_ANIMATION_DURATION, onDataLoad, @@ -74,6 +76,14 @@ export function MetricsTable({ } } + if (searchFormattedValues && search) { + items = items.filter(({ x, ...data }) => { + const value = formatValue(x, type, data); + + return value?.toLowerCase().includes(search.toLowerCase()); + }); + } + items = percentFilter(items); return items; diff --git a/src/components/metrics/PageviewsChart.tsx b/src/components/metrics/PageviewsChart.tsx index 6ca0309494..6274defc09 100644 --- a/src/components/metrics/PageviewsChart.tsx +++ b/src/components/metrics/PageviewsChart.tsx @@ -14,9 +14,16 @@ export interface PagepageviewsChartProps extends BarChartProps { }; unit: string; isLoading?: boolean; + isAllTime?: boolean; } -export function PagepageviewsChart({ data, unit, isLoading, ...props }: PagepageviewsChartProps) { +export function PagepageviewsChart({ + data, + unit, + isLoading, + isAllTime, + ...props +}: PagepageviewsChartProps) { const { formatMessage, labels } = useMessages(); const { colors } = useTheme(); const { locale } = useLocale(); @@ -74,6 +81,7 @@ export function PagepageviewsChart({ data, unit, isLoading, ...props }: Pagepage data={chartData} unit={unit} isLoading={isLoading} + isAllTime={isAllTime} renderXLabel={renderDateLabels(unit, locale)} /> ); diff --git a/src/components/metrics/RegionsTable.tsx b/src/components/metrics/RegionsTable.tsx index 215551af8b..0c3a931fd5 100644 --- a/src/components/metrics/RegionsTable.tsx +++ b/src/components/metrics/RegionsTable.tsx @@ -11,7 +11,7 @@ export function RegionsTable(props: MetricsTableProps) { const renderLink = ({ x: code, country }) => { return ( - + ); @@ -25,6 +25,7 @@ export function RegionsTable(props: MetricsTableProps) { metric={formatMessage(labels.visitors)} dataFilter={emptyFilter} renderLabel={renderLink} + searchFormattedValues={true} /> ); } diff --git a/src/components/metrics/WorldMap.tsx b/src/components/metrics/WorldMap.tsx index 4a16f98f77..5dfc5f742f 100644 --- a/src/components/metrics/WorldMap.tsx +++ b/src/components/metrics/WorldMap.tsx @@ -28,6 +28,7 @@ export function WorldMap({ const { formatMessage, labels } = useMessages(); const { countryNames } = useCountryNames(locale); const visitorsLabel = formatMessage(labels.visitors).toLocaleLowerCase(locale); + const unknownLabel = formatMessage(labels.unknown); const { dateRange: { startDate, endDate }, } = useDateRange(websiteId); @@ -62,7 +63,9 @@ export function WorldMap({ if (code === 'AQ') return; const country = metrics?.find(({ x }) => x === code); setTooltipPopup( - `${countryNames[code]}: ${formatLongNumber(country?.y || 0)} ${visitorsLabel}` as any, + `${countryNames[code] || unknownLabel}: ${formatLongNumber( + country?.y || 0, + )} ${visitorsLabel}` as any, ); }; diff --git a/src/lang/cs-CZ.json b/src/lang/cs-CZ.json index 717bd97019..8adc5e368f 100644 --- a/src/lang/cs-CZ.json +++ b/src/lang/cs-CZ.json @@ -1,88 +1,88 @@ { - "label.access-code": "Access code", + "label.access-code": "Přístupový kód", "label.actions": "Akce", - "label.activity": "Activity log", - "label.add": "Add", - "label.add-description": "Add description", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.activity": "Log aktivity", + "label.add": "Přidat", + "label.add-description": "Přidat popis", + "label.add-member": "Přidat člena", + "label.add-step": "Přidat krok", "label.add-website": "Přidat web", "label.admin": "Administrátor", - "label.after": "After", + "label.after": "Po", "label.all": "Vše", - "label.all-time": "All time", + "label.all-time": "Celá doba", "label.analytics": "Analytics", - "label.average": "Average", + "label.average": "Průměr", "label.back": "Zpět", - "label.before": "Before", + "label.before": "Před", "label.bounce-rate": "Okamžité opuštění", "label.breakdown": "Breakdown", - "label.browser": "Browser", - "label.browsers": "Prohlížeč", + "label.browser": "Prohlížeč", + "label.browsers": "Prohlížeče", "label.cancel": "Zrušit", "label.change-password": "Změnit heslo", - "label.cities": "Cities", - "label.city": "City", - "label.clear-all": "Clear all", - "label.compare": "Compare", - "label.confirm": "Confirm", + "label.cities": "Města", + "label.city": "Město", + "label.clear-all": "Vyčistit vše", + "label.compare": "Porovnat", + "label.confirm": "Potvrdit", "label.confirm-password": "Potvrdit heslo", - "label.contains": "Contains", - "label.continue": "Continue", - "label.count": "Count", - "label.countries": "Země", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Create report", - "label.create-team": "Create team", - "label.create-user": "Create user", - "label.created": "Created", + "label.contains": "Obsahuje", + "label.continue": "Pokračovat", + "label.count": "Počet", + "label.countries": "Státy", + "label.country": "Stát", + "label.create": "Vytvořit", + "label.create-report": "Vytvořit hlášení", + "label.create-team": "Vytvořit tým", + "label.create-user": "Vytvořit uživatele", + "label.created": "Vytvořeno", "label.created-by": "Created By", - "label.current": "Current", + "label.current": "Aktuální", "label.current-password": "Aktuální heslo", "label.custom-range": "Vlastní rozsah", "label.dashboard": "Přehled", "label.data": "Data", - "label.date": "Date", + "label.date": "Datum", "label.date-range": "Období", - "label.day": "Day", + "label.day": "Den", "label.default-date-range": "Výchozí období", "label.delete": "Smazat", - "label.delete-report": "Delete report", - "label.delete-team": "Delete team", - "label.delete-user": "Delete user", + "label.delete-report": "Smazat hlášení", + "label.delete-team": "Smazat tým", + "label.delete-user": "Smazat uživatele", "label.delete-website": "Smazat web", - "label.description": "Description", + "label.description": "Popis", "label.desktop": "Stolní počítač", - "label.details": "Details", - "label.device": "Device", + "label.details": "Detaily", + "label.device": "Zařízení", "label.devices": "Zařízení", "label.dismiss": "Odejít", - "label.does-not-contain": "Does not contain", + "label.does-not-contain": "Neobsahuje", "label.domain": "Doména", "label.dropoff": "Dropoff", "label.edit": "Upravit", - "label.edit-dashboard": "Edit dashboard", - "label.edit-member": "Edit member", + "label.edit-dashboard": "Upravit dashboard", + "label.edit-member": "Upravit člena", "label.enable-share-url": "Povolit sdílení URL", "label.end-step": "End Step", - "label.entry": "Entry URL", - "label.event": "Event", + "label.entry": "Vstupní URL", + "label.event": "Událost", "label.event-data": "Event data", "label.events": "Události", "label.exit": "Exit URL", "label.false": "False", - "label.field": "Field", + "label.field": "Pole", "label.fields": "Fields", - "label.filter": "Filter", + "label.filter": "Filtr", "label.filter-combined": "Kombinace", "label.filter-raw": "Nezpracované", - "label.filters": "Filters", + "label.filters": "Filtry", "label.first-seen": "First seen", "label.funnel": "Funnel", "label.funnel-description": "Understand the conversion and drop-off rate of users.", - "label.goal": "Goal", - "label.goals": "Goals", + "label.goal": "Cíl", + "label.goals": "Cíle", "label.goals-description": "Track your goals for pageviews and events.", "label.greater-than": "Greater than", "label.greater-than-equals": "Greater than or equals", @@ -98,44 +98,44 @@ "label.join-team": "Join team", "label.journey": "Journey", "label.journey-description": "Understand how users navigate through your website.", - "label.language": "Language", - "label.languages": "Languages", + "label.language": "Jazyk", + "label.languages": "Jazyky", "label.laptop": "Přenosný počítač", "label.last-days": "Posledních {x} dnů", "label.last-hours": "Posledních {x} hodin", - "label.last-months": "Last {x} months", + "label.last-months": "Posledních {x} měsíců", "label.last-seen": "Last seen", - "label.leave": "Leave", - "label.leave-team": "Leave team", + "label.leave": "Opustit", + "label.leave-team": "Opustit tým", "label.less-than": "Less than", "label.less-than-equals": "Less than or equals", "label.login": "Přihlásit", "label.logout": "Odhlásit", - "label.manage": "Manage", - "label.manager": "Manager", + "label.manage": "Spravovat", + "label.manager": "Správce", "label.max": "Max", - "label.member": "Member", - "label.members": "Members", + "label.member": "Člen", + "label.members": "Členové", "label.min": "Min", "label.mobile": "Mobilní telefon", "label.more": "Více", - "label.my-account": "My account", - "label.my-websites": "My websites", + "label.my-account": "Můj účet", + "label.my-websites": "Mé weby", "label.name": "Jméno", "label.new-password": "Nové heslo", "label.none": "None", "label.number-of-records": "{x} {x, plural, one {record} other {records}}", "label.ok": "OK", "label.os": "OS", - "label.overview": "Overview", - "label.owner": "Owner", + "label.overview": "Přehled", + "label.owner": "Vlastník", "label.page-of": "Page {current} of {total}", "label.page-views": "Zobrazení stránek", - "label.pageTitle": "Page title", + "label.pageTitle": "Název stránky", "label.pages": "Stránky", "label.password": "Heslo", - "label.path": "Path", - "label.paths": "Paths", + "label.path": "Cesta", + "label.paths": "Cesty", "label.powered-by": "Běží na {name}", "label.previous": "Previous", "label.previous-period": "Previous period", @@ -228,13 +228,13 @@ "label.views": "Zobrazení", "label.views-per-visit": "Views per visit", "label.visit-duration": "Průměrný čas návštěvy", - "label.visitors": "Návštěvy", - "label.visits": "Visits", + "label.visitors": "Návštěvníci", + "label.visits": "Návštěvy", "label.website": "Website", "label.website-id": "Website ID", "label.websites": "Weby", - "label.window": "Window", - "label.yesterday": "Yesterday", + "label.window": "Okno", + "label.yesterday": "Včera", "message.action-confirmation": "Type {confirmation} in the box below to confirm.", "message.active-users": "{x} aktuálně {x, plural, one {návštěvník} other {návštěvníci}}", "message.collected-data": "Collected data", diff --git a/src/lang/de-CH.json b/src/lang/de-CH.json index aa57f90c9c..e99ecaca28 100644 --- a/src/lang/de-CH.json +++ b/src/lang/de-CH.json @@ -2,278 +2,278 @@ "label.access-code": "Zuegangscode", "label.actions": "Aktione", "label.activity": "Aktivitätsverlauf", - "label.add": "Add", - "label.add-description": "Add description", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.add": "hinzuefüege", + "label.add-description": "Beschriibig hinzuefüege", + "label.add-member": "Mitglied hinzuefüege", + "label.add-step": "Schritt hinzuefüege", "label.add-website": "Websiite hinzuefüege", "label.admin": "Administrator", - "label.after": "After", + "label.after": "Nach", "label.all": "Alli", - "label.all-time": "Gesamte Zitruum", + "label.all-time": "Gsamte Zitruum", "label.analytics": "Analytics", - "label.average": "Average", + "label.average": "Durchschnitt", "label.back": "Zrugg", - "label.before": "Before", + "label.before": "Vor", "label.bounce-rate": "Absprungsrate", - "label.breakdown": "Breakdown", + "label.breakdown": "Uufschlüsselig", "label.browser": "Browser", "label.browsers": "Browser", "label.cancel": "Abbreche", "label.change-password": "Passwort ändere", "label.cities": "Städt", - "label.city": "City", + "label.city": "Stadt", "label.clear-all": "Alles lösche", - "label.compare": "Compare", + "label.compare": "Vergliiche", "label.confirm": "Bestätige", "label.confirm-password": "Passwort widerhole", - "label.contains": "Contains", + "label.contains": "Enthaltet", "label.continue": "Wiiter", - "label.count": "Count", + "label.count": "Azahl", "label.countries": "Länder", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Create report", + "label.country": "Land", + "label.create": "Erstelle", + "label.create-report": "Bricht erstelle", "label.create-team": "Team erstelle", "label.create-user": "Benutzer erstelle", "label.created": "Erstellt", "label.created-by": "Created By", - "label.current": "Current", - "label.current-password": "Jetzigs Passwort", + "label.current": "Aktuell", + "label.current-password": "Aktuells Passwort", "label.custom-range": "Benutzerdefinierte Bereich", "label.dashboard": "Übersicht", "label.data": "Datä", - "label.date": "Date", + "label.date": "Datum", "label.date-range": "Datumsbereich", - "label.day": "Day", - "label.default-date-range": "Vorigstellte Datumsbereich", + "label.day": "Tag", + "label.default-date-range": "Voriigstellte Datumsbereich", "label.delete": "Lösche", - "label.delete-report": "Delete report", + "label.delete-report": "Bricht lösche", "label.delete-team": "Team lösche", "label.delete-user": "Benutzer lösche", "label.delete-website": "Websiite lösche", - "label.description": "Description", + "label.description": "Beschriibig", "label.desktop": "Desktop", "label.details": "Details", - "label.device": "Device", + "label.device": "Grät", "label.devices": "Grät", - "label.dismiss": "Verwerfe", - "label.does-not-contain": "Does not contain", + "label.dismiss": "Verwärfe", + "label.does-not-contain": "Enthaltet nid", "label.domain": "Domain", - "label.dropoff": "Dropoff", + "label.dropoff": "Absprung", "label.edit": "Bearbeite", "label.edit-dashboard": "Dashboard bearbeite", - "label.edit-member": "Edit member", + "label.edit-member": "Mitglied bearbeite", "label.enable-share-url": "Freigab-URL aktiviere", - "label.end-step": "End Step", - "label.entry": "Entry URL", - "label.event": "Event", - "label.event-data": "Event data", + "label.end-step": "Schlussschritt", + "label.entry": "Iigangs URL", + "label.event": "Ereigniss", + "label.event-data": "Ereigniss Date", "label.events": "Ereigniss", - "label.exit": "Exit URL", - "label.false": "False", - "label.field": "Field", - "label.fields": "Fields", + "label.exit": "Uusgangs URL", + "label.false": "Falsch", + "label.field": "Fäld", + "label.fields": "Fälder", "label.filter": "Filter", "label.filter-combined": "Kombiniert", "label.filter-raw": "Rohdate", "label.filters": "Filters", - "label.first-seen": "First seen", - "label.funnel": "Funnel", - "label.funnel-description": "Understand the conversion and drop-off rate of users.", - "label.goal": "Goal", - "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", - "label.greater-than": "Greater than", - "label.greater-than-equals": "Greater than or equals", + "label.first-seen": "Erstmal gse", + "label.funnel": "Tunnel", + "label.funnel-description": "Verstönd Sie d Konversions- und Abspruungsrate vo Nutzer.", + "label.goal": "Ziel", + "label.goals": "Ziele", + "label.goals-description": "verfolged Sie Ihri Ziel für Siitenufrüef und Ereigniss.", + "label.greater-than": "Grösser als", + "label.greater-than-equals": "Grösser oder gliich", "label.host": "Host", "label.hosts": "Hosts", - "label.insights": "Insights", - "label.insights-description": "Dive deeper into your data by using segments and filters.", - "label.is": "Is", - "label.is-not": "Is not", - "label.is-not-set": "Is not set", - "label.is-set": "Is set", + "label.insights": "Iiblick", + "label.insights-description": "Vertüfed Sie sich i Ihri Date, mit Hilf vo Segment und Filter.", + "label.is": "Isch", + "label.is-not": "Isch nid", + "label.is-not-set": "Isch ned gsetzt", + "label.is-set": "Isch gsetzt", "label.join": "Biträte", "label.join-team": "Team biträte", - "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.journey": "Reis", + "label.journey-description": "Verstönd Sie, wie Nutzer dur Ihri Website navigiered.", "label.language": "Sprach", "label.languages": "Sprache", "label.laptop": "Laptop", "label.last-days": "Letzti {x} Täg", "label.last-hours": "Letzti {x} Stunde", - "label.last-months": "Last {x} months", - "label.last-seen": "Last seen", + "label.last-months": "Letzti {x} Mönet", + "label.last-seen": "Zletzt gse", "label.leave": "Verlah", "label.leave-team": "Team verlah", - "label.less-than": "Less than", - "label.less-than-equals": "Less than or equals", - "label.login": "Aamelde", - "label.logout": "Abmelde", - "label.manage": "Manage", + "label.less-than": "Kliiner als", + "label.less-than-equals": "Kliiner oder gliich", + "label.login": "Aamälde", + "label.logout": "Abmälde", + "label.manage": "Verwalte", "label.manager": "Manager", "label.max": "Max", - "label.member": "Member", + "label.member": "Mitglied", "label.members": "Mitglieder", "label.min": "Min", - "label.mobile": "Handy", + "label.mobile": "Händy", "label.more": "Meh", - "label.my-account": "My account", - "label.my-websites": "My websites", + "label.my-account": "Min Account", + "label.my-websites": "Mini Websiite", "label.name": "Name", "label.new-password": "Neus Passwort", "label.none": "Keis", "label.number-of-records": "{x} {x, plural, one {record} other {records}}", "label.ok": "OK", "label.os": "OS", - "label.overview": "Overview", + "label.overview": "Übersicht", "label.owner": "Bsitzer", - "label.page-of": "Page {current} of {total}", + "label.page-of": "Siite {current} vo {total}", "label.page-views": "Siitenufrüef", - "label.pageTitle": "Page title", + "label.pageTitle": "Siitetitel", "label.pages": "Siite", "label.password": "Passwort", - "label.path": "Path", - "label.paths": "Paths", - "label.powered-by": "Betribe dur {name}", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", + "label.path": "Pfad", + "label.paths": "Pfade", + "label.powered-by": "Betriibe dur {name}", + "label.previous": "Vorherig", + "label.previous-period": "Vorherigi Periode", + "label.previous-year": "Vorherigs Jahr", "label.profile": "Profil", "label.properties": "Properties", "label.property": "Property", "label.queries": "Abfrage", - "label.query": "Query", + "label.query": "Abfrag", "label.query-parameters": "Abfragparameter", "label.realtime": "Echtzit", - "label.referrer": "Referrer", - "label.referrers": "Referrer", + "label.referrer": "Verwiiser", + "label.referrers": "Verwiisendi", "label.refresh": "Aktualisiere", "label.regenerate": "Erneuere", "label.region": "Region", "label.regions": "Regionä", "label.remove": "Entferne", - "label.remove-member": "Remove member", - "label.reports": "Reports", + "label.remove-member": "Mitglied entferne", + "label.reports": "Brichte", "label.required": "Erforderlich", "label.reset": "Zruggsetze", "label.reset-website": "Statistik zruggsetze", "label.retention": "Retention", - "label.retention-description": "Measure your website stickiness by tracking how often users return.", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", + "label.retention-description": "Mässed Sie d Verwiilduur vo Ihrere Website, indem Sie verfolged wie oft ihri Nutzer zruggkehred.", + "label.revenue": "Umsatz", + "label.revenue-description": "Lueged Sie sich Ihre Umsatz im Lauf vor Ziit a.", + "label.revenue-property": "Umsatzeigenschafte", "label.role": "Rollä", - "label.run-query": "Run query", + "label.run-query": "Abfrag starte", "label.save": "Speichere", "label.screens": "Bildschirmuflösige", - "label.search": "Search", - "label.select": "Select", - "label.select-date": "Select date", - "label.select-role": "Select role", + "label.search": "Sueche", + "label.select": "Auswähle", + "label.select-date": "Datä uuswähle", + "label.select-role": "Rollä uuswähle", "label.select-website": "Websiite uuswähle", - "label.session": "Session", - "label.sessions": "Sessions", + "label.session": "Sitzig", + "label.sessions": "Sitzige", "label.settings": "Istellige", "label.share-url": "Freigab-URL", "label.single-day": "Ein Tag", - "label.start-step": "Start Step", - "label.steps": "Steps", - "label.sum": "Sum", + "label.start-step": "Startschritt", + "label.steps": "Schritt", + "label.sum": "Summe", "label.tablet": "Tablet", "label.team": "Team", "label.team-id": "Team ID", - "label.team-manager": "Team manager", + "label.team-manager": "Team Manager", "label.team-member": "Team Mitglied", - "label.team-name": "Team name", + "label.team-name": "Team Name", "label.team-owner": "Team Bsitzer", - "label.team-view-only": "Team view only", - "label.team-websites": "Team websites", + "label.team-view-only": "Nur für Teammitglieder sichtbar", + "label.team-websites": "Team Websiite", "label.teams": "Teams", "label.theme": "Thema", - "label.this-month": "De Monet", - "label.this-week": "Die Wuche", - "label.this-year": "Das Jahr", + "label.this-month": "Dä Monet", + "label.this-week": "Diä Wuuche", + "label.this-year": "Das Johr", "label.timezone": "Ziitzone", "label.title": "Titel", "label.today": "Hüt", - "label.toggle-charts": "Schaubilder umschalte", + "label.toggle-charts": "Charts umschalte", "label.total": "Total", - "label.total-records": "Total records", + "label.total-records": "Gsamti Datesätz", "label.tracking-code": "Tracking Code", - "label.transactions": "Transactions", - "label.transfer": "Transfer", - "label.transfer-website": "Transfer website", - "label.true": "True", - "label.type": "Type", - "label.unique": "Unique", - "label.unique-visitors": "Eidütigi Bsuecher", - "label.uniqueCustomers": "Unique Customers", + "label.transactions": "Transaktione", + "label.transfer": "Transferiere", + "label.transfer-website": "Websiite transferiere", + "label.true": "Wahr", + "label.type": "Typ", + "label.unique": "Einzigartigi", + "label.unique-visitors": "Einzigartigi Bsuecher", + "label.uniqueCustomers": "Einzigartigi Kunde", "label.unknown": "Unbekannt", - "label.untitled": "Untitled", + "label.untitled": "Unbennant", "label.update": "Update", "label.url": "URL", "label.urls": "URLs", "label.user": "Benutzer", - "label.user-property": "User Property", + "label.user-property": "Benutzereigeschafte", "label.username": "Benutzername", "label.users": "Benutzer", "label.utm": "UTM", - "label.utm-description": "Track your campaigns through UTM parameters.", - "label.value": "Value", + "label.utm-description": "Tracked Sie Ihri Kampagnen mit UTM Parameters.", + "label.value": "Wärt", "label.view": "Azeige", "label.view-details": "Details azeige", - "label.view-only": "View only", + "label.view-only": "Nume aluege", "label.views": "Ufrüef", - "label.views-per-visit": "Views per visit", + "label.views-per-visit": "Ufrüef pro Bsuech", "label.visit-duration": "Durchschn. Bsuechsziit", "label.visitors": "Bsuecher", - "label.visits": "Visits", + "label.visits": "Bsüech", "label.website": "Website", "label.website-id": "Websiite ID", "label.websites": "Websiite", - "label.window": "Window", + "label.window": "Fenster", "label.yesterday": "Gester", - "message.action-confirmation": "Type {confirmation} in the box below to confirm.", + "message.action-confirmation": "Typed Sie {confirmation} is Feld underhalb um z bestätige.", "message.active-users": "{x} {x, plural, one {aktive Bsuecher} other {aktivi Bsuecher}}", - "message.collected-data": "Collected data", + "message.collected-data": "Gsammleti Date", "message.confirm-delete": "Sind Sie sich sicher, {target} zlösche?", "message.confirm-leave": "Sind Sie sich sicher, {target} zverlah?", - "message.confirm-remove": "Are you sure you want to remove {target}?", - "message.confirm-reset": "Sind Sie sicher, dass Sie dStatistike vo {target} zruggsetze wend?", - "message.delete-team-warning": "Deleting a team will also delete all team websites.", - "message.delete-website-warning": "Alli dezueghörige Date werdet ebefalls glöscht.", - "message.error": "Es isch en Fehler uftrete.", + "message.confirm-remove": "Sind Sie sich sicher, dass Sie {target} wänd entferne?", + "message.confirm-reset": "Sind Sie sicher, dass Sie d Statistike vo {target} zruggsetze wänd?", + "message.delete-team-warning": "Es Team lösche dued ebefalls alli team Websiite lösche.", + "message.delete-website-warning": "Alli dezueghörige Date werded ebefalls glöscht.", + "message.error": "Es isch en Fehler ufträte.", "message.event-log": "{event} uf {url}", "message.go-to-settings": "Zu de Istellige", - "message.incorrect-username-password": "Falschs Passwort oder Benutzername.", + "message.incorrect-username-password": "Falsches Passwort oder Benutzername.", "message.invalid-domain": "Ungültigi Domain", "message.min-password-length": "Miminamli längi vo {n} Zeiche", - "message.new-version-available": "A new version of Umami {version} is available!", + "message.new-version-available": "Es isch en neue Version vo Umami {version} verfügbar!", "message.no-data-available": "Kei Date vorhande.", - "message.no-event-data": "No event data is available.", + "message.no-event-data": "Es sind kei Event Date verfügbar.", "message.no-match-password": "Passwörter stimmed ned überi", - "message.no-results-found": "No results were found.", + "message.no-results-found": "Kei Ergäbnis gfunde.", "message.no-team-websites": "Dem Team sind kei Websiite zuegordnet.", "message.no-teams": "Bisher sind no kei Teams erstellt worde.", "message.no-users": "Da gits kei Benutzer", "message.no-websites-configured": "Es isch kei Websiite vorhande.", "message.page-not-found": "Siite ned gfunde.", - "message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.", + "message.reset-website": "Um die Websiite zruggzsetze, typed Sie {confirmation} is Feld unde dran.", "message.reset-website-warning": "Alli Date für die Websiite werdet glöscht, nur de Tracking Code blibt bestah.", "message.saved": "Erfolgrich gspeichert.", "message.share-url": "Ihri Websiitestatistik isch under de folgende URL öffentlich zuegänglich:", - "message.team-already-member": "Sie sind bereits es Mitglied vo dem Team.", + "message.team-already-member": "Sie sind bereits es Mitglied vo däm Team.", "message.team-not-found": "Team nöd gfunde.", - "message.team-websites-info": "Websiite chönd vo jedem im Team agluegt werde", + "message.team-websites-info": "Websiite chöi vo jedem im Team agluegt werde", "message.tracking-code": "Tracking Code", - "message.transfer-team-website-to-user": "Transfer this website to your account?", - "message.transfer-user-website-to-team": "Select the team to transfer this website to.", - "message.transfer-website": "Transfer website ownership to your account or another team.", - "message.triggered-event": "Triggered event", - "message.user-deleted": "Benutzer glöscht.", - "message.viewed-page": "Viewed page", - "message.visitor-log": "Bsuecher us {country} benutzt {browser} uf {os} {device}", - "message.visitors-dropped-off": "Visitors dropped off" -} + "message.transfer-team-website-to-user": "Websiite uf zu Ihrem Account transferiere?", + "message.transfer-user-website-to-team": "Wähled Sie s Team zum däm Websiite transferiert werde söll.", + "message.transfer-website": "Übertraged Sie d Websiite Eigetümerrecht uf Ihre Account oder uf es anders Team", + "message.triggered-event": "Usglösts Ereigniss", + "message.user-deleted": "Bnutzer glöscht.", + "message.viewed-page": "Siite agluegt", + "message.visitor-log": "Bsuecher us {country} nutzt {browser} uf {os} {device}", + "message.visitors-dropped-off": "Bsuercher verlore" +} \ No newline at end of file diff --git a/src/lang/de-DE.json b/src/lang/de-DE.json index dfbb9a47e0..36090a8485 100644 --- a/src/lang/de-DE.json +++ b/src/lang/de-DE.json @@ -67,8 +67,8 @@ "label.enable-share-url": "Freigabe-URL aktivieren", "label.end-step": "Schlussschritt", "label.entry": "Eingangs-URL", - "label.event": "Ereigniss", - "label.event-data": "Ereignissdaten", + "label.event": "Ereignis", + "label.event-data": "Ereignisdaten", "label.events": "Ereignisse", "label.exit": "Ausgangs-URL", "label.false": "Falsch", @@ -271,7 +271,7 @@ "message.transfer-team-website-to-user": "Diese Website zu Ihrem Account transferieren?", "message.transfer-user-website-to-team": "Wählen Sie ein Team aus, zu dem die Website transferiert werden soll.", "message.transfer-website": "Übertragen Sie die Eigentümerrechte zu Ihrem Account oder einem anderen Team.", - "message.triggered-event": "Ausgelöstes Ereigniss", + "message.triggered-event": "Ereignis ausgelöst", "message.user-deleted": "Benutzer gelöscht.", "message.viewed-page": "Seite besucht", "message.visitor-log": "Besucher aus {country} benutzt {browser} auf {os} {device}", diff --git a/src/lang/fr-FR.json b/src/lang/fr-FR.json index e1c9befef6..8e390dc5cf 100644 --- a/src/lang/fr-FR.json +++ b/src/lang/fr-FR.json @@ -66,7 +66,7 @@ "label.edit-member": "Modifier le membre", "label.enable-share-url": "Activer l'URL de partage", "label.end-step": "End Step", - "label.entry": "Entry URL", + "label.entry": "URL d'entrée", "label.event": "Évènement", "label.event-data": "Données d'évènements", "label.events": "Évènements", @@ -78,12 +78,12 @@ "label.filter-combined": "Combiné", "label.filter-raw": "Brut", "label.filters": "Filtres", - "label.first-seen": "First seen", + "label.first-seen": "Vu pour la première fois", "label.funnel": "Entonnoir", "label.funnel-description": "Suivi des conversions et des taux d'abandons.", "label.goal": "Goal", "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", + "label.goals-description": "Suivez vos objectifs en matière de pages vues et d'événements.", "label.greater-than": "Supérieur à", "label.greater-than-equals": "Supérieur ou égal à", "label.host": "Host", @@ -97,7 +97,7 @@ "label.join": "Rejoindre", "label.join-team": "Rejoindre une équipe", "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.journey-description": "Comprendre comment les utilisateurs naviguent sur votre site web.", "label.language": "Langue", "label.languages": "Langues", "label.laptop": "Portable", @@ -137,12 +137,12 @@ "label.path": "Path", "label.paths": "Paths", "label.powered-by": "Propulsé par {name}", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", + "label.previous": "Précédent", + "label.previous-period": "Période précédente", + "label.previous-year": "Année précédente", "label.profile": "Profil", - "label.properties": "Properties", - "label.property": "Property", + "label.properties": "Propriétés", + "label.property": "Propriété", "label.queries": "Requêtes", "label.query": "Requête", "label.query-parameters": "Paramètres de requête", @@ -162,14 +162,14 @@ "label.retention": "Rétention", "label.retention-description": "Mesure de l'attractivité du site en visualisant les taux de visiteurs qui reviennent.", "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", + "label.revenue-description": "Examinez vos revenus au fil du temps.", + "label.revenue-property": "Propriétés des revenues", "label.role": "Rôle", "label.run-query": "Éxécuter la requête", "label.save": "Enregistrer", "label.screens": "Résolutions d'écran", "label.search": "Rechercher", - "label.select": "Select", + "label.select": "Selectionner", "label.select-date": "Choisir une période", "label.select-role": "Choisir un rôle", "label.select-website": "Choisir un site", @@ -178,17 +178,17 @@ "label.settings": "Paramètres", "label.share-url": "URL de partage", "label.single-day": "Journée", - "label.start-step": "Start Step", + "label.start-step": "Etape de démarrage", "label.steps": "Étapes", "label.sum": "Somme", "label.tablet": "Tablette", "label.team": "Équipe", "label.team-id": "ID d'équipe", - "label.team-manager": "Team manager", + "label.team-manager": "Manager de l'équipe", "label.team-member": "Membre de l'équipe", "label.team-name": "Nom de l'équipe", "label.team-owner": "Propriétaire de l'équipe", - "label.team-view-only": "Team view only", + "label.team-view-only": "Vue d'équipe uniquement", "label.team-websites": "Sites d'équipes", "label.teams": "Équipes", "label.theme": "Thème", @@ -209,14 +209,14 @@ "label.type": "Type", "label.unique": "Unique", "label.unique-visitors": "Visiteurs uniques", - "label.uniqueCustomers": "Unique Customers", + "label.uniqueCustomers": "Clients uniques", "label.unknown": "Inconnu", "label.untitled": "Sans titre", "label.update": "Modifier", "label.url": "URL", "label.urls": "URLs", "label.user": "Utilisateur", - "label.user-property": "User Property", + "label.user-property": "Propriétés d'utilisateurs", "label.username": "Nom d'utilisateur", "label.users": "Utilisateurs", "label.utm": "UTM", diff --git a/src/lang/hi-IN.json b/src/lang/hi-IN.json index 2fabe0c6e1..65a3622e0c 100644 --- a/src/lang/hi-IN.json +++ b/src/lang/hi-IN.json @@ -1,9 +1,9 @@ { - "label.access-code": "Access code", + "label.access-code": "पहुंच कोड", "label.actions": "कार्य", - "label.activity": "Activity log", - "label.add": "Add", - "label.add-description": "Add description", + "label.activity": "गतिविधि लॉग", + "label.add": "जोडो", + "label.add-description": "विवरण लिखें", "label.add-member": "Add member", "label.add-step": "Add step", "label.add-website": "वेबसाइट", @@ -155,7 +155,7 @@ "label.regions": "Regions", "label.remove": "Remove", "label.remove-member": "Remove member", - "label.reports": "Reports", + "label.reports": "प्रतिवेदन", "label.required": "अपेक्षित", "label.reset": "रीसेट", "label.reset-website": "Reset statistics", diff --git a/src/lang/ja-JP.json b/src/lang/ja-JP.json index bc59f1140b..ce4001f430 100644 --- a/src/lang/ja-JP.json +++ b/src/lang/ja-JP.json @@ -229,7 +229,7 @@ "label.views-per-visit": "訪問あたりの閲覧数", "label.visit-duration": "平均滞在時間", "label.visitors": "訪問者", - "label.visits": "訪問者数", + "label.visits": "訪問数", "label.website": "Webサイト", "label.website-id": "WebサイトID", "label.websites": "Webサイト", diff --git a/src/lang/nb-NO.json b/src/lang/nb-NO.json index 55d211874d..7c691002d2 100644 --- a/src/lang/nb-NO.json +++ b/src/lang/nb-NO.json @@ -1,51 +1,51 @@ { - "label.access-code": "Access code", + "label.access-code": "Tilgangskode", "label.actions": "Handlinger", - "label.activity": "Activity log", - "label.add": "Add", - "label.add-description": "Add description", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.activity": "Aktivitetslogg", + "label.add": "Legg til", + "label.add-description": "Legg til beskrivelse", + "label.add-member": "Legg til bruker", + "label.add-step": "Legg til steg", "label.add-website": "Legg til nettsted", "label.admin": "Administrator", - "label.after": "After", + "label.after": "Etter", "label.all": "Alle", "label.all-time": "Noensinne", "label.analytics": "Analytics", - "label.average": "Average", + "label.average": "Gjennomsnnitt", "label.back": "Tilbake", - "label.before": "Before", + "label.before": "Før", "label.bounce-rate": "Avvisningsfrekvens", - "label.breakdown": "Breakdown", - "label.browser": "Browser", + "label.breakdown": "Nedbrytning", + "label.browser": "Nettleser", "label.browsers": "Nettlesere", "label.cancel": "Avvis", "label.change-password": "Bytt passord", - "label.cities": "Cities", - "label.city": "City", - "label.clear-all": "Clear all", - "label.compare": "Compare", - "label.confirm": "Confirm", + "label.cities": "Byer", + "label.city": "By", + "label.clear-all": "Tøm alle", + "label.compare": "Sammenlign", + "label.confirm": "Bekreft", "label.confirm-password": "Godkjenn passord", - "label.contains": "Contains", - "label.continue": "Continue", - "label.count": "Count", + "label.contains": "Inneholder", + "label.continue": "Fortsett", + "label.count": "Antall", "label.countries": "Land", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Create report", - "label.create-team": "Create team", - "label.create-user": "Create user", - "label.created": "Created", - "label.created-by": "Created By", - "label.current": "Current", + "label.country": "Land", + "label.create": "Opprett", + "label.create-report": "Opprett rapport", + "label.create-team": "Opprett team", + "label.create-user": "Opprett bruker", + "label.created": "Opprettet", + "label.created-by": "Opprettet av", + "label.current": "Nåværende", "label.current-password": "Nåværende passord", "label.custom-range": "Egendefinert utvalg", "label.dashboard": "Dashbord", "label.data": "Data", - "label.date": "Date", + "label.date": "Dato", "label.date-range": "Datointervall", - "label.day": "Day", + "label.day": "Dag", "label.default-date-range": "Standard datoperiode", "label.delete": "Slett", "label.delete-report": "Delete report", @@ -54,226 +54,227 @@ "label.delete-website": "Slett nettstedet", "label.description": "Description", "label.desktop": "Stasjonær", - "label.details": "Details", - "label.device": "Device", + "label.details": "Detaljer", + "label.device": "Enhet", "label.devices": "Enheter", "label.dismiss": "Avbryt", - "label.does-not-contain": "Does not contain", + "label.does-not-contain": "Innholder ikke", "label.domain": "Domene", "label.dropoff": "Dropoff", "label.edit": "Rediger", - "label.edit-dashboard": "Edit dashboard", - "label.edit-member": "Edit member", + "label.edit-dashboard": "Rediger dashboard", + "label.edit-member": "Rediger bruker", "label.enable-share-url": "Aktiver delings-URL", - "label.end-step": "End Step", - "label.entry": "Entry URL", - "label.event": "Event", - "label.event-data": "Event data", - "label.events": "Arrangementer", - "label.exit": "Exit URL", - "label.false": "False", - "label.field": "Field", - "label.fields": "Fields", + "label.end-step": "Avslutt steg", + "label.entry": "Inngangs-URL", + "label.event": "Hendelse", + "label.event-data": "Hendelsesdata", + "label.events": "Hendelser", + "label.exit": "Utgangs-URL", + "label.false": "Usant", + "label.field": "Felt", + "label.fields": "Felt", "label.filter": "Filter", "label.filter-combined": "Kombinert", "label.filter-raw": "Rå", - "label.filters": "Filters", - "label.first-seen": "First seen", - "label.funnel": "Funnel", - "label.funnel-description": "Understand the conversion and drop-off rate of users.", - "label.goal": "Goal", - "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", - "label.greater-than": "Greater than", - "label.greater-than-equals": "Greater than or equals", - "label.host": "Host", - "label.hosts": "Hosts", - "label.insights": "Insights", - "label.insights-description": "Dive deeper into your data by using segments and filters.", - "label.is": "Is", - "label.is-not": "Is not", - "label.is-not-set": "Is not set", - "label.is-set": "Is set", - "label.join": "Join", - "label.join-team": "Join team", - "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.filters": "Filter", + "label.first-seen": "Først sett", + "label.funnel": "Trakt", + "label.funnel-description": "Forstå konverteringen og drop-off frafallsfrekvens av brukere.", + "label.goal": "Mål", + "label.goals": "Mål", + "label.goals-description": "Spor dine mål for sidevisninger og hendelser.", + "label.greater-than": "Mer enn", + "label.greater-than-equals": "Mer enn eller lik", + "label.host": "Vert", + "label.hosts": "Verter", + "label.insights": "Innsikt", + "label.insights-description": "Dykk dypere i din data ved bruk av segmentering og filtre.", + "label.is": "Er", + "label.is-not": "Er ikke", + "label.is-not-set": "Er ikke satt", + "label.is-set": "Er satt", + "label.join": "Bli med", + "label.join-team": "Bli med i teamet", + "label.journey": "Reise", + "label.journey-description": "Forstå hvordan brukerene navigerer gjennom din side.", "label.language": "Språk", "label.languages": "Språk", "label.laptop": "Bærbar", "label.last-days": "Siste {x} dager", "label.last-hours": "Siste {x} timer", "label.last-months": "Last {x} months", - "label.last-seen": "Last seen", - "label.leave": "Leave", - "label.leave-team": "Leave team", - "label.less-than": "Less than", - "label.less-than-equals": "Less than or equals", + "label.last-seen": "Sist sett", + "label.leave": "Forlat", + "label.leave-team": "Forlat team", + "label.less-than": "Mindre enn", + "label.less-than-equals": "Mindre enn eller lik", "label.login": "Logg inn", "label.logout": "Logg ut", - "label.manage": "Manage", - "label.manager": "Manager", - "label.max": "Max", - "label.member": "Member", - "label.members": "Members", + "label.manage": "Administrer", + "label.manager": "Administrator", + "label.max": "Maks", + "label.member": "Bruker", + "label.members": "Brukere", "label.min": "Min", "label.mobile": "Mobiltelefon", "label.more": "Mer", - "label.my-account": "My account", - "label.my-websites": "My websites", + "label.my-account": "Min konto", + "label.my-websites": "Mine nettsider", "label.name": "Navn", "label.new-password": "Nytt passord", - "label.none": "None", + "label.none": "Ingen", "label.number-of-records": "{x} {x, plural, one {record} other {records}}", "label.ok": "OK", "label.os": "OS", - "label.overview": "Overview", + "label.overview": "Oversikt", "label.owner": "Eier", - "label.page-of": "Page {current} of {total}", + "label.page-of": "Side {current} av {total}", "label.page-views": "Sidevisninger", - "label.pageTitle": "Page title", + "label.pageTitle": "Sidetittel", "label.pages": "Sider", "label.password": "Passord", - "label.path": "Path", - "label.paths": "Paths", + "label.path": "Sti", + "label.paths": "Stier", "label.powered-by": "Drevet av {name}", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", + "label.previous": "Forrige", + "label.previous-period": "Forrige periode", + "label.previous-year": "Forrige år", "label.profile": "Profil", - "label.properties": "Properties", - "label.property": "Property", - "label.queries": "Queries", - "label.query": "Query", - "label.query-parameters": "Query parameters", + "label.properties": "Egenskaper", + "label.property": "Egenskap", + "label.queries": "Forspørsler", + "label.query": "Forespørsel", + "label.query-parameters": "Forespørsel parametere", "label.realtime": "Sanntid", - "label.referrer": "Referrer", - "label.referrers": "Referanser", + "label.referrer": "Henviser", + "label.referrers": "Henvisere", "label.refresh": "Oppdater", - "label.regenerate": "Regenerate", + "label.regenerate": "Regenerer", "label.region": "Region", - "label.regions": "Regions", - "label.remove": "Remove", - "label.remove-member": "Remove member", - "label.reports": "Reports", + "label.regions": "Regioner", + "label.remove": "Fjern", + "label.remove-member": "Fjern bruker", + "label.reports": "Rapporter", "label.required": "Påkrevd", "label.reset": "Nullstill", "label.reset-website": "Nullstill statistikk", - "label.retention": "Retention", - "label.retention-description": "Measure your website stickiness by tracking how often users return.", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", - "label.role": "Role", - "label.run-query": "Run query", + "label.retention": "Retensjon", + "label.retention-description": "Mål nettstedets klebrighet ved å spore hvor ofte brukere kommer tilbake.", + "label.revenue": "Inntenker", + "label.revenue-description": "Se på inntektene dine over tid.", + "label.revenue-property": "Inntektegenskaper", + "label.role": "Rolle", + "label.run-query": "Kjør spørring", "label.save": "Lagre", - "label.screens": "Screens", - "label.search": "Search", - "label.select": "Select", - "label.select-date": "Select date", - "label.select-role": "Select role", - "label.select-website": "Select website", - "label.session": "Session", - "label.sessions": "Sessions", + "label.screens": "Skjermer", + "label.search": "Søk", + "label.select": "Velg", + "label.select-date": "Velg dato", + "label.select-role": "Velg rolle", + "label.select-website": "Velg nettsted", + "label.session": "Økt", + "label.sessions": "Økter", "label.settings": "Innstillinger", "label.share-url": "Del URL", - "label.single-day": "Enkelt dag", - "label.start-step": "Start Step", - "label.steps": "Steps", + "label.single-day": "Enkeltdag", + "label.start-step": "Starttrinn", + "label.steps": "Trinn", "label.sum": "Sum", "label.tablet": "Nettbrett", "label.team": "Team", - "label.team-id": "Team ID", - "label.team-manager": "Team manager", - "label.team-member": "Team member", - "label.team-name": "Team name", - "label.team-owner": "Team owner", - "label.team-view-only": "Team view only", - "label.team-websites": "Team websites", - "label.teams": "Teams", - "label.theme": "Theme", + "label.team-id": "Team-ID", + "label.team-manager": "Teamadministrator", + "label.team-member": "Teammedlem", + "label.team-name": "Teamnavn", + "label.team-owner": "Teameier", + "label.team-view-only": "Team (kun visning)", + "label.team-websites": "Team-nettsteder", + "label.teams": "Team", + "label.theme": "Tema", "label.this-month": "Denne måneden", "label.this-week": "Denne uka", "label.this-year": "I år", "label.timezone": "Tidssone", - "label.title": "Title", + "label.title": "Tittel", "label.today": "I dag", "label.toggle-charts": "Veksle grafer", - "label.total": "Total", - "label.total-records": "Total records", + "label.total": "Totalt", + "label.total-records": "Totalt antall oppføringer", "label.tracking-code": "Sporingskode", - "label.transactions": "Transactions", - "label.transfer": "Transfer", - "label.transfer-website": "Transfer website", - "label.true": "True", + "label.transactions": "Transaksjoner", + "label.transfer": "Overfør", + "label.transfer-website": "Overfør nettsted", + "label.true": "Sant", "label.type": "Type", - "label.unique": "Unique", + "label.unique": "Unike", "label.unique-visitors": "Unike besøkende", - "label.uniqueCustomers": "Unique Customers", + "label.uniqueCustomers": "Unike kunder", "label.unknown": "Ukjent", - "label.untitled": "Untitled", - "label.update": "Update", + "label.untitled": "Uten tittel", + "label.update": "Oppdater", "label.url": "URL", - "label.urls": "URLs", - "label.user": "User", - "label.user-property": "User Property", + "label.urls": "URL-er", + "label.user": "Bruker", + "label.user-property": "Brukeregenskap", "label.username": "Brukernavn", - "label.users": "Users", + "label.users": "Brukere", "label.utm": "UTM", - "label.utm-description": "Track your campaigns through UTM parameters.", - "label.value": "Value", - "label.view": "View", + "label.utm-description": "Spor kampanjene dine via UTM-parametre.", + "label.value": "Verdi", + "label.view": "Vis", "label.view-details": "Vis detaljer", - "label.view-only": "View only", + "label.view-only": "Kun visning", "label.views": "Visninger", - "label.views-per-visit": "Views per visit", + "label.views-per-visit": "Visninger per besøk", "label.visit-duration": "Gjennomsnittlig besøkstid", "label.visitors": "Besøkende", - "label.visits": "Visits", - "label.website": "Website", - "label.website-id": "Website ID", + "label.visits": "Besøk", + "label.website": "Nettsted", + "label.website-id": "Nettsted-ID", "label.websites": "Nettsteder", - "label.window": "Window", - "label.yesterday": "Yesterday", - "message.action-confirmation": "Type {confirmation} in the box below to confirm.", + "label.window": "Vindu", + "label.yesterday": "I går", + "message.action-confirmation": "Skriv {confirmation} i feltet nedenfor for å bekrefte.", "message.active-users": "{x} {x, plural, one {besøkende} other {besøkende}} nå", - "message.collected-data": "Collected data", + "message.collected-data": "Innsamlede data", "message.confirm-delete": "Er du sikker på at du vil slette {target}?", - "message.confirm-leave": "Are you sure you want to leave {target}?", - "message.confirm-remove": "Are you sure you want to remove {target}?", - "message.confirm-reset": "Er du sikker på at du vil nullstille {target}'s statistikk?", - "message.delete-team-warning": "Deleting a team will also delete all team websites.", - "message.delete-website-warning": "Alle tilknyttede data slettes også.", + "message.confirm-leave": "Er du sikker på at du vil forlate {target}?", + "message.confirm-remove": "Er du sikker på at du vil fjerne {target}?", + "message.confirm-reset": "Er du sikker på at du vil nullstille statistikken til {target}?", + "message.delete-team-warning": "Å slette et team vil også slette alle teamets nettsteder.", + "message.delete-website-warning": "Alle tilknyttede data vil også bli slettet.", "message.error": "Noe gikk galt.", - "message.event-log": "{event} on {url}", + "message.event-log": "{event} på {url}", "message.go-to-settings": "Gå til innstillinger", "message.incorrect-username-password": "Ugyldig brukernavn/passord.", "message.invalid-domain": "Ugyldig domene", - "message.min-password-length": "Minimum length of {n} characters", - "message.new-version-available": "A new version of Umami {version} is available!", + "message.min-password-length": "Minimumslengde på {n} tegn", + "message.new-version-available": "En ny versjon av Umami {version} er tilgjengelig!", "message.no-data-available": "Ingen data tilgjengelig.", - "message.no-event-data": "No event data is available.", + "message.no-event-data": "Ingen hendelsesdata er tilgjengelig.", "message.no-match-password": "Passordene er ikke like", - "message.no-results-found": "No results were found.", - "message.no-team-websites": "This team does not have any websites.", - "message.no-teams": "You have not created any teams.", - "message.no-users": "There are no users.", + "message.no-results-found": "Ingen resultater funnet.", + "message.no-team-websites": "Dette teamet har ingen nettsteder.", + "message.no-teams": "Du har ikke opprettet noen team.", + "message.no-users": "Ingen brukere.", "message.no-websites-configured": "Du har ikke satt opp noen nettsteder.", - "message.page-not-found": "Side ikke funnet.", - "message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.", - "message.reset-website-warning": "All statistikk for denne nettsiden vil bli slettet, men sporingskoden din vil forbli uberørt.", + "message.page-not-found": "Siden ble ikke funnet.", + "message.reset-website": "For å nullstille dette nettstedet, skriv {confirmation} i feltet nedenfor for å bekrefte.", + "message.reset-website-warning": "All statistikk for dette nettstedet vil bli slettet, men sporingskoden forblir uberørt.", "message.saved": "Lagret!", "message.share-url": "Dette er den offentlige delings-URL-en for {target}.", - "message.team-already-member": "You are already a member of the team.", - "message.team-not-found": "Team not found.", - "message.team-websites-info": "Websites can be viewed by anyone on the team.", + "message.team-already-member": "Du er allerede medlem av teamet.", + "message.team-not-found": "Teamet ble ikke funnet.", + "message.team-websites-info": "Nettsteder kan vises av alle på teamet.", "message.tracking-code": "Sporingskode", - "message.transfer-team-website-to-user": "Transfer this website to your account?", - "message.transfer-user-website-to-team": "Select the team to transfer this website to.", - "message.transfer-website": "Transfer website ownership to your account or another team.", - "message.triggered-event": "Triggered event", - "message.user-deleted": "User deleted.", - "message.viewed-page": "Viewed page", + "message.transfer-team-website-to-user": "Overfør dette nettstedet til kontoen din?", + "message.transfer-user-website-to-team": "Velg teamet du vil overføre dette nettstedet til.", + "message.transfer-website": "Overfør eierskapet til nettstedet til din konto eller et annet team.", + "message.triggered-event": "Utløst hendelse", + "message.user-deleted": "Bruker slettet.", + "message.viewed-page": "Vist side", "message.visitor-log": "Besøkende fra {country} med {browser} på {os} {device}", - "message.visitors-dropped-off": "Visitors dropped off" + "message.visitors-dropped-off": "Besøkende falt fra" + } diff --git a/src/lang/ro-RO.json b/src/lang/ro-RO.json index f60f8f2baa..feb3dd5b3a 100644 --- a/src/lang/ro-RO.json +++ b/src/lang/ro-RO.json @@ -5,8 +5,8 @@ "label.add": "Adaugă", "label.add-description": "Adaugă descriere", "label.add-member": "Adaugă membru", - "label.add-step": "Add step", - "label.add-website": "Adăugare site web", + "label.add-step": "Adaugă pas", + "label.add-website": "Adaugă site web", "label.admin": "Administrator", "label.after": "După", "label.all": "Toate", @@ -24,12 +24,12 @@ "label.cities": "Orașe", "label.city": "Oraș", "label.clear-all": "Șterge tot", - "label.compare": "Compare", + "label.compare": "Compară", "label.confirm": "Confirm", "label.confirm-password": "Confirmare parolă", "label.contains": "Conține", "label.continue": "Continuă", - "label.count": "Count", + "label.count": "Număr", "label.countries": "Țări", "label.country": "Țară", "label.create": "Crează", @@ -37,21 +37,21 @@ "label.create-team": "Crează echipă", "label.create-user": "Crează utilizator", "label.created": "Creat", - "label.created-by": "Created By", - "label.current": "Current", + "label.created-by": "Creat de", + "label.current": "Curent", "label.current-password": "Parola curentă", "label.custom-range": "Interval personalizat", "label.dashboard": "Tablou de bord", "label.data": "Date", - "label.date": "Data", - "label.date-range": "Interval de date", + "label.date": "Dată", + "label.date-range": "Interval", "label.day": "Zi", - "label.default-date-range": "Interval de date implicit", + "label.default-date-range": "Interval implicit", "label.delete": "Șterge", "label.delete-report": "Șterge raport", "label.delete-team": "Șterge echipă", "label.delete-user": "Șterge utilizator", - "label.delete-website": "Ștergere site web", + "label.delete-website": "Șterge site web", "label.description": "Descriere", "label.desktop": "Desktop", "label.details": "Detalii", @@ -65,12 +65,12 @@ "label.edit-dashboard": "Editare tablou de bord", "label.edit-member": "Editare membru", "label.enable-share-url": "Activare adresă URL de distribuire", - "label.end-step": "End Step", - "label.entry": "Entry URL", + "label.end-step": "Pas final", + "label.entry": "URL de intrare", "label.event": "Eveniment", "label.event-data": "Date despre eveniment", "label.events": "Evenimente", - "label.exit": "Exit URL", + "label.exit": "URL de ieșire", "label.false": "Fals", "label.field": "Câmp", "label.fields": "Câmpuri", @@ -78,12 +78,12 @@ "label.filter-combined": "Combinat", "label.filter-raw": "Brut", "label.filters": "Filtre", - "label.first-seen": "First seen", + "label.first-seen": "Văzut pentru prima dată", "label.funnel": "Parcursul utilizatorului", "label.funnel-description": "Înțelege rata de conversie și rata de abandon a utilizatorilor.", - "label.goal": "Goal", - "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", + "label.goal": "Obiectiv", + "label.goals": "Obiective", + "label.goals-description": "Urmărește obiectivele de vizualizări și evenimente.", "label.greater-than": "Mai mare decât", "label.greater-than-equals": "Mai mare sau egal cu", "label.host": "Host", @@ -96,15 +96,15 @@ "label.is-set": "Este setat", "label.join": "Alătură-te", "label.join-team": "Alătură-te echipei", - "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.journey": "Traseu", + "label.journey-description": "Înțelege cum navighează vizitatorii prin website.", "label.language": "Limbă", "label.languages": "Limbi", "label.laptop": "Laptop", "label.last-days": "Ultimele {x} zile", "label.last-hours": "Ultimele {x} ore", - "label.last-months": "Last {x} months", - "label.last-seen": "Last seen", + "label.last-months": "Ultimele {x} luni", + "label.last-seen": "Văzut ultima dată", "label.leave": "Părăsește", "label.leave-team": "Părăsește echipa", "label.less-than": "Mai puțin decât", @@ -134,15 +134,15 @@ "label.pageTitle": "Titlul paginii", "label.pages": "Pagini", "label.password": "Parolă", - "label.path": "Path", - "label.paths": "Paths", + "label.path": "Rută", + "label.paths": "Rute", "label.powered-by": "Cu sprijinul {name}", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", + "label.previous": "Anterior", + "label.previous-period": "Perioda anterioară", + "label.previous-year": "Anul anterior", "label.profile": "Profil", - "label.properties": "Properties", - "label.property": "Property", + "label.properties": "Proprietăți", + "label.property": "Proprietate", "label.queries": "Interogări", "label.query": "Interogare", "label.query-parameters": "Parametri de interogare", @@ -161,8 +161,8 @@ "label.reset-website": "Resetează statisticile pentru site", "label.retention": "Retenție", "label.retention-description": "Măsoară atractivitatea site-ului tău prin urmărirea frecvenței cu care utilizatorii se întorc.", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", + "label.revenue": "Venit", + "label.revenue-description": "Urmărește venitul în timp.", "label.revenue-property": "Revenue Property", "label.role": "Rol", "label.run-query": "Execută interogarea", @@ -173,18 +173,18 @@ "label.select-date": "Selectează data", "label.select-role": "Selectează rolul", "label.select-website": "Selectează website", - "label.session": "Session", + "label.session": "Sesiune", "label.sessions": "Sesiuni", "label.settings": "Setări", "label.share-url": "Partajare URL", "label.single-day": "O singură zi", - "label.start-step": "Start Step", - "label.steps": "Steps", + "label.start-step": "Pas de început", + "label.steps": "Pași", "label.sum": "Sumă", "label.tablet": "Tabletă", "label.team": "Echipă", - "label.team-id": "ID Echipa", - "label.team-manager": "Team manager", + "label.team-id": "ID Echipă", + "label.team-manager": "Manager echipă", "label.team-member": "Membru echipă", "label.team-name": "Nume echipă", "label.team-owner": "Titular echipă", @@ -202,34 +202,34 @@ "label.total": "Total", "label.total-records": "Total înregistrări", "label.tracking-code": "Cod de urmărire", - "label.transactions": "Transactions", + "label.transactions": "Tranzacții", "label.transfer": "Transfer", "label.transfer-website": "Transfer website", "label.true": "Adevărat", "label.type": "Tip", "label.unique": "Unici", "label.unique-visitors": "Vizitatori unici", - "label.uniqueCustomers": "Unique Customers", + "label.uniqueCustomers": "Clienți unici", "label.unknown": "Necunoscut", "label.untitled": "Fără titlu", "label.update": "Update", "label.url": "URL", "label.urls": "URLs", "label.user": "Utilizator", - "label.user-property": "User Property", + "label.user-property": "Proprietatea utilizatorului", "label.username": "Nume utilizator", "label.users": "Utilizatori", "label.utm": "UTM", - "label.utm-description": "Track your campaigns through UTM parameters.", + "label.utm-description": "Urmărește campaniile tale cu parametri UTM.", "label.value": "Valoare", "label.view": "Vizualizare", "label.view-details": "Vizualizare detalii", "label.view-only": "Doar vizualizare", "label.views": "Vizualizări", - "label.views-per-visit": "Views per visit", + "label.views-per-visit": "Vizualizări per vizită", "label.visit-duration": "Timp mediu de vizitare", "label.visitors": "Vizitatori", - "label.visits": "Visits", + "label.visits": "Vizite", "label.website": "Website", "label.website-id": "ID Website", "label.websites": "Site-uri web", @@ -237,7 +237,7 @@ "label.yesterday": "Ieri", "message.action-confirmation": "Scrie {confirmation} în câmpul de mai jos pentru a confirma.", "message.active-users": "{x} {x, plural, one {vizitator activ} other {vizitatori activi}}", - "message.collected-data": "Collected data", + "message.collected-data": "Date colectate", "message.confirm-delete": "Ești sigur că vrei să ștergi {target}?", "message.confirm-leave": "Ești sigur că vrei să părăsești {target}?", "message.confirm-remove": "Ești sigur că vrei să ștergi {target}?", diff --git a/src/lang/ru-RU.json b/src/lang/ru-RU.json index f483522a97..558b411a34 100644 --- a/src/lang/ru-RU.json +++ b/src/lang/ru-RU.json @@ -2,194 +2,194 @@ "label.access-code": "Код доступа", "label.actions": "Действия", "label.activity": "Журнал активности", - "label.add": "Add", - "label.add-description": "Add description", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.add": "Добавить", + "label.add-description": "Добавить описание", + "label.add-member": "Добавить участника", + "label.add-step": "Добавить шаг", "label.add-website": "Добавить сайт", "label.admin": "Администратор", - "label.after": "After", + "label.after": "После", "label.all": "Все", "label.all-time": "Все время", "label.analytics": "Аналитика", - "label.average": "Average", + "label.average": "Средний", "label.back": "Назад", - "label.before": "Before", + "label.before": "До", "label.bounce-rate": "Отказы", - "label.breakdown": "Breakdown", - "label.browser": "Browser", + "label.breakdown": "Авария", + "label.browser": "Браузер", "label.browsers": "Браузеры", "label.cancel": "Отменить", "label.change-password": "Изменить пароль", "label.cities": "Города", - "label.city": "City", + "label.city": "Город", "label.clear-all": "Очистить все", - "label.compare": "Compare", + "label.compare": "Сравнить", "label.confirm": "Подтвердить", "label.confirm-password": "Подтвердить пароль", - "label.contains": "Contains", + "label.contains": "Содержит", "label.continue": "Продолжить", - "label.count": "Count", + "label.count": "Считать", "label.countries": "Страны", - "label.country": "Country", - "label.create": "Create", - "label.create-report": "Create report", + "label.country": "Страна", + "label.create": "Создать", + "label.create-report": "Создать отчет", "label.create-team": "Создать команду", "label.create-user": "Создать пользователя", "label.created": "Создано", - "label.created-by": "Created By", - "label.current": "Current", + "label.created-by": "Создано", + "label.current": "Текущий", "label.current-password": "Текущий пароль", "label.custom-range": "Другой период", "label.dashboard": "Информационная панель", "label.data": "Данные", - "label.date": "Date", + "label.date": "Дата", "label.date-range": "Диапазон дат", - "label.day": "Day", + "label.day": "День", "label.default-date-range": "Диапазон дат по-умолчанию", "label.delete": "Удалить", - "label.delete-report": "Delete report", + "label.delete-report": "Удалить отчет", "label.delete-team": "Удалить команду", "label.delete-user": "Удалить пользователя", "label.delete-website": "Удалить сайт", - "label.description": "Description", + "label.description": "Описание", "label.desktop": "Настольный компьютер", "label.details": "Подробности", - "label.device": "Device", + "label.device": "Устройство", "label.devices": "Устройства", "label.dismiss": "Отклонить", - "label.does-not-contain": "Does not contain", + "label.does-not-contain": "Не содержит", "label.domain": "Домен", - "label.dropoff": "Dropoff", + "label.dropoff": "Высадка", "label.edit": "Изменить", "label.edit-dashboard": "Редактировать дашборд", - "label.edit-member": "Edit member", + "label.edit-member": "Редактировать участника", "label.enable-share-url": "Разрешить делиться ссылкой", - "label.end-step": "End Step", - "label.entry": "Entry URL", - "label.event": "Event", - "label.event-data": "Event data", + "label.end-step": "Конечный шаг", + "label.entry": "URL-адрес входа", + "label.event": "Событие", + "label.event-data": "Данные о событии", "label.events": "События", - "label.exit": "Exit URL", - "label.false": "False", - "label.field": "Field", - "label.fields": "Fields", - "label.filter": "Filter", + "label.exit": "URL-адрес выхода", + "label.false": "Ложь", + "label.field": "Поле", + "label.fields": "Поля", + "label.filter": "Фильтр", "label.filter-combined": "Объединенные", "label.filter-raw": "Сырые данные", - "label.filters": "Filters", - "label.first-seen": "First seen", - "label.funnel": "Funnel", - "label.funnel-description": "Understand the conversion and drop-off rate of users.", - "label.goal": "Goal", - "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", - "label.greater-than": "Greater than", - "label.greater-than-equals": "Greater than or equals", + "label.filters": "Фильтры", + "label.first-seen": "Первый вход", + "label.funnel": "Воронка", + "label.funnel-description": "Изучите коэффициент конверсии и ухода пользователей.", + "label.goal": "Цель", + "label.goals": "Цели", + "label.goals-description": "Отслеживайте свои цели по просмотрам страниц и событиям.", + "label.greater-than": "Больше, чем", + "label.greater-than-equals": "Больше или равно", "label.host": "Host", "label.hosts": "Hosts", - "label.insights": "Insights", - "label.insights-description": "Dive deeper into your data by using segments and filters.", - "label.is": "Is", - "label.is-not": "Is not", - "label.is-not-set": "Is not set", - "label.is-set": "Is set", + "label.insights": "Информация", + "label.insights-description": "Погрузитесь глубже в свои данные с помощью сегментов и фильтров.", + "label.is": "Является", + "label.is-not": "Не установлен", + "label.is-not-set": "Не установлено", + "label.is-set": "Установлен", "label.join": "Присоединиться", "label.join-team": "Присоединиться к команде", "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.journey-description": "Поймите, как пользователи перемещаются по вашему сайту.", "label.language": "Язык", "label.languages": "Языки", "label.laptop": "Ноутбук", "label.last-days": "Последние {x} дней", "label.last-hours": "Последние {x} часа", - "label.last-months": "Last {x} months", - "label.last-seen": "Last seen", + "label.last-months": "Последние {x} месяцев", + "label.last-seen": "Последний вход", "label.leave": "Уйти", "label.leave-team": "Покинуть команду", - "label.less-than": "Less than", - "label.less-than-equals": "Less than or equals", + "label.less-than": "Меньше, чем", + "label.less-than-equals": "Меньше или равно", "label.login": "Войти", "label.logout": "Выйти", - "label.manage": "Manage", - "label.manager": "Manager", - "label.max": "Max", - "label.member": "Member", + "label.manage": "Управление", + "label.manager": "Менеджер", + "label.max": "Максимум", + "label.member": "Участник", "label.members": "Участники", - "label.min": "Min", + "label.min": "Минимум", "label.mobile": "Смартфон", "label.more": "Больше", - "label.my-account": "My account", - "label.my-websites": "My websites", + "label.my-account": "Мой профиль", + "label.my-websites": "Мои сайты", "label.name": "Имя", "label.new-password": "Новый пароль", "label.none": "Не указано", - "label.number-of-records": "{x} {x, plural, one {record} other {records}}", + "label.number-of-records": "{x} {x, plural, one {запись} other {записи}}", "label.ok": "OK", "label.os": "OS", - "label.overview": "Overview", + "label.overview": "Обзор", "label.owner": "Владелец", - "label.page-of": "Page {current} of {total}", + "label.page-of": "Страница {current} из {total}", "label.page-views": "Просмотры страниц", - "label.pageTitle": "Page title", + "label.pageTitle": "Название страницы", "label.pages": "Страницы", "label.password": "Пароль", - "label.path": "Path", - "label.paths": "Paths", + "label.path": "Путь", + "label.paths": "Пути", "label.powered-by": "На движке {name}", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", + "label.previous": "Предыдущий", + "label.previous-period": "Предыдущий период", + "label.previous-year": "Предыдущий год", "label.profile": "Профиль", - "label.properties": "Properties", - "label.property": "Property", + "label.properties": "Свойства", + "label.property": "Свойство", "label.queries": "Запросы", - "label.query": "Query", + "label.query": "Запрос", "label.query-parameters": "Параметры запроса", "label.realtime": "Реальное время", - "label.referrer": "Referrer", + "label.referrer": "Реферер", "label.referrers": "Источники", "label.refresh": "Обновить", "label.regenerate": "Обновить", - "label.region": "Region", + "label.region": "Регион", "label.regions": "Регионы", "label.remove": "Удалить", - "label.remove-member": "Remove member", - "label.reports": "Reports", + "label.remove-member": "Удалить участника", + "label.reports": "Отчеты", "label.required": "Обязательное", "label.reset": "Сбросить", "label.reset-website": "Сбросить статистику", - "label.retention": "Retention", - "label.retention-description": "Measure your website stickiness by tracking how often users return.", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", + "label.retention": "Удержание", + "label.retention-description": "Измерьте «прилипаемость» вашего сайта, отслеживая, как часто пользователи возвращаются на него.", + "label.revenue": "Выручка", + "label.revenue-description": "Изучите свои доходы за определенное время.", + "label.revenue-property": "Доходная недвижимость", "label.role": "Роль", - "label.run-query": "Run query", + "label.run-query": "Выполнить запрос", "label.save": "Сохранить", "label.screens": "Экраны", - "label.search": "Search", - "label.select": "Select", - "label.select-date": "Select date", - "label.select-role": "Select role", + "label.search": "Поиск", + "label.select": "Выберите", + "label.select-date": "Выберите дату", + "label.select-role": "Выберите роль", "label.select-website": "Выбрать сайт", - "label.session": "Session", + "label.session": "Сессия", "label.sessions": "Сессии", "label.settings": "Настройки", "label.share-url": "Поделиться ссылкой", "label.single-day": "Один день", - "label.start-step": "Start Step", - "label.steps": "Steps", - "label.sum": "Sum", + "label.start-step": "Начальный этап", + "label.steps": "Шаги", + "label.sum": "Сумма", "label.tablet": "Планшет", "label.team": "Команда", "label.team-id": "ID команды", - "label.team-manager": "Team manager", + "label.team-manager": "Менеджер команды", "label.team-member": "Член команды", - "label.team-name": "Team name", + "label.team-name": "Название команды", "label.team-owner": "Владелец команды", - "label.team-view-only": "Team view only", - "label.team-websites": "Team websites", + "label.team-view-only": "Только командный просмотр", + "label.team-websites": "Веб-сайты команды", "label.teams": "Команды", "label.theme": "Тема", "label.this-month": "Этот месяц", @@ -199,62 +199,62 @@ "label.title": "Заголовок", "label.today": "Сегодня", "label.toggle-charts": "Показать/скрыть графики", - "label.total": "Total", - "label.total-records": "Total records", + "label.total": "Всего", + "label.total-records": "Всего записей", "label.tracking-code": "Код отслеживания", - "label.transactions": "Transactions", - "label.transfer": "Transfer", - "label.transfer-website": "Transfer website", - "label.true": "True", - "label.type": "Type", - "label.unique": "Unique", + "label.transactions": "Транзакции", + "label.transfer": "Передача", + "label.transfer-website": "Передать сайт", + "label.true": "Правда", + "label.type": "Тип", + "label.unique": "Уникальный", "label.unique-visitors": "Уникальные посетители", - "label.uniqueCustomers": "Unique Customers", + "label.uniqueCustomers": "Уникальные клиенты", "label.unknown": "Неизвестно", - "label.untitled": "Untitled", - "label.update": "Update", + "label.untitled": "Без названия", + "label.update": "Обновление", "label.url": "URL", "label.urls": "URLs", "label.user": "Пользователь", - "label.user-property": "User Property", + "label.user-property": "Собственность пользователя", "label.username": "Имя пользователя", "label.users": "Пользователи", "label.utm": "UTM", - "label.utm-description": "Track your campaigns through UTM parameters.", - "label.value": "Value", + "label.utm-description": "Отслеживайте свои кампании с помощью UTM-параметров.", + "label.value": "Значение", "label.view": "Просмотреть", "label.view-details": "Посмотреть детали", - "label.view-only": "View only", + "label.view-only": "Только просмотр", "label.views": "Просмотры", - "label.views-per-visit": "Views per visit", + "label.views-per-visit": "Просмотров за посещение", "label.visit-duration": "Среднее время посещения", "label.visitors": "Посетители", - "label.visits": "Visits", - "label.website": "Website", + "label.visits": "Посещения", + "label.website": "Сайт", "label.website-id": "ID сайта", "label.websites": "Сайты", - "label.window": "Window", + "label.window": "Окно", "label.yesterday": "Вчера", - "message.action-confirmation": "Type {confirmation} in the box below to confirm.", + "message.action-confirmation": "Введите {confirmation} в поле ниже, чтобы подтвердить.", "message.active-users": "{x} текущих посетителей", - "message.collected-data": "Collected data", + "message.collected-data": "Собранные данные", "message.confirm-delete": "Вы уверены, что хотите удалить {target}?", "message.confirm-leave": "Вы уверены, что хотите уйти {target}?", - "message.confirm-remove": "Are you sure you want to remove {target}?", + "message.confirm-remove": "Вы уверены, что хотите удалить {target}?", "message.confirm-reset": "Вы уверены, что хотите сбросить статистику {target}?", - "message.delete-team-warning": "Deleting a team will also delete all team websites.", + "message.delete-team-warning": "При удалении команды будут удалены и все ее веб-сайты.", "message.delete-website-warning": "Все связанные данные будут также удалены.", "message.error": "Что-то пошло не так.", - "message.event-log": "{event} on {url}", + "message.event-log": "{event} на {url}", "message.go-to-settings": "Перейти к настройкам", "message.incorrect-username-password": "Неверное имя пользователя/пароль.", "message.invalid-domain": "Некорректный домен", "message.min-password-length": "Минимальная длина {n} символов", - "message.new-version-available": "A new version of Umami {version} is available!", + "message.new-version-available": "Вышла новая версия Umami {version}!", "message.no-data-available": "Нет данных.", - "message.no-event-data": "No event data is available.", + "message.no-event-data": "Данные о событиях отсутствуют.", "message.no-match-password": "Пароли не совпадают", - "message.no-results-found": "No results were found.", + "message.no-results-found": "Результаты не найдены.", "message.no-team-websites": "У этой команды нет ни одного сайта.", "message.no-teams": "Вы не создали ни одной команды.", "message.no-users": "Нет пользователей.", @@ -268,12 +268,12 @@ "message.team-not-found": "Команда не найдена.", "message.team-websites-info": "Сайты могут просматривать все члены команды.", "message.tracking-code": "Код отслеживания", - "message.transfer-team-website-to-user": "Transfer this website to your account?", - "message.transfer-user-website-to-team": "Select the team to transfer this website to.", - "message.transfer-website": "Transfer website ownership to your account or another team.", - "message.triggered-event": "Triggered event", + "message.transfer-team-website-to-user": "Перенести этот сайт в свой прфоиль?", + "message.transfer-user-website-to-team": "Выберите команду, которой нужно передать этот сайт.", + "message.transfer-website": "Передайте право владения сайтом своей учетной записи или другой команде.", + "message.triggered-event": "Запущенное событие", "message.user-deleted": "Пользователь удален.", - "message.viewed-page": "Viewed page", + "message.viewed-page": "Просмотренная страница", "message.visitor-log": "Посетитель из {country} используя {browser} на {os} {device}", - "message.visitors-dropped-off": "Visitors dropped off" + "message.visitors-dropped-off": "Высадка посетителей" } diff --git a/src/lang/zh-CN.json b/src/lang/zh-CN.json index 741d2de0ec..b1ee86bd3f 100644 --- a/src/lang/zh-CN.json +++ b/src/lang/zh-CN.json @@ -78,7 +78,7 @@ "label.filter-combined": "合并", "label.filter-raw": "原始", "label.filters": "筛选", - "label.first-seen": "First seen", + "label.first-seen": "首次出现", "label.funnel": "分析", "label.funnel-description": "了解用户的转换率和退出率。", "label.goal": "目标", @@ -104,7 +104,7 @@ "label.last-days": "最近 {x} 天", "label.last-hours": "最近 {x} 小时", "label.last-months": "最近 {x} 个月", - "label.last-seen": "Last seen", + "label.last-seen": "最后出现", "label.leave": "离开", "label.leave-team": "离开团队", "label.less-than": "少于", @@ -161,9 +161,9 @@ "label.reset-website": "重置统计数据", "label.retention": "保留", "label.retention-description": "通过跟踪用户返回的频率来衡量网站的用户粘性。", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", + "label.revenue": "收入", + "label.revenue-description": "查看您的收入随时间的变化。", + "label.revenue-property": "收入值", "label.role": "角色", "label.run-query": "查询", "label.save": "保存", @@ -202,21 +202,21 @@ "label.total": "总数", "label.total-records": "总记录数", "label.tracking-code": "跟踪代码", - "label.transactions": "Transactions", + "label.transactions": "交易", "label.transfer": "转移", "label.transfer-website": "转移网站", "label.true": "是", "label.type": "类型", "label.unique": "独立", "label.unique-visitors": "独立访客", - "label.uniqueCustomers": "Unique Customers", + "label.uniqueCustomers": "独特客户", "label.unknown": "未知", "label.untitled": "未命名", "label.update": "更新", "label.url": "网址", "label.urls": "网址", "label.user": "用户", - "label.user-property": "User Property", + "label.user-property": "用户属性", "label.username": "用户名", "label.users": "用户", "label.utm": "UTM", diff --git a/src/lang/zh-TW.json b/src/lang/zh-TW.json index a2c5d2c31b..46cdbde1fc 100644 --- a/src/lang/zh-TW.json +++ b/src/lang/zh-TW.json @@ -1,11 +1,11 @@ { "label.access-code": "存取碼", - "label.actions": "行動", - "label.activity": "活動日誌", + "label.actions": "行為", + "label.activity": "活動紀錄", "label.add": "新增", "label.add-description": "新增描述", - "label.add-member": "Add member", - "label.add-step": "Add step", + "label.add-member": "新增成員", + "label.add-step": "新增步驟", "label.add-website": "新增網站", "label.admin": "管理員", "label.after": "之後", @@ -16,7 +16,7 @@ "label.back": "返回", "label.before": "之前", "label.bounce-rate": "跳出率", - "label.breakdown": "分解", + "label.breakdown": "細項分析", "label.browser": "瀏覽器", "label.browsers": "瀏覽器", "label.cancel": "取消", @@ -24,21 +24,21 @@ "label.cities": "城市", "label.city": "城市", "label.clear-all": "全部清除", - "label.compare": "Compare", + "label.compare": "比較", "label.confirm": "確認", "label.confirm-password": "確認密碼", "label.contains": "包含", "label.continue": "繼續", - "label.count": "Count", + "label.count": "數量", "label.countries": "國家", "label.country": "國家", "label.create": "建立", - "label.create-report": "建立報告", + "label.create-report": "建立報表", "label.create-team": "建立團隊", "label.create-user": "建立使用者", "label.created": "已建立", - "label.created-by": "Created By", - "label.current": "Current", + "label.created-by": "建立者", + "label.current": "目前", "label.current-password": "目前密碼", "label.custom-range": "自訂範圍", "label.dashboard": "儀表板", @@ -48,7 +48,7 @@ "label.day": "日", "label.default-date-range": "預設日期範圍", "label.delete": "刪除", - "label.delete-report": "Delete report", + "label.delete-report": "刪除報表", "label.delete-team": "刪除團隊", "label.delete-user": "刪除使用者", "label.delete-website": "刪除網站", @@ -60,89 +60,89 @@ "label.dismiss": "關閉", "label.does-not-contain": "不包含", "label.domain": "網域", - "label.dropoff": "退出", + "label.dropoff": "離開", "label.edit": "編輯", "label.edit-dashboard": "編輯儀表板", - "label.edit-member": "Edit member", - "label.enable-share-url": "啟用分享網址", - "label.end-step": "End Step", - "label.entry": "Entry URL", + "label.edit-member": "編輯成員", + "label.enable-share-url": "啟用分享連結", + "label.end-step": "結束步驟", + "label.entry": "進入網址", "label.event": "事件", "label.event-data": "事件資料", "label.events": "事件", - "label.exit": "Exit URL", + "label.exit": "離開網址", "label.false": "否", "label.field": "欄位", "label.fields": "欄位", "label.filter": "篩選器", "label.filter-combined": "組合", "label.filter-raw": "原始", - "label.filters": "篩選器", - "label.first-seen": "First seen", - "label.funnel": "漏斗", - "label.funnel-description": "瞭解使用者的轉換率和退出率", - "label.goal": "Goal", - "label.goals": "Goals", - "label.goals-description": "Track your goals for pageviews and events.", + "label.filters": "篩選條件", + "label.first-seen": "首次造訪", + "label.funnel": "漏斗分析", + "label.funnel-description": "瞭解使用者的轉換率與流失率。", + "label.goal": "目標", + "label.goals": "目標", + "label.goals-description": "追蹤網頁瀏覽和事件的目標。", "label.greater-than": "大於", "label.greater-than-equals": "大於或等於", - "label.host": "Host", - "label.hosts": "Hosts", + "label.host": "主機名稱", + "label.hosts": "主機名稱", "label.insights": "洞察", - "label.insights-description": "透過使用區段和篩選器來深入探索你的數據", + "label.insights-description": "使用區段和篩選器來深入分析您的資料。", "label.is": "是", "label.is-not": "不是", "label.is-not-set": "未設定", "label.is-set": "已設定", "label.join": "加入", "label.join-team": "加入團隊", - "label.journey": "Journey", - "label.journey-description": "Understand how users navigate through your website.", + "label.journey": "使用者旅程", + "label.journey-description": "瞭解使用者如何瀏覽您的網站。", "label.language": "語言", "label.languages": "語言", "label.laptop": "筆記型電腦", "label.last-days": "最近 {x} 天", "label.last-hours": "最近 {x} 小時", - "label.last-months": "Last {x} months", - "label.last-seen": "Last seen", + "label.last-months": "最近 {x} 個月", + "label.last-seen": "最後造訪", "label.leave": "離開", "label.leave-team": "離開團隊", "label.less-than": "小於", "label.less-than-equals": "小於或等於", "label.login": "登入", "label.logout": "登出", - "label.manage": "Manage", - "label.manager": "Manager", - "label.max": "最大", - "label.member": "Member", + "label.manage": "管理", + "label.manager": "管理者", + "label.max": "最大值", + "label.member": "成員", "label.members": "成員", - "label.min": "最小", + "label.min": "最小值", "label.mobile": "行動裝置", "label.more": "更多", - "label.my-account": "My account", + "label.my-account": "我的帳號", "label.my-websites": "我的網站", "label.name": "名稱", "label.new-password": "新密碼", "label.none": "無", - "label.number-of-records": "{x} {x, plural, one {record} other {records}}", + "label.number-of-records": "{x} 筆紀錄", "label.ok": "OK", "label.os": "作業系統", - "label.overview": "概覽", + "label.overview": "總覽", "label.owner": "擁有者", - "label.page-of": "頁面 {current} / {total}", - "label.page-views": "頁面瀏覽", - "label.pageTitle": "頁面標題", - "label.pages": "頁面", + "label.page-of": "第 {current} 頁,共 {total} 頁", + "label.page-views": "網頁瀏覽次數", + "label.pageTitle": "網頁標題", + "label.pages": "網頁", "label.password": "密碼", - "label.path": "Path", - "label.paths": "Paths", - "label.powered-by": "由 {name} 提供", - "label.previous": "Previous", - "label.previous-period": "Previous period", - "label.previous-year": "Previous year", - "label.profile": "個人資料", - "label.properties": "Properties", - "label.property": "Property", + "label.path": "路徑", + "label.paths": "路徑", + "label.powered-by": "由 {name} 提供技術支援", + "label.previous": "上一個", + "label.previous-period": "上一期間", + "label.previous-year": "去年", + "label.profile": "個人檔案", + "label.properties": "屬性", + "label.property": "屬性", "label.queries": "查詢", "label.query": "查詢", "label.query-parameters": "查詢參數", @@ -151,44 +151,44 @@ "label.referrers": "參照來源", "label.refresh": "重新整理", "label.regenerate": "重新產生", - "label.region": "區域", - "label.regions": "區域", + "label.region": "地區", + "label.regions": "地區", "label.remove": "移除", - "label.remove-member": "Remove member", - "label.reports": "報告", + "label.remove-member": "移除成員", + "label.reports": "報表", "label.required": "必填", "label.reset": "重設", - "label.reset-website": "重設網站", - "label.retention": "保留", + "label.reset-website": "重設網站統計資料", + "label.retention": "留存率", "label.retention-description": "透過追蹤使用者回訪的頻率來衡量您的網站黏著度。", - "label.revenue": "Revenue", - "label.revenue-description": "Look into your revenue across time.", - "label.revenue-property": "Revenue Property", + "label.revenue": "營收", + "label.revenue-description": "查看您的營收趨勢。", + "label.revenue-property": "營收屬性", "label.role": "角色", "label.run-query": "執行查詢", "label.save": "儲存", "label.screens": "螢幕", - "label.search": "Search", - "label.select": "Select", - "label.select-date": "選擇日期", - "label.select-role": "Select role", - "label.select-website": "選擇網站", - "label.session": "Session", + "label.search": "搜尋", + "label.select": "選取", + "label.select-date": "選取日期", + "label.select-role": "選取角色", + "label.select-website": "選取網站", + "label.session": "工作階段", "label.sessions": "工作階段", "label.settings": "設定", - "label.share-url": "分享網址", + "label.share-url": "分享連結", "label.single-day": "單日", - "label.start-step": "Start Step", - "label.steps": "Steps", + "label.start-step": "起始步驟", + "label.steps": "步驟", "label.sum": "總和", "label.tablet": "平板", "label.team": "團隊", "label.team-id": "團隊 ID", - "label.team-manager": "Team manager", + "label.team-manager": "團隊管理者", "label.team-member": "團隊成員", "label.team-name": "團隊名稱", "label.team-owner": "團隊擁有者", - "label.team-view-only": "Team view only", + "label.team-view-only": "團隊僅供檢視", "label.team-websites": "團隊網站", "label.teams": "團隊", "label.theme": "主題", @@ -200,80 +200,80 @@ "label.today": "今天", "label.toggle-charts": "切換圖表", "label.total": "總計", - "label.total-records": "總記錄", + "label.total-records": "紀錄總數", "label.tracking-code": "追蹤代碼", - "label.transactions": "Transactions", - "label.transfer": "Transfer", - "label.transfer-website": "Transfer website", + "label.transactions": "交易", + "label.transfer": "轉移", + "label.transfer-website": "轉移網站", "label.true": "是", "label.type": "類型", - "label.unique": "獨立", - "label.unique-visitors": "獨立訪客", - "label.uniqueCustomers": "Unique Customers", + "label.unique": "不重複", + "label.unique-visitors": "不重複訪客", + "label.uniqueCustomers": "不重複客戶", "label.unknown": "未知", - "label.untitled": "無標題", - "label.update": "Update", + "label.untitled": "未命名", + "label.update": "更新", "label.url": "網址", "label.urls": "網址", "label.user": "使用者", - "label.user-property": "User Property", + "label.user-property": "使用者屬性", "label.username": "使用者名稱", "label.users": "使用者", "label.utm": "UTM", - "label.utm-description": "Track your campaigns through UTM parameters.", + "label.utm-description": "透過 UTM 參數追蹤您的行銷活動。", "label.value": "值", "label.view": "檢視", "label.view-details": "檢視詳細資訊", "label.view-only": "僅供檢視", - "label.views": "檢視", - "label.views-per-visit": "Views per visit", - "label.visit-duration": "平均造訪時間", + "label.views": "瀏覽次數", + "label.views-per-visit": "每次造訪的瀏覽次數", + "label.visit-duration": "造訪時間", "label.visitors": "訪客", - "label.visits": "Visits", + "label.visits": "造訪次數", "label.website": "網站", "label.website-id": "網站 ID", "label.websites": "網站", "label.window": "視窗", "label.yesterday": "昨天", - "message.action-confirmation": "Type {confirmation} in the box below to confirm.", - "message.active-users": "目前有 {x} 個活躍的訪客", - "message.collected-data": "Collected data", + "message.action-confirmation": "請在下方欄位輸入 {confirmation} 以確認。", + "message.active-users": "目前有 {x} 位訪客", + "message.collected-data": "已蒐集的資料", "message.confirm-delete": "您確定要刪除 {target} 嗎?", "message.confirm-leave": "您確定要離開 {target} 嗎?", - "message.confirm-remove": "Are you sure you want to remove {target}?", - "message.confirm-reset": "您確定要重設 {target} 嗎?", - "message.delete-team-warning": "Deleting a team will also delete all team websites.", - "message.delete-website-warning": "所有網站資料將被刪除。", + "message.confirm-remove": "您確定要移除 {target} 嗎?", + "message.confirm-reset": "您確定要重設 {target} 的統計資料嗎?", + "message.delete-team-warning": "刪除團隊的同時也會刪除所有團隊的網站。", + "message.delete-website-warning": "所有網站資料都將被刪除。", "message.error": "發生錯誤。", - "message.event-log": "{event} 在 {url}", + "message.event-log": "在 {url} 上的 {event}", "message.go-to-settings": "前往設定", - "message.incorrect-username-password": "使用者名稱和/或密碼不正確。", - "message.invalid-domain": "無效的網域。請不要包含 http/https。", - "message.min-password-length": "最少需要 {n} 個字元", - "message.new-version-available": "Umami {version} 的新版本已經可以使用!", + "message.incorrect-username-password": "使用者名稱或密碼不正確。", + "message.invalid-domain": "無效的網域。請勿包含 http/https。", + "message.min-password-length": "密碼長度至少需 {n} 個字元", + "message.new-version-available": "Umami {version} 的新版本已推出!", "message.no-data-available": "沒有可用的資料。", "message.no-event-data": "沒有可用的事件資料。", "message.no-match-password": "密碼不一致。", "message.no-results-found": "找不到結果。", "message.no-team-websites": "此團隊沒有任何網站。", "message.no-teams": "您尚未建立任何團隊。", - "message.no-users": "沒有使用者。", + "message.no-users": "沒有任何使用者。", "message.no-websites-configured": "您尚未設定任何網站。", - "message.page-not-found": "找不到頁面", - "message.reset-website": "要重設此網站,請在下方的方框中輸入 {confirmation} 以確認。", - "message.reset-website-warning": "此網站的所有統計將被刪除,但您的設定將保持不變。", + "message.page-not-found": "找不到網頁", + "message.reset-website": "要重設此網站的統計資料,請在下方欄位輸入 {confirmation} 以確認。", + "message.reset-website-warning": "此網站的所有統計資料都將被刪除,但您的設定將保持不變。", "message.saved": "已儲存。", - "message.share-url": "您的網站統計資料可以在以下網址公開檢視:", - "message.team-already-member": "您已經是團隊的成員。", + "message.share-url": "您的網站統計資料可在以下網址公開檢視:", + "message.team-already-member": "您已是該團隊的成員。", "message.team-not-found": "找不到團隊。", - "message.team-websites-info": "團隊的任何成員都可以檢視網站。", - "message.tracking-code": "要追蹤此網站的統計,請將以下代碼放在您的 HTML 的 ... 區段中。", - "message.transfer-team-website-to-user": "Transfer this website to your account?", - "message.transfer-user-website-to-team": "Select the team to transfer this website to.", - "message.transfer-website": "Transfer website ownership to your account or another team.", - "message.triggered-event": "Triggered event", + "message.team-websites-info": "團隊中的所有成員都可以檢視網站。", + "message.tracking-code": "要追蹤此網站的統計資料,請將以下程式碼放在您 HTML 的 ... 區段中。", + "message.transfer-team-website-to-user": "要將此網站轉移至您的帳號嗎?", + "message.transfer-user-website-to-team": "請選擇要轉移此網站的團隊。", + "message.transfer-website": "將網站所有權轉移至您的帳號或其他團隊。", + "message.triggered-event": "已觸發的事件", "message.user-deleted": "使用者已刪除。", - "message.viewed-page": "Viewed page", + "message.viewed-page": "已瀏覽的網頁", "message.visitor-log": "來自 {country} 的訪客在 {device} 上的 {os} 使用 {browser} 瀏覽。", - "message.visitors-dropped-off": "Visitors dropped off" + "message.visitors-dropped-off": "訪客已離開" } diff --git a/src/lib/__tests__/detect.test.ts b/src/lib/__tests__/detect.test.ts index 89b9c6c45e..14c67ddefe 100644 --- a/src/lib/__tests__/detect.test.ts +++ b/src/lib/__tests__/detect.test.ts @@ -1,4 +1,5 @@ import * as detect from '../detect'; +import { expect } from '@jest/globals'; const IP = '127.0.0.1'; diff --git a/src/lib/__tests__/format.test.ts b/src/lib/__tests__/format.test.ts index 6e1b319f09..2f68dc1882 100644 --- a/src/lib/__tests__/format.test.ts +++ b/src/lib/__tests__/format.test.ts @@ -1,4 +1,5 @@ import * as format from '../format'; +import { expect } from '@jest/globals'; test('parseTime', () => { expect(format.parseTime(86400 + 3600 + 60 + 1)).toEqual({ diff --git a/src/lib/auth.ts b/src/lib/auth.ts index 12fb0a2817..7b8ac8238a 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -1,7 +1,7 @@ import { Report } from '@prisma/client'; -import redis from '@umami/redis-client'; +import { getClient } from '@umami/redis-client'; import debug from 'debug'; -import { PERMISSIONS, ROLE_PERMISSIONS, SHARE_TOKEN_HEADER, ROLES } from 'lib/constants'; +import { PERMISSIONS, ROLE_PERMISSIONS, SHARE_TOKEN_HEADER } from 'lib/constants'; import { secret } from 'lib/crypto'; import { NextApiRequest } from 'next'; import { createSecureToken, ensureArray, getRandomChars, parseToken } from 'next-basics'; @@ -14,10 +14,12 @@ const cloudMode = process.env.CLOUD_MODE; export async function saveAuth(data: any, expire = 0) { const authKey = `auth:${getRandomChars(32)}`; - await redis.client.set(authKey, data); + const redis = getClient(); + + await redis.set(authKey, data); if (expire) { - await redis.client.expire(authKey, expire); + await redis.expire(authKey, expire); } return createSecureToken({ authKey }, secret()); diff --git a/src/lib/clickhouse.ts b/src/lib/clickhouse.ts index b588ec84e5..5f0248b49c 100644 --- a/src/lib/clickhouse.ts +++ b/src/lib/clickhouse.ts @@ -68,6 +68,10 @@ function getDateSQL(field: string, unit: string, timezone?: string) { return `toDateTime(date_trunc('${unit}', ${field}))`; } +function getSearchSQL(column: string, param: string = 'search'): string { + return `and positionCaseInsensitive(${column}, {${param}:String}) > 0`; +} + function mapFilter(column: string, operator: string, name: string, type: string = 'String') { const value = `{${name}:${type}}`; @@ -229,6 +233,7 @@ export default { connect, getDateStringSQL, getDateSQL, + getSearchSQL, getFilterQuery, getUTCString, parseFilters, diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 7f8acf886a..a9e13c14a5 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -239,12 +239,12 @@ export const CHART_COLORS = [ ]; export const DOMAIN_REGEX = - /^(localhost(:[1-9]\d{0,4})?|((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9-]+(-[a-z0-9-]+)*\.)+(xn--)?[a-z0-9-]{2,63})$/; + /^(localhost(:[1-9]\d{0,4})?|((?=[a-z0-9-_]{1,63}\.)(xn--)?[a-z0-9-_]+(-[a-z0-9-_]+)*\.)+(xn--)?[a-z0-9-_]{2,63})$/; export const SHARE_ID_REGEX = /^[a-zA-Z0-9]{8,16}$/; export const UUID_REGEX = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/; export const HOSTNAME_REGEX = - /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/; + /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-_]*[A-Za-z0-9])$/; export const IP_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(?:(?:[0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|(?:[0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|(?:[0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|(?:[0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:(?:(:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))$/; export const DATETIME_REGEX = diff --git a/src/lib/date.ts b/src/lib/date.ts index b731140cf2..b7755ffc24 100644 --- a/src/lib/date.ts +++ b/src/lib/date.ts @@ -1,4 +1,3 @@ -import moment from 'moment-timezone'; import { addMinutes, addHours, @@ -105,8 +104,17 @@ const DATE_FUNCTIONS = { }, }; +export function isValidTimezone(timezone: string) { + try { + Intl.DateTimeFormat(undefined, { timeZone: timezone }); + return true; + } catch (error) { + return false; + } +} + export function getTimezone() { - return moment.tz.guess(); + return Intl.DateTimeFormat().resolvedOptions().timeZone; } export function parseDateValue(value: string) { diff --git a/src/lib/detect.ts b/src/lib/detect.ts index 56a037ec49..c3ce6feedb 100644 --- a/src/lib/detect.ts +++ b/src/lib/detect.ts @@ -67,6 +67,14 @@ function getRegionCode(country: string, region: string) { return region.includes('-') ? region : `${country}-${region}`; } +function safeDecodeCfHeader(s: string | undefined | null): string | undefined | null { + if (s === undefined || s === null) { + return s; + } + + return Buffer.from(s, 'latin1').toString('utf-8'); +} + export async function getLocation(ip: string, req: NextApiRequestCollect) { // Ignore local ips if (await isLocalhost(ip)) { @@ -75,9 +83,9 @@ export async function getLocation(ip: string, req: NextApiRequestCollect) { // Cloudflare headers if (req.headers['cf-ipcountry']) { - const country = safeDecodeURIComponent(req.headers['cf-ipcountry']); - const subdivision1 = safeDecodeURIComponent(req.headers['cf-region-code']); - const city = safeDecodeURIComponent(req.headers['cf-ipcity']); + const country = safeDecodeCfHeader(req.headers['cf-ipcountry']); + const subdivision1 = safeDecodeCfHeader(req.headers['cf-region-code']); + const city = safeDecodeCfHeader(req.headers['cf-ipcity']); return { country, diff --git a/src/lib/load.ts b/src/lib/load.ts index 8cddeaa9e5..5b834ca86c 100644 --- a/src/lib/load.ts +++ b/src/lib/load.ts @@ -1,12 +1,14 @@ import { getWebsiteSession, getWebsite } from 'queries'; import { Website, Session } from '@prisma/client'; -import redis from '@umami/redis-client'; +import { getClient, redisEnabled } from '@umami/redis-client'; export async function fetchWebsite(websiteId: string): Promise { let website = null; - if (redis.enabled) { - website = await redis.client.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400); + if (redisEnabled) { + const redis = getClient(); + + website = await redis.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400); } else { website = await getWebsite(websiteId); } @@ -21,8 +23,10 @@ export async function fetchWebsite(websiteId: string): Promise { export async function fetchSession(websiteId: string, sessionId: string): Promise { let session = null; - if (redis.enabled) { - session = await redis.client.fetch( + if (redisEnabled) { + const redis = getClient(); + + session = await redis.fetch( `session:${sessionId}`, () => getWebsiteSession(websiteId, sessionId), 86400, diff --git a/src/lib/middleware.ts b/src/lib/middleware.ts index f13b5c723f..3f7b950466 100644 --- a/src/lib/middleware.ts +++ b/src/lib/middleware.ts @@ -1,6 +1,6 @@ import cors from 'cors'; import debug from 'debug'; -import redis from '@umami/redis-client'; +import { getClient, redisEnabled } from '@umami/redis-client'; import { getAuthToken, parseShareToken } from 'lib/auth'; import { ROLES } from 'lib/constants'; import { secret } from 'lib/crypto'; @@ -54,8 +54,10 @@ export const useAuth = createMiddleware(async (req, res, next) => { if (userId) { user = await getUser(userId); - } else if (redis.enabled && authKey) { - const key = await redis.client.get(authKey); + } else if (redisEnabled && authKey) { + const redis = getClient(); + + const key = await redis.get(authKey); if (key?.userId) { user = await getUser(key.userId); diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts index 32ac65eb5f..a8f7eb0633 100644 --- a/src/lib/prisma.ts +++ b/src/lib/prisma.ts @@ -1,7 +1,7 @@ import debug from 'debug'; import { Prisma } from '@prisma/client'; import prisma from '@umami/prisma-client'; -import moment from 'moment-timezone'; +import { formatInTimeZone } from 'date-fns-tz'; import { MYSQL, POSTGRESQL, getDatabaseType } from 'lib/db'; import { SESSION_COLUMNS, OPERATORS, DEFAULT_PAGE_SIZE } from './constants'; import { fetchWebsite } from './load'; @@ -75,7 +75,7 @@ function getDateSQL(field: string, unit: string, timezone?: string): string { if (db === MYSQL) { if (timezone) { - const tz = moment.tz(timezone).format('Z'); + const tz = formatInTimeZone(new Date(), timezone, 'yyyy-MM-dd HH:mm:ss'); return `date_format(convert_tz(${field},'+00:00','${tz}'), '${MYSQL_DATE_FORMATS[unit]}')`; } return `date_format(${field}, '${MYSQL_DATE_FORMATS[unit]}')`; @@ -90,7 +90,7 @@ function getDateWeeklySQL(field: string, timezone?: string) { } if (db === MYSQL) { - const tz = moment.tz(timezone).format('Z'); + const tz = formatInTimeZone(new Date(), timezone, 'yyyy-MM-dd HH:mm:ss'); return `date_format(convert_tz(${field},'+00:00','${tz}'), '%w:%H')`; } } @@ -119,11 +119,11 @@ function getTimestampDiffSQL(field1: string, field2: string): string { } } -function getSearchSQL(column: string): string { +function getSearchSQL(column: string, param: string = 'search'): string { const db = getDatabaseType(); const like = db === POSTGRESQL ? 'ilike' : 'like'; - return `and ${column} ${like} {{search}}`; + return `and ${column} ${like} {{${param}}`; } function mapFilter(column: string, operator: string, name: string, type: string = '') { diff --git a/src/lib/session.ts b/src/lib/session.ts index ca145c04bb..5311e3fda6 100644 --- a/src/lib/session.ts +++ b/src/lib/session.ts @@ -88,5 +88,5 @@ export async function getSession(req: NextApiRequestCollect): Promise `Invalid timezone`, - value => moment.tz.zone(value) !== null, + value => isValidTimezone(value), ); export const UnitTypeTest = yup.string().test( diff --git a/src/pages/api/auth/login.ts b/src/pages/api/auth/login.ts index 51c53184e8..ab17c93766 100644 --- a/src/pages/api/auth/login.ts +++ b/src/pages/api/auth/login.ts @@ -1,4 +1,4 @@ -import redis from '@umami/redis-client'; +import { redisEnabled } from '@umami/redis-client'; import { saveAuth } from 'lib/auth'; import { secret } from 'lib/crypto'; import { useValidate } from 'lib/middleware'; @@ -49,7 +49,7 @@ export default async ( const user = await getUserByUsername(username, { includePassword: true }); if (user && checkPassword(password, user.password)) { - if (redis.enabled) { + if (redisEnabled) { const token = await saveAuth({ userId: user.id }); return ok(res, { token, user }); diff --git a/src/pages/api/auth/logout.ts b/src/pages/api/auth/logout.ts index 715fda6223..f1604989f9 100644 --- a/src/pages/api/auth/logout.ts +++ b/src/pages/api/auth/logout.ts @@ -1,5 +1,5 @@ import { methodNotAllowed, ok } from 'next-basics'; -import redis from '@umami/redis-client'; +import { getClient, redisEnabled } from '@umami/redis-client'; import { useAuth } from 'lib/middleware'; import { getAuthToken } from 'lib/auth'; import { NextApiRequest, NextApiResponse } from 'next'; @@ -8,8 +8,10 @@ export default async (req: NextApiRequest, res: NextApiResponse) => { await useAuth(req, res); if (req.method === 'POST') { - if (redis.enabled) { - await redis.client.del(getAuthToken(req)); + if (redisEnabled) { + const redis = getClient(); + + await redis.del(getAuthToken(req)); } return ok(res); diff --git a/src/pages/api/auth/sso.ts b/src/pages/api/auth/sso.ts index 7b1eef60d8..c5560cb1a1 100644 --- a/src/pages/api/auth/sso.ts +++ b/src/pages/api/auth/sso.ts @@ -2,13 +2,13 @@ import { NextApiRequestAuth } from 'lib/types'; import { useAuth } from 'lib/middleware'; import { NextApiResponse } from 'next'; import { badRequest, ok } from 'next-basics'; -import redis from '@umami/redis-client'; +import { redisEnabled } from '@umami/redis-client'; import { saveAuth } from 'lib/auth'; export default async (req: NextApiRequestAuth, res: NextApiResponse) => { await useAuth(req, res); - if (redis.enabled && req.auth.user) { + if (redisEnabled && req.auth.user) { const token = await saveAuth({ userId: req.auth.user.id }, 86400); return ok(res, { user: req.auth.user, token }); diff --git a/src/pages/api/reports/funnel.ts b/src/pages/api/reports/funnel.ts index 35759a3030..f3ea41aa6e 100644 --- a/src/pages/api/reports/funnel.ts +++ b/src/pages/api/reports/funnel.ts @@ -31,7 +31,10 @@ const schema = { .of( yup.object().shape({ type: yup.string().required(), - value: yup.string().required(), + value: yup + .string() + .matches(/^[a-zA-Z0-9/*-_]+$/, 'Invalid URL pattern') + .required(), }), ) .min(2) diff --git a/src/pages/api/send.ts b/src/pages/api/send.ts index fb4e90c744..ddaaca94fc 100644 --- a/src/pages/api/send.ts +++ b/src/pages/api/send.ts @@ -102,6 +102,11 @@ export default async (req: NextApiRequestCollect, res: NextApiResponse) => { await useSession(req, res); const session = req.session; + + if (!session?.id) { + return; + } + const iat = Math.floor(new Date().getTime() / 1000); // expire visitId after 30 minutes diff --git a/src/pages/api/websites/[websiteId]/values.ts b/src/pages/api/websites/[websiteId]/values.ts index 364261d9dc..53d717a511 100644 --- a/src/pages/api/websites/[websiteId]/values.ts +++ b/src/pages/api/websites/[websiteId]/values.ts @@ -49,13 +49,7 @@ export default async (req: NextApiRequestQueryBody, res: Nex return unauthorized(res); } - const values = await getValues( - websiteId, - FILTER_COLUMNS[type as string], - startDate, - endDate, - search, - ); + const values = await getValues(websiteId, FILTER_COLUMNS[type], startDate, endDate, search); return ok( res, diff --git a/src/queries/analytics/events/saveEvent.ts b/src/queries/analytics/events/saveEvent.ts index 6a3391d674..2424186a1f 100644 --- a/src/queries/analytics/events/saveEvent.ts +++ b/src/queries/analytics/events/saveEvent.ts @@ -151,7 +151,7 @@ async function clickhouseQuery(data: { website_id: websiteId, session_id: sessionId, visit_id: visitId, - event_id: uuid(), + event_id: eventId, country: country, subdivision1: country && subdivision1 diff --git a/src/queries/analytics/getValues.ts b/src/queries/analytics/getValues.ts index 8b1afb3f0b..f303faff7e 100644 --- a/src/queries/analytics/getValues.ts +++ b/src/queries/analytics/getValues.ts @@ -19,10 +19,25 @@ async function relationalQuery( search: string, ) { const { rawQuery, getSearchSQL } = prisma; + const params = {}; let searchQuery = ''; if (search) { - searchQuery = getSearchSQL(column); + if (decodeURIComponent(search).includes(',')) { + searchQuery = `AND (${decodeURIComponent(search) + .split(',') + .slice(0, 5) + .map((value: string, index: number) => { + const key = `search${index}`; + + params[key] = value; + + return getSearchSQL(column, key).replace('and ', ''); + }) + .join(' OR ')})`; + } else { + searchQuery = getSearchSQL(column); + } } return rawQuery( @@ -43,6 +58,7 @@ async function relationalQuery( startDate, endDate, search: `%${search}%`, + ...params, }, ); } @@ -54,13 +70,32 @@ async function clickhouseQuery( endDate: Date, search: string, ) { - const { rawQuery } = clickhouse; + const { rawQuery, getSearchSQL } = clickhouse; + const params = {}; let searchQuery = ''; if (search) { searchQuery = `and positionCaseInsensitive(${column}, {search:String}) > 0`; } + if (search) { + if (decodeURIComponent(search).includes(',')) { + searchQuery = `AND (${decodeURIComponent(search) + .split(',') + .slice(0, 5) + .map((value: string, index: number) => { + const key = `search${index}`; + + params[key] = value; + + return getSearchSQL(column, key).replace('and ', ''); + }) + .join(' OR ')})`; + } else { + searchQuery = getSearchSQL(column); + } + } + return rawQuery( ` select ${column} as value, count(*) @@ -77,6 +112,7 @@ async function clickhouseQuery( startDate, endDate, search, + ...params, }, ); } diff --git a/src/queries/analytics/getWebsiteDateRange.ts b/src/queries/analytics/getWebsiteDateRange.ts index a4daaafc70..ef07712eb7 100644 --- a/src/queries/analytics/getWebsiteDateRange.ts +++ b/src/queries/analytics/getWebsiteDateRange.ts @@ -38,7 +38,7 @@ async function clickhouseQuery(websiteId: string) { select min(created_at) as mindate, max(created_at) as maxdate - from website_event + from website_event_stats_hourly where website_id = {websiteId:UUID} and created_at >= {startDate:DateTime64} `, diff --git a/src/queries/analytics/reports/getFunnel.ts b/src/queries/analytics/reports/getFunnel.ts index f9ceb85cd1..3a81157fd9 100644 --- a/src/queries/analytics/reports/getFunnel.ts +++ b/src/queries/analytics/reports/getFunnel.ts @@ -70,9 +70,16 @@ async function relationalQuery( (pv, cv, i) => { const levelNumber = i + 1; const startSum = i > 0 ? 'union ' : ''; - const operator = cv.type === 'url' && cv.value.endsWith('*') ? 'like' : '='; - const column = cv.type === 'url' ? 'url_path' : 'event_name'; - const paramValue = cv.value.endsWith('*') ? cv.value.replace('*', '%') : cv.value; + const isURL = cv.type === 'url'; + const column = isURL ? 'url_path' : 'event_name'; + + let operator = '='; + let paramValue = cv.value; + + if (cv.value.startsWith('*') || cv.value.endsWith('*')) { + operator = 'like'; + paramValue = cv.value.replace(/^\*|\*$/g, '%'); + } if (levelNumber === 1) { pv.levelOneQuery = ` @@ -167,9 +174,16 @@ async function clickhouseQuery( const levelNumber = i + 1; const startSum = i > 0 ? 'union all ' : ''; const startFilter = i > 0 ? 'or' : ''; - const operator = cv.type === 'url' && cv.value.endsWith('*') ? 'like' : '='; - const column = cv.type === 'url' ? 'url_path' : 'event_name'; - const paramValue = cv.value.endsWith('*') ? cv.value.replace('*', '%') : cv.value; + const isURL = cv.type === 'url'; + const column = isURL ? 'url_path' : 'event_name'; + + let operator = '='; + let paramValue = cv.value; + + if (cv.value.startsWith('*') || cv.value.endsWith('*')) { + operator = 'like'; + paramValue = cv.value.replace(/^\*|\*$/g, '%'); + } if (levelNumber === 1) { pv.levelOneQuery = `\n diff --git a/src/queries/prisma/website.ts b/src/queries/prisma/website.ts index c24cdd0d23..dc1ec438b3 100644 --- a/src/queries/prisma/website.ts +++ b/src/queries/prisma/website.ts @@ -1,5 +1,5 @@ import { Prisma, Website } from '@prisma/client'; -import redis from '@umami/redis-client'; +import { getClient } from '@umami/redis-client'; import prisma from 'lib/prisma'; import { PageResult, PageParams } from 'lib/types'; import WebsiteFindManyArgs = Prisma.WebsiteFindManyArgs; @@ -21,6 +21,7 @@ export async function getSharedWebsite(shareId: string) { return findWebsite({ where: { shareId, + deletedAt: null, }, }); } @@ -181,7 +182,9 @@ export async function resetWebsite( }), ]).then(async data => { if (cloudMode) { - await redis.client.set(`website:${websiteId}`, data[3]); + const redis = getClient(); + + await redis.set(`website:${websiteId}`, data[3]); } return data; @@ -224,7 +227,9 @@ export async function deleteWebsite( }), ]).then(async data => { if (cloudMode) { - await redis.client.del(`website:${websiteId}`); + const redis = getClient(); + + await redis.del(`website:${websiteId}`); } return data; diff --git a/src/store/dashboard.ts b/src/store/dashboard.ts index f667754288..0cfc78b92b 100644 --- a/src/store/dashboard.ts +++ b/src/store/dashboard.ts @@ -6,7 +6,9 @@ export const initialState = { showCharts: true, limit: DEFAULT_WEBSITE_LIMIT, websiteOrder: [], + websiteActive: [], editing: false, + isEdited: false, }; const store = create(() => ({ ...initialState, ...getItem(DASHBOARD_CONFIG) })); diff --git a/src/styles/locale.css b/src/styles/locale.css deleted file mode 100644 index dddf495b6a..0000000000 --- a/src/styles/locale.css +++ /dev/null @@ -1,29 +0,0 @@ -.zh-CN { - font-family: '方体', 'PingFang SC', '黑体', 'Heiti SC', 'Microsoft JhengHei UI', - 'Microsoft JhengHei', Roboto, Noto, 'Noto Sans CJK SC', sans-serif !important; -} - -.zh-TW { - font-family: '方體', 'PingFang TC', '黑體', 'Heiti TC', 'Microsoft JhengHei UI', - 'Microsoft JhengHei', Roboto, Noto, 'Noto Sans CJK TC', sans-serif !important; -} - -.ja-JP { - font-family: '游ゴシック体', YuGothic, 'ヒラギノ丸ゴ', 'Hiragino Sans', 'Yu Gothic UI', - 'Meiryo UI', 'MS Gothic', Roboto, Noto, 'Noto Sans CJK JP', sans-serif !important; -} - -.ko-KR { - font-family: 'Nanum Gothic', 'Apple SD Gothic Neo', 'Malgun Gothic', Roboto, Noto, - 'Noto Sans CJK KR', sans-serif !important; -} - -.ar-SA { - font-family: 'Geeza Pro', 'Arabic Typesetting', Roboto, Noto, 'Noto Naskh Arabic', - 'Times New Roman', serif !important; -} - -.he-IL { - font-family: 'New Peninim MT', 'Arial Hebrew', Gisha, 'Times New Roman', Roboto, Noto, - 'Noto Sans Hebrew', sans-serif !important; -} diff --git a/src/tracker/index.js b/src/tracker/index.js index 16f714e45a..9fa560e6dc 100644 --- a/src/tracker/index.js +++ b/src/tracker/index.js @@ -6,7 +6,7 @@ document, history, } = window; - const { hostname, href } = location; + const { hostname, href, origin } = location; const { currentScript, referrer } = document; const localStorage = href.startsWith('data:') ? undefined : window.localStorage; @@ -53,8 +53,9 @@ const parseURL = url => { try { - const { pathname, search } = new URL(url); - url = pathname + search; + // use location.origin as the base to handle cases where the url is a relative path + const { pathname, search, hash } = new URL(url, location.href); + url = pathname + search + hash; } catch (e) { /* empty */ } @@ -259,7 +260,7 @@ } let currentUrl = parseURL(href); - let currentRef = referrer !== hostname ? referrer : ''; + let currentRef = referrer.startsWith(origin) ? '' : referrer; let title = document.title; let cache; let initialized; diff --git a/tsconfig.json b/tsconfig.json index 14ee5da8d2..82e7166f93 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,6 +22,8 @@ "jsx": "preserve", "incremental": false, "baseUrl": "./src", + "types": ["jest"], + "typeRoots": ["node_modules/@types"], "paths": { "react": ["./node_modules/@types/react"], "assets/*": ["./assets/*"], diff --git a/yarn.lock b/yarn.lock index a53045fef1..03c840653a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,6 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" @@ -23,7 +18,16 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5": +"@babel/code-frame@^7.12.13": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/code-frame@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== @@ -291,10 +295,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== "@babel/helper-validator-option@^7.22.15": version "7.22.15" @@ -343,13 +347,14 @@ js-tokens "^4.0.0" "@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6" + integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw== dependencies: - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-validator-identifier" "^7.25.9" chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.20.15", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": version "7.23.0" @@ -1113,9 +1118,9 @@ regenerator-runtime "^0.14.0" "@babel/runtime@^7.12.5": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.0.tgz#584c450063ffda59697021430cb47101b085951e" - integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== dependencies: regenerator-runtime "^0.14.0" @@ -1199,17 +1204,17 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@clickhouse/client-common@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@clickhouse/client-common/-/client-common-1.4.1.tgz#23c6ffbff5717729e533301c9f595cd79af221ef" - integrity sha512-f5eoTrUSDplrMoi3ddeZ0MzGTn0iGMByEQ8j63eVMoBSOI2+F6jEIPcW2tWofT79Rvnn3RRlveYcShiaIiCJyw== +"@clickhouse/client-common@1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@clickhouse/client-common/-/client-common-1.8.1.tgz#1b7994990d867ba195e05a43e3413f4cf3b119cb" + integrity sha512-Z0R5zKaS3N35Op338WVRHIfoqDh9gotXZwekm0lbHQmwNaj3nY2iJ113dFYKjb1V+ESu+PvLEA//LJUGZyPQOg== "@clickhouse/client@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@clickhouse/client/-/client-1.4.1.tgz#be4303d81f42835c5f168de61babd1a67d821f5a" - integrity sha512-12iV+MeykxdQySRFHwaVU+hKUv3JP6kdwOI+z3zzyfPVYHynTlV8emJjjGZR0+VfRaj3PCMuQfryfsJ82nh9WQ== + version "1.8.1" + resolved "https://registry.yarnpkg.com/@clickhouse/client/-/client-1.8.1.tgz#2273f6b993d21351c32d4e2a6a1b35b0c05d435b" + integrity sha512-Ec0pCdwftIPD7hCxhOukHS0Zxr2tDc5mNAHBqkT3c0c6GO2WQdZkME9+EcfGcoF7+foUp82F5a0bPfSDDjfWmg== dependencies: - "@clickhouse/client-common" "1.4.1" + "@clickhouse/client-common" "1.8.1" "@colors/colors@1.5.0": version "1.5.0" @@ -1349,10 +1354,10 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz#ea61ba7bb24be3502c6aaa3190ed231f4633a81e" integrity sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg== -"@cypress/request@^3.0.0", "@cypress/request@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.1.tgz#72d7d5425236a2413bd3d8bb66d02d9dc3168960" - integrity sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ== +"@cypress/request@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.6.tgz#f5580add6acee0e183b4d4e07eff4f31327ae12b" + integrity sha512-fi0eVdCOtKu5Ed6+E8mYxUF6ZTFJDZvHogCBelM0xVXmrDEkyM22gRArQzq1YcHPm1V47Vf/iAD+WgVdUlJCGg== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1360,16 +1365,16 @@ combined-stream "~1.0.6" extend "~3.0.2" forever-agent "~0.6.1" - form-data "~2.3.2" - http-signature "~1.3.6" + form-data "~4.0.0" + http-signature "~1.4.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.19" performance-now "^2.1.0" - qs "6.10.4" + qs "6.13.0" safe-buffer "^5.1.2" - tough-cookie "^4.1.3" + tough-cookie "^5.0.0" tunnel-agent "^0.6.0" uuid "^8.3.2" @@ -1386,198 +1391,205 @@ resolved "https://registry.yarnpkg.com/@date-fns/utc/-/utc-1.2.0.tgz#fb705b025b6769840608782c8fa7f3919d1b3337" integrity sha512-YLq+crMPJiBmIdkRmv9nZuZy1mVtMlDcUKlg4mvI0UsC/dZeIaGoGB5p/C4FrpeOhZ7zBTK03T58S0DFkRNMnw== -"@dicebear/adventurer-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/adventurer-neutral/-/adventurer-neutral-9.2.1.tgz#0416ff71d0dd3ff391db9c9fda2acb166b074c5f" - integrity sha512-iP6Tc6CgrJt63j08i/hlyNiGEbDNgP9Ws6WKT9n/0oTU9X/DKLncGStV3uhgYPIOVQE/tw9a/GjbGjrwBlN8CQ== - -"@dicebear/adventurer@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/adventurer/-/adventurer-9.2.1.tgz#3d522d2aaabe17d172ea2302bfdf62d601ebcd64" - integrity sha512-utJr8oEOwPy9y+7rIOnB7mls+2XQrc3Kdlx/ay9KBY/HEUMnwMoN/GJhg4HcyGnV+DS7VhN6JSrnwwD9+SQyBw== - -"@dicebear/avataaars-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/avataaars-neutral/-/avataaars-neutral-9.2.1.tgz#61d3894f4d08d9ee3722f3a64c36725729c6aaf3" - integrity sha512-yceQMVBLimAHgZDL8VKCDGNs5JQ8BERaUMNIJXXRKEYZXlofoXZpYtcWPKQY9lmRJJznO1GX7ZK12ILnZjRPBQ== - -"@dicebear/avataaars@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/avataaars/-/avataaars-9.2.1.tgz#2460fb0d7d364a12e546b40b6e56c220db71c851" - integrity sha512-WIZL7CWSsmzLswY/4ZrgtE/7EvnaNrYreLyT8hjiGyVb9J4cQaVZXSMuDIGFa5wT062AW/4/i82kh/7nh0oL+w== - -"@dicebear/big-ears-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/big-ears-neutral/-/big-ears-neutral-9.2.1.tgz#dfee12787f8a0efa7b3552fca5e9f24c9102fc44" - integrity sha512-98qOCFEhbqCHeyO7ZXBAMMov8bquZt8vhtjj0YeHjGjI/OEWbA2gxq2ryv1BHSehVc/vTrd1KbHag7yYoeCDuw== - -"@dicebear/big-ears@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/big-ears/-/big-ears-9.2.1.tgz#4a7f2f3d987c11d76602b6ee8b398f9dcd2ce486" - integrity sha512-BUVTonwSYiGKcnk8wdwUHZ1b34GhfzRpG1kguK4kWAKlayBq7Q+iDJlmk4Bch0XdDQc2bqFf1GQCCj+xXWRHyg== - -"@dicebear/big-smile@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/big-smile/-/big-smile-9.2.1.tgz#d6cf95d34d65a393901925df370a1afbd0b0ae76" - integrity sha512-bspur+wtnlv/Z4QDvRWg9rs3snf+iuBkamkgw4nZOUFKMlZdPQGqNoh1DkycRcLXNX1Q61KM172K6bS60ZlKxw== - -"@dicebear/bottts-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/bottts-neutral/-/bottts-neutral-9.2.1.tgz#cc89b1ed834b7e8b7163dee2928dc1aa74077f75" - integrity sha512-uwd+xcbRQUIHKQ1iEiLjf5RwCaVzOfBgIu2WRE+6MUaahYi6cJ0eJAs0h1q+zpgYyvqPDPDAi9j7AUwjmig0GA== - -"@dicebear/bottts@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/bottts/-/bottts-9.2.1.tgz#922ccdba942d8c2c15655be0b6f25f4e9691cb80" - integrity sha512-AQQ/WKd54G9sa+TkQptcu6c+Tjfc9hitgB70uA5GqJe+w6Bal+gwY6kPm5sJ1CY2mk/UBh1rXBuauQZ25bgTcQ== +"@dicebear/adventurer-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/adventurer-neutral/-/adventurer-neutral-9.2.2.tgz#2831c34c6e8818a319478b15b6b1741b95ef5bdb" + integrity sha512-XVAjhUWjav6luTZ7txz8zVJU/H0DiUy4uU1Z7IO5MDO6kWvum+If1+0OUgEWYZwM+RDI7rt2CgVP910DyZGd1w== + +"@dicebear/adventurer@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/adventurer/-/adventurer-9.2.2.tgz#cac7dddbd743078942df1391370191cbd235dde2" + integrity sha512-WjBXCP9EXbUul2zC3BS2/R3/4diw1uh/lU4jTEnujK1mhqwIwanFboIMzQsasNNL/xf+m3OHN7MUNJfHZ1fLZA== + +"@dicebear/avataaars-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/avataaars-neutral/-/avataaars-neutral-9.2.2.tgz#513369601d3e491b303c0760479da92b3f131883" + integrity sha512-pRj16P27dFDBI3LtdiHUDwIXIGndHAbZf5AxaMkn6/+0X93mVQ/btVJDXyW0G96WCsyC88wKAWr6/KJotPxU6Q== + +"@dicebear/avataaars@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/avataaars/-/avataaars-9.2.2.tgz#0c072c410ec5fdb8b5c5c7d440d038b02a42669e" + integrity sha512-WqJPQEt0OhBybTpI0TqU1uD1pSk9M2+VPIwvBye/dXo46b+0jHGpftmxjQwk6tX8z0+mRko8pwV5n+cWht1/+w== + +"@dicebear/big-ears-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/big-ears-neutral/-/big-ears-neutral-9.2.2.tgz#98906d453f49896f948b0d6d93c07e95ad057a9a" + integrity sha512-IPHt8fi3dv9cyfBJBZ4s8T+PhFCrQvOCf91iRHBT3iOLNPdyZpI5GNLmGiV0XMAvIDP5NvA5+f6wdoBLhYhbDA== + +"@dicebear/big-ears@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/big-ears/-/big-ears-9.2.2.tgz#66866ac6cfc4174ad875051892e40999e2f294a6" + integrity sha512-hz4UXdPq4qqZpu0YVvlqM4RDFhk5i0WgPcuwj/MOLlgTjuj63uHUhCQSk6ZiW1DQOs12qpwUBMGWVHxBRBas9g== + +"@dicebear/big-smile@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/big-smile/-/big-smile-9.2.2.tgz#6ba6b385c16da3f94ae414b641848cbd498e13bb" + integrity sha512-D4td0GL8or1nTNnXvZqkEXlzyqzGPWs3znOnm1HIohtFTeIwXm72Ob2lNDsaQJSJvXmVlwaQQ0CCTvyCl8Stjw== + +"@dicebear/bottts-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/bottts-neutral/-/bottts-neutral-9.2.2.tgz#6e48ba93d69f7d5f82a743834b7972e5c1c8d967" + integrity sha512-lSgpqmSJtlnyxVuUgNdBwyzuA0O9xa5zRJtz7x2KyWbicXir5iYdX0MVMCkp1EDvlcxm9rGJsclktugOyakTlw== + +"@dicebear/bottts@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/bottts/-/bottts-9.2.2.tgz#8f2587469a5f6fe1a69c4b4ef5504455c3a4dd68" + integrity sha512-wugFkzw8JNWV1nftq/Wp/vmQsLAXDxrMtRK3AoMODuUpSVoP3EHRUfKS043xggOsQFvoj0HZ7kadmhn0AMLf5A== "@dicebear/collection@^9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/collection/-/collection-9.2.1.tgz#b2de84ef654ac1550458a17049b02a0013213b92" - integrity sha512-Su1eygO8llKuJ68N+xhBCzBN2Lqrsx9ZNdlvfZeH/s70RjL0raNQaI6/hRABDmlbLYwW4AjRh2lOgDdGfCp5DQ== - dependencies: - "@dicebear/adventurer" "9.2.1" - "@dicebear/adventurer-neutral" "9.2.1" - "@dicebear/avataaars" "9.2.1" - "@dicebear/avataaars-neutral" "9.2.1" - "@dicebear/big-ears" "9.2.1" - "@dicebear/big-ears-neutral" "9.2.1" - "@dicebear/big-smile" "9.2.1" - "@dicebear/bottts" "9.2.1" - "@dicebear/bottts-neutral" "9.2.1" - "@dicebear/croodles" "9.2.1" - "@dicebear/croodles-neutral" "9.2.1" - "@dicebear/dylan" "9.2.1" - "@dicebear/fun-emoji" "9.2.1" - "@dicebear/glass" "9.2.1" - "@dicebear/icons" "9.2.1" - "@dicebear/identicon" "9.2.1" - "@dicebear/initials" "9.2.1" - "@dicebear/lorelei" "9.2.1" - "@dicebear/lorelei-neutral" "9.2.1" - "@dicebear/micah" "9.2.1" - "@dicebear/miniavs" "9.2.1" - "@dicebear/notionists" "9.2.1" - "@dicebear/notionists-neutral" "9.2.1" - "@dicebear/open-peeps" "9.2.1" - "@dicebear/personas" "9.2.1" - "@dicebear/pixel-art" "9.2.1" - "@dicebear/pixel-art-neutral" "9.2.1" - "@dicebear/rings" "9.2.1" - "@dicebear/shapes" "9.2.1" - "@dicebear/thumbs" "9.2.1" + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/collection/-/collection-9.2.2.tgz#1f8affc2c19c670b7696e7c23a2fe4072dc64af4" + integrity sha512-vZAmXhPWCK3sf8Fj9/QflFC6XOLroJOT5K1HdnzHaPboEvffUQideGCrrEamnJtlH0iF0ZDXh8gqmwy2fu+yHA== + dependencies: + "@dicebear/adventurer" "9.2.2" + "@dicebear/adventurer-neutral" "9.2.2" + "@dicebear/avataaars" "9.2.2" + "@dicebear/avataaars-neutral" "9.2.2" + "@dicebear/big-ears" "9.2.2" + "@dicebear/big-ears-neutral" "9.2.2" + "@dicebear/big-smile" "9.2.2" + "@dicebear/bottts" "9.2.2" + "@dicebear/bottts-neutral" "9.2.2" + "@dicebear/croodles" "9.2.2" + "@dicebear/croodles-neutral" "9.2.2" + "@dicebear/dylan" "9.2.2" + "@dicebear/fun-emoji" "9.2.2" + "@dicebear/glass" "9.2.2" + "@dicebear/icons" "9.2.2" + "@dicebear/identicon" "9.2.2" + "@dicebear/initials" "9.2.2" + "@dicebear/lorelei" "9.2.2" + "@dicebear/lorelei-neutral" "9.2.2" + "@dicebear/micah" "9.2.2" + "@dicebear/miniavs" "9.2.2" + "@dicebear/notionists" "9.2.2" + "@dicebear/notionists-neutral" "9.2.2" + "@dicebear/open-peeps" "9.2.2" + "@dicebear/personas" "9.2.2" + "@dicebear/pixel-art" "9.2.2" + "@dicebear/pixel-art-neutral" "9.2.2" + "@dicebear/rings" "9.2.2" + "@dicebear/shapes" "9.2.2" + "@dicebear/thumbs" "9.2.2" "@dicebear/core@^9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/core/-/core-9.2.1.tgz#b93800ac7e21ae955cceaa2370e7dc033a3cc557" - integrity sha512-Y3E59+3xO2UWKdf3Zt/rwMdy9r7uccTgM89Kv8aXN1vmdrnA4YYmr4jslRRRqPLVpenuT4105nkboC4rMnDgHw== + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/core/-/core-9.2.2.tgz#dcaf941e4d9e79046d466b3197dfa3393288e5b2" + integrity sha512-ROhgHG249dPtcXgBHcqPEsDeAPRPRD/9d+tZCjLYyueO+cXDlIA8dUlxpwIVcOuZFvCyW6RJtqo8BhNAi16pIQ== dependencies: "@types/json-schema" "^7.0.11" -"@dicebear/croodles-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/croodles-neutral/-/croodles-neutral-9.2.1.tgz#379646cf53ba4d61b6c94c13b3ec3386359e3541" - integrity sha512-2iyr+B/y795P7cSIpFg4RjxUu6kljesKjtepvMzfeBR9xKyI84exBNHRoCTEVwOCFePmlPJX1qtw/YWM0sAPJw== - -"@dicebear/croodles@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/croodles/-/croodles-9.2.1.tgz#74fa6aa8c0ee0dc303c0ad82fd78f5d6cd66610d" - integrity sha512-V7+m21BizYTGgLgxmh5dxHHADeD3gkeuPYkhKqP8Uu8jZFBgh5wKFqqfVI/XSQkx/+lRla5c6l55mymgjt4k8Q== - -"@dicebear/dylan@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/dylan/-/dylan-9.2.1.tgz#997aff74b4bf112e4895463eeea0adc2456d332f" - integrity sha512-UeKz3Gxprh4bJ73Q2DjDpmjt854G3xfakc5KfeBmPV25EP+al7HCsM/HE+ZgKTSh+PPz5/mVtZQYU40pTzJEyg== - -"@dicebear/fun-emoji@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/fun-emoji/-/fun-emoji-9.2.1.tgz#e88c8c2db7927d732ef2d0af3a24c4d4152a7f02" - integrity sha512-F08p+Ggdxo4Ryji+3aCJXAKnjx4rM4UMtrJU4eA2t8lAkpwFNgfGK6mpMYPnxmKULYljGOgySmw7AyWcbX8s2Q== - -"@dicebear/glass@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/glass/-/glass-9.2.1.tgz#61bc231a5b0bd8d15cfa94c76ac608ab8fe98ac1" - integrity sha512-UoErQwg7/qkEKWyEDTyt8FYhw/aZryP0Tr7cwBEuxMXZ585NUTvEel0K5j9aDkBrimJVEM+jKzOFIIMAGLlR0g== - -"@dicebear/icons@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/icons/-/icons-9.2.1.tgz#0ef78e8ff742bd9985a3c36cd9cbd2705449e789" - integrity sha512-0VuWohGMiv4n1nxwehYi6w+PIT9OBRlV721yNoewQWgQCrnMKBvM0cFRX9Dtg+MvwLMslQCIU3pEauEZ5FNmFA== - -"@dicebear/identicon@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/identicon/-/identicon-9.2.1.tgz#aebd7b692de9a6601746ab47711359f81471841c" - integrity sha512-Dlqpn3tzqimR8KPIRkSJCKd5XwKgTLVXzT5KiY+2ysMZZQh4uJvBjVfY5SLrHDHC2a42W6EdwQxU6tFTRiKQuQ== - -"@dicebear/initials@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/initials/-/initials-9.2.1.tgz#d4e435c18e48837f97086ba5210d4742594ba181" - integrity sha512-d6Shnt1LiCf9yAEck3y/w4pXG4bWYVjBFCeI43l0BAR39Mk2Dq05UEFZH5Dtj2kyfNozMjh6vG1cQyBigtamug== - -"@dicebear/lorelei-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/lorelei-neutral/-/lorelei-neutral-9.2.1.tgz#5d5d6400c0e2232081f58f8d82efff00ee307b81" - integrity sha512-4YkkR697qXAYxN5N/zVsRe955QLhw0yLib2CzeBga1QXXMIkywq2nRFa3fr4toSRPl45kl1eF8J5HC17CU9inw== - -"@dicebear/lorelei@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/lorelei/-/lorelei-9.2.1.tgz#b23ddb02b098578ef1bcb121c7a638795f3de89e" - integrity sha512-DNjZpUpe/CxKK8Byn1meBvRz/NJWtBizcoS2DzIIyqPYOwA5cLIa2g/qKkESvXzU9naEMkiHfMZb1RYYzN2FAA== - -"@dicebear/micah@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/micah/-/micah-9.2.1.tgz#2e65fdb15b6ee6338123329c92e5afb98f694718" - integrity sha512-FK91igiVpPNhGCsfGpOgwYFKRP+FNR1V45Z4Tg/f82ux9TBdTmeoIfkgwrfhcXmCgagoYg2EAY+L72stUVapcA== - -"@dicebear/miniavs@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/miniavs/-/miniavs-9.2.1.tgz#de1e571663775b4b2a30944d8033d6a8b972aca3" - integrity sha512-r0TcaSrKJDPMqMYIiXNArq9i//cZzA1yuiXJw46iTloBDTh7yL1tpnL84CDxMpQ+OZLeMiRA6jVBx0coer4vmg== - -"@dicebear/notionists-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/notionists-neutral/-/notionists-neutral-9.2.1.tgz#2e77ae7330201628c4b3e4789b1aa83ffc684b82" - integrity sha512-Vi/FwMXzc1m/U2TjBnY9NHedoLbPc3BBsNQL8jPU27wdkXoyJHuXBevcUtsF0Zf8OuRbNpZKPbfYy6OYBr9qvw== - -"@dicebear/notionists@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/notionists/-/notionists-9.2.1.tgz#70aa14e8846a49096648f891a625a92b04513c75" - integrity sha512-oAyvPlp3xfFnDpW3nXhdAPGVm5WYj6VW6RgdzLAHoRO2EOYDNkQruIXd+d8JYo1DMTLUbgp3onr5AF9UU2OBzw== - -"@dicebear/open-peeps@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/open-peeps/-/open-peeps-9.2.1.tgz#dd9be6721ff7226e3a0286aec699fd6b0e0ad2b2" - integrity sha512-oPA/ljbPtuj2cdM0QtyJu2i24AaEMTIIk/FJbnrBK765WPnQcCZh84w+ZuInTMIfF9gYszNY34gaRD8Z6UiYxQ== - -"@dicebear/personas@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/personas/-/personas-9.2.1.tgz#dfa8291ebba098e8cebdeb04a4fba9e4384c4496" - integrity sha512-OgtyT9dnY8U60sUo0SLKCFVt0+dIr3a4vR0bDs/zwK4Qb/yTdB1VPdfxq0Fwk2q1vfn9YgbDrb0YYRgMRl60qQ== - -"@dicebear/pixel-art-neutral@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/pixel-art-neutral/-/pixel-art-neutral-9.2.1.tgz#457b4e038c9516e75d41c6c1efd9ff9d4099162a" - integrity sha512-GUtxJYX7/9XDgSZhkx24PB+yLcKkLHblDldvRr5xGlGxhgAovTBQFHLgCJxmUJgIaNW7pvSWCw7txguyxbBN9A== - -"@dicebear/pixel-art@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/pixel-art/-/pixel-art-9.2.1.tgz#e50bcc300a43c16ad3f69de1b6bf3dad92528274" - integrity sha512-ftKPKCvnS1cJ2OvuQLmtEIwdb9PzF5C2ofWBdVI/RFvhH1BhYc3OsdQ28o90+ZJQO4fivKwfsh8MPUTaqToQ7Q== - -"@dicebear/rings@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/rings/-/rings-9.2.1.tgz#ed6e930c02b09ebbd774fc104cffc5c23ffa6b4c" - integrity sha512-BlFYCaKB+wdpWWS28ZnQ/MvHeuNSRvkvWRoiw7pgS653LXx4kz/erVMmeVMSAr82y4BV+K8He2Rl2dMjuLyrXw== - -"@dicebear/shapes@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/shapes/-/shapes-9.2.1.tgz#e076b9aabd67bf611e9bbf7149919000e3d74197" - integrity sha512-cQzTcYimtuiAun55uPdIIhK53QTyjWqF/YN7LqEBGBqrJuGqHZBm1HXCcj7wPpoQ3zSy/2u8Rp0Etv7+5XFzyw== - -"@dicebear/thumbs@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@dicebear/thumbs/-/thumbs-9.2.1.tgz#174be721256e5ff97e19586a54bde8fd25468e74" - integrity sha512-ziX5HFmhiApO2k7QKj41+dGXbMdmQUUgFBYPyzTwnubhkDldJk7tpRoa5u2OsyTVDQCcPMv5mFSQpbANfmFwMg== +"@dicebear/croodles-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/croodles-neutral/-/croodles-neutral-9.2.2.tgz#8eec838892dd5c9d8646fea7b46b57fe6ce3cf78" + integrity sha512-/4mNirxoQ+z1kHXnpDRbJ1JV1ZgXogeTeNp0MaFYxocCgHfJ7ckNM23EE1I7akoo9pqPxrKlaeNzGAjKHdS9vA== + +"@dicebear/croodles@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/croodles/-/croodles-9.2.2.tgz#7b2e2b1337bde23b582a8f5a04ef334f4f8c898a" + integrity sha512-OzvAXQWsOgMwL3Sl+lBxCubqSOWoBJpC78c4TKnNTS21rR63TtXUyVdLLzgKVN4YHRnvMgtPf8F/W9YAgIDK4w== + +"@dicebear/dylan@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/dylan/-/dylan-9.2.2.tgz#5ad87ae8c36f4edfffd87ab5fdf0fb4570ba682e" + integrity sha512-s7e3XliC1YXP+Wykj+j5kwdOWFRXFzYHYk/PB4oZ1F3sJandXiG0HS4chaNu4EoP0yZgKyFMUVTGZx+o6tMaYg== + +"@dicebear/fun-emoji@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/fun-emoji/-/fun-emoji-9.2.2.tgz#9f6786dc96068e1c8728765e675ddc8c6201bc77" + integrity sha512-M+rYTpB3lfwz18f+/i+ggNwNWUoEj58SJqXJ1wr7Jh/4E5uL+NmJg9JGwYNaVtGbCFrKAjSaILNUWGQSFgMfog== + +"@dicebear/glass@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/glass/-/glass-9.2.2.tgz#6c878fb8d2f380e3797c51d322b0dd013ea4b4b6" + integrity sha512-imCMxcg+XScHYtQq2MUv1lCzhQSCUglMlPSezKEpXhTxgbgUpmGlSGVkOfmX5EEc7SQowKkF1W/1gNk6CXvBaQ== + +"@dicebear/icons@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/icons/-/icons-9.2.2.tgz#c56168b574829a988105e360bc379868227d925e" + integrity sha512-Tqq2OVCdS7J02DNw58xwlgLGl40sWEckbqXT3qRvIF63FfVq+wQZBGuhuiyAURcSgvsc3h2oQeYFi9iXh7HTOA== + +"@dicebear/identicon@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/identicon/-/identicon-9.2.2.tgz#9210f5bf117b568ea59a30f3290ad55d8ab93087" + integrity sha512-POVKFulIrcuZf3rdAgxYaSm2XUg/TJg3tg9zq9150reEGPpzWR7ijyJ03dzAADPzS3DExfdYVT9+z3JKwwJnTQ== + +"@dicebear/initials@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/initials/-/initials-9.2.2.tgz#f55fbcaa1a701b4c99251298f2e4c76e3ce8a260" + integrity sha512-/xNnsEmsstWjmF77htAOuwOMhFlP6eBVXgcgFlTl/CCH/Oc6H7t0vwX1he8KLQBBzjGpvJcvIAn4Wh9rE4D5/A== + +"@dicebear/lorelei-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/lorelei-neutral/-/lorelei-neutral-9.2.2.tgz#c7efaa5f4c7784863929a3b162a6c880920426ec" + integrity sha512-Eys9Os6nt2Xll7Mvu66CfRR2YggTopWcmFcRZ9pPdohS96kT0MsLI2iTcfZXQ51K8hvT3IbwoGc86W8n0cDxAQ== + +"@dicebear/lorelei@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/lorelei/-/lorelei-9.2.2.tgz#2be5e72f8bd8bdae90e005e743872f563e825965" + integrity sha512-koXqVr/vcWUPo00VP5H6Czsit+uF1tmwd2NK7Q/e34/9Sd1f4QLLxHjjBNm/iNjCI1+UNTOvZ2Qqu0N5eo7Flw== + +"@dicebear/micah@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/micah/-/micah-9.2.2.tgz#8cded41bc857089b6df7530b81f20cf43e5dc7be" + integrity sha512-NCajcJV5yw8uMKiACp694w1T/UyYme2CUEzyTzWHgWnQ+drAuCcH8gpAoLWd67viNdQB/MTpNlaelUgTjmI4AQ== + +"@dicebear/miniavs@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/miniavs/-/miniavs-9.2.2.tgz#b588faf88c4dbfc8ab9de31da364b2bb31dcad5b" + integrity sha512-vvkWXttdw+KHF3j+9qcUFzK+P0nbNnImGjvN48wwkPIh2h08WWFq0MnoOls4IHwUJC4GXBjWtiyVoCxz6hhtOA== + +"@dicebear/notionists-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/notionists-neutral/-/notionists-neutral-9.2.2.tgz#d7b7fb70a742e528ec67bbf9fe608af51406a0fc" + integrity sha512-AhOzk+lz6kB4uxGun8AJhV+W1nttnMlxmxd+5KbQ/txCIziYIaeD3il44wsAGegEpGFvAZyMYtR/jjfHcem3TA== + +"@dicebear/notionists@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/notionists/-/notionists-9.2.2.tgz#d70b86392a0830351f026d6893380e8c7bf87467" + integrity sha512-Z9orRaHoj7Y9Ap4wEu8XOrFACsG1KbbBQUPV1R50uh6AHwsyNrm4cS84ICoGLvxgLNHHOae3YCjd8aMu2z19zg== + +"@dicebear/open-peeps@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/open-peeps/-/open-peeps-9.2.2.tgz#6f7aa648f02f8a0f24107b1ffcd462c8a065f3eb" + integrity sha512-6PeQDHYyjvKrGSl/gP+RE5dSYAQGKpcGnM65HorgyTIugZK7STo0W4hvEycedupZ3MCCEH8x/XyiChKM2sHXog== + +"@dicebear/personas@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/personas/-/personas-9.2.2.tgz#02b6787d91d1af4ab358eb5a49fb30f40b9a62a3" + integrity sha512-705+ObNLC0w1fcgE/Utav+8bqO+Esu53TXegpX5j7trGEoIMf2bThqJGHuhknZ3+T2az3Wr89cGyOGlI0KLzLA== + +"@dicebear/pixel-art-neutral@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/pixel-art-neutral/-/pixel-art-neutral-9.2.2.tgz#2772edbff67fc993ecc9eb2c3099246f7a212f88" + integrity sha512-CdUY77H6Aj7dKLW3hdkv7tu0XQJArUjaWoXihQxlhl3oVYplWaoyu9omYy5pl8HTqs8YgVTGljjMXYoFuK0JUw== + +"@dicebear/pixel-art@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/pixel-art/-/pixel-art-9.2.2.tgz#6416f61e1c2825db516b6c467ce47596f9f865b8" + integrity sha512-BvbFdrpzQl04+Y9UsWP63YGug+ENGC7GMG88qbEFWxb/IqRavGa4H3D0T4Zl2PSLiw7f2Ctv98bsCQZ1PtCznQ== + +"@dicebear/rings@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/rings/-/rings-9.2.2.tgz#731b55b4a1442ae3edf89387841dc147181906a6" + integrity sha512-eD1J1k364Arny+UlvGrk12HP/XGG6WxPSm4BarFqdJGSV45XOZlwqoi7FlcMr9r9yvE/nGL8OizbwMYusEEdjw== + +"@dicebear/shapes@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/shapes/-/shapes-9.2.2.tgz#440d1d97882bd476499d95e5180c04e30d721bc1" + integrity sha512-e741NNWBa7fg0BjomxXa0fFPME2XCIR0FA+VHdq9AD2taTGHEPsg5x1QJhCRdK6ww85yeu3V3ucpZXdSrHVw5Q== + +"@dicebear/thumbs@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@dicebear/thumbs/-/thumbs-9.2.2.tgz#234814c889509682992bd3f93daaa960cb5326a2" + integrity sha512-FkPLDNu7n5kThLSk7lR/0cz/NkUqgGdZGfLZv6fLkGNGtv6W+e2vZaO7HCXVwIgJ+II+kImN41zVIZ6Jlll7pQ== + +"@emnapi/runtime@^1.2.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.3.1.tgz#0fcaa575afc31f455fd33534c19381cfce6c6f60" + integrity sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw== + dependencies: + tslib "^2.4.0" "@esbuild/android-arm64@0.17.19": version "0.17.19" @@ -1689,14 +1701,26 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" + integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + +"@eslint-community/regexpp@^4.5.1": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -1716,10 +1740,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== "@fontsource/inter@^4.5.15": version "4.5.15" @@ -1770,20 +1794,21 @@ dependencies: tslib "^2.0.1" -"@formatjs/ecma402-abstract@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz#39197ab90b1c78b7342b129a56a7acdb8f512e17" - integrity sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g== +"@formatjs/ecma402-abstract@2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.4.tgz#355e42d375678229d46dc8ad7a7139520dd03e7b" + integrity sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg== dependencies: - "@formatjs/intl-localematcher" "0.5.4" - tslib "^2.4.0" + "@formatjs/fast-memoize" "2.2.3" + "@formatjs/intl-localematcher" "0.5.8" + tslib "2" -"@formatjs/fast-memoize@2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b" - integrity sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA== +"@formatjs/fast-memoize@2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.3.tgz#74e64109279d5244f9fc281f3ae90c407cece823" + integrity sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA== dependencies: - tslib "^2.4.0" + tslib "2" "@formatjs/icu-messageformat-parser@2.1.0": version "2.1.0" @@ -1794,14 +1819,14 @@ "@formatjs/icu-skeleton-parser" "1.3.6" tslib "^2.1.0" -"@formatjs/icu-messageformat-parser@2.7.8": - version "2.7.8" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz#f6d7643001e9bb5930d812f1f9a9856f30fa0343" - integrity sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA== +"@formatjs/icu-messageformat-parser@2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.4.tgz#52501fbdc122a86097644f03ae1117b9ced00872" + integrity sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg== dependencies: - "@formatjs/ecma402-abstract" "2.0.0" - "@formatjs/icu-skeleton-parser" "1.8.2" - tslib "^2.4.0" + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/icu-skeleton-parser" "1.8.8" + tslib "2" "@formatjs/icu-skeleton-parser@1.3.6": version "1.3.6" @@ -1811,31 +1836,31 @@ "@formatjs/ecma402-abstract" "1.11.4" tslib "^2.1.0" -"@formatjs/icu-skeleton-parser@1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz#2252c949ae84ee66930e726130ea66731a123c9f" - integrity sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q== +"@formatjs/icu-skeleton-parser@1.8.8": + version "1.8.8" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.8.tgz#a16eff7fd040acf096fb1853c99527181d38cf90" + integrity sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA== dependencies: - "@formatjs/ecma402-abstract" "2.0.0" - tslib "^2.4.0" + "@formatjs/ecma402-abstract" "2.2.4" + tslib "2" -"@formatjs/intl-displaynames@6.6.8": - version "6.6.8" - resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.6.8.tgz#2f5afac8df83167f5a6ef8543600eaf1ef99c885" - integrity sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g== +"@formatjs/intl-displaynames@6.8.5": + version "6.8.5" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.8.5.tgz#e9cd778764209534795f2a579d0269b26631d1ae" + integrity sha512-85b+GdAKCsleS6cqVxf/Aw/uBd+20EM0wDpgaxzHo3RIR3bxF4xCJqH/Grbzx8CXurTgDDZHPdPdwJC+May41w== dependencies: - "@formatjs/ecma402-abstract" "2.0.0" - "@formatjs/intl-localematcher" "0.5.4" - tslib "^2.4.0" + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/intl-localematcher" "0.5.8" + tslib "2" -"@formatjs/intl-listformat@7.5.7": - version "7.5.7" - resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.5.7.tgz#125e05105fabd1ae5f11881d6ab74484f2098ee4" - integrity sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g== +"@formatjs/intl-listformat@7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.7.5.tgz#e7d9fd66b648bbe878f9c64fcba756f1634a7794" + integrity sha512-Wzes10SMNeYgnxYiKsda4rnHP3Q3II4XT2tZyOgnH5fWuHDtIkceuWlRQNsvrI3uiwP4hLqp2XdQTCsfkhXulg== dependencies: - "@formatjs/ecma402-abstract" "2.0.0" - "@formatjs/intl-localematcher" "0.5.4" - tslib "^2.4.0" + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/intl-localematcher" "0.5.8" + tslib "2" "@formatjs/intl-localematcher@0.2.25": version "0.2.25" @@ -1844,12 +1869,12 @@ dependencies: tslib "^2.1.0" -"@formatjs/intl-localematcher@0.5.4": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz#caa71f2e40d93e37d58be35cfffe57865f2b366f" - integrity sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g== +"@formatjs/intl-localematcher@0.5.8": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.8.tgz#b11bbd04bd3551f7cadcb1ef1e231822d0e3c97e" + integrity sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg== dependencies: - tslib "^2.4.0" + tslib "2" "@formatjs/intl-numberformat@^5.5.2": version "5.7.6" @@ -1859,18 +1884,18 @@ "@formatjs/ecma402-abstract" "1.4.0" tslib "^2.0.1" -"@formatjs/intl@2.10.4": - version "2.10.4" - resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.10.4.tgz#e1819e0858fb05ca65923a020f346bc74e894e92" - integrity sha512-56483O+HVcL0c7VucAS2tyH020mt9XTozZO67cwtGg0a7KWDukS/FzW3OnvaHmTHDuYsoPIzO+ZHVfU6fT/bJw== - dependencies: - "@formatjs/ecma402-abstract" "2.0.0" - "@formatjs/fast-memoize" "2.2.0" - "@formatjs/icu-messageformat-parser" "2.7.8" - "@formatjs/intl-displaynames" "6.6.8" - "@formatjs/intl-listformat" "7.5.7" - intl-messageformat "10.5.14" - tslib "^2.4.0" +"@formatjs/intl@2.10.15": + version "2.10.15" + resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.10.15.tgz#c592507512d7827c760b74bb8afc37629f89523a" + integrity sha512-i6+xVqT+6KCz7nBfk4ybMXmbKO36tKvbMKtgFz9KV+8idYFyFbfwKooYk8kGjyA5+T5f1kEPQM5IDLXucTAQ9g== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/fast-memoize" "2.2.3" + "@formatjs/icu-messageformat-parser" "2.9.4" + "@formatjs/intl-displaynames" "6.8.5" + "@formatjs/intl-listformat" "7.7.5" + intl-messageformat "10.7.7" + tslib "2" "@formatjs/ts-transformer@3.9.4": version "3.9.4" @@ -1892,12 +1917,12 @@ tslib "^2.0.1" typescript "^4.0" -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== dependencies: - "@humanwhocodes/object-schema" "^2.0.2" + "@humanwhocodes/object-schema" "^2.0.3" debug "^4.3.1" minimatch "^3.0.5" @@ -1906,22 +1931,123 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== +"@img/sharp-darwin-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08" + integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.4" + +"@img/sharp-darwin-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" + integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.4" + +"@img/sharp-libvips-darwin-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" + integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== + +"@img/sharp-libvips-darwin-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" + integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== + +"@img/sharp-libvips-linux-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" + integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== + +"@img/sharp-libvips-linux-arm@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" + integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== + +"@img/sharp-libvips-linux-s390x@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" + integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== + +"@img/sharp-libvips-linux-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" + integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" + integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== + +"@img/sharp-libvips-linuxmusl-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" + integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== + +"@img/sharp-linux-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" + integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.4" + +"@img/sharp-linux-arm@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" + integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.5" + +"@img/sharp-linux-s390x@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" + integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.4" + +"@img/sharp-linux-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" + integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.4" + +"@img/sharp-linuxmusl-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" + integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + +"@img/sharp-linuxmusl-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" + integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + +"@img/sharp-wasm32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" + integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@emnapi/runtime" "^1.2.0" + +"@img/sharp-win32-ia32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" + integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== + +"@img/sharp-win32-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" + integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -2192,67 +2318,62 @@ resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw== -"@netlify/plugin-nextjs@^5.1.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-5.6.0.tgz#970f96b11bee4fe115fad8e3e4f3c6121f97a370" - integrity sha512-PBrsd/GJZ9MN8BdyIoleTkY22lAUMfcRxrbb8wgxGzXtTW0RU0GW2mc99ISB6zOwWMZ11rSjeN0GS6znnukvww== +"@netlify/plugin-nextjs@^5.8.1": + version "5.8.1" + resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-5.8.1.tgz#9da15bb4a13c5644e9b58b968c7da51939206ee4" + integrity sha512-WB1N0FslhWZ1yAVYTcB6CcFrFOUSQ0O2LfavYZrbAypeNxu2I+oO+cgmhfDgZ8Eoq1g4EMeoIGMkNoZ4ogZTsg== -"@next/env@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.10.tgz#1d3178340028ced2d679f84140877db4f420333c" - integrity sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw== +"@next/env@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-15.0.4.tgz#97da0fe3bae2f2b2968c4c925d7936660f5b3836" + integrity sha512-WNRvtgnRVDD4oM8gbUcRc27IAhaL4eXQ/2ovGbgLnPGUvdyDr8UdXP4Q/IBDdAdojnD2eScryIDirv0YUCjUVw== -"@next/eslint-plugin-next@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz#f7e3ff3efe40a2855e5f29bc2692175f85913ba8" - integrity sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g== +"@next/eslint-plugin-next@14.2.18": + version "14.2.18" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.18.tgz#602d2b1b1083e3d290116beb6d340e00930e63ab" + integrity sha512-KyYTbZ3GQwWOjX3Vi1YcQbekyGP0gdammb7pbmmi25HBUCINzDReyrzCMOJIeZisK1Q3U6DT5Rlc4nm2/pQeXA== dependencies: glob "10.3.10" -"@next/swc-darwin-arm64@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.10.tgz#49d10ca4086fbd59ee68e204f75d7136eda2aa80" - integrity sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ== - -"@next/swc-darwin-x64@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.10.tgz#0ebeae3afb8eac433882b79543295ab83624a1a8" - integrity sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA== - -"@next/swc-linux-arm64-gnu@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.10.tgz#7e602916d2fb55a3c532f74bed926a0137c16f20" - integrity sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA== - -"@next/swc-linux-arm64-musl@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.10.tgz#6b143f628ccee490b527562e934f8de578d4be47" - integrity sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ== - -"@next/swc-linux-x64-gnu@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.10.tgz#086f2f16a0678890a1eb46518c4dda381b046082" - integrity sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg== - -"@next/swc-linux-x64-musl@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.10.tgz#1befef10ed8dbcc5047b5d637a25ae3c30a0bfc3" - integrity sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA== - -"@next/swc-win32-arm64-msvc@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.10.tgz#731f52c3ae3c56a26cf21d474b11ae1529531209" - integrity sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ== - -"@next/swc-win32-ia32-msvc@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.10.tgz#32723ef7f04e25be12af357cc72ddfdd42fd1041" - integrity sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg== - -"@next/swc-win32-x64-msvc@14.2.10": - version "14.2.10" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.10.tgz#ee1d036cb5ec871816f96baee7991035bb242455" - integrity sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ== +"@next/swc-darwin-arm64@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.4.tgz#66087f397564d6ece4c5493536d30bc2b158a80e" + integrity sha512-QecQXPD0yRHxSXWL5Ff80nD+A56sUXZG9koUsjWJwA2Z0ZgVQfuy7gd0/otjxoOovPVHR2eVEvPMHbtZP+pf9w== + +"@next/swc-darwin-x64@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.4.tgz#6eb098e183dfed72d8f3c4b281a323ad17d72446" + integrity sha512-pb7Bye3y1Og3PlCtnz2oO4z+/b3pH2/HSYkLbL0hbVuTGil7fPen8/3pyyLjdiTLcFJ+ymeU3bck5hd4IPFFCA== + +"@next/swc-linux-arm64-gnu@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.4.tgz#3c082ad1a4c8060a5c56127fdefb82a149d3b94e" + integrity sha512-12oSaBFjGpB227VHzoXF3gJoK2SlVGmFJMaBJSu5rbpaoT5OjP5OuCLuR9/jnyBF1BAWMs/boa6mLMoJPRriMA== + +"@next/swc-linux-arm64-musl@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.4.tgz#c4e18c89ea4dab6b150b889643ec19896aebc1eb" + integrity sha512-QARO88fR/a+wg+OFC3dGytJVVviiYFEyjc/Zzkjn/HevUuJ7qGUUAUYy5PGVWY1YgTzeRYz78akQrVQ8r+sMjw== + +"@next/swc-linux-x64-gnu@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.4.tgz#f81c3952a60f3075b48e0b5a862f4deecd550c2d" + integrity sha512-Z50b0gvYiUU1vLzfAMiChV8Y+6u/T2mdfpXPHraqpypP7yIT2UV9YBBhcwYkxujmCvGEcRTVWOj3EP7XW/wUnw== + +"@next/swc-linux-x64-musl@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.4.tgz#f14c9730599985538d4d01d6da825b4e41fea0c1" + integrity sha512-7H9C4FAsrTAbA/ENzvFWsVytqRYhaJYKa2B3fyQcv96TkOGVMcvyS6s+sj4jZlacxxTcn7ygaMXUPkEk7b78zw== + +"@next/swc-win32-arm64-msvc@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.4.tgz#14297572feedcd5b14388be8a7ea8c50accb4c96" + integrity sha512-Z/v3WV5xRaeWlgJzN9r4PydWD8sXV35ywc28W63i37G2jnUgScA4OOgS8hQdiXLxE3gqfSuHTicUhr7931OXPQ== + +"@next/swc-win32-x64-msvc@15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.4.tgz#d25953baffb92721f0fb96c8be71d7efb37a57b7" + integrity sha512-NGLchGruagh8lQpDr98bHLyWJXOBSmkEAfK980OiNBa7vNm6PsNoPvzTfstT78WyOeMRQphEQ455rggd7Eo+Dw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2275,101 +2396,106 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nolyfill/is-core-module@1.0.39": + version "1.0.39" + resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" + integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@prisma/client@5.17": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.17.0.tgz#9079947bd749689c2dabfb9ecc70a24ebefb1f43" - integrity sha512-N2tnyKayT0Zf7mHjwEyE8iG7FwTmXDHFZ1GnNhQp0pJUObsuel4ZZ1XwfuAYkq5mRIiC/Kot0kt0tGCfLJ70Jw== +"@prisma/client@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.22.0.tgz#da1ca9c133fbefe89e0da781c75e1c59da5f8802" + integrity sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA== -"@prisma/debug@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.17.0.tgz#a765105848993984535b6066f8ebc6e6ead26533" - integrity sha512-l7+AteR3P8FXiYyo496zkuoiJ5r9jLQEdUuxIxNCN1ud8rdbH3GTxm+f+dCyaSv9l9WY+29L9czaVRXz9mULfg== +"@prisma/debug@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.22.0.tgz#58af56ed7f6f313df9fb1042b6224d3174bbf412" + integrity sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ== -"@prisma/engines-version@5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053": - version "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053.tgz#3c7cc1ef3ebc34cbd069e5873b9982f2aabf5acd" - integrity sha512-tUuxZZysZDcrk5oaNOdrBnnkoTtmNQPkzINFDjz7eG6vcs9AVDmA/F6K5Plsb2aQc/l5M2EnFqn3htng9FA4hg== +"@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2": + version "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2.tgz#d534dd7235c1ba5a23bacd5b92cc0ca3894c28f4" + integrity sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ== -"@prisma/engines@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.17.0.tgz#74dd1aabb22675892760b3cf69a448e3aef4616b" - integrity sha512-+r+Nf+JP210Jur+/X8SIPLtz+uW9YA4QO5IXA+KcSOBe/shT47bCcRMTYCbOESw3FFYFTwe7vU6KTWHKPiwvtg== +"@prisma/engines@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.22.0.tgz#28f3f52a2812c990a8b66eb93a0987816a5b6d84" + integrity sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA== dependencies: - "@prisma/debug" "5.17.0" - "@prisma/engines-version" "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" - "@prisma/fetch-engine" "5.17.0" - "@prisma/get-platform" "5.17.0" + "@prisma/debug" "5.22.0" + "@prisma/engines-version" "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2" + "@prisma/fetch-engine" "5.22.0" + "@prisma/get-platform" "5.22.0" "@prisma/extension-read-replicas@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@prisma/extension-read-replicas/-/extension-read-replicas-0.3.0.tgz#2842a7c928f957c1dd58a6256104797596d43426" integrity sha512-F9+rSmYday6GT2qjhJtkZcBOpLO5LtpvFcMGqrBDHf+78LEdSuxfFjOxYlNuqk4B+th62yxpbhfpmB9/Mca14Q== -"@prisma/fetch-engine@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.17.0.tgz#f718dc7426411d1ebeeee53e2d0d38652387f87c" - integrity sha512-ESxiOaHuC488ilLPnrv/tM2KrPhQB5TRris/IeIV4ZvUuKeaicCl4Xj/JCQeG9IlxqOgf1cCg5h5vAzlewN91Q== +"@prisma/fetch-engine@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.22.0.tgz#4fb691b483a450c5548aac2f837b267dd50ef52e" + integrity sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA== dependencies: - "@prisma/debug" "5.17.0" - "@prisma/engines-version" "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" - "@prisma/get-platform" "5.17.0" + "@prisma/debug" "5.22.0" + "@prisma/engines-version" "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2" + "@prisma/get-platform" "5.22.0" -"@prisma/get-platform@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.17.0.tgz#89fdcae2adddebbbf0e7bd0474a6c49d6023519b" - integrity sha512-UlDgbRozCP1rfJ5Tlkf3Cnftb6srGrEQ4Nm3og+1Se2gWmCZ0hmPIi+tQikGDUVLlvOWx3Gyi9LzgRP+HTXV9w== +"@prisma/get-platform@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.22.0.tgz#fc675bc9d12614ca2dade0506c9c4a77e7dddacd" + integrity sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q== dependencies: - "@prisma/debug" "5.17.0" + "@prisma/debug" "5.22.0" -"@react-spring/animated@~9.7.4": - version "9.7.4" - resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.4.tgz#c712b2d3dc9312ef41aa8886818b539151bda062" - integrity sha512-7As+8Pty2QlemJ9O5ecsuPKjmO0NKvmVkRR1n6mEotFgWar8FKuQt2xgxz3RTgxcccghpx1YdS1FCdElQNexmQ== +"@react-spring/animated@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.5.tgz#eb0373aaf99b879736b380c2829312dae3b05f28" + integrity sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg== dependencies: - "@react-spring/shared" "~9.7.4" - "@react-spring/types" "~9.7.4" + "@react-spring/shared" "~9.7.5" + "@react-spring/types" "~9.7.5" -"@react-spring/core@~9.7.4": - version "9.7.4" - resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.4.tgz#0eaa0b5da3d18036d87a571f23079819d45a9f46" - integrity sha512-GzjA44niEJBFUe9jN3zubRDDDP2E4tBlhNlSIkTChiNf9p4ZQlgXBg50qbXfSXHQPHak/ExYxwhipKVsQ/sUTw== +"@react-spring/core@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.5.tgz#72159079f52c1c12813d78b52d4f17c0bf6411f7" + integrity sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w== dependencies: - "@react-spring/animated" "~9.7.4" - "@react-spring/shared" "~9.7.4" - "@react-spring/types" "~9.7.4" + "@react-spring/animated" "~9.7.5" + "@react-spring/shared" "~9.7.5" + "@react-spring/types" "~9.7.5" -"@react-spring/rafz@~9.7.4": - version "9.7.4" - resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.4.tgz#d53aa45a8cb116b81b27ba29e0cc15470ccfd449" - integrity sha512-mqDI6rW0Ca8IdryOMiXRhMtVGiEGLIO89vIOyFQXRIwwIMX30HLya24g9z4olDvFyeDW3+kibiKwtZnA4xhldA== +"@react-spring/rafz@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.5.tgz#ee7959676e7b5d6a3813e8c17d5e50df98b95df9" + integrity sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw== -"@react-spring/shared@~9.7.4": - version "9.7.4" - resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.4.tgz#8ac57505072c2aee33d77c47c4269347061a3377" - integrity sha512-bEPI7cQp94dOtCFSEYpxvLxj0+xQfB5r9Ru1h8OMycsIq7zFZon1G0sHrBLaLQIWeMCllc4tVDYRTLIRv70C8w== +"@react-spring/shared@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.5.tgz#6d513622df6ad750bbbd4dedb4ca0a653ec92073" + integrity sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw== dependencies: - "@react-spring/rafz" "~9.7.4" - "@react-spring/types" "~9.7.4" + "@react-spring/rafz" "~9.7.5" + "@react-spring/types" "~9.7.5" -"@react-spring/types@~9.7.4": - version "9.7.4" - resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.4.tgz#c849a7f062b5163d078e5e75f28c8f6acf91792e" - integrity sha512-iQVztO09ZVfsletMiY+DpT/JRiBntdsdJ4uqk3UJFhrhS8mIC9ZOZbmfGSRs/kdbNPQkVyzucceDicQ/3Mlj9g== +"@react-spring/types@~9.7.5": + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.5.tgz#e5dd180f3ed985b44fd2cd2f32aa9203752ef3e8" + integrity sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g== "@react-spring/web@^9.7.3": - version "9.7.4" - resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.4.tgz#0086ab5dcf17e6a8f3d7e7f8041ccb4cc2fa10dc" - integrity sha512-UMvCZp7I5HCVIleSa4BwbNxynqvj+mJjG2m20VO2yPoi2pnCYANy58flvz9v/YcXTAvsmL655FV3pm5fbr6akA== + version "9.7.5" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.5.tgz#7d7782560b3a6fb9066b52824690da738605de80" + integrity sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ== dependencies: - "@react-spring/animated" "~9.7.4" - "@react-spring/core" "~9.7.4" - "@react-spring/shared" "~9.7.4" - "@react-spring/types" "~9.7.4" + "@react-spring/animated" "~9.7.5" + "@react-spring/core" "~9.7.5" + "@react-spring/shared" "~9.7.5" + "@react-spring/types" "~9.7.5" "@redis/bloom@1.2.0": version "1.2.0" @@ -2406,11 +2532,9 @@ integrity sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg== "@rollup/plugin-alias@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz#99a94accc4ff9a3483be5baeedd5d7da3b597e93" - integrity sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ== - dependencies: - slash "^4.0.0" + version "5.1.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz#53601d88cda8b1577aa130b4a6e452283605bf26" + integrity sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ== "@rollup/plugin-commonjs@^25.0.4": version "25.0.8" @@ -2432,14 +2556,13 @@ "@rollup/pluginutils" "^5.1.0" "@rollup/plugin-node-resolve@^15.2.0": - version "15.2.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9" - integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== + version "15.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz#efbb35515c9672e541c08d59caba2eff492a55d5" + integrity sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag== dependencies: "@rollup/pluginutils" "^5.0.1" "@types/resolve" "1.20.2" deepmerge "^4.2.2" - is-builtin-module "^3.2.1" is-module "^1.0.0" resolve "^1.22.1" @@ -2451,14 +2574,14 @@ "@rollup/pluginutils" "^5.0.1" magic-string "^0.30.3" -"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" - integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== +"@rollup/pluginutils@^5.0.1": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.3.tgz#3001bf1a03f3ad24457591f2c259c8e514e0dbdf" + integrity sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" - picomatch "^2.3.1" + picomatch "^4.0.2" "@rollup/pluginutils@^5.0.2": version "5.0.5" @@ -2469,6 +2592,20 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/pluginutils@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + "@rushstack/eslint-patch@^1.3.3": version "1.10.4" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz#427d5549943a9c6fce808e39ea64dbe60d4047f1" @@ -2614,30 +2751,29 @@ "@svgr/plugin-jsx" "8.1.0" "@svgr/plugin-svgo" "8.1.0" -"@swc/counter@^0.1.3": +"@swc/counter@0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== -"@swc/helpers@0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0" - integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A== +"@swc/helpers@0.5.13": + version "0.5.13" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c" + integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== dependencies: - "@swc/counter" "^0.1.3" tslib "^2.4.0" -"@tanstack/query-core@5.51.21": - version "5.51.21" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.51.21.tgz#a510469c6c30d3de2a8b8798e340169a4b0fd08f" - integrity sha512-POQxm42IUp6n89kKWF4IZi18v3fxQWFRolvBA6phNVmA8psdfB1MvDnGacCJdS+EOX12w/CyHM62z//rHmYmvw== +"@tanstack/query-core@5.60.6": + version "5.60.6" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.60.6.tgz#0dd33fe231b0d18bf66d0c615b29899738300658" + integrity sha512-tI+k0KyCo1EBJ54vxK1kY24LWj673ujTydCZmzEZKAew4NqZzTaVQJEuaG1qKj2M03kUHN46rchLRd+TxVq/zQ== "@tanstack/react-query@^5.28.6": - version "5.51.23" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.51.23.tgz#83c223f4cb6054b206de8856b73ca7e41a63ba1f" - integrity sha512-CfJCfX45nnVIZjQBRYYtvVMIsGgWLKLYC4xcUiYEey671n1alvTZoCBaU9B85O8mF/tx9LPyrI04A6Bs2THv4A== + version "5.61.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.61.0.tgz#73473feb37aa28ceb410e297ee060e18f06f88e0" + integrity sha512-SBzV27XAeCRBOQ8QcC94w2H1Md0+LI0gTWwc3qRJoaGuewKn5FNW4LSqwPFJZVEItfhMfGT7RpZuSFXjTi12pQ== dependencies: - "@tanstack/query-core" "5.51.21" + "@tanstack/query-core" "5.60.6" "@trysound/sax@0.2.0": version "0.2.0" @@ -2716,13 +2852,13 @@ "@babel/types" "^7.20.7" "@types/cypress@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@types/cypress/-/cypress-1.1.3.tgz#0a700c040d53e9e12b5af98e41d4a88c39f39b6a" - integrity sha512-OXe0Gw8LeCflkG1oPgFpyrYWJmEKqYncBsD/J0r17r0ETx/TnIGDNLwXt/pFYSYuYTpzcq1q3g62M9DrfsBL4g== + version "1.1.6" + resolved "https://registry.yarnpkg.com/@types/cypress/-/cypress-1.1.6.tgz#b190688acffb847a3f5c4cee15c82d4f2a342ee6" + integrity sha512-CfeLLD3+6vIWe2AO5hR63f1c8EbRzrp/j1ExubAwOTpwZFZvF3Nm9cOPQiUwzNmAUmZuhO0QVH98Qlujni6nPw== dependencies: cypress "*" -"@types/estree@*", "@types/estree@^1.0.0": +"@types/estree@*": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -2732,6 +2868,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== +"@types/estree@^1.0.0": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + "@types/fs-extra@^8.0.1": version "8.1.4" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.4.tgz#8171df1d16a80d69fc9c3aab07d7961349a5cb8b" @@ -2761,18 +2902,18 @@ dependencies: "@types/node" "*" -"@types/hoist-non-react-statics@^3.3.0": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.4.tgz#cc477ce0283bb9d19ea0cbfa2941fe2c8493a1be" - integrity sha512-ZchYkbieA+7tnxwX/SCBySx9WwvWR8TaP5tb2jRAzwvLb/rWchGw3v0w3pqUbUvj0GCwW2Xz/AVPSk6kUGctXQ== +"@types/hoist-non-react-statics@3": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== dependencies: "@types/react" "*" hoist-non-react-statics "^3.3.0" -"@types/hoist-non-react-statics@^3.3.1": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" - integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== +"@types/hoist-non-react-statics@^3.3.0": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.4.tgz#cc477ce0283bb9d19ea0cbfa2941fe2c8493a1be" + integrity sha512-ZchYkbieA+7tnxwX/SCBySx9WwvWR8TaP5tb2jRAzwvLb/rWchGw3v0w3pqUbUvj0GCwW2Xz/AVPSk6kUGctXQ== dependencies: "@types/react" "*" hoist-non-react-statics "^3.3.0" @@ -2796,10 +2937,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.12": - version "29.5.12" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" - integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== +"@types/jest@^29.5.14": + version "29.5.14" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" + integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -2845,11 +2986,11 @@ integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== "@types/node@*": - version "22.4.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.4.0.tgz#c295fe1d6f5f58916cc61dbef8cf65b5b9b71de9" - integrity sha512-49AbMDwYUz7EXxKU/r7mXOsxwFr4BYbvB7tWYxVuLdb2ibd30ijjXINSMAHiEEZk5PCRBmW1gUeisn2VMKt3cQ== + version "22.9.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365" + integrity sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ== dependencies: - undici-types "~6.19.2" + undici-types "~6.19.8" "@types/node@14": version "14.18.63" @@ -2862,11 +3003,11 @@ integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== "@types/node@^20.9.0": - version "20.15.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.15.0.tgz#7305f7fe7c62cd31047ed8d65c5092f0b0e1c55d" - integrity sha512-eQf4OkH6gA9v1W0iEpht/neozCsZKMTK+C4cU6/fv7wtJCCL8LEQ4hie2Ln8ZP/0YYM2xGj7//f8xyqItkJ6QA== + version "20.17.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.6.tgz#6e4073230c180d3579e8c60141f99efdf5df0081" + integrity sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ== dependencies: - undici-types "~6.13.0" + undici-types "~6.19.2" "@types/normalize-package-data@^2.4.0": version "2.4.3" @@ -2874,14 +3015,14 @@ integrity sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg== "@types/prop-types@*": - version "15.7.12" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" - integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + version "15.7.13" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451" + integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA== "@types/react-dom@^18.2.17": - version "18.3.0" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" - integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== + version "18.3.1" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.1.tgz#1e4654c08a9cdcfb6594c780ac59b55aad42fe07" + integrity sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ== dependencies: "@types/react" "*" @@ -2903,9 +3044,9 @@ "@types/react" "*" "@types/react@*", "@types/react@16 || 17 || 18", "@types/react@^18.2.41": - version "18.3.3" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" - integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== + version "18.3.12" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60" + integrity sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -2933,9 +3074,9 @@ integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@^2.3.2": - version "2.3.8" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627" - integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2" + integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w== "@types/stack-utils@^2.0.0": version "2.0.3" @@ -2948,9 +3089,9 @@ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== dependencies: "@types/yargs-parser" "*" @@ -2961,6 +3102,21 @@ dependencies: "@types/node" "*" +"@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.15.0.tgz#c95c6521e70c8b095a684d884d96c0c1c63747d2" + integrity sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.15.0" + "@typescript-eslint/type-utils" "8.15.0" + "@typescript-eslint/utils" "8.15.0" + "@typescript-eslint/visitor-keys" "8.15.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + "@typescript-eslint/eslint-plugin@^6.7.3": version "6.21.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" @@ -2978,15 +3134,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.2.0.tgz#44356312aea8852a3a82deebdacd52ba614ec07a" - integrity sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg== +"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.15.0.tgz#92610da2b3af702cfbc02a46e2a2daa6260a9045" + integrity sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A== dependencies: - "@typescript-eslint/scope-manager" "7.2.0" - "@typescript-eslint/types" "7.2.0" - "@typescript-eslint/typescript-estree" "7.2.0" - "@typescript-eslint/visitor-keys" "7.2.0" + "@typescript-eslint/scope-manager" "8.15.0" + "@typescript-eslint/types" "8.15.0" + "@typescript-eslint/typescript-estree" "8.15.0" + "@typescript-eslint/visitor-keys" "8.15.0" debug "^4.3.4" "@typescript-eslint/parser@^6.7.3": @@ -3016,13 +3172,13 @@ "@typescript-eslint/types" "6.21.0" "@typescript-eslint/visitor-keys" "6.21.0" -"@typescript-eslint/scope-manager@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz#cfb437b09a84f95a0930a76b066e89e35d94e3da" - integrity sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg== +"@typescript-eslint/scope-manager@8.15.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz#28a1a0f13038f382424f45a988961acaca38f7c6" + integrity sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA== dependencies: - "@typescript-eslint/types" "7.2.0" - "@typescript-eslint/visitor-keys" "7.2.0" + "@typescript-eslint/types" "8.15.0" + "@typescript-eslint/visitor-keys" "8.15.0" "@typescript-eslint/type-utils@6.21.0": version "6.21.0" @@ -3034,6 +3190,16 @@ debug "^4.3.4" ts-api-utils "^1.0.1" +"@typescript-eslint/type-utils@8.15.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.15.0.tgz#a6da0f93aef879a68cc66c73fe42256cb7426c72" + integrity sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw== + dependencies: + "@typescript-eslint/typescript-estree" "8.15.0" + "@typescript-eslint/utils" "8.15.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + "@typescript-eslint/types@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" @@ -3044,10 +3210,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== -"@typescript-eslint/types@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.2.0.tgz#0feb685f16de320e8520f13cca30779c8b7c403f" - integrity sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA== +"@typescript-eslint/types@8.15.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.15.0.tgz#4958edf3d83e97f77005f794452e595aaf6430fc" + integrity sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -3076,19 +3242,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/typescript-estree@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz#5beda2876c4137f8440c5a84b4f0370828682556" - integrity sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA== +"@typescript-eslint/typescript-estree@8.15.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz#915c94e387892b114a2a2cc0df2d7f19412c8ba7" + integrity sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg== dependencies: - "@typescript-eslint/types" "7.2.0" - "@typescript-eslint/visitor-keys" "7.2.0" + "@typescript-eslint/types" "8.15.0" + "@typescript-eslint/visitor-keys" "8.15.0" debug "^4.3.4" - globby "^11.1.0" + fast-glob "^3.3.2" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" "@typescript-eslint/utils@6.21.0": version "6.21.0" @@ -3103,6 +3269,16 @@ "@typescript-eslint/typescript-estree" "6.21.0" semver "^7.5.4" +"@typescript-eslint/utils@8.15.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.15.0.tgz#ac04679ad19252776b38b81954b8e5a65567cef6" + integrity sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.15.0" + "@typescript-eslint/types" "8.15.0" + "@typescript-eslint/typescript-estree" "8.15.0" + "@typescript-eslint/utils@^5.10.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" @@ -3133,13 +3309,13 @@ "@typescript-eslint/types" "6.21.0" eslint-visitor-keys "^3.4.1" -"@typescript-eslint/visitor-keys@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz#5035f177752538a5750cca1af6044b633610bf9e" - integrity sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A== +"@typescript-eslint/visitor-keys@8.15.0": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz#9ea5a85eb25401d2aa74ec8a478af4e97899ea12" + integrity sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q== dependencies: - "@typescript-eslint/types" "7.2.0" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "8.15.0" + eslint-visitor-keys "^4.2.0" "@umami/prisma-client@^0.14.0": version "0.14.0" @@ -3150,10 +3326,10 @@ chalk "^4.1.2" debug "^4.3.4" -"@umami/redis-client@^0.21.0": - version "0.21.0" - resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.21.0.tgz#96426b28860b8b06fae8825fc2f2d9575b64e863" - integrity sha512-PpdJunvT4sAsVWIeEl+cHU6iSV2r/Df9dof2gdUwSigfD88ACsVs1/BvlWERxk/T93rTgVJWSpLvdw/oMYvkcw== +"@umami/redis-client@^0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.24.0.tgz#8af489250396be76bc0906766343620589774c4b" + integrity sha512-yUZmC87H5QZKNA6jD9k/7d8WDaXQTDROlpyK7S+V2csD96eAnMNi7JsWAVWx9T/584QKD8DsSIy87PTWq1HNPw== dependencies: debug "^4.3.4" redis "^4.5.1" @@ -3274,9 +3450,9 @@ acorn@^8.8.2: integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== aggregate-error@^3.0.0: version "3.1.0" @@ -3350,9 +3526,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== ansi-styles@^3.2.1: version "3.2.1" @@ -3408,14 +3584,12 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== - dependencies: - deep-equal "^2.0.5" +aria-query@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== -array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: +array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== @@ -3428,7 +3602,7 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== -array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: +array-includes@^3.1.6, array-includes@^3.1.8: version "3.1.8" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== @@ -3457,7 +3631,7 @@ array.prototype.findlast@^1.2.5: es-object-atoms "^1.0.0" es-shim-unscopables "^1.0.2" -array.prototype.findlastindex@^1.2.3: +array.prototype.findlastindex@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== @@ -3542,9 +3716,9 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.0, async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== asynckit@^0.4.0: version "0.4.0" @@ -3581,21 +3755,19 @@ aws-sign2@~0.7.0: integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.1.tgz#bb5f8b8a20739f6ae1caeaf7eea2c7913df8048e" - integrity sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA== + version "1.13.2" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" + integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== -axe-core@^4.9.1: - version "4.10.0" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" - integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== +axe-core@^4.10.0: + version "4.10.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.2.tgz#85228e3e1d8b8532a27659b332e39b7fa0e022df" + integrity sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w== -axobject-query@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== - dependencies: - deep-equal "^2.0.5" +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== babel-jest@^29.7.0: version "29.7.0" @@ -3781,7 +3953,7 @@ browserslist@^4.22.2: node-releases "^2.0.14" update-browserslist-db "^1.0.13" -bs-logger@0.x: +bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== @@ -3818,11 +3990,6 @@ buffer@^5.7.1: base64-js "^1.3.1" ieee754 "^1.1.13" -builtin-modules@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - busboy@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" @@ -3933,9 +4100,9 @@ charenc@0.0.2: integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== chart.js@^4.4.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.3.tgz#3b2e11e7010fefa99b07d0349236f5098e5226ad" - integrity sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw== + version "4.4.6" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.6.tgz#da39b84ca752298270d4c0519675c7659936abec" + integrity sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA== dependencies: "@kurkle/color" "^0.3.0" @@ -3959,6 +4126,11 @@ ci-info@^3.2.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== +ci-info@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.1.0.tgz#92319d2fa29d2620180ea5afed31f589bc98cf83" + integrity sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A== + cjs-module-lexer@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" @@ -4061,11 +4233,27 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colord@^2.9.1, colord@^2.9.2, colord@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" @@ -4081,7 +4269,7 @@ colorette@^2.0.16, colorette@^2.0.20: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -4206,7 +4394,16 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4397,12 +4594,12 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -cypress@*: - version "13.6.6" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.6.tgz#5133f231ed1c6e57dc8dcbf60aade220bcd6884b" - integrity sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A== +cypress@*, cypress@^13.6.6: + version "13.15.2" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.15.2.tgz#ef19554c274bc4ff23802aeb5c52951677fa67f1" + integrity sha512-ARbnUorjcCM3XiPwgHKuqsyr5W9Qn+pIIBPaoilnoBkLdSC2oLQjV1BUpnmc7KR+b7Avah3Ly2RMFnfxr96E/A== dependencies: - "@cypress/request" "^3.0.0" + "@cypress/request" "^3.0.6" "@cypress/xvfb" "^1.2.4" "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" @@ -4413,6 +4610,7 @@ cypress@*: cachedir "^2.3.0" chalk "^4.1.0" check-more-types "^2.24.0" + ci-info "^4.0.0" cli-cursor "^3.1.0" cli-table3 "~0.6.1" commander "^6.2.1" @@ -4427,55 +4625,6 @@ cypress@*: figures "^3.2.0" fs-extra "^9.1.0" getos "^3.2.1" - is-ci "^3.0.1" - is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.8" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - process "^0.11.10" - proxy-from-env "1.0.0" - request-progress "^3.0.0" - semver "^7.5.3" - supports-color "^8.1.1" - tmp "~0.2.1" - untildify "^4.0.0" - yauzl "^2.10.0" - -cypress@^13.6.6: - version "13.13.3" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.13.3.tgz#21ee054bb4e00b3858f2e33b4f8f4e69128470a9" - integrity sha512-hUxPrdbJXhUOTzuML+y9Av7CKoYznbD83pt8g3klgpioEha0emfx4WNIuVRx0C76r0xV2MIwAW9WYiXfVJYFQw== - dependencies: - "@cypress/request" "^3.0.1" - "@cypress/xvfb" "^1.2.4" - "@types/sinonjs__fake-timers" "8.1.1" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - buffer "^5.7.1" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" - commander "^6.2.1" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.4" - enquirer "^2.3.6" - eventemitter2 "6.4.7" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - getos "^3.2.1" - is-ci "^3.0.1" is-installed-globally "~0.4.0" lazy-ass "^1.6.0" listr2 "^3.8.3" @@ -4490,6 +4639,7 @@ cypress@^13.6.6: semver "^7.5.3" supports-color "^8.1.1" tmp "~0.2.3" + tree-kill "1.2.2" untildify "^4.0.0" yauzl "^2.10.0" @@ -4626,16 +4776,16 @@ date-fns@^2.23.0, date-fns@^2.29.3: "@babel/runtime" "^7.21.0" dayjs@^1.10.4: - version "1.11.12" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" - integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== debounce@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@4.3.4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.2: +debug@4.3.4, debug@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -4649,12 +4799,12 @@ debug@^3.1.0, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.1, debug@^4.3.4: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== +debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "2.1.2" + ms "^2.1.3" decamelize-keys@^1.1.0: version "1.1.1" @@ -4679,30 +4829,6 @@ dedent@^1.0.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== -deep-equal@^2.0.5: - version "2.2.3" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" - integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.5" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.2" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.13" - deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -4774,6 +4900,11 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-libc@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -4937,7 +5068,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.12.0: +enhanced-resolve@^5.15.0: version "5.17.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== @@ -4971,9 +5102,9 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + version "1.23.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.5.tgz#f4599a4946d57ed467515ed10e4f157289cd52fb" + integrity sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ== dependencies: array-buffer-byte-length "^1.0.1" arraybuffer.prototype.slice "^1.0.3" @@ -4990,7 +5121,7 @@ es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23 function.prototype.name "^1.1.6" get-intrinsic "^1.2.4" get-symbol-description "^1.0.2" - globalthis "^1.0.3" + globalthis "^1.0.4" gopd "^1.0.1" has-property-descriptors "^1.0.2" has-proto "^1.0.3" @@ -5006,10 +5137,10 @@ es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23 is-string "^1.0.7" is-typed-array "^1.1.13" is-weakref "^1.0.2" - object-inspect "^1.13.1" + object-inspect "^1.13.3" object-keys "^1.1.1" object.assign "^4.1.5" - regexp.prototype.flags "^1.5.2" + regexp.prototype.flags "^1.5.3" safe-array-concat "^1.1.2" safe-regex-test "^1.0.3" string.prototype.trim "^1.2.9" @@ -5034,25 +5165,10 @@ es-errors@^1.2.1, es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-iterator-helpers@^1.0.19: - version "1.0.19" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" - integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== +es-iterator-helpers@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz#2f1a3ab998b30cb2d10b195b587c6d9ebdebf152" + integrity sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q== dependencies: call-bind "^1.0.7" define-properties "^1.2.1" @@ -5061,12 +5177,13 @@ es-iterator-helpers@^1.0.19: es-set-tostringtag "^2.0.3" function-bind "^1.1.2" get-intrinsic "^1.2.4" - globalthis "^1.0.3" + globalthis "^1.0.4" + gopd "^1.0.1" has-property-descriptors "^1.0.2" has-proto "^1.0.3" has-symbols "^1.0.3" internal-slot "^1.0.7" - iterator.prototype "^1.1.2" + iterator.prototype "^1.1.3" safe-array-concat "^1.1.2" es-module-lexer@^1.0.5: @@ -5155,13 +5272,14 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-next@^14.0.4: - version "14.2.5" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.2.5.tgz#cdd43d89047eb7391ba25445d5855b4600b6adb9" - integrity sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA== + version "14.2.18" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.2.18.tgz#e689e348a1db4bc563580cf77705eec894eaece1" + integrity sha512-SuDRcpJY5VHBkhz5DijJ4iA4bVnBA0n48Rb+YSJSCDr+h7kKAcb1mZHusLbW+WA8LDB6edSolomXA55eG3eOVA== dependencies: - "@next/eslint-plugin-next" "14.2.5" + "@next/eslint-plugin-next" "14.2.18" "@rushstack/eslint-patch" "^1.3.3" - "@typescript-eslint/parser" "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0" + "@typescript-eslint/eslint-plugin" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" eslint-import-resolver-node "^0.3.6" eslint-import-resolver-typescript "^3.5.2" eslint-plugin-import "^2.28.1" @@ -5189,22 +5307,23 @@ eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.9: resolve "^1.22.4" eslint-import-resolver-typescript@^3.5.2: - version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" - integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - fast-glob "^3.3.1" - get-tsconfig "^4.5.0" - is-core-module "^2.11.0" + version "3.6.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz#bb8e388f6afc0f940ce5d2c5fd4a3d147f038d9e" + integrity sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA== + dependencies: + "@nolyfill/is-core-module" "1.0.39" + debug "^4.3.5" + enhanced-resolve "^5.15.0" + eslint-module-utils "^2.8.1" + fast-glob "^3.3.2" + get-tsconfig "^4.7.5" + is-bun-module "^1.0.2" is-glob "^4.0.3" -eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" - integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== +eslint-module-utils@^2.12.0, eslint-module-utils@^2.8.1: + version "2.12.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== dependencies: debug "^3.2.7" @@ -5224,26 +5343,28 @@ eslint-plugin-cypress@^2.15.1: globals "^13.20.0" eslint-plugin-import@^2.28.1, eslint-plugin-import@^2.29.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + version "2.31.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" + integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" array.prototype.flat "^1.3.2" array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" + eslint-module-utils "^2.12.0" + hasown "^2.0.2" + is-core-module "^2.15.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" semver "^6.3.1" + string.prototype.trimend "^1.0.8" tsconfig-paths "^3.15.0" eslint-plugin-jest@^27.9.0: @@ -5254,26 +5375,25 @@ eslint-plugin-jest@^27.9.0: "@typescript-eslint/utils" "^5.10.0" eslint-plugin-jsx-a11y@^6.7.1: - version "6.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz#67ab8ff460d4d3d6a0b4a570e9c1670a0a8245c8" - integrity sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g== + version "6.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483" + integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== dependencies: - aria-query "~5.1.3" + aria-query "^5.3.2" array-includes "^3.1.8" array.prototype.flatmap "^1.3.2" ast-types-flow "^0.0.8" - axe-core "^4.9.1" - axobject-query "~3.1.1" + axe-core "^4.10.0" + axobject-query "^4.1.0" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - es-iterator-helpers "^1.0.19" hasown "^2.0.2" jsx-ast-utils "^3.3.5" language-tags "^1.0.9" minimatch "^3.1.2" object.fromentries "^2.0.8" safe-regex-test "^1.0.3" - string.prototype.includes "^2.0.0" + string.prototype.includes "^2.0.1" eslint-plugin-prettier@^4.0.0: version "4.2.1" @@ -5288,21 +5408,21 @@ eslint-plugin-promise@^6.1.1: integrity sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== "eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": - version "4.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" - integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + version "5.0.0-canary-7118f5dd7-20230705" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz#4d55c50e186f1a2b0636433d2b0b2f592ddbccfd" + integrity sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw== eslint-plugin-react@^7.33.2: - version "7.35.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41" - integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA== + version "7.37.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz#cd0935987876ba2900df2f58339f6d92305acc7a" + integrity sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w== dependencies: array-includes "^3.1.8" array.prototype.findlast "^1.2.5" array.prototype.flatmap "^1.3.2" array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" - es-iterator-helpers "^1.0.19" + es-iterator-helpers "^1.1.0" estraverse "^5.3.0" hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" @@ -5337,16 +5457,21 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== + eslint@^8.33.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + version "8.57.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" + "@eslint/js" "8.57.1" + "@humanwhocodes/config-array" "^0.13.0" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" @@ -5396,9 +5521,9 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" @@ -5574,10 +5699,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.0.3, fast-glob@^3.2.7: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.0.3, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5585,10 +5710,10 @@ fast-glob@^3.0.3, fast-glob@^3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9, fast-glob@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.2.7: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5706,9 +5831,9 @@ flat@^5.0.0: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + version "3.3.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" + integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== for-each@^0.3.3: version "0.3.3" @@ -5718,9 +5843,9 @@ for-each@^0.3.3: is-callable "^1.1.3" foreground-child@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" - integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -5730,13 +5855,13 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== +form-data@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" + integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.6" + combined-stream "^1.0.8" mime-types "^2.1.12" formdata-polyfill@^4.0.10: @@ -5791,7 +5916,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@2.3.3, fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -5838,7 +5963,7 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -5875,10 +6000,10 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" -get-tsconfig@^4.5.0: - version "4.7.6" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" - integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== +get-tsconfig@^4.7.5: + version "4.8.1" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" + integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== dependencies: resolve-pkg-maps "^1.0.0" @@ -5979,7 +6104,7 @@ globals@^13.19.0, globals@^13.20.0: dependencies: type-fest "^0.20.2" -globalthis@^1.0.3: +globalthis@^1.0.3, globalthis@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== @@ -6046,7 +6171,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -6107,7 +6232,7 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: dependencies: function-bind "^1.1.2" -hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@3, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -6136,14 +6261,14 @@ html-tags@^3.3.1: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== +http-signature@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" + integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg== dependencies: assert-plus "^1.0.0" jsprim "^2.0.2" - sshpk "^1.14.1" + sshpk "^1.18.0" human-signals@^1.1.1: version "1.1.1" @@ -6180,12 +6305,12 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.1.1: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^5.1.1, ignore@^5.2.0, ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.4: version "5.3.1" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== @@ -6268,7 +6393,7 @@ ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-slot@^1.0.4, internal-slot@^1.0.7: +internal-slot@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== @@ -6297,30 +6422,22 @@ intl-messageformat-parser@^5.3.7: dependencies: "@formatjs/intl-numberformat" "^5.5.2" -intl-messageformat@10.5.14: - version "10.5.14" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.14.tgz#e5bb373f8a37b88fbe647d7b941f3ab2a37ed00a" - integrity sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w== +intl-messageformat@10.7.7: + version "10.7.7" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.7.7.tgz#42085e1664729d02240a03346e31a2540b1112a0" + integrity sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA== dependencies: - "@formatjs/ecma402-abstract" "2.0.0" - "@formatjs/fast-memoize" "2.2.0" - "@formatjs/icu-messageformat-parser" "2.7.8" - tslib "^2.4.0" + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/fast-memoize" "2.2.3" + "@formatjs/icu-messageformat-parser" "2.9.4" + tslib "2" ipaddr.js@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: +is-array-buffer@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== @@ -6333,6 +6450,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-async-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" @@ -6360,12 +6482,12 @@ is-buffer@~1.1.6: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-builtin-module@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" - integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== +is-bun-module@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.2.1.tgz#495e706f42e29f086fd5fe1ac3c51f106062b9fc" + integrity sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q== dependencies: - builtin-modules "^3.3.0" + semver "^7.6.3" is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" @@ -6379,10 +6501,10 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" - integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== +is-core-module@^2.13.0, is-core-module@^2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" @@ -6466,7 +6588,7 @@ is-localhost-ip@^1.4.0: resolved "https://registry.yarnpkg.com/is-localhost-ip/-/is-localhost-ip-1.4.0.tgz#dd66aaabcbb5dbbc943e00adad5f715d2c3b3a1d" integrity sha512-cN7SzlY7BVxSeoJu5equjsZaKSgD4HCfXrTwu0Jgbq5BbT1BU+D7Lyi/l1KO8H0un0JTlxcQaT/GWVapu+DIDg== -is-map@^2.0.2, is-map@^2.0.3: +is-map@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== @@ -6538,7 +6660,7 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-set@^2.0.2, is-set@^2.0.3: +is-set@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== @@ -6617,9 +6739,9 @@ isarray@^2.0.5: integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isbot@^5.1.16: - version "5.1.16" - resolved "https://registry.yarnpkg.com/isbot/-/isbot-5.1.16.tgz#652fac0ab5ba181cefc53aa156edcb76f28ac07d" - integrity sha512-zvRjcw/4UfKiCVx+/PqXPKthufO5m2PpJSbA0tVZY9ns7hlQRV1xqWpEFcqyfkK/MrChsXPmu1zpxECjcaEuKg== + version "5.1.17" + resolved "https://registry.yarnpkg.com/isbot/-/isbot-5.1.17.tgz#ad7da5690a61bbb19056a069975c9a73182682a0" + integrity sha512-/wch8pRKZE+aoVhRX/hYPY1C7dMCeeMyhkQLNLNlYAbGQn9bkvMB8fOUXNnk5I0m4vDYbBJ9ciVtkr9zfBJ7qA== isexe@^2.0.0: version "2.0.0" @@ -6684,10 +6806,10 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterator.prototype@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" - integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== +iterator.prototype@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.3.tgz#016c2abe0be3bbdb8319852884f60908ac62bf9c" + integrity sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ== dependencies: define-properties "^1.2.1" get-intrinsic "^1.2.1" @@ -6695,12 +6817,12 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@2.1.1, jackspeak@^2.3.5: + version "2.1.1" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.1.1.tgz#2a42db4cfbb7e55433c28b6f75d8b796af9669cd" + integrity sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw== dependencies: - "@isaacs/cliui" "^8.0.2" + cliui "^8.0.1" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" @@ -7452,7 +7574,7 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== @@ -7521,7 +7643,7 @@ log-update@^5.0.1: strip-ansi "^7.0.1" wrap-ansi "^8.0.1" -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7590,7 +7712,7 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" -make-error@1.x, make-error@^1.1.1: +make-error@^1.1.1, make-error@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -7618,9 +7740,9 @@ mathml-tag-names@^2.1.3: integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== maxmind@^4.3.6: - version "4.3.21" - resolved "https://registry.yarnpkg.com/maxmind/-/maxmind-4.3.21.tgz#cc3af09775e9b96434a56b6ac63c9bf4878d23b8" - integrity sha512-orda4yI01roTa4pP5Jf43u5HPOoEIGaLudTn9cdgCPyZDPipTJdbz1boZQR9QE96hvwNDrJwt1ak9vHIE6iZSQ== + version "4.3.22" + resolved "https://registry.yarnpkg.com/maxmind/-/maxmind-4.3.22.tgz#8168a2d890d88626613b97eeecbb13fabe0074c4" + integrity sha512-dfLO11mE77ELTEIXNezfW0eslodsFLsZ1lQkLauP+5Zsg1m7kCGtljqRyVOd9E5Ne2RJgvY6UU09qvnVocOZvA== dependencies: mmdb-lib "2.1.1" tiny-lru "11.2.11" @@ -7713,9 +7835,9 @@ micromatch@4.0.5, micromatch@^4.0.5: picomatch "^2.3.1" micromatch@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" picomatch "^2.3.1" @@ -7768,7 +7890,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: +minimatch@^9.0.1, minimatch@^9.0.4: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -7824,24 +7946,12 @@ mmdb-lib@2.1.1: resolved "https://registry.yarnpkg.com/mmdb-lib/-/mmdb-lib-2.1.1.tgz#c0d0bd35dc1fca41f0ebd043e43227ab04eb1792" integrity sha512-yx8H/1H5AfnufiLnzzPqPf4yr/dKU9IFT1rPVwSkrKWHsQEeVVd6+X+L0nUbXhlEFTu3y/7hu38CFmEVgzvyeg== -moment-timezone@^0.5.35: - version "0.5.45" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" - integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== - dependencies: - moment "^2.29.4" - -moment@^2.29.4: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -7870,28 +7980,28 @@ next-basics@^0.39.0: jsonwebtoken "^9.0.0" pure-rand "^6.0.2" -next@14.2.10: - version "14.2.10" - resolved "https://registry.yarnpkg.com/next/-/next-14.2.10.tgz#331981a4fecb1ae8af1817d4db98fc9687ee1cb6" - integrity sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww== +next@15.0.4: + version "15.0.4" + resolved "https://registry.yarnpkg.com/next/-/next-15.0.4.tgz#7ddad7299204f16c132d7e524cf903f1a513588e" + integrity sha512-nuy8FH6M1FG0lktGotamQDCXhh5hZ19Vo0ht1AOIQWrYJLP598TIUagKtvJrfJ5AGwB/WmDqkKaKhMpVifvGPA== dependencies: - "@next/env" "14.2.10" - "@swc/helpers" "0.5.5" + "@next/env" "15.0.4" + "@swc/counter" "0.1.3" + "@swc/helpers" "0.5.13" busboy "1.6.0" caniuse-lite "^1.0.30001579" - graceful-fs "^4.2.11" postcss "8.4.31" - styled-jsx "5.1.1" + styled-jsx "5.1.6" optionalDependencies: - "@next/swc-darwin-arm64" "14.2.10" - "@next/swc-darwin-x64" "14.2.10" - "@next/swc-linux-arm64-gnu" "14.2.10" - "@next/swc-linux-arm64-musl" "14.2.10" - "@next/swc-linux-x64-gnu" "14.2.10" - "@next/swc-linux-x64-musl" "14.2.10" - "@next/swc-win32-arm64-msvc" "14.2.10" - "@next/swc-win32-ia32-msvc" "14.2.10" - "@next/swc-win32-x64-msvc" "14.2.10" + "@next/swc-darwin-arm64" "15.0.4" + "@next/swc-darwin-x64" "15.0.4" + "@next/swc-linux-arm64-gnu" "15.0.4" + "@next/swc-linux-arm64-musl" "15.0.4" + "@next/swc-linux-x64-gnu" "15.0.4" + "@next/swc-linux-x64-musl" "15.0.4" + "@next/swc-win32-arm64-msvc" "15.0.4" + "@next/swc-win32-x64-msvc" "15.0.4" + sharp "^0.33.5" nice-try@^1.0.4: version "1.0.5" @@ -8011,18 +8121,10 @@ object-assign@^4, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== - -object-is@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" - integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" +object-inspect@^1.13.1, object-inspect@^1.13.3: + version "1.13.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" + integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== object-keys@^1.1.1: version "1.1.1" @@ -8048,7 +8150,7 @@ object.entries@^1.1.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -object.fromentries@^2.0.7, object.fromentries@^2.0.8: +object.fromentries@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== @@ -8058,7 +8160,7 @@ object.fromentries@^2.0.7, object.fromentries@^2.0.8: es-abstract "^1.23.2" es-object-atoms "^1.0.0" -object.groupby@^1.0.1: +object.groupby@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== @@ -8067,7 +8169,7 @@ object.groupby@^1.0.1: define-properties "^1.2.1" es-abstract "^1.23.2" -object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: +object.values@^1.1.6, object.values@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== @@ -8098,16 +8200,16 @@ onetime@^6.0.0: mimic-fn "^4.0.0" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" + word-wrap "^1.2.5" ospath@^1.2.2: version "1.2.2" @@ -8266,16 +8368,26 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picocolors@^1.0.0, picocolors@^1.0.1: +picocolors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== +picocolors@^1.0.1, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + pidtree@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" @@ -8869,7 +8981,7 @@ postcss@8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.1.10, postcss@^8.4.21, postcss@^8.4.28, postcss@^8.4.31: +postcss@^8.1.10, postcss@^8.4.21, postcss@^8.4.28: version "8.4.41" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== @@ -8878,6 +8990,15 @@ postcss@^8.1.10, postcss@^8.4.21, postcss@^8.4.28, postcss@^8.4.31: picocolors "^1.0.1" source-map-js "^1.2.0" +postcss@^8.4.31: + version "8.4.49" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" + integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.1" + source-map-js "^1.2.1" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -8909,12 +9030,14 @@ pretty-format@^29.0.0, pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" -prisma@5.17: - version "5.17.0" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.17.0.tgz#267b43921ab94805b010537cffa5ccaf530fa066" - integrity sha512-m4UWkN5lBE6yevqeOxEvmepnL5cNPEjzMw2IqDB59AcEV6w7D8vGljDLd1gPFH+W6gUxw9x7/RmN5dCS/WTPxA== +prisma@5.22.0: + version "5.22.0" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.22.0.tgz#1f6717ff487cdef5f5799cc1010459920e2e6197" + integrity sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A== dependencies: - "@prisma/engines" "5.17.0" + "@prisma/engines" "5.22.0" + optionalDependencies: + fsevents "2.3.3" process@^0.11.10: version "0.11.10" @@ -8953,20 +9076,15 @@ proxy-from-env@1.0.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + version "3.0.2" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" + integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== dependencies: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== @@ -8976,17 +9094,12 @@ pure-rand@^6.0.0, pure-rand@^6.0.2: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== -qs@6.10.4: - version "6.10.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.4.tgz#6a3003755add91c0ec9eacdc5f878b034e73f9e7" - integrity sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g== +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: - side-channel "^1.0.4" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + side-channel "^1.0.6" queue-microtask@^1.2.2: version "1.2.3" @@ -9039,18 +9152,17 @@ react-beautiful-dnd@^13.1.0: redux "^4.0.4" use-memo-one "^1.1.1" -react-dom@^18.2.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" - integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== +react-dom@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" + integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.2" + scheduler "^0.25.0" react-error-boundary@^4.0.4: - version "4.0.13" - resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.13.tgz#80386b7b27b1131c5fbb7368b8c0d983354c7947" - integrity sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ== + version "4.1.2" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.1.2.tgz#bc750ad962edb8b135d6ae922c046051eb58f289" + integrity sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag== dependencies: "@babel/runtime" "^7.12.5" @@ -9060,20 +9172,20 @@ react-hook-form@^7.34.2: integrity sha512-F/TroLjTICipmHeFlMrLtNLceO2xr1jU3CyiNla5zdwsGUGu2UOxxR4UyJgLlhMwLW/Wzp4cpJ7CPfgJIeKdSg== react-intl@^6.5.5: - version "6.6.8" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.6.8.tgz#cb60c90502d0025caf9f86ec298cdc4348da17c2" - integrity sha512-M0pkhzcgV31h++2901BiRXWl69hp2zPyLxRrSwRjd1ErXbNoubz/f4M6DrRTd4OiSUrT4ajRQzrmtS5plG4FtA== - dependencies: - "@formatjs/ecma402-abstract" "2.0.0" - "@formatjs/icu-messageformat-parser" "2.7.8" - "@formatjs/intl" "2.10.4" - "@formatjs/intl-displaynames" "6.6.8" - "@formatjs/intl-listformat" "7.5.7" - "@types/hoist-non-react-statics" "^3.3.1" + version "6.8.9" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.8.9.tgz#ef36b2a19a0eb97afbeaeab9679273fcbf2ea261" + integrity sha512-TUfj5E7lyUDvz/GtovC9OMh441kBr08rtIbgh3p0R8iF3hVY+V2W9Am7rb8BpJ/29BH1utJOqOOhmvEVh3GfZg== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/icu-messageformat-parser" "2.9.4" + "@formatjs/intl" "2.10.15" + "@formatjs/intl-displaynames" "6.8.5" + "@formatjs/intl-listformat" "7.7.5" + "@types/hoist-non-react-statics" "3" "@types/react" "16 || 17 || 18" - hoist-non-react-statics "^3.3.2" - intl-messageformat "10.5.14" - tslib "^2.4.0" + hoist-non-react-statics "3" + intl-messageformat "10.7.7" + tslib "2" react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -9086,9 +9198,9 @@ react-is@^17.0.2: integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== react-redux@^7.2.0: version "7.2.9" @@ -9127,12 +9239,10 @@ react-window@^1.8.6: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" -react@^18.2.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" - integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== - dependencies: - loose-envify "^1.1.0" +react@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" + integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== read-babelrc-up@^1.1.0: version "1.1.0" @@ -9268,15 +9378,15 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" - integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== +regexp.prototype.flags@^1.5.2, regexp.prototype.flags@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== dependencies: - call-bind "^1.0.6" + call-bind "^1.0.7" define-properties "^1.2.1" es-errors "^1.3.0" - set-function-name "^2.0.1" + set-function-name "^2.0.2" regexpu-core@^5.3.1: version "5.3.2" @@ -9319,11 +9429,6 @@ require-from-string@^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== -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -9414,9 +9519,9 @@ rollup-plugin-copy@^3.4.0: is-plain-object "^3.0.0" rollup-plugin-delete@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-delete/-/rollup-plugin-delete-2.0.0.tgz#262acf80660d48c3b167fb0baabd0c3ab985c153" - integrity sha512-/VpLMtDy+8wwRlDANuYmDa9ss/knGsAgrDhM+tEwB1npHwNu4DYNmDfUL55csse/GHs9Q+SMT/rw9uiaZ3pnzA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-delete/-/rollup-plugin-delete-2.1.0.tgz#41d26b5c9dc16b7e5545030692fba9ac89f57b44" + integrity sha512-TEbqJd7giLvzQDTu4jSPufwhTJs/iYVN2LfR/YIYkqjC/oZ0/h9Q0AeljifIhzBzJYZtHQTWKEbMms5fbh54pw== dependencies: del "^5.1.0" @@ -9482,9 +9587,9 @@ rollup-pluginutils@^2.8.2: estree-walker "^0.6.1" rollup@^3.28.0: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + version "3.29.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54" + integrity sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w== optionalDependencies: fsevents "~2.3.2" @@ -9546,12 +9651,10 @@ safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scheduler@^0.23.2: - version "0.23.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" - integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== - dependencies: - loose-envify "^1.1.0" +scheduler@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" + integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== schema-utils@*: version "4.2.0" @@ -9582,14 +9685,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.7: - version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.3, semver@^7.5.4: +semver@^7.3.4, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -9623,6 +9719,35 @@ set-function-name@^2.0.1, set-function-name@^2.0.2: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" +sharp@^0.33.5: + version "0.33.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" + integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== + dependencies: + color "^4.2.3" + detect-libc "^2.0.3" + semver "^7.6.3" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.33.5" + "@img/sharp-darwin-x64" "0.33.5" + "@img/sharp-libvips-darwin-arm64" "1.0.4" + "@img/sharp-libvips-darwin-x64" "1.0.4" + "@img/sharp-libvips-linux-arm" "1.0.5" + "@img/sharp-libvips-linux-arm64" "1.0.4" + "@img/sharp-libvips-linux-s390x" "1.0.4" + "@img/sharp-libvips-linux-x64" "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + "@img/sharp-linux-arm" "0.33.5" + "@img/sharp-linux-arm64" "0.33.5" + "@img/sharp-linux-s390x" "0.33.5" + "@img/sharp-linux-x64" "0.33.5" + "@img/sharp-linuxmusl-arm64" "0.33.5" + "@img/sharp-linuxmusl-x64" "0.33.5" + "@img/sharp-wasm32" "0.33.5" + "@img/sharp-win32-ia32" "0.33.5" + "@img/sharp-win32-x64" "0.33.5" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -9672,6 +9797,13 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -9682,11 +9814,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -9733,11 +9860,16 @@ source-map-js@^1.0.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-js@^1.0.2, source-map-js@^1.2.0: +source-map-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== +source-map-js@^1.2.0, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -9790,7 +9922,7 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sshpk@^1.14.1: +sshpk@^1.18.0: version "1.18.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== @@ -9817,13 +9949,6 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" @@ -9847,15 +9972,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -9865,7 +9981,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: +string-width@^5.0.0, string-width@^5.0.1: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -9874,13 +9990,14 @@ string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.includes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f" - integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg== +string.prototype.includes@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92" + integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" string.prototype.matchall@^4.0.11: version "4.0.11" @@ -9945,13 +10062,6 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -10015,10 +10125,10 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== -styled-jsx@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" - integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== +styled-jsx@5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.6.tgz#83b90c077e6c6a80f7f5e8781d0f311b2fe41499" + integrity sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA== dependencies: client-only "0.0.1" @@ -10250,7 +10360,19 @@ tiny-lru@11.2.11: resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.2.11.tgz#5089a6a4a157f5a97b82aa930b44d550ac5c4778" integrity sha512-27BIW0dIWTYYoWNnqSmoNMKe5WIbkXsc0xaCQHd3/3xT2XMuMJrzHdrO9QBFR14emBz1Bu0dOAs2sCBBrvgPQA== -tmp@~0.2.1, tmp@~0.2.3: +tldts-core@^6.1.61: + version "6.1.61" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.61.tgz#5cd6507535ef5f5027ac9a1f52b9b60ecb9edfbd" + integrity sha512-In7VffkDWUPgwa+c9picLUxvb0RltVwTkSgMNFgvlGSWveCzGBemBqTsgJCL4EDFWZ6WH0fKTsot6yNhzy3ZzQ== + +tldts@^6.1.32: + version "6.1.61" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.61.tgz#85df9810aa4c24bff281bf1fd0b838e087beef9c" + integrity sha512-rv8LUyez4Ygkopqn+M6OLItAOT9FF3REpPQDkdMx5ix8w4qkuE7Vo2o/vw1nxKQYmJDV8JpAMJQr1b+lTKf0FA== + dependencies: + tldts-core "^6.1.61" + +tmp@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== @@ -10284,15 +10406,17 @@ toposort@^2.0.2: resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== -tough-cookie@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" - integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== +tough-cookie@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.0.0.tgz#6b6518e2b5c070cf742d872ee0f4f92d69eac1af" + integrity sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q== dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" + tldts "^6.1.32" + +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== trim-newlines@^3.0.0: version "3.0.1" @@ -10304,25 +10428,25 @@ trim-newlines@^4.0.2: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== -ts-api-utils@^1.0.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" - integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== +ts-api-utils@^1.0.1, ts-api-utils@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.0.tgz#709c6f2076e511a81557f3d07a0cbd566ae8195c" + integrity sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ== ts-jest@^29.1.2: - version "29.2.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.4.tgz#38ccf487407d7a63054a72689f6f99b075e296e5" - integrity sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw== + version "29.2.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63" + integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== dependencies: - bs-logger "0.x" + bs-logger "^0.2.6" ejs "^3.1.10" - fast-json-stable-stringify "2.x" + fast-json-stable-stringify "^2.1.0" jest-util "^29.0.0" json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.6.3" + yargs-parser "^21.1.1" ts-node@^10.9.1: version "10.9.2" @@ -10353,6 +10477,11 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" +tslib@2, tslib@^2.1.0, tslib@^2.4.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -10363,11 +10492,6 @@ tslib@^2.0.1, tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@^2.1.0, tslib@^2.4.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -10486,9 +10610,9 @@ typescript@^4.0, typescript@^4.5: integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typescript@^5.5.3: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + version "5.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== unbox-primitive@^1.0.2: version "1.0.2" @@ -10500,15 +10624,10 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici-types@~6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" - integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== - -undici-types@~6.19.2: - version "6.19.6" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.6.tgz#e218c3df0987f4c0e0008ca00d6b6472d9b89b36" - integrity sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org== +undici-types@~6.19.2, undici-types@~6.19.8: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -10538,11 +10657,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - universalify@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" @@ -10568,14 +10682,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - use-memo-one@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99" @@ -10689,7 +10795,7 @@ which-builtin-type@^1.1.3: which-collection "^1.0.2" which-typed-array "^1.1.15" -which-collection@^1.0.1, which-collection@^1.0.2: +which-collection@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== @@ -10699,7 +10805,7 @@ which-collection@^1.0.1, which-collection@^1.0.2: is-weakmap "^2.0.2" is-weakset "^2.0.3" -which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: +which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== @@ -10724,14 +10830,10 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wrap-ansi@^6.2.0: version "6.2.0" @@ -10841,7 +10943,7 @@ yargs-parser@^20.2.9: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.1, yargs-parser@^21.1.1: +yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==