diff --git a/.docker/debian-manual-guide/Dockerfile b/.docker/debian-manual-guide/Dockerfile new file mode 100644 index 00000000..e3fb174b --- /dev/null +++ b/.docker/debian-manual-guide/Dockerfile @@ -0,0 +1,61 @@ +# Reproduces https://docs.part-db.de/installation/installation_guide-debian.html +# on Debian 13 (trixie) as closely as possible, for debugging issues reported +# by users who followed that guide (Apache2 + mod_php, not the project's own +# FrankenPHP-based Dockerfile at the repo root). +FROM debian:13 + +ARG HOST_UID=1000 +ARG HOST_GID=1000 + +ENV DEBIAN_FRONTEND=noninteractive + +# --- Prerequisites (guide: "Prerequisites Installation") --- +RUN apt-get update && apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + git curl zip ca-certificates software-properties-common \ + apt-transport-https lsb-release nano wget sqlite3 gnupg openssl \ + && rm -rf /var/lib/apt/lists/* + +# --- PHP and Apache2 (guide: "PHP and Apache2 Setup") --- +# Debian 13 ships PHP 8.4 by default, so no extra PHP repo is needed. +RUN apt-get update && apt-get install -y --no-install-recommends \ + apache2 php8.4 libapache2-mod-php8.4 \ + php8.4-opcache php8.4-curl php8.4-gd php8.4-mbstring \ + php8.4-xml php8.4-bcmath php8.4-intl php8.4-zip php8.4-xsl \ + php8.4-sqlite3 php8.4-mysql \ + && rm -rf /var/lib/apt/lists/* + +# --- Composer (guide: "Composer Installation") --- +RUN wget -O /tmp/composer-setup.php https://getcomposer.org/installer \ + && php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer \ + && chmod +x /usr/local/bin/composer \ + && rm /tmp/composer-setup.php + +# --- Node.js and Yarn (guide: "Node.js and Yarn Setup") --- +RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ + && apt-get install -y --no-install-recommends nodejs \ + && curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor -o /usr/share/keyrings/yarnkey.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list \ + && apt-get update && apt-get install -y --no-install-recommends yarn \ + && rm -rf /var/lib/apt/lists/* + +# Map www-data to the host user's uid/gid so files created inside the +# bind-mounted repo (composer/yarn artifacts, chown'd dirs) don't end up +# owned by a foreign uid on the host. +RUN groupmod -g ${HOST_GID} www-data && usermod -u ${HOST_UID} -g ${HOST_GID} www-data \ + && mkdir -p /var/www/partdb && chown -R www-data:www-data /var/www + +# --- Apache2 Configuration (guide: "Apache2 Configuration") --- +COPY partdb.conf /etc/apache2/sites-available/partdb.conf +RUN ln -sf /etc/apache2/sites-available/partdb.conf /etc/apache2/sites-enabled/partdb.conf \ + && a2enmod rewrite headers access_compat \ + && rm -f /etc/apache2/sites-enabled/000-default.conf + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +WORKDIR /var/www/partdb +EXPOSE 80 + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["apache2ctl", "-D", "FOREGROUND"] diff --git a/.docker/debian-manual-guide/docker-compose.yml b/.docker/debian-manual-guide/docker-compose.yml new file mode 100644 index 00000000..efe47d00 --- /dev/null +++ b/.docker/debian-manual-guide/docker-compose.yml @@ -0,0 +1,41 @@ +# Reproduces a Debian 12 install following +# https://docs.part-db.de/installation/installation_guide-debian.html +# using the repo checkout two levels up, for debugging. +# +# Usage (from this directory): +# HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose up --build +# +# Then open http://localhost:8080 (login: admin / password printed in the +# container logs by doctrine:migrations:migrate on first run). +# +# vendor/, node_modules/, var/, public/build, public/media and uploads live +# in named volumes so composer/yarn/console never write into the host's own +# working copy - only src/, config/, templates/, assets/, migrations/, etc. +# are shared live for debugging. +services: + partdb: + build: + context: . + args: + HOST_UID: ${HOST_UID:-1000} + HOST_GID: ${HOST_GID:-1000} + container_name: partdb-debian-guide + ports: + - "8080:80" + volumes: + - ../..:/var/www/partdb + - ./env.local:/var/www/partdb/.env.local:ro + - partdb_vendor:/var/www/partdb/vendor + - partdb_node_modules:/var/www/partdb/node_modules + - partdb_var:/var/www/partdb/var + - partdb_public_build:/var/www/partdb/public/build + - partdb_public_media:/var/www/partdb/public/media + - partdb_uploads:/var/www/partdb/uploads + +volumes: + partdb_vendor: + partdb_node_modules: + partdb_var: + partdb_public_build: + partdb_public_media: + partdb_uploads: diff --git a/.docker/debian-manual-guide/entrypoint.sh b/.docker/debian-manual-guide/entrypoint.sh new file mode 100644 index 00000000..b085f7c1 --- /dev/null +++ b/.docker/debian-manual-guide/entrypoint.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Reproduces the app-setup steps from +# https://docs.part-db.de/installation/installation_guide-debian.html +# against the repo bind-mounted at /var/www/partdb. +set -euo pipefail + +cd /var/www/partdb + +# Only chown the named-volume mount points (see docker-compose.yml) - they're +# fresh docker volumes owned by root until first use. The bind-mounted source +# tree doesn't need it (www-data's uid/gid is mapped to the host user's at +# image build time, so ownership already matches), and recursing into it +# would also try (and fail) to chown the read-only .env.local mount. +chown -R www-data:www-data \ + var vendor node_modules public/build public/media uploads + +as_www() { + # -p preserves the environment (APP_ENV/APP_SECRET/DATABASE_URL from + # docker-compose) across the user switch. Plain `su` resets it, which + # would silently fall back to whatever's baked into .env.local. + su -p -s /bin/bash www-data -c "$*" +} + +if [ ! -f vendor/autoload.php ] || [ "${FORCE_REINSTALL:-0}" = "1" ]; then + echo "==> composer install -o" + as_www "composer install -o" +fi + +if [ ! -d node_modules/.bin ] || [ "${FORCE_REINSTALL:-0}" = "1" ]; then + echo "==> yarn install" + as_www "yarn install" +fi + +if [ ! -f public/build/manifest.json ] || [ "${FORCE_REINSTALL:-0}" = "1" ]; then + echo "==> yarn build" + as_www "yarn build" +fi + +echo "==> cache:clear" +as_www "php bin/console cache:clear" + +echo "==> partdb:check-requirements" +as_www "php bin/console partdb:check-requirements" || true + +echo "==> doctrine:migrations:migrate" +as_www "php bin/console doctrine:migrations:migrate --no-interaction" + +exec "$@" diff --git a/.docker/debian-manual-guide/env.local b/.docker/debian-manual-guide/env.local new file mode 100644 index 00000000..61545710 --- /dev/null +++ b/.docker/debian-manual-guide/env.local @@ -0,0 +1,11 @@ +# Bind-mounted over /var/www/partdb/.env.local inside the container only. +# The host's real .env.local (dev, MySQL on 127.0.0.1) is never touched or +# read - this guarantees APP_ENV/DATABASE_URL are correct for BOTH Apache/ +# mod_php web requests and CLI (console/composer) commands, without relying +# on environment variables being propagated into Apache's subprocess env +# (which is what caused the "WebProfilerBundle" dev-bundle error: web +# requests were silently falling back to the host .env.local's APP_ENV=dev, +# while --no-dev composer install never installed that bundle). +APP_ENV=prod +APP_SECRET=0000000000000000000000000000000000000000000000000000000000debug +DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db" diff --git a/.docker/debian-manual-guide/partdb.conf b/.docker/debian-manual-guide/partdb.conf new file mode 100644 index 00000000..8e53b236 --- /dev/null +++ b/.docker/debian-manual-guide/partdb.conf @@ -0,0 +1,15 @@ +# Verbatim from https://docs.part-db.de/installation/installation_guide-debian.html + + ServerName partdb.lan + ServerAlias www.partdb.lan + + DocumentRoot /var/www/partdb/public + + AllowOverride All + Order Allow,Deny + Allow from All + + + ErrorLog /var/log/apache2/partdb_error.log + CustomLog /var/log/apache2/partdb_access.log combined + diff --git a/.env b/.env index 8cd39f31..557ed6e8 100644 --- a/.env +++ b/.env @@ -5,6 +5,14 @@ # Share that value with nobody and keep it secret APP_SECRET=a03498528f5a5fc089273ec9ae5b2849 +# Change this and uncomment the following line to set the trusted hosts for your Part-DB installation, aka under which +# domain names it is reachable. This is makes things more secure, because it can prevent certain header attacks. +# You have to escape dots in the domain name with a backslash +#TRUSTED_HOSTS='^(your-domain\.invalid)$' + +# You can also allow multiple domain names, e.g. for testing or development purposes, with an | between the domain names. +#TRUSTED_HOSTS='^(localhost|your-domain\.invalid)$' + ################################################################################### # Database settings ################################################################################### diff --git a/.github/workflows/assets_artifact_build.yml b/.github/workflows/assets_artifact_build.yml index 5da304ec..de493498 100644 --- a/.github/workflows/assets_artifact_build.yml +++ b/.github/workflows/assets_artifact_build.yml @@ -42,7 +42,7 @@ jobs: run: | echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v5 + - uses: actions/cache@v6 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -56,7 +56,7 @@ jobs: id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - - uses: actions/cache@v5 + - uses: actions/cache@v6 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} diff --git a/.github/workflows/static_analysis.yml b/.github/workflows/static_analysis.yml index cbc42d27..ab44f1af 100644 --- a/.github/workflows/static_analysis.yml +++ b/.github/workflows/static_analysis.yml @@ -34,7 +34,7 @@ jobs: run: | echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v5 + - uses: actions/cache@v6 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 66086104..927a2a02 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -81,7 +81,7 @@ jobs: id: composer-cache run: | echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v5 + - uses: actions/cache@v6 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -92,7 +92,7 @@ jobs: id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - - uses: actions/cache@v5 + - uses: actions/cache@v6 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} diff --git a/VERSION b/VERSION index 94f15e9c..a1a4224d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.13.1 +2.13.3 diff --git a/composer.json b/composer.json index 10c9b702..43d2987a 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "doctrine/doctrine-migrations-bundle": "^3.0", "doctrine/orm": "^3.2.0", "dompdf/dompdf": "^3.1.2", - "gregwar/captcha-bundle": "^2.1.0", + "gregwar/captcha-bundle": "^3.0.0", "hshn/base64-encoded-file": "^6.0", "jbtronics/2fa-webauthn": "^3.0.0", "jbtronics/dompdf-font-loader-bundle": "^1.0.0", @@ -57,10 +57,10 @@ "scheb/2fa-trusted-device": "^v7.11.0", "shivas/versioning-bundle": "^4.0", "spatie/db-dumper": "^3.3.1", - "symfony/ai-bundle": "^0.10.0", - "symfony/ai-lm-studio-platform": "^v0.10.0", - "symfony/ai-ollama-platform": "^0.10.0", - "symfony/ai-open-router-platform": "^0.10.0", + "symfony/ai-bundle": "^0.11.0", + "symfony/ai-lm-studio-platform": "^v0.11.0", + "symfony/ai-ollama-platform": "^0.11.0", + "symfony/ai-open-router-platform": "^0.11.0", "symfony/apache-pack": "^1.0", "symfony/asset": "7.4.*", "symfony/console": "7.4.*", diff --git a/composer.lock b/composer.lock index dc8dc699..421b1459 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6a79fa73091c2e15bce035c85c2d61ed", + "content-hash": "71f989737d92309c38cbbf0e4e6e0e6e", "packages": [ { "name": "amphp/amp", @@ -615,16 +615,16 @@ }, { "name": "amphp/pipeline", - "version": "v1.2.5", + "version": "v1.2.6", "source": { "type": "git", "url": "https://github.com/amphp/pipeline.git", - "reference": "92f121dde31cd1d89d5d0f9eba64ac40271b236e" + "reference": "10941bf38de5c585aa2407b2ec4265d806d4eef2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/pipeline/zipball/92f121dde31cd1d89d5d0f9eba64ac40271b236e", - "reference": "92f121dde31cd1d89d5d0f9eba64ac40271b236e", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/10941bf38de5c585aa2407b2ec4265d806d4eef2", + "reference": "10941bf38de5c585aa2407b2ec4265d806d4eef2", "shasum": "" }, "require": { @@ -670,7 +670,7 @@ ], "support": { "issues": "https://github.com/amphp/pipeline/issues", - "source": "https://github.com/amphp/pipeline/tree/v1.2.5" + "source": "https://github.com/amphp/pipeline/tree/v1.2.6" }, "funding": [ { @@ -678,7 +678,7 @@ "type": "github" } ], - "time": "2026-06-27T14:17:20+00:00" + "time": "2026-06-27T16:15:40+00:00" }, { "name": "amphp/process", @@ -976,7 +976,7 @@ }, { "name": "api-platform/doctrine-common", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-common.git", @@ -1060,22 +1060,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-common/tree/v4.3.15" + "source": "https://github.com/api-platform/doctrine-common/tree/v4.3.17" }, "time": "2026-06-16T14:59:18+00:00" }, { "name": "api-platform/doctrine-orm", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-orm.git", - "reference": "6af3eeefc7d483b83e56bcbdbff0dd0dde3c7fc1" + "reference": "8da8676d5933235aa3592e613f837fe3c687a0cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/6af3eeefc7d483b83e56bcbdbff0dd0dde3c7fc1", - "reference": "6af3eeefc7d483b83e56bcbdbff0dd0dde3c7fc1", + "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/8da8676d5933235aa3592e613f837fe3c687a0cb", + "reference": "8da8676d5933235aa3592e613f837fe3c687a0cb", "shasum": "" }, "require": { @@ -1149,13 +1149,13 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-orm/tree/v4.3.15" + "source": "https://github.com/api-platform/doctrine-orm/tree/v4.3.17" }, - "time": "2026-06-16T13:14:05+00:00" + "time": "2026-07-08T06:49:21+00:00" }, { "name": "api-platform/documentation", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/documentation.git", @@ -1218,7 +1218,7 @@ }, { "name": "api-platform/http-cache", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/http-cache.git", @@ -1298,7 +1298,7 @@ }, { "name": "api-platform/hydra", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/hydra.git", @@ -1379,13 +1379,13 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/hydra/tree/v4.3.15" + "source": "https://github.com/api-platform/hydra/tree/v4.3.17" }, "time": "2026-06-22T16:14:53+00:00" }, { "name": "api-platform/json-api", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/json-api.git", @@ -1461,22 +1461,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/json-api/tree/v4.3.15" + "source": "https://github.com/api-platform/json-api/tree/v4.3.17" }, "time": "2026-06-17T18:14:46+00:00" }, { "name": "api-platform/json-schema", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/json-schema.git", - "reference": "2136965a30643056d09b10ae5e9fab1f7232a028" + "reference": "d44aa7acae9e748b3ec55af19f2de4a9a7e79133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/json-schema/zipball/2136965a30643056d09b10ae5e9fab1f7232a028", - "reference": "2136965a30643056d09b10ae5e9fab1f7232a028", + "url": "https://api.github.com/repos/api-platform/json-schema/zipball/d44aa7acae9e748b3ec55af19f2de4a9a7e79133", + "reference": "d44aa7acae9e748b3ec55af19f2de4a9a7e79133", "shasum": "" }, "require": { @@ -1542,13 +1542,13 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/json-schema/tree/v4.4.0-alpha.1" + "source": "https://github.com/api-platform/json-schema/tree/v4.3.17" }, - "time": "2026-06-13T05:06:55+00:00" + "time": "2026-06-29T14:45:14+00:00" }, { "name": "api-platform/jsonld", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/jsonld.git", @@ -1622,22 +1622,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/jsonld/tree/v4.3.15" + "source": "https://github.com/api-platform/jsonld/tree/v4.3.17" }, "time": "2026-06-13T05:11:46+00:00" }, { "name": "api-platform/metadata", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/metadata.git", - "reference": "86efa5375e994f4e46f3e4336dc4dc5ecc9456a8" + "reference": "748f495474b4deedcba286631c2adf96d7bcba0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/metadata/zipball/86efa5375e994f4e46f3e4336dc4dc5ecc9456a8", - "reference": "86efa5375e994f4e46f3e4336dc4dc5ecc9456a8", + "url": "https://api.github.com/repos/api-platform/metadata/zipball/748f495474b4deedcba286631c2adf96d7bcba0a", + "reference": "748f495474b4deedcba286631c2adf96d7bcba0a", "shasum": "" }, "require": { @@ -1720,13 +1720,13 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/metadata/tree/v4.3.15" + "source": "https://github.com/api-platform/metadata/tree/v4.3.17" }, - "time": "2026-06-13T05:03:21+00:00" + "time": "2026-07-03T06:30:28+00:00" }, { "name": "api-platform/openapi", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/openapi.git", @@ -1811,22 +1811,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/openapi/tree/v4.3.15" + "source": "https://github.com/api-platform/openapi/tree/v4.3.17" }, "time": "2026-06-16T10:01:53+00:00" }, { "name": "api-platform/serializer", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/serializer.git", - "reference": "4c8f7507a13f8a9c0cace60efc245fece2259233" + "reference": "946998cb8203e7dee5ddd716d4c0e20098d2bf69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/serializer/zipball/4c8f7507a13f8a9c0cace60efc245fece2259233", - "reference": "4c8f7507a13f8a9c0cace60efc245fece2259233", + "url": "https://api.github.com/repos/api-platform/serializer/zipball/946998cb8203e7dee5ddd716d4c0e20098d2bf69", + "reference": "946998cb8203e7dee5ddd716d4c0e20098d2bf69", "shasum": "" }, "require": { @@ -1905,22 +1905,22 @@ "serializer" ], "support": { - "source": "https://github.com/api-platform/serializer/tree/v4.3.15" + "source": "https://github.com/api-platform/serializer/tree/v4.3.17" }, - "time": "2026-06-26T09:59:36+00:00" + "time": "2026-07-11T23:00:58+00:00" }, { "name": "api-platform/state", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/state.git", - "reference": "3bb76df0857dd1a6e706dd1c5c4b574432a2fa8d" + "reference": "2a9a18aad1c3363a32381f8c6e21c41334e23b88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/state/zipball/3bb76df0857dd1a6e706dd1c5c4b574432a2fa8d", - "reference": "3bb76df0857dd1a6e706dd1c5c4b574432a2fa8d", + "url": "https://api.github.com/repos/api-platform/state/zipball/2a9a18aad1c3363a32381f8c6e21c41334e23b88", + "reference": "2a9a18aad1c3363a32381f8c6e21c41334e23b88", "shasum": "" }, "require": { @@ -2002,22 +2002,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/state/tree/v4.3.15" + "source": "https://github.com/api-platform/state/tree/v4.3.17" }, - "time": "2026-06-13T05:11:46+00:00" + "time": "2026-07-11T07:03:31+00:00" }, { "name": "api-platform/symfony", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/symfony.git", - "reference": "8b20ef6262b2d557e2c286df48b78e66e7f8c000" + "reference": "55d387dc3d7384791015373030d1430c7c4d9f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/symfony/zipball/8b20ef6262b2d557e2c286df48b78e66e7f8c000", - "reference": "8b20ef6262b2d557e2c286df48b78e66e7f8c000", + "url": "https://api.github.com/repos/api-platform/symfony/zipball/55d387dc3d7384791015373030d1430c7c4d9f5e", + "reference": "55d387dc3d7384791015373030d1430c7c4d9f5e", "shasum": "" }, "require": { @@ -2131,13 +2131,13 @@ "symfony" ], "support": { - "source": "https://github.com/api-platform/symfony/tree/v4.3.15" + "source": "https://github.com/api-platform/symfony/tree/v4.3.17" }, - "time": "2026-06-17T18:14:46+00:00" + "time": "2026-07-08T06:54:33+00:00" }, { "name": "api-platform/validator", - "version": "v4.3.15", + "version": "v4.3.17", "source": { "type": "git", "url": "https://github.com/api-platform/validator.git", @@ -2207,7 +2207,7 @@ "validator" ], "support": { - "source": "https://github.com/api-platform/validator/tree/v4.3.15" + "source": "https://github.com/api-platform/validator/tree/v4.3.17" }, "time": "2026-05-07T11:45:31+00:00" }, @@ -2512,16 +2512,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.12", + "version": "1.5.13", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78" + "reference": "c008272789979f709f7fcb32c2ecf1d2db5e84e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/c008272789979f709f7fcb32c2ecf1d2db5e84e5", + "reference": "c008272789979f709f7fcb32c2ecf1d2db5e84e5", "shasum": "" }, "require": { @@ -2568,7 +2568,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.12" + "source": "https://github.com/composer/ca-bundle/tree/1.5.13" }, "funding": [ { @@ -2580,7 +2580,7 @@ "type": "github" } ], - "time": "2026-05-19T11:26:22+00:00" + "time": "2026-07-18T12:35:13+00:00" }, { "name": "composer/package-versions-deprecated", @@ -4510,27 +4510,30 @@ }, { "name": "gregwar/captcha", - "version": "v1.3.0", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/Gregwar/Captcha.git", - "reference": "4edbcd09fde4353b94ce550f43460eba73baf2cc" + "reference": "3c2f6f0c301b94d9ec18ba769015a8a32b95765c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Gregwar/Captcha/zipball/4edbcd09fde4353b94ce550f43460eba73baf2cc", - "reference": "4edbcd09fde4353b94ce550f43460eba73baf2cc", + "url": "https://api.github.com/repos/Gregwar/Captcha/zipball/3c2f6f0c301b94d9ec18ba769015a8a32b95765c", + "reference": "3c2f6f0c301b94d9ec18ba769015a8a32b95765c", "shasum": "" }, "require": { "ext-fileinfo": "*", "ext-gd": "*", "ext-mbstring": "*", - "php": ">=5.3.0", + "php": "^8.2", "symfony/finder": "*" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6.4 || ^7.0 || ^8.0 || ^9.0" + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-phpunit": "2.0.6", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "4.0.1" }, "type": "library", "autoload": { @@ -4562,28 +4565,28 @@ ], "support": { "issues": "https://github.com/Gregwar/Captcha/issues", - "source": "https://github.com/Gregwar/Captcha/tree/v1.3.0" + "source": "https://github.com/Gregwar/Captcha/tree/v2.1.0" }, - "time": "2025-06-23T12:25:54+00:00" + "time": "2026-06-16T13:04:08+00:00" }, { "name": "gregwar/captcha-bundle", - "version": "v2.5.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/Gregwar/CaptchaBundle.git", - "reference": "b129efda562bf8361ca6eb77043036813f749de6" + "reference": "251aa803c9df56b755d342e455e1f5c572efc2f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/b129efda562bf8361ca6eb77043036813f749de6", - "reference": "b129efda562bf8361ca6eb77043036813f749de6", + "url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/251aa803c9df56b755d342e455e1f5c572efc2f5", + "reference": "251aa803c9df56b755d342e455e1f5c572efc2f5", "shasum": "" }, "require": { "ext-gd": "*", - "gregwar/captcha": "^1.2.1", - "php": ">=8.0.2", + "gregwar/captcha": "^2.1", + "php": ">=8.2", "symfony/form": "~6.0|~7.0|~8.0", "symfony/framework-bundle": "~6.0|~7.0|~8.0", "symfony/translation": "~6.0|~7.0|~8.0", @@ -4591,7 +4594,7 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.45", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^2.2.5", "symplify/easy-coding-standard": "^12" }, "type": "symfony-bundle", @@ -4629,28 +4632,28 @@ ], "support": { "issues": "https://github.com/Gregwar/CaptchaBundle/issues", - "source": "https://github.com/Gregwar/CaptchaBundle/tree/v2.5.0" + "source": "https://github.com/Gregwar/CaptchaBundle/tree/v3.0.0" }, - "time": "2026-01-08T10:51:57+00:00" + "time": "2026-07-09T10:41:14+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.12.3", + "version": "7.15.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "9aa17bcdd777ee31df9fc83c337ca4ca2340def3" + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9aa17bcdd777ee31df9fc83c337ca4ca2340def3", - "reference": "9aa17bcdd777ee31df9fc83c337ca4ca2340def3", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^2.5", - "guzzlehttp/psr7": "^2.12.3", + "guzzlehttp/promises": "^2.5.1", + "guzzlehttp/psr7": "^2.13", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.5 || ^3.0", @@ -4662,8 +4665,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.2", - "guzzlehttp/test-server": "^0.5.1", + "guzzle/client-integration-tests": "3.0.3", + "guzzlehttp/test-server": "^0.7", "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.52 || ^9.6.34", "psr/log": "^1.1 || ^2.0 || ^3.0" @@ -4743,7 +4746,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.12.3" + "source": "https://github.com/guzzle/guzzle/tree/7.15.1" }, "funding": [ { @@ -4759,20 +4762,20 @@ "type": "tidelift" } ], - "time": "2026-06-23T15:29:02+00:00" + "time": "2026-07-18T11:23:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.5.0", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "4360e982f87f5f258bf872d094647791db2f4c8e" + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/4360e982f87f5f258bf872d094647791db2f4c8e", - "reference": "4360e982f87f5f258bf872d094647791db2f4c8e", + "url": "https://api.github.com/repos/guzzle/promises/zipball/9ad1e4fc607446a055b95870c7f668e93b5cff29", + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29", "shasum": "" }, "require": { @@ -4827,7 +4830,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.5.0" + "source": "https://github.com/guzzle/promises/tree/2.5.1" }, "funding": [ { @@ -4843,20 +4846,20 @@ "type": "tidelift" } ], - "time": "2026-06-02T12:23:43+00:00" + "time": "2026-07-08T15:48:39+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.12.3", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "7ec62dc3f44aa218487dbed81a9bf9bc647be55d" + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/7ec62dc3f44aa218487dbed81a9bf9bc647be55d", - "reference": "7ec62dc3f44aa218487dbed81a9bf9bc647be55d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dad89620b7a6edb60c15858442eb2e408b45d8f4", + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4", "shasum": "" }, "require": { @@ -4946,7 +4949,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.12.3" + "source": "https://github.com/guzzle/psr7/tree/2.13.0" }, "funding": [ { @@ -4962,7 +4965,7 @@ "type": "tidelift" } ], - "time": "2026-06-23T15:21:08+00:00" + "time": "2026-07-16T22:23:49+00:00" }, { "name": "hshn/base64-encoded-file", @@ -5963,16 +5966,16 @@ }, { "name": "league/commonmark", - "version": "2.8.2", + "version": "2.8.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b" + "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/1902f60f984235023acbe03db6ad614a37b3c3e7", + "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7", "shasum": "" }, "require": { @@ -5994,8 +5997,8 @@ "github/gfm": "0.29.0", "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "phpstan/phpstan": "^2.0.0", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0 || ^12.0.0 || ^13.0.0", "scrutinizer/ocular": "^1.8.1", "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0", "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0", @@ -6066,7 +6069,7 @@ "type": "tidelift" } ], - "time": "2026-03-19T13:16:38+00:00" + "time": "2026-07-12T15:29:16+00:00" }, { "name": "league/config", @@ -7745,16 +7748,16 @@ }, { "name": "nette/utils", - "version": "v4.1.4", + "version": "v4.1.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7" + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/7da6c396d7ebe142bc857c20479d5e70a5e1aac7", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7", + "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", "shasum": "" }, "require": { @@ -7774,7 +7777,7 @@ }, "suggest": { "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-iconv": "to use Strings::chr(), ord() and reverse()", "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", @@ -7830,9 +7833,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.4" + "source": "https://github.com/nette/utils/tree/v4.1.5" }, - "time": "2026-05-11T20:49:54+00:00" + "time": "2026-07-17T23:02:45+00:00" }, { "name": "nikolaposa/version", @@ -8958,16 +8961,16 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "5.8.0", + "version": "5.9.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "01964d92536edf1a3a874b9580a52824bebf6fbb" + "reference": "05e99ebf61238a70227b4d9cc02d0030d34f6339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/01964d92536edf1a3a874b9580a52824bebf6fbb", - "reference": "01964d92536edf1a3a874b9580a52824bebf6fbb", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/05e99ebf61238a70227b4d9cc02d0030d34f6339", + "reference": "05e99ebf61238a70227b4d9cc02d0030d34f6339", "shasum": "" }, "require": { @@ -8989,7 +8992,7 @@ "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", - "php": "^8.1", + "php": "^8.2", "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { @@ -9003,7 +9006,7 @@ "phpstan/phpstan": "^1.1 || ^2.0", "phpstan/phpstan-deprecation-rules": "^1.0 || ^2.0", "phpstan/phpstan-phpunit": "^1.0 || ^2.0", - "phpunit/phpunit": "^10.5", + "phpunit/phpunit": "^10.5 || ^11.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, @@ -9061,22 +9064,22 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.8.0" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.9.0" }, - "time": "2026-06-07T03:51:10+00:00" + "time": "2026-07-12T19:17:39+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.2", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", "shasum": "" }, "require": { @@ -9108,9 +9111,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3" }, - "time": "2026-01-25T14:56:51+00:00" + "time": "2026-07-08T07:01:06+00:00" }, { "name": "psr/cache", @@ -10482,20 +10485,20 @@ }, { "name": "spomky-labs/cbor-php", - "version": "3.2.3", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/cbor-php.git", - "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32" + "reference": "013d13da69cf28b1ae501887daceccc850ca1c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32", - "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32", + "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/013d13da69cf28b1ae501887daceccc850ca1c76", + "reference": "013d13da69cf28b1ae501887daceccc850ca1c76", "shasum": "" }, "require": { - "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18", "ext-mbstring": "*", "php": ">=8.0" }, @@ -10537,7 +10540,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/cbor-php/issues", - "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.2.3" + "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.3.0" }, "funding": [ { @@ -10549,7 +10552,7 @@ "type": "patreon" } ], - "time": "2026-04-01T12:15:20+00:00" + "time": "2026-07-15T18:56:27+00:00" }, { "name": "spomky-labs/otphp", @@ -10623,41 +10626,40 @@ }, { "name": "spomky-labs/pki-framework", - "version": "1.4.2", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/pki-framework.git", - "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8" + "reference": "e0d61661962560c1cedfef02b51b431e720aae78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/aa576cbd07128075bef97ac2f8af9854e67513d8", - "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8", + "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/e0d61661962560c1cedfef02b51b431e720aae78", + "reference": "e0d61661962560c1cedfef02b51b431e720aae78", "shasum": "" }, "require": { - "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18", "ext-mbstring": "*", - "php": ">=8.1", - "psr/clock": "^1.0" + "php": ">=8.1" }, "require-dev": { "ekino/phpstan-banned-code": "^1.0|^2.0|^3.0", "ext-gmp": "*", "ext-openssl": "*", - "infection/infection": "^0.28|^0.29|^0.31|^0.32", + "infection/infection": "^0.28|^0.29|^0.31", "php-parallel-lint/php-parallel-lint": "^1.3", "phpstan/extension-installer": "^1.3|^2.0", "phpstan/phpstan": "^1.8|^2.0", "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", "phpstan/phpstan-phpunit": "^1.1|^2.0", "phpstan/phpstan-strict-rules": "^1.3|^2.0", - "phpunit/phpunit": "^10.1|^11.0|^12.0|^13.0", + "phpunit/phpunit": "^10.1|^11.0|^12.0", "rector/rector": "^1.0|^2.0", "roave/security-advisories": "dev-latest", "symfony/string": "^6.4|^7.0|^8.0", "symfony/var-dumper": "^6.4|^7.0|^8.0", - "symplify/easy-coding-standard": "^12.0|^13.0" + "symplify/easy-coding-standard": "^12.0 || ^13.0" }, "suggest": { "ext-bcmath": "For better performance (or GMP)", @@ -10717,7 +10719,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/pki-framework/issues", - "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.4.2" + "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.5.0" }, "funding": [ { @@ -10729,25 +10731,25 @@ "type": "patreon" } ], - "time": "2026-03-23T22:56:56+00:00" + "time": "2026-07-16T10:28:45+00:00" }, { "name": "symfony/ai-bundle", - "version": "v0.10.0", + "version": "v0.11.1", "source": { "type": "git", "url": "https://github.com/symfony/ai-bundle.git", - "reference": "5f6d218ca26a4ac3c2b743e4bfae769c41c556c0" + "reference": "a66502ab5ff676be4f318a273eab17ab934c661a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ai-bundle/zipball/5f6d218ca26a4ac3c2b743e4bfae769c41c556c0", - "reference": "5f6d218ca26a4ac3c2b743e4bfae769c41c556c0", + "url": "https://api.github.com/repos/symfony/ai-bundle/zipball/a66502ab5ff676be4f318a273eab17ab934c661a", + "reference": "a66502ab5ff676be4f318a273eab17ab934c661a", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/ai-platform": "^0.10", + "symfony/ai-platform": "^0.11", "symfony/clock": "^7.3|^8.0", "symfony/config": "^7.3|^8.0", "symfony/console": "^7.3|^8.0", @@ -10762,74 +10764,76 @@ "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-strict-rules": "^2.0", "phpunit/phpunit": "^11.5.53", - "symfony/ai-agent": "^0.10", - "symfony/ai-ai-ml-api-platform": "^0.10", - "symfony/ai-albert-platform": "^0.10", - "symfony/ai-amazee-ai-platform": "^0.10", - "symfony/ai-anthropic-platform": "^0.10", - "symfony/ai-azure-platform": "^0.10", - "symfony/ai-azure-search-store": "^0.10", - "symfony/ai-bedrock-platform": "^0.10", - "symfony/ai-cache-message-store": "^0.10", - "symfony/ai-cache-platform": "^0.10", - "symfony/ai-cache-store": "^0.10", - "symfony/ai-cartesia-platform": "^0.10", - "symfony/ai-cerebras-platform": "^0.10", - "symfony/ai-chat": "^0.10", - "symfony/ai-chroma-db-store": "^0.10", - "symfony/ai-click-house-store": "^0.10", - "symfony/ai-cloudflare-message-store": "^0.10", - "symfony/ai-cloudflare-store": "^0.10", - "symfony/ai-cohere-platform": "^0.10", - "symfony/ai-decart-platform": "^0.10", - "symfony/ai-deep-seek-platform": "^0.10", - "symfony/ai-docker-model-runner-platform": "^0.10", - "symfony/ai-doctrine-message-store": "^0.10", - "symfony/ai-elasticsearch-store": "^0.10", - "symfony/ai-eleven-labs-platform": "^0.10", - "symfony/ai-failover-platform": "^0.10", - "symfony/ai-gemini-platform": "^0.10", - "symfony/ai-generic-platform": "^0.10", - "symfony/ai-hugging-face-platform": "^0.10", - "symfony/ai-lm-studio-platform": "^0.10", - "symfony/ai-manticore-search-store": "^0.10", - "symfony/ai-maria-db-store": "^0.10", - "symfony/ai-meilisearch-message-store": "^0.10", - "symfony/ai-meilisearch-store": "^0.10", - "symfony/ai-meta-platform": "^0.10", - "symfony/ai-milvus-store": "^0.10", - "symfony/ai-mistral-platform": "^0.10", - "symfony/ai-mongo-db-message-store": "^0.10", - "symfony/ai-mongo-db-store": "^0.10", - "symfony/ai-neo4j-store": "^0.10", - "symfony/ai-ollama-platform": "^0.10", - "symfony/ai-open-ai-platform": "^0.10", - "symfony/ai-open-responses-platform": "^0.10", - "symfony/ai-open-router-platform": "^0.10", - "symfony/ai-open-search-store": "^0.10", - "symfony/ai-ovh-platform": "^0.10", - "symfony/ai-perplexity-platform": "^0.10", - "symfony/ai-pinecone-store": "^0.10", - "symfony/ai-pogocache-message-store": "^0.10", - "symfony/ai-postgres-store": "^0.10", - "symfony/ai-qdrant-store": "^0.10", - "symfony/ai-redis-message-store": "^0.10", - "symfony/ai-redis-store": "^0.10", - "symfony/ai-replicate-platform": "^0.10", - "symfony/ai-s3vectors-store": "^0.10", - "symfony/ai-scaleway-platform": "^0.10", - "symfony/ai-session-message-store": "^0.10", - "symfony/ai-sqlite-store": "^0.10", - "symfony/ai-store": "^0.10", - "symfony/ai-supabase-store": "^0.10", - "symfony/ai-surreal-db-message-store": "^0.10", - "symfony/ai-surreal-db-store": "^0.10", - "symfony/ai-transformers-php-platform": "^0.10", - "symfony/ai-typesense-store": "^0.10", - "symfony/ai-vektor-store": "^0.10", - "symfony/ai-vertex-ai-platform": "^0.10", - "symfony/ai-voyage-platform": "^0.10", - "symfony/ai-weaviate-store": "^0.10", + "symfony/ai-agent": "^0.11", + "symfony/ai-ai-ml-api-platform": "^0.11", + "symfony/ai-albert-platform": "^0.11", + "symfony/ai-amazee-ai-platform": "^0.11", + "symfony/ai-anthropic-platform": "^0.11", + "symfony/ai-azure-platform": "^0.11", + "symfony/ai-azure-search-store": "^0.11", + "symfony/ai-bedrock-platform": "^0.11", + "symfony/ai-cache-message-store": "^0.11", + "symfony/ai-cache-platform": "^0.11", + "symfony/ai-cache-store": "^0.11", + "symfony/ai-cartesia-platform": "^0.11", + "symfony/ai-cerebras-platform": "^0.11", + "symfony/ai-chat": "^0.11", + "symfony/ai-chroma-db-store": "^0.11", + "symfony/ai-click-house-store": "^0.11", + "symfony/ai-cloudflare-message-store": "^0.11", + "symfony/ai-cloudflare-store": "^0.11", + "symfony/ai-cohere-platform": "^0.11", + "symfony/ai-decart-platform": "^0.11", + "symfony/ai-deep-seek-platform": "^0.11", + "symfony/ai-deepgram-platform": "^0.11", + "symfony/ai-docker-model-runner-platform": "^0.11", + "symfony/ai-doctrine-message-store": "^0.11", + "symfony/ai-elasticsearch-store": "^0.11", + "symfony/ai-eleven-labs-platform": "^0.11", + "symfony/ai-failover-platform": "^0.11", + "symfony/ai-gemini-platform": "^0.11", + "symfony/ai-generic-platform": "^0.11", + "symfony/ai-hugging-face-platform": "^0.11", + "symfony/ai-lm-studio-platform": "^0.11", + "symfony/ai-manticore-search-store": "^0.11", + "symfony/ai-maria-db-store": "^0.11", + "symfony/ai-meilisearch-message-store": "^0.11", + "symfony/ai-meilisearch-store": "^0.11", + "symfony/ai-meta-platform": "^0.11", + "symfony/ai-milvus-store": "^0.11", + "symfony/ai-mini-max-platform": "^0.11", + "symfony/ai-mistral-platform": "^0.11", + "symfony/ai-mongo-db-message-store": "^0.11", + "symfony/ai-mongo-db-store": "^0.11", + "symfony/ai-neo4j-store": "^0.11", + "symfony/ai-ollama-platform": "^0.11", + "symfony/ai-open-ai-platform": "^0.11", + "symfony/ai-open-responses-platform": "^0.11", + "symfony/ai-open-router-platform": "^0.11", + "symfony/ai-open-search-store": "^0.11", + "symfony/ai-ovh-platform": "^0.11", + "symfony/ai-perplexity-platform": "^0.11", + "symfony/ai-pinecone-store": "^0.11", + "symfony/ai-pogocache-message-store": "^0.11", + "symfony/ai-postgres-store": "^0.11", + "symfony/ai-qdrant-store": "^0.11", + "symfony/ai-redis-message-store": "^0.11", + "symfony/ai-redis-store": "^0.11", + "symfony/ai-replicate-platform": "^0.11", + "symfony/ai-s3vectors-store": "^0.11", + "symfony/ai-scaleway-platform": "^0.11", + "symfony/ai-session-message-store": "^0.11", + "symfony/ai-sqlite-store": "^0.11", + "symfony/ai-store": "^0.11", + "symfony/ai-supabase-store": "^0.11", + "symfony/ai-surreal-db-message-store": "^0.11", + "symfony/ai-surreal-db-store": "^0.11", + "symfony/ai-transformers-php-platform": "^0.11", + "symfony/ai-typesense-store": "^0.11", + "symfony/ai-vektor-store": "^0.11", + "symfony/ai-vertex-ai-platform": "^0.11", + "symfony/ai-voyage-platform": "^0.11", + "symfony/ai-weaviate-store": "^0.11", "symfony/expression-language": "^7.3|^8.0", "symfony/security-core": "^7.3|^8.0", "symfony/translation": "^7.3|^8.0", @@ -10867,7 +10871,7 @@ ], "description": "Integration bundle for Symfony AI components", "support": { - "source": "https://github.com/symfony/ai-bundle/tree/v0.10.0" + "source": "https://github.com/symfony/ai-bundle/tree/v0.11.1" }, "funding": [ { @@ -10887,25 +10891,25 @@ "type": "tidelift" } ], - "time": "2026-06-16T07:10:08+00:00" + "time": "2026-07-16T11:42:34+00:00" }, { "name": "symfony/ai-generic-platform", - "version": "v0.10.0", + "version": "v0.11.0", "source": { "type": "git", "url": "https://github.com/symfony/ai-generic-platform.git", - "reference": "a099d8a35ea9f7254a159b9c17bc7a4927f9ebb2" + "reference": "b56ea991a4232ea16204960ab8dc8a1da44cb320" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ai-generic-platform/zipball/a099d8a35ea9f7254a159b9c17bc7a4927f9ebb2", - "reference": "a099d8a35ea9f7254a159b9c17bc7a4927f9ebb2", + "url": "https://api.github.com/repos/symfony/ai-generic-platform/zipball/b56ea991a4232ea16204960ab8dc8a1da44cb320", + "reference": "b56ea991a4232ea16204960ab8dc8a1da44cb320", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/ai-platform": "^0.10", + "symfony/ai-platform": "^0.11", "symfony/http-client": "^7.3|^8.0" }, "require-dev": { @@ -10952,7 +10956,7 @@ "platform" ], "support": { - "source": "https://github.com/symfony/ai-generic-platform/tree/v0.10.0" + "source": "https://github.com/symfony/ai-generic-platform/tree/v0.11.0" }, "funding": [ { @@ -10972,26 +10976,26 @@ "type": "tidelift" } ], - "time": "2026-06-16T07:10:08+00:00" + "time": "2026-07-15T00:58:20+00:00" }, { "name": "symfony/ai-lm-studio-platform", - "version": "v0.10.0", + "version": "v0.11.0", "source": { "type": "git", "url": "https://github.com/symfony/ai-lm-studio-platform.git", - "reference": "b6c4a3a5bedf2fd613953447602945c104e75a30" + "reference": "b9725715569184ed80ebecb01a17893660cc550b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ai-lm-studio-platform/zipball/b6c4a3a5bedf2fd613953447602945c104e75a30", - "reference": "b6c4a3a5bedf2fd613953447602945c104e75a30", + "url": "https://api.github.com/repos/symfony/ai-lm-studio-platform/zipball/b9725715569184ed80ebecb01a17893660cc550b", + "reference": "b9725715569184ed80ebecb01a17893660cc550b", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/ai-generic-platform": "^0.10", - "symfony/ai-platform": "^0.10", + "symfony/ai-generic-platform": "^0.11", + "symfony/ai-platform": "^0.11", "symfony/http-client": "^7.3|^8.0" }, "require-dev": { @@ -11039,7 +11043,7 @@ "platform" ], "support": { - "source": "https://github.com/symfony/ai-lm-studio-platform/tree/v0.10.0" + "source": "https://github.com/symfony/ai-lm-studio-platform/tree/v0.11.0" }, "funding": [ { @@ -11059,25 +11063,25 @@ "type": "tidelift" } ], - "time": "2026-06-15T22:48:31+00:00" + "time": "2026-07-15T00:58:20+00:00" }, { "name": "symfony/ai-ollama-platform", - "version": "v0.10.0", + "version": "v0.11.0", "source": { "type": "git", "url": "https://github.com/symfony/ai-ollama-platform.git", - "reference": "1542f19b78362cafc034c219f5bc9a5a239a0ffb" + "reference": "b42c359a7f414053d1b30f70e6508528853a8704" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ai-ollama-platform/zipball/1542f19b78362cafc034c219f5bc9a5a239a0ffb", - "reference": "1542f19b78362cafc034c219f5bc9a5a239a0ffb", + "url": "https://api.github.com/repos/symfony/ai-ollama-platform/zipball/b42c359a7f414053d1b30f70e6508528853a8704", + "reference": "b42c359a7f414053d1b30f70e6508528853a8704", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/ai-platform": "^0.10", + "symfony/ai-platform": "^0.11", "symfony/http-client": "^7.3|^8.0" }, "require-dev": { @@ -11125,7 +11129,7 @@ "platform" ], "support": { - "source": "https://github.com/symfony/ai-ollama-platform/tree/v0.10.0" + "source": "https://github.com/symfony/ai-ollama-platform/tree/v0.11.0" }, "funding": [ { @@ -11145,26 +11149,26 @@ "type": "tidelift" } ], - "time": "2026-06-15T22:48:31+00:00" + "time": "2026-07-15T00:58:20+00:00" }, { "name": "symfony/ai-open-router-platform", - "version": "v0.10.0", + "version": "v0.11.0", "source": { "type": "git", "url": "https://github.com/symfony/ai-open-router-platform.git", - "reference": "cfadb7858fca98b28b968b032b1bbeb5c9cc985b" + "reference": "5ad625058227bf628ca0f504ba035599a1e8c91d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ai-open-router-platform/zipball/cfadb7858fca98b28b968b032b1bbeb5c9cc985b", - "reference": "cfadb7858fca98b28b968b032b1bbeb5c9cc985b", + "url": "https://api.github.com/repos/symfony/ai-open-router-platform/zipball/5ad625058227bf628ca0f504ba035599a1e8c91d", + "reference": "5ad625058227bf628ca0f504ba035599a1e8c91d", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/ai-generic-platform": "^0.10", - "symfony/ai-platform": "^0.10", + "symfony/ai-generic-platform": "^0.11", + "symfony/ai-platform": "^0.11", "symfony/http-client": "^7.3|^8.0" }, "require-dev": { @@ -11212,7 +11216,7 @@ "platform" ], "support": { - "source": "https://github.com/symfony/ai-open-router-platform/tree/v0.10.0" + "source": "https://github.com/symfony/ai-open-router-platform/tree/v0.11.0" }, "funding": [ { @@ -11232,20 +11236,20 @@ "type": "tidelift" } ], - "time": "2026-06-16T08:09:36+00:00" + "time": "2026-07-15T00:58:20+00:00" }, { "name": "symfony/ai-platform", - "version": "v0.10.0", + "version": "v0.11.0", "source": { "type": "git", "url": "https://github.com/symfony/ai-platform.git", - "reference": "8100507aa9c46f3ad56d0272e8e46b558f451052" + "reference": "dce4285eaf891cbdcb9526e576e3df6f8220fd1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ai-platform/zipball/8100507aa9c46f3ad56d0272e8e46b558f451052", - "reference": "8100507aa9c46f3ad56d0272e8e46b558f451052", + "url": "https://api.github.com/repos/symfony/ai-platform/zipball/dce4285eaf891cbdcb9526e576e3df6f8220fd1d", + "reference": "dce4285eaf891cbdcb9526e576e3df6f8220fd1d", "shasum": "" }, "require": { @@ -11344,7 +11348,7 @@ "voyage" ], "support": { - "source": "https://github.com/symfony/ai-platform/tree/v0.10.0" + "source": "https://github.com/symfony/ai-platform/tree/v0.11.0" }, "funding": [ { @@ -11364,7 +11368,7 @@ "type": "tidelift" } ], - "time": "2026-06-16T06:39:24+00:00" + "time": "2026-07-15T01:10:14+00:00" }, { "name": "symfony/apache-pack", @@ -17559,16 +17563,16 @@ }, { "name": "symplify/easy-coding-standard", - "version": "13.2.3", + "version": "13.2.9", "source": { "type": "git", "url": "https://github.com/ecsphp/ecs.git", - "reference": "94f56bce0420d4e837a85c4b2c6501293a5974eb" + "reference": "f4730d9fde79bf27993e31d9fd7f9df00da0d1aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ecsphp/ecs/zipball/94f56bce0420d4e837a85c4b2c6501293a5974eb", - "reference": "94f56bce0420d4e837a85c4b2c6501293a5974eb", + "url": "https://api.github.com/repos/ecsphp/ecs/zipball/f4730d9fde79bf27993e31d9fd7f9df00da0d1aa", + "reference": "f4730d9fde79bf27993e31d9fd7f9df00da0d1aa", "shasum": "" }, "require": { @@ -17603,31 +17607,29 @@ "static analysis" ], "support": { - "source": "https://github.com/ecsphp/ecs/tree/13.2.3" + "source": "https://github.com/ecsphp/ecs/tree/13.2.9" }, - "time": "2026-06-15T22:08:41+00:00" + "time": "2026-07-17T15:05:23+00:00" }, { "name": "tecnickcom/tc-lib-barcode", - "version": "2.11.1", + "version": "2.12.0", "source": { "type": "git", "url": "https://github.com/tecnickcom/tc-lib-barcode.git", - "reference": "69238f94a1e46332ebc057fddf5bba2f776d56f6" + "reference": "0614e905c903600c2491d3a90174a9a87a2fab9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/tc-lib-barcode/zipball/69238f94a1e46332ebc057fddf5bba2f776d56f6", - "reference": "69238f94a1e46332ebc057fddf5bba2f776d56f6", + "url": "https://api.github.com/repos/tecnickcom/tc-lib-barcode/zipball/0614e905c903600c2491d3a90174a9a87a2fab9b", + "reference": "0614e905c903600c2491d3a90174a9a87a2fab9b", "shasum": "" }, "require": { "ext-bcmath": "*", - "ext-date": "*", "ext-gd": "*", - "ext-pcre": "*", "php": ">=8.2", - "tecnickcom/tc-lib-color": "^2.12" + "tecnickcom/tc-lib-color": "^2.13" }, "require-dev": { "pdepend/pdepend": "^2.16", @@ -17703,24 +17705,23 @@ "type": "github" } ], - "time": "2026-06-26T10:37:56+00:00" + "time": "2026-07-17T19:05:47+00:00" }, { "name": "tecnickcom/tc-lib-color", - "version": "2.12.2", + "version": "2.13.1", "source": { "type": "git", "url": "https://github.com/tecnickcom/tc-lib-color.git", - "reference": "ba7d43d9bb06946c9717a4e3c6aa73346266cdbf" + "reference": "38303066464928bbcfe8e54d006c828b02e4c62f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/tc-lib-color/zipball/ba7d43d9bb06946c9717a4e3c6aa73346266cdbf", - "reference": "ba7d43d9bb06946c9717a4e3c6aa73346266cdbf", + "url": "https://api.github.com/repos/tecnickcom/tc-lib-color/zipball/38303066464928bbcfe8e54d006c828b02e4c62f", + "reference": "38303066464928bbcfe8e54d006c828b02e4c62f", "shasum": "" }, "require": { - "ext-pcre": "*", "php": ">=8.2" }, "require-dev": { @@ -17770,7 +17771,7 @@ "type": "github" } ], - "time": "2026-06-26T10:26:00+00:00" + "time": "2026-07-17T19:02:53+00:00" }, { "name": "thecodingmachine/safe", @@ -18163,16 +18164,16 @@ }, { "name": "twig/html-extra", - "version": "v3.24.0", + "version": "v3.28.0", "source": { "type": "git", "url": "https://github.com/twigphp/html-extra.git", - "reference": "313900fb98b371b006a55b1a29241a192634be13" + "reference": "760893ed7bdd0a381e4e00004c6f6e26ad3881d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/html-extra/zipball/313900fb98b371b006a55b1a29241a192634be13", - "reference": "313900fb98b371b006a55b1a29241a192634be13", + "url": "https://api.github.com/repos/twigphp/html-extra/zipball/760893ed7bdd0a381e4e00004c6f6e26ad3881d7", + "reference": "760893ed7bdd0a381e4e00004c6f6e26ad3881d7", "shasum": "" }, "require": { @@ -18215,7 +18216,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/html-extra/tree/v3.24.0" + "source": "https://github.com/twigphp/html-extra/tree/v3.28.0" }, "funding": [ { @@ -18227,7 +18228,7 @@ "type": "tidelift" } ], - "time": "2026-03-17T07:24:08+00:00" + "time": "2026-06-25T06:50:01+00:00" }, { "name": "twig/inky-extra", @@ -18365,16 +18366,16 @@ }, { "name": "twig/markdown-extra", - "version": "v3.26.0", + "version": "v3.28.0", "source": { "type": "git", "url": "https://github.com/twigphp/markdown-extra.git", - "reference": "e3f3fd0836eb6c39457da22c8a76abaac62692b9" + "reference": "5f7b27e41a382fc988fffa6e588d8f9d55b9d896" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/e3f3fd0836eb6c39457da22c8a76abaac62692b9", - "reference": "e3f3fd0836eb6c39457da22c8a76abaac62692b9", + "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/5f7b27e41a382fc988fffa6e588d8f9d55b9d896", + "reference": "5f7b27e41a382fc988fffa6e588d8f9d55b9d896", "shasum": "" }, "require": { @@ -18421,7 +18422,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/markdown-extra/tree/v3.26.0" + "source": "https://github.com/twigphp/markdown-extra/tree/v3.28.0" }, "funding": [ { @@ -18433,7 +18434,7 @@ "type": "tidelift" } ], - "time": "2026-05-15T13:14:02+00:00" + "time": "2026-06-05T19:47:22+00:00" }, { "name": "twig/string-extra", @@ -18504,16 +18505,16 @@ }, { "name": "twig/twig", - "version": "v3.27.1", + "version": "v3.28.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "ae2071bffb38f04847fc0864d730c94b9cb8ab74" + "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/ae2071bffb38f04847fc0864d730c94b9cb8ab74", - "reference": "ae2071bffb38f04847fc0864d730c94b9cb8ab74", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", + "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", "shasum": "" }, "require": { @@ -18568,7 +18569,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.27.1" + "source": "https://github.com/twigphp/Twig/tree/v3.28.0" }, "funding": [ { @@ -18580,7 +18581,7 @@ "type": "tidelift" } ], - "time": "2026-05-30T17:09:26+00:00" + "time": "2026-07-03T20:44:34+00:00" }, { "name": "ua-parser/uap-php", @@ -18647,20 +18648,20 @@ }, { "name": "web-auth/cose-lib", - "version": "4.5.2", + "version": "4.6.0", "source": { "type": "git", "url": "https://github.com/web-auth/cose-lib.git", - "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d" + "reference": "3afe04df137baf97c5c3e28c5ee6f05536405148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/5b38660f90070a8e45f3dbc9528ade3b608dd77d", - "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d", + "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/3afe04df137baf97c5c3e28c5ee6f05536405148", + "reference": "3afe04df137baf97c5c3e28c5ee6f05536405148", "shasum": "" }, "require": { - "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18", "ext-json": "*", "ext-openssl": "*", "php": ">=8.1", @@ -18702,7 +18703,7 @@ ], "support": { "issues": "https://github.com/web-auth/cose-lib/issues", - "source": "https://github.com/web-auth/cose-lib/tree/4.5.2" + "source": "https://github.com/web-auth/cose-lib/tree/4.6.0" }, "funding": [ { @@ -18714,7 +18715,7 @@ "type": "patreon" } ], - "time": "2026-05-03T09:49:50+00:00" + "time": "2026-07-16T10:19:49+00:00" }, { "name": "web-auth/webauthn-lib", @@ -19362,20 +19363,19 @@ }, { "name": "nikic/php-parser", - "version": "v5.7.0", + "version": "v5.8.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-json": "*", "ext-tokenizer": "*", "php": ">=7.4" @@ -19414,9 +19414,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" }, - "time": "2025-12-06T11:56:16+00:00" + "time": "2026-07-04T14:30:18+00:00" }, { "name": "phar-io/manifest", @@ -19586,11 +19586,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.2.2", + "version": "2.2.5", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e5cc34d491a90e79c216d824f60fe21fd4d93bd6", - "reference": "e5cc34d491a90e79c216d824f60fe21fd4d93bd6", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/909c1e5fef7989ac0d0c1c5c42e32a5c4f6198a0", + "reference": "909c1e5fef7989ac0d0c1c5c42e32a5c4f6198a0", "shasum": "" }, "require": { @@ -19646,20 +19646,20 @@ "type": "github" } ], - "time": "2026-06-05T09:00:01+00:00" + "time": "2026-07-05T06:31:06+00:00" }, { "name": "phpstan/phpstan-doctrine", - "version": "2.0.27", + "version": "2.0.28", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-doctrine.git", - "reference": "39b4ca45a07cdd6366eeefa2f7a993cddf3b9f9f" + "reference": "b4623954d5ffee6311e4ddbaef65c074ae0f781a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/39b4ca45a07cdd6366eeefa2f7a993cddf3b9f9f", - "reference": "39b4ca45a07cdd6366eeefa2f7a993cddf3b9f9f", + "url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/b4623954d5ffee6311e4ddbaef65c074ae0f781a", + "reference": "b4623954d5ffee6311e4ddbaef65c074ae0f781a", "shasum": "" }, "require": { @@ -19721,33 +19721,34 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan-doctrine/issues", - "source": "https://github.com/phpstan/phpstan-doctrine/tree/2.0.27" + "source": "https://github.com/phpstan/phpstan-doctrine/tree/2.0.28" }, - "time": "2026-06-10T10:39:35+00:00" + "time": "2026-07-13T08:43:43+00:00" }, { "name": "phpstan/phpstan-strict-rules", - "version": "2.0.11", + "version": "2.0.12", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-strict-rules.git", - "reference": "9b000a578b85b32945b358b172c7b20e91189024" + "reference": "2bc5ae19ae965663b62ac907ee6342c3903ec93b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/9b000a578b85b32945b358b172c7b20e91189024", - "reference": "9b000a578b85b32945b358b172c7b20e91189024", + "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/2bc5ae19ae965663b62ac907ee6342c3903ec93b", + "reference": "2bc5ae19ae965663b62ac907ee6342c3903ec93b", "shasum": "" }, "require": { "php": "^7.4 || ^8.0", - "phpstan/phpstan": "^2.1.39" + "phpstan/phpstan": "^2.1.52" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/phpstan-deprecation-rules": "^2.0", "phpstan/phpstan-phpunit": "^2.0", - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^9.6", + "shipmonk/name-collision-detector": "^2.1" }, "type": "phpstan-extension", "extra": { @@ -19772,9 +19773,9 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan-strict-rules/issues", - "source": "https://github.com/phpstan/phpstan-strict-rules/tree/2.0.11" + "source": "https://github.com/phpstan/phpstan-strict-rules/tree/2.0.12" }, - "time": "2026-05-02T06:54:10+00:00" + "time": "2026-07-19T07:24:06+00:00" }, { "name": "phpstan/phpstan-symfony", @@ -20199,24 +20200,24 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.55", + "version": "11.5.56", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00" + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/adc7262fccc12de2b30f12a8aa0b33775d814f00", - "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", "shasum": "" }, "require": { "ext-dom": "*", + "ext-filter": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", - "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", @@ -20281,44 +20282,28 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.55" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" + "url": "https://phpunit.de/sponsoring.html", + "type": "other" } ], - "time": "2026-02-18T12:37:06+00:00" + "time": "2026-07-06T14:52:39+00:00" }, { "name": "rector/rector", - "version": "2.5.2", + "version": "2.5.7", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "49ff6339174bdbdf50b0b35ecbcff14a05ac9e24" + "reference": "ba22f8c087848278fed6b4910d4cf1108096d8d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/49ff6339174bdbdf50b0b35ecbcff14a05ac9e24", - "reference": "49ff6339174bdbdf50b0b35ecbcff14a05ac9e24", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/ba22f8c087848278fed6b4910d4cf1108096d8d3", + "reference": "ba22f8c087848278fed6b4910d4cf1108096d8d3", "shasum": "" }, "require": { @@ -20357,7 +20342,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.5.2" + "source": "https://github.com/rectorphp/rector/tree/2.5.7" }, "funding": [ { @@ -20365,7 +20350,7 @@ "type": "github" } ], - "time": "2026-06-22T11:39:33+00:00" + "time": "2026-07-13T15:24:18+00:00" }, { "name": "roave/security-advisories", @@ -20373,18 +20358,19 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "36ba91e82e1b493faef2c13277d6bd2669ea9f31" + "reference": "4fac0729c45b6dba8d6171a94eccb1d5d9514bf9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/36ba91e82e1b493faef2c13277d6bd2669ea9f31", - "reference": "36ba91e82e1b493faef2c13277d6bd2669ea9f31", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/4fac0729c45b6dba8d6171a94eccb1d5d9514bf9", + "reference": "4fac0729c45b6dba8d6171a94eccb1d5d9514bf9", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", "adaptcms/adaptcms": "<=1.3", - "admidio/admidio": "<=5.0.9", + "adawolfa/isdoc": "<1.4.3|>=1.5,<1.5.1|>=1.6,<1.6.1", + "admidio/admidio": "<=5.0.11", "adodb/adodb-php": "<=5.22.9", "aheinze/cockpit": "<2.2", "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.07.2", @@ -20418,8 +20404,10 @@ "aoe/restler": "<1.7.1", "apache-solr-for-typo3/solr": "<2.8.3", "apereo/phpcas": "<1.6", - "api-platform/core": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5", + "api-platform/core": "<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8", "api-platform/graphql": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5", + "api-platform/hal": ">=4,<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8", + "api-platform/json-api": ">=4,<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8", "appwrite/server-ce": "<=1.2.1", "arc/web": "<3", "area17/twill": "<1.2.5|>=2,<2.5.3", @@ -20432,7 +20420,7 @@ "austintoddj/canvas": "<=3.4.2", "auth0/auth0-php": ">=3.3,<=8.18", "auth0/login": "<=7.20", - "auth0/symfony": "<=5.7", + "auth0/symfony": "<=5.8", "auth0/wordpress": "<=5.5", "automad/automad": "<=2.0.0.0-beta27", "automattic/jetpack": "<9.8", @@ -20502,7 +20490,7 @@ "clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3", "co-stack/fal_sftp": "<0.2.6", "cockpit-hq/cockpit": "<=2.14", - "code16/sharp": "<9.22", + "code16/sharp": "<9.22.3", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<3.1.10", "codeigniter4/framework": "<4.7.2", @@ -20513,13 +20501,13 @@ "commerceteam/commerce": ">=0.9.6,<0.9.9", "components/jquery": ">=1.0.3,<3.5", "composer/composer": "<2.2.28|>=2.3,<2.9.8", - "concrete5/concrete5": "<9.5.1", + "concrete5/concrete5": "<9.5.2", "concrete5/core": "<8.5.8|>=9,<9.1", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4", - "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.13.56|>=5,<5.3.38|>=5.4.0.0-RC1-dev,<5.6.1", + "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<5.3.48|>=5.4,<5.7.9", "contao/core": "<3.5.39", - "contao/core-bundle": "<4.13.57|>=5,<5.3.42|>=5.4,<5.6.5", + "contao/core-bundle": "<5.3.48|>=5.4,<5.7.9", "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8", "contao/managed-edition": "<=1.5", "coreshop/core-shop": "<4.1.9|==5", @@ -20617,7 +20605,7 @@ "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.3.1", "ecodev/newsletter": "<=4", "ectouch/ectouch": "<=2.7.2", - "egroupware/egroupware": "<23.1.20260113|>=26.0.20251208,<26.0.20260113", + "egroupware/egroupware": "<23.1.20260601|>=26.0.20251208,<26.5.20260507", "elefant/cms": "<2.0.7", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "elijaa/phpmemcacheadmin": "<=1.3", @@ -20652,7 +20640,7 @@ "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", "ezyang/htmlpurifier": "<=4.2", "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", - "facturascripts/facturascripts": "<=2025.92|>=2026,<=2026.1", + "facturascripts/facturascripts": "<=2026.2", "fastly/magento2": "<1.2.26", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=2.1.1", @@ -20812,7 +20800,7 @@ "kelvinmo/simplexrd": "<3.1.1", "kevinpapst/kimai2": "<1.16.7", "khodakhah/nodcms": "<=3.4.1", - "kimai/kimai": "<=2.55", + "kimai/kimai": "<2.59", "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", "klaviyo/magento2-extension": ">=1,<3", "knplabs/knp-snappy": "<=1.7", @@ -20871,13 +20859,13 @@ "maikuolan/phpmussel": ">=1,<1.6", "mainwp/mainwp": "<=4.4.3.3", "manogi/nova-tiptap": "<=3.2.6", - "mantisbt/mantisbt": "<2.28.2", + "mantisbt/mantisbt": "<=2.28.3", "marcwillmann/turn": "<0.3.3", "markhuot/craftql": "<=1.3.7", "marshmallow/nova-tiptap": "<5.7", "matomo/matomo": "<1.11", "matyhtf/framework": "<3.0.6", - "mautic/core": "<5.2.10|>=6,<6.0.8|>=7.0.0.0-alpha,<7.0.1", + "mautic/core": "<5.2.11|>=6,<6.0.9|>=7,<7.1.2", "mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1", "mautic/grapes-js-builder-bundle": ">=4,<4.4.18|>=5,<5.2.9|>=6,<6.0.7", "maximebf/debugbar": "<1.19", @@ -20887,6 +20875,7 @@ "mediawiki/cargo": "<3.8.3", "mediawiki/core": "<1.39.5|==1.40", "mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2", + "mediawiki/maps": "<12.1.3", "mediawiki/matomo": "<2.4.3", "mediawiki/semantic-media-wiki": "<4.0.2", "mehrwert/phpmyadmin": "<3.2", @@ -20948,11 +20937,11 @@ "nilsteampassnet/teampass": "<3.1.3.1-dev", "nitsan/ns-backup": "<13.0.1", "nonfiction/nterchange": "<4.1.1", - "notrinos/notrinos-erp": "<=0.7", + "notrinos/notrinos-erp": "<=1", "noumo/easyii": "<=0.9", "novaksolutions/infusionsoft-php-sdk": "<1", "novosga/novosga": "<=2.2.12", - "nukeviet/nukeviet": "<4.5.02", + "nukeviet/nukeviet": "<4.6.00", "nyholm/psr7": "<1.6.1", "nystudio107/craft-seomatic": "<3.4.12", "nzedb/nzedb": "<0.8", @@ -20990,7 +20979,7 @@ "paragonie/random_compat": "<2", "paragonie/sodium_compat": "<1.24|>=2,<2.5", "passbolt/passbolt_api": "<4.6.2", - "paymenter/paymenter": "<1.5", + "paymenter/paymenter": "<=1.5.4", "paypal/adaptivepayments-sdk-php": "<=3.9.2", "paypal/invoice-sdk-php": "<=3.9", "paypal/merchant-sdk-php": "<3.12", @@ -21003,8 +20992,8 @@ "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "ph7software/ph7builder": "<=17.9.1", - "phanan/koel": "<=9.3.4", - "pheditor/pheditor": ">=2.0.1,<=2.0.3", + "phanan/koel": "<=9.7", + "pheditor/pheditor": "<2.0.6", "phenx/php-svg-lib": "<0.5.2", "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5", "php-mod/curl": "<2.3.2", @@ -21031,14 +21020,14 @@ "phpxmlrpc/phpxmlrpc": "<4.9.2", "phraseanet/phraseanet": "==4.0.3", "pi/pi": "<=2.5", - "pimcore/admin-ui-classic-bundle": "<=2.3.5", + "pimcore/admin-ui-classic-bundle": "<1.7.18|>=2.0.0.0-RC1-dev,<=2.3.5", "pimcore/customer-management-framework-bundle": "<4.2.1", "pimcore/data-hub": "<1.2.4", "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3", "pimcore/demo": "<10.3", "pimcore/ecommerce-framework-bundle": "<1.0.10", "pimcore/perspective-editor": "<1.5.1", - "pimcore/pimcore": "<=12.3.8", + "pimcore/pimcore": "<=12.3.8|>=2026.1,<2026.1.3", "pimcore/web2print-tools-bundle": "<=5.2.1|>=6.0.0.0-RC1-dev,<=6.1", "piwik/piwik": "<1.11", "pixelfed/pixelfed": "<0.12.5", @@ -21059,7 +21048,7 @@ "prestashop/ps_checkout": "<5.3", "prestashop/ps_contactinfo": "<=3.3.2", "prestashop/ps_emailsubscription": "<2.6.1", - "prestashop/ps_facetedsearch": "<3.4.1", + "prestashop/ps_facetedsearch": "<4.0.4", "prestashop/ps_linklist": "<3.1", "privatebin/privatebin": "<1.4|>=1.5,<1.7.4|>=1.7.7,<2.0.3", "processwire/processwire": "<=3.0.255", @@ -21143,9 +21132,9 @@ "silverstripe/versioned-admin": ">=1,<1.11.1", "simogeo/filemanager": "<=2.5", "simple-updates/phpwhois": "<=1", - "simplesamlphp/saml2": "<=4.16.15|>=5.0.0.0-alpha1,<=5.0.0.0-alpha19", - "simplesamlphp/saml2-legacy": "<=4.16.15", - "simplesamlphp/simplesamlphp": "<1.18.6", + "simplesamlphp/saml2": "<=4.20.2|>=5,<5.0.6|>=6,<6.2.1", + "simplesamlphp/saml2-legacy": "<=4.20.2", + "simplesamlphp/simplesamlphp": "<=2.4.6|>=2.5,<=2.5.1", "simplesamlphp/simplesamlphp-module-casserver": "<=7.0.2", "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", "simplesamlphp/simplesamlphp-module-openid": "<1", @@ -21169,6 +21158,7 @@ "soosyze/soosyze": "<=2", "spatie/browsershot": "<5.0.5", "spatie/image-optimizer": "<1.7.3", + "spatie/laravel-medialibrary": "<11.23", "spatie/schema-org": ">=3.23.1,<3.23.2|>=4,<4.0.2", "spencer14420/sp-php-email-handler": "<1", "spipu/html2pdf": "<5.2.8", @@ -21201,7 +21191,7 @@ "sylius/grid-bundle": "<1.10.1", "sylius/paypal-plugin": "<1.6.2|>=1.7,<1.7.2|>=2,<2.0.2", "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", - "sylius/sylius": "<1.9.12|>=1.10,<1.10.16|>=1.11,<1.11.17|>=1.12,<=1.12.22|>=1.13,<=1.13.14|>=1.14,<=1.14.17|>=2,<=2.0.15|>=2.1,<=2.1.11|>=2.2,<=2.2.2", + "sylius/sylius": "<1.9.12|>=1.10,<1.10.16|>=1.11,<1.11.17|>=1.12,<=1.12.22|>=1.13,<=1.13.14|>=1.14,<=1.14.17|>=2,<2.0.18|>=2.1,<2.1.15|>=2.2,<2.2.6", "symbiote/silverstripe-advancedworkflow": "<6.4.5|>=7,<7.1.3|>=7.2,<7.2.1", "symbiote/silverstripe-multivaluefield": ">=3,<3.1", "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", @@ -21267,7 +21257,7 @@ "tecnickcom/tcpdf": "<6.8", "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", - "thelia/thelia": ">=2.1,<2.1.3", + "thelia/thelia": ">=2.0.0.0-beta1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", "thinkcmf/thinkcmf": "<6.0.8", "thorsten/phpmyfaq": "<4.1.4", @@ -21292,7 +21282,7 @@ "twig/intl-extra": "<3.26", "twig/markdown-extra": "<3.26", "twig/twig": "<3.27", - "typicms/core": "<16.1.7", + "typicms/core": "<12.0.5|>=13,<13.0.9|>=14,<14.0.27|>=15,<15.0.29|>=16,<16.1.7", "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", "typo3/cms-backend": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", "typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", @@ -21303,8 +21293,8 @@ "typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", "typo3/cms-felogin": ">=4.2,<4.2.3", "typo3/cms-filelist": ">=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", - "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1", - "typo3/cms-form": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", + "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1|>=8,<8.7.23|>=9,<9.5.4", + "typo3/cms-form": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.5", "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5", "typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<13.4.31|>=14,<14.3.3", "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8|==13.4.2", @@ -21334,7 +21324,7 @@ "uvdesk/core-framework": "<=1.1.1", "vanilla/safecurl": "<0.9.2", "verbb/comments": "<1.5.5", - "verbb/formie": "<2.2.21|>=3,<3.1.26", + "verbb/formie": "<3.1.28", "verbb/image-resizer": "<2.0.9", "verbb/knock-knock": "<1.2.8", "verot/class.upload.php": "<=2.1.6", @@ -21349,11 +21339,12 @@ "wanglelecc/laracms": "<=1.0.3", "wapplersystems/a21glossary": "<=0.4.10", "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9|>=5.2,<5.2.4|>=5.3,<5.3.1", - "web-auth/webauthn-lib": ">=4.5,<4.9|>=5.2,<5.2.4", + "web-auth/webauthn-lib": ">=4.5,<5.3.5", "web-auth/webauthn-symfony-bundle": "<5.3.4", "web-feet/coastercms": "==5.5", - "web-token/jwt-experimental": "<=4.1.6", - "web-token/jwt-framework": "<=4.2.99", + "web-token/jwt-bundle": "<3.4.10|>=4,<4.0.7|>=4.1,<4.1.7", + "web-token/jwt-experimental": "<4.1.7", + "web-token/jwt-framework": "<4.1.7", "web-token/jwt-library": "<3.4.10|>=4,<4.0.7|>=4.1,<4.1.7", "web-tp3/wec_map": "<3.0.3", "webbuilders-group/silverstripe-kapost-bridge": "<0.4", @@ -21372,6 +21363,7 @@ "winter/wn-system-module": "<1.2.4", "wintercms/winter": "<=1.2.3", "wireui/wireui": "<1.19.3|>=2,<2.1.3", + "wnx/laravel-backup-restore": "<=1.9.3", "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3", "wp-cli/wp-cli": ">=0.12,<2.5", "wp-graphql/wp-graphql": "<=1.14.5", @@ -21385,7 +21377,7 @@ "xpressengine/xpressengine": "<3.0.15", "yab/quarx": "<2.4.5", "yansongda/pay": "<=3.7.19", - "yeswiki/yeswiki": "<4.6.4", + "yeswiki/yeswiki": "<4.6.6", "yetiforce/yetiforce-crm": "<6.5", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -21480,7 +21472,7 @@ "type": "tidelift" } ], - "time": "2026-06-26T23:29:05+00:00" + "time": "2026-07-17T19:07:03+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/parameters.yaml b/config/parameters.yaml index e654a9b5..64c791c1 100644 --- a/config/parameters.yaml +++ b/config/parameters.yaml @@ -8,7 +8,7 @@ parameters: # This is used as workaround for places where we can not access the settings directly (like the 2FA application names) partdb.title: '%env(string:settings:customization:instanceName)%' # The title shown inside of Part-DB (e.g. in the navbar and on homepage) - partdb.locale_menu: ['en', 'de', 'it', 'fr', 'ru', 'ja', 'cs', 'da', 'zh', 'pl', 'hu'] # The languages that are shown in user drop down menu + partdb.locale_menu: ['en', 'de', 'it', 'fr', 'ru', 'ja', 'cs', 'da', 'zh', 'pl', 'hu', 'ko'] # The languages that are shown in user drop down menu partdb.default_uri: '%env(addSlash:string:DEFAULT_URI)%' # The default URI to use for the Part-DB instance (e.g. https://part-db.example.com/). This is used for generating links in emails diff --git a/config/reference.php b/config/reference.php index 461a3578..4d32f74b 100644 --- a/config/reference.php +++ b/config/reference.php @@ -2770,6 +2770,11 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * host?: string|Param, // Default: "https://api.decart.ai/v1" * http_client?: string|Param, // Service ID of the HTTP client to use // Default: "http_client" * }, + * deepgram?: array{ + * api_key?: string|Param, + * endpoint?: string|Param, // Deepgram REST API endpoint // Default: "https://api.deepgram.com/v1/" + * http_client?: string|Param, // Service ID of the HTTP client to use // Default: "http_client" + * }, * deepseek?: array{ * api_key?: string|Param, * http_client?: string|Param, // Service ID of the HTTP client to use // Default: "http_client" @@ -2810,6 +2815,11 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * host_url?: string|Param, // Default: "http://127.0.0.1:1234" * http_client?: string|Param, // Service ID of the HTTP client to use // Default: "http_client" * }, + * minimax?: array{ + * endpoint?: string|Param, // Default: "https://api.minimax.io/v1" + * api_key?: string|Param, + * http_client?: string|Param, // Service ID of the HTTP client to use // Default: "http_client" + * }, * mistral?: array{ * api_key?: string|Param, * http_client?: string|Param, // Service ID of the HTTP client to use // Default: "http_client" @@ -2931,6 +2941,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * account_id?: string|Param, * api_key?: string|Param, * index_name?: string|Param, + * http_client?: string|Param, // Default: "http_client" * dimensions?: int|Param, // Default: 1536 * metric?: string|Param, // Default: "cosine" * endpoint?: string|Param, @@ -3087,6 +3098,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * namespace?: string|Param, * database?: string|Param, * table?: string|Param, + * http_client?: string|Param, // Default: "http_client" * vector_field?: string|Param, // Default: "_vectors" * strategy?: string|Param, // Default: "cosine" * dimensions?: int|Param, // Default: 1536 @@ -3096,6 +3108,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * endpoint?: string|Param, * api_key?: string|Param, * collection?: string|Param, + * http_client?: string|Param, // Default: "http_client" * vector_field?: string|Param, // Default: "_vectors" * dimensions?: int|Param, // Default: 1536 * }>, diff --git a/docs/configuration.md b/docs/configuration.md index 2b97dec6..6bf59529 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -262,7 +262,15 @@ See the [information providers]({% link usage/information_provider_system.md %}) * `TRUSTED_PROXIES` (env only): Set the IP addresses (or IP blocks) of trusted reverse proxies here. This is needed to get correct IP information (see [here](https://symfony.com/doc/current/deployment/proxies.html) for more info). * `TRUSTED_HOSTS` (env only): To prevent `HTTP Host header attacks` you can set a regex containing all host names via which Part-DB - should be accessible. If accessed via the wrong hostname, an error will be shown. + should be accessible. If accessed via a hostname not matching the regex, an error page will be shown instead. By default this + is empty, meaning Part-DB accepts requests for any host name, which is not recommended for production use. + + For example, if Part-DB should only be reachable under `part-db.example.invalid`, set: + ``` + TRUSTED_HOSTS='^(part-db\.example\.invalid)$' + ``` + You can specify multiple host names separated by `|`, e.g. `^(localhost|part-db\.example\.invalid)$`. + Part-DB displays a warning on the homepage (visible to administrators only) as long as this value is not set. * `DEMO_MODE` (env only): Set Part-DB into demo mode, which forbids users to change their passwords and settings. Used for the demo instance. This should not be needed for normal installations. * `NO_URL_REWRITE_AVAILABLE` (allowed values `true` or `false`) (env only): Set this value to true, if your webserver does not diff --git a/docs/installation/installation_docker.md b/docs/installation/installation_docker.md index 97b1e662..0d5f8a8b 100644 --- a/docs/installation/installation_docker.md +++ b/docs/installation/installation_docker.md @@ -84,7 +84,11 @@ services: # If you use a reverse proxy in front of Part-DB, you must configure the trusted proxies IP addresses here (see reverse proxy documentation for more information): # - TRUSTED_PROXIES=127.0.0.0/8,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 - + + # To prevent HTTP Host header attacks, set this to a regex matching all host names Part-DB should be reachable under. + # By default (unset) Part-DB accepts requests for any host name, which is not recommended for production use. + # - TRUSTED_HOSTS=^(part-db\.example\.invalid)$ + # If you need to install additional composer packages (e.g., for specific mailer transports), you can specify them here: # The packages will be installed automatically when the container starts # - COMPOSER_EXTRA_PACKAGES=symfony/mailgun-mailer symfony/sendgrid-mailer @@ -96,7 +100,10 @@ services: ```bash openssl rand -hex 32 ``` -6. Inside the folder, run +6. Uncomment and set the `TRUSTED_HOSTS` variable to a regex matching the host name(s) Part-DB should be reachable under + (e.g. `^(part-db\.example\.invalid)$`), to prevent HTTP Host header attacks. See [Configuration]({% link configuration.md %}) + for more information. +7. Inside the folder, run ```bash docker-compose up -d @@ -107,7 +114,7 @@ openssl rand -hex 32 > Otherwise Part-DB console might use the wrong configuration to execute commands. -7. Create the initial database with +8. Create the initial database with ```bash docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate @@ -115,7 +122,7 @@ docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate and watch for the password output -8. Part-DB is available under `http://localhost:8080` and you can log in with the username `admin` and the password shown +9. Part-DB is available under `http://localhost:8080` and you can log in with the username `admin` and the password shown before The docker image uses a SQLite database and all data (database, uploads, and other media) is put into folders relative to @@ -171,7 +178,11 @@ services: # Override value if you want to show a given text on homepage. # When this is commented out the webUI can be used to configure the banner #- BANNER=This is a test banner
with a line break - + + # To prevent HTTP Host header attacks, set this to a regex matching all host names Part-DB should be reachable under. + # By default (unset) Part-DB accepts requests for any host name, which is not recommended for production use. + # - TRUSTED_HOSTS=^(part-db\.example\.invalid)$ + # If you need to install additional composer packages (e.g., for specific mailer transports), you can specify them here: # - COMPOSER_EXTRA_PACKAGES=symfony/mailgun-mailer symfony/sendgrid-mailer diff --git a/docs/installation/installation_guide-debian.md b/docs/installation/installation_guide-debian.md index 2915adbb..77ea8020 100644 --- a/docs/installation/installation_guide-debian.md +++ b/docs/installation/installation_guide-debian.md @@ -1,13 +1,13 @@ --- -title: Direct Installation on Debian 12 +title: Direct Installation on Debian 13 layout: default parent: Installation nav_order: 4 --- -# Part-DB installation guide for Debian 12 (Bookworm) +# Part-DB installation guide for Debian 13 (Trixie) -This guide shows you how to install Part-DB directly on Debian 12 using apache2 and SQLite. This guide should work with +This guide shows you how to install Part-DB directly on Debian 13 using apache2 and SQLite. This guide should work with recent Ubuntu and other Debian-based distributions with little to no changes. Depending on what you want to do, using the prebuilt docker images may be a better choice, as you don't need to install this many dependencies. See [here]({% link installation/installation_docker.md %}) for more information on the docker @@ -45,10 +45,10 @@ compatibility. Install PHP with required extensions and apache2: ```bash -sudo apt install apache2 php8.2 libapache2-mod-php8.2 \ - php8.2-opcache php8.2-curl php8.2-gd php8.2-mbstring \ - php8.2-xml php8.2-bcmath php8.2-intl php8.2-zip php8.2-xsl \ - php8.2-sqlite3 php8.2-mysql +sudo apt install apache2 php8.4 libapache2-mod-php8.4 \ + php8.4-opcache php8.4-curl php8.4-gd php8.4-mbstring \ + php8.4-xml php8.4-bcmath php8.4-intl php8.4-zip php8.4-xsl \ + php8.4-sqlite3 php8.4-mysql ``` ### Install composer @@ -145,6 +145,16 @@ A full list of configuration options can be found [here](../configuration.md). > ``` > or edit the file with a text editor and add a new value for `APP_SECRET` (you can generate a random value with `openssl rand -hex 32`). +{: .important } +> **Set `TRUSTED_HOSTS` before going live.** By default Part-DB accepts requests for any host name, which makes it +> vulnerable to `HTTP Host header attacks`. Edit your `.env.local` with a text editor and set `TRUSTED_HOSTS` to a +> regex matching all host names Part-DB should be reachable under, e.g. if Part-DB should only be reachable via +> `part-db.example.invalid`: +> ``` +> TRUSTED_HOSTS='^(part-db\.example\.invalid)$' +> ``` +> See the [configuration options](../configuration.md) page for more information about `TRUSTED_HOSTS`. + Please check that the configured base currency matches your mainly used currency, as this can not be changed after creating price information. @@ -291,7 +301,7 @@ sudo -u www-data php bin/console cache:clear ## MySQL/MariaDB database To use a MySQL database, follow the steps from above (except the creation of the database, we will do this later). -Debian 12 does not ship MySQL in its repositories anymore, so we use the compatible MariaDB instead: +Debian does not ship MySQL in its repositories anymore, so we use the compatible MariaDB instead: 1. Install maria-db with: diff --git a/docs/installation/reverse-proxy.md b/docs/installation/reverse-proxy.md index 605b93fa..24d502b4 100644 --- a/docs/installation/reverse-proxy.md +++ b/docs/installation/reverse-proxy.md @@ -22,6 +22,16 @@ TRUSTED_PROXIES=192.168.2.10 Set the `DEFAULT_URI` environment variable to the URL of your Part-DB installation, available from the outside (so via the reverse proxy). +You should also set the `TRUSTED_HOSTS` environment variable to a regex matching the host name(s) Part-DB is reachable +under via the reverse proxy, to prevent `HTTP Host header attacks`. For example, if Part-DB is reachable via +`part-db.example.invalid`, set: + +``` +TRUSTED_HOSTS='^(part-db\.example\.invalid)$' +``` + +See the [configuration options](../configuration.md) page for more information about `TRUSTED_HOSTS`. + ## Part-DB in a subpath via reverse proxy If you put Part-DB into a subpath via the reverse proxy, you have to configure your webserver to include `X-Forwarded-Prefix` in the request headers. diff --git a/docs/usage/eda_integration.md b/docs/usage/eda_integration.md index 92b1244d..653eb8a3 100644 --- a/docs/usage/eda_integration.md +++ b/docs/usage/eda_integration.md @@ -54,7 +54,7 @@ To connect KiCad with Part-DB do the following steps: ``` 4. Replace the `root_url` with the URL of your Part-DB instance plus `/en/kicad-api/`. You can find the right value for this in the Part-DB user settings page under "API endpoints" in the "API tokens" panel. 5. Replace the `token` field value with the token you have generated in step 1. -6. Open KiCad and add this created file as a library in the KiCad symbol table under (Preferences --> Manage Symbol Libraries) +6. Open KiCad and add this created file as a HTTP library in the KiCad symbol table under (Preferences --> Manage Symbol Libraries) If you then place a new part, the library dialog opens, and you should be able to see the categories and parts from Part-DB. diff --git a/public/.htaccess b/public/.htaccess index 0493298f..4aaf1009 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -120,12 +120,23 @@ DirectoryIndex index.php - # Set a strict CSP for all static assets not handled by PHP. - # PHP responses already carry their own CSP via NelmioSecurityBundle, so setifempty leaves those untouched. - Header always setifempty Content-Security-Policy "default-src 'self'; script-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; sandbox;" - Header always setifempty X-Content-Type-Options "nosniff" + # Set a strict CSP for everything Apache serves, except the front controller (index.php), + # whose response CSP is set by NelmioSecurityBundle in PHP. Excluding it via a negative + # FilesMatch (rather than a blanket rule relying on "setifempty" to skip PHP responses) + # avoids depending on mod_headers detecting the PHP-set header at the right time: on a + # real Apache 2.4/mod_php install, "setifempty" did not reliably suppress the static policy, + # so BOTH Content-Security-Policy headers ended up on the same PHP response, and browsers + # enforce the intersection of all CSP headers on a response - so "script-src 'none'; + # sandbox" silently disabled all scripts/styles site-wide. mod_rewrite's internal redirect + # to index.php re-runs directory-scoped matching against the new target, so this FilesMatch + # reliably excludes it regardless of the originally requested URL. + + Header always set Content-Security-Policy "default-src 'self'; script-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; sandbox;" + Header always set X-Content-Type-Options "nosniff" + # SVG files get a slightly different CSP because they can embed resources and must not be framed. + # (Declared after the general rule above so its more specific "set" wins for SVG files.) Header always set Content-Security-Policy "default-src 'self'; script-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; frame-ancestors 'none'; sandbox;" diff --git a/public/kicad/footprints.txt b/public/kicad/footprints.txt index 08380de1..a9e0df15 100644 --- a/public/kicad/footprints.txt +++ b/public/kicad/footprints.txt @@ -1,4 +1,4 @@ -# Generated on Mon Jun 22 07:31:48 UTC 2026 +# Generated on Mon Jul 20 05:45:44 UTC 2026 # This file contains all footprints available in the offical KiCAD library Audio_Module:Reverb_BTDR-1H Audio_Module:Reverb_BTDR-1V @@ -7732,6 +7732,15 @@ Connector_TE-Connectivity:TE_Micro-MaTch_2-215079-0_2x10_P1.27mm_Vertical Connector_TE-Connectivity:TE_Micro-MaTch_215079-4_2x02_P1.27mm_Vertical Connector_TE-Connectivity:TE_Micro-MaTch_215079-6_2x03_P1.27mm_Vertical Connector_TE-Connectivity:TE_Micro-MaTch_215079-8_2x04_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_7-188275-4_2x02_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_7-188275-6_2x03_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_7-188275-8_2x04_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_8-188275-0_2x05_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_8-188275-2_2x06_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_8-188275-4_2x07_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_8-188275-6_2x08_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_8-188275-8_2x09_P1.27mm_Vertical +Connector_TE-Connectivity:TE_Micro-MaTch_9-188275-0_2x10_P1.27mm_Vertical Connector_TE-Connectivity:TE_T4041037031-000_M8_03_Socket_Straight Connector_TE-Connectivity:TE_T4041037041-000_M8_04_Socket_Straight Connector_USB:USB3_A_Molex_48393-001 @@ -9150,6 +9159,7 @@ Inductor_SMD:L_APV_APH1770 Inductor_SMD:L_APV_APH2213 Inductor_SMD:L_AVX_LMLP07A7 Inductor_SMD:L_Abracon_ASPI-0425 +Inductor_SMD:L_Abracon_ASPI-0628 Inductor_SMD:L_Abracon_ASPI-0630LR Inductor_SMD:L_Abracon_ASPI-3012S Inductor_SMD:L_Abracon_ASPI-4030S @@ -12565,6 +12575,8 @@ Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.46x2.31mm Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.46x2.31mm_ThermalVias Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.66x2.46mm Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.66x2.46mm_ThermalVias +Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.78x3.37mm +Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.78x3.37mm_ThermalVias Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask3x3mm_ThermalVias Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3x3mm Package_SO:HTSSOP-20-1EP_4.4x6.5mm_P0.65mm_EP2.74x3.86mm @@ -12919,6 +12931,8 @@ Package_SO:Texas_DYY0016A_TSOT-23-16_2x4.2mm_P0.5mm Package_SO:Texas_HSOP-8-1EP_3.9x4.9mm_P1.27mm Package_SO:Texas_HSOP-8-1EP_3.9x4.9mm_P1.27mm_ThermalVias Package_SO:Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalVias +Package_SO:Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.94x3.34mm +Package_SO:Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.94x3.34mm_ThermalVias Package_SO:Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask3.155x3.255mm Package_SO:Texas_HTSSOP-14-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask3.155x3.255mm_ThermalVias Package_SO:Texas_PW0020A_TSSOP-20_4.4x6.5mm_P0.65mm diff --git a/public/kicad/symbols.txt b/public/kicad/symbols.txt index a24a1785..40f51b0e 100644 --- a/public/kicad/symbols.txt +++ b/public/kicad/symbols.txt @@ -1,4 +1,4 @@ -# Generated on Mon Jun 22 07:32:26 UTC 2026 +# Generated on Mon Jul 20 05:46:23 UTC 2026 # This file contains all symbols available in the offical KiCAD library 4xxx:14528 4xxx:14529 @@ -951,6 +951,8 @@ Amplifier_Current:INA201D Amplifier_Current:INA201DGK Amplifier_Current:INA202D Amplifier_Current:INA202DGK +Amplifier_Current:INA2180AxxDGK +Amplifier_Current:INA2180AxxDSG Amplifier_Current:INA225 Amplifier_Current:INA240A1D Amplifier_Current:INA240A1PW @@ -1461,6 +1463,8 @@ Amplifier_Operational:OPA858xDSG Amplifier_Operational:OPA859xDSG Amplifier_Operational:OPA890xD Amplifier_Operational:OPA890xDBV +Amplifier_Operational:Opamp_Dual +Amplifier_Operational:Opamp_Quad Amplifier_Operational:RC4558 Amplifier_Operational:RC4560 Amplifier_Operational:RC4580 @@ -4398,401 +4402,7 @@ Converter_ACDC:VTX-214-015-115 Converter_ACDC:VTX-214-015-118 Converter_ACDC:VTX-214-015-124 Converter_ACDC:VTX-214-015-148 -Converter_DCDC:ATA00A18S-L -Converter_DCDC:ATA00A36S-L -Converter_DCDC:ATA00AA18S-L -Converter_DCDC:ATA00AA36S-L -Converter_DCDC:ATA00B18S-L -Converter_DCDC:ATA00B36S-L -Converter_DCDC:ATA00BB18S-L -Converter_DCDC:ATA00BB36S-L -Converter_DCDC:ATA00C18S-L -Converter_DCDC:ATA00C36S-L -Converter_DCDC:ATA00CC18S-L -Converter_DCDC:ATA00CC36S-L -Converter_DCDC:ATA00F18S-L -Converter_DCDC:ATA00F36S-L -Converter_DCDC:ATA00H18S-L -Converter_DCDC:ATA00H36S-L -Converter_DCDC:Ag9905LP Converter_DCDC:C11204-01 -Converter_DCDC:IA0305D -Converter_DCDC:IA0305S -Converter_DCDC:IA0503D -Converter_DCDC:IA0503S -Converter_DCDC:IA0505D -Converter_DCDC:IA0505S -Converter_DCDC:IA0509D -Converter_DCDC:IA0509S -Converter_DCDC:IA0512D -Converter_DCDC:IA0512S -Converter_DCDC:IA0515D -Converter_DCDC:IA0515S -Converter_DCDC:IA0524D -Converter_DCDC:IA0524S -Converter_DCDC:IA1203D -Converter_DCDC:IA1203S -Converter_DCDC:IA1205D -Converter_DCDC:IA1205S -Converter_DCDC:IA1209D -Converter_DCDC:IA1209S -Converter_DCDC:IA1212D -Converter_DCDC:IA1212S -Converter_DCDC:IA1215D -Converter_DCDC:IA1215S -Converter_DCDC:IA1224D -Converter_DCDC:IA1224S -Converter_DCDC:IA2403D -Converter_DCDC:IA2403S -Converter_DCDC:IA2405D -Converter_DCDC:IA2405S -Converter_DCDC:IA2409D -Converter_DCDC:IA2409S -Converter_DCDC:IA2412D -Converter_DCDC:IA2412S -Converter_DCDC:IA2415D -Converter_DCDC:IA2415S -Converter_DCDC:IA2424D -Converter_DCDC:IA2424S -Converter_DCDC:IA4803D -Converter_DCDC:IA4803S -Converter_DCDC:IA4805D -Converter_DCDC:IA4805S -Converter_DCDC:IA4809D -Converter_DCDC:IA4809S -Converter_DCDC:IA4812D -Converter_DCDC:IA4812S -Converter_DCDC:IA4815D -Converter_DCDC:IA4815S -Converter_DCDC:IA4824D -Converter_DCDC:IA4824S -Converter_DCDC:IH0503D -Converter_DCDC:IH0503DH -Converter_DCDC:IH0503S -Converter_DCDC:IH0503SH -Converter_DCDC:IH0505D -Converter_DCDC:IH0505DH -Converter_DCDC:IH0505S -Converter_DCDC:IH0505SH -Converter_DCDC:IH0509D -Converter_DCDC:IH0509DH -Converter_DCDC:IH0509S -Converter_DCDC:IH0509SH -Converter_DCDC:IH0512D -Converter_DCDC:IH0512DH -Converter_DCDC:IH0512S -Converter_DCDC:IH0512SH -Converter_DCDC:IH0515D -Converter_DCDC:IH0515DH -Converter_DCDC:IH0515S -Converter_DCDC:IH0515SH -Converter_DCDC:IH0524D -Converter_DCDC:IH0524DH -Converter_DCDC:IH0524S -Converter_DCDC:IH0524SH -Converter_DCDC:IH1203D -Converter_DCDC:IH1203DH -Converter_DCDC:IH1203S -Converter_DCDC:IH1203SH -Converter_DCDC:IH1205D -Converter_DCDC:IH1205DH -Converter_DCDC:IH1205S -Converter_DCDC:IH1205SH -Converter_DCDC:IH1209D -Converter_DCDC:IH1209DH -Converter_DCDC:IH1209S -Converter_DCDC:IH1209SH -Converter_DCDC:IH1212D -Converter_DCDC:IH1212DH -Converter_DCDC:IH1212S -Converter_DCDC:IH1212SH -Converter_DCDC:IH1215D -Converter_DCDC:IH1215DH -Converter_DCDC:IH1215S -Converter_DCDC:IH1215SH -Converter_DCDC:IH1224D -Converter_DCDC:IH1224DH -Converter_DCDC:IH1224S -Converter_DCDC:IH1224SH -Converter_DCDC:IH2403D -Converter_DCDC:IH2403DH -Converter_DCDC:IH2403S -Converter_DCDC:IH2403SH -Converter_DCDC:IH2405D -Converter_DCDC:IH2405DH -Converter_DCDC:IH2405S -Converter_DCDC:IH2405SH -Converter_DCDC:IH2409D -Converter_DCDC:IH2409DH -Converter_DCDC:IH2409S -Converter_DCDC:IH2409SH -Converter_DCDC:IH2412D -Converter_DCDC:IH2412DH -Converter_DCDC:IH2412S -Converter_DCDC:IH2412SH -Converter_DCDC:IH2415D -Converter_DCDC:IH2415DH -Converter_DCDC:IH2415S -Converter_DCDC:IH2415SH -Converter_DCDC:IH2424D -Converter_DCDC:IH2424DH -Converter_DCDC:IH2424S -Converter_DCDC:IH2424SH -Converter_DCDC:IH4803D -Converter_DCDC:IH4803DH -Converter_DCDC:IH4803S -Converter_DCDC:IH4803SH -Converter_DCDC:IH4805D -Converter_DCDC:IH4805DH -Converter_DCDC:IH4805S -Converter_DCDC:IH4805SH -Converter_DCDC:IH4809D -Converter_DCDC:IH4809DH -Converter_DCDC:IH4809S -Converter_DCDC:IH4809SH -Converter_DCDC:IH4812D -Converter_DCDC:IH4812DH -Converter_DCDC:IH4812S -Converter_DCDC:IH4812SH -Converter_DCDC:IH4815D -Converter_DCDC:IH4815DH -Converter_DCDC:IH4815S -Converter_DCDC:IH4815SH -Converter_DCDC:IH4824D -Converter_DCDC:IH4824DH -Converter_DCDC:IH4824S -Converter_DCDC:IH4824SH -Converter_DCDC:ISU0205D12 -Converter_DCDC:ISU0205D15 -Converter_DCDC:ISU0205S05 -Converter_DCDC:ISU0205S12 -Converter_DCDC:ISU0205S15 -Converter_DCDC:ISU0205S24 -Converter_DCDC:ISU0224D12 -Converter_DCDC:ISU0224D15 -Converter_DCDC:ISU0224S05 -Converter_DCDC:ISU0224S12 -Converter_DCDC:ISU0224S15 -Converter_DCDC:ISU0224S24 -Converter_DCDC:ISU0248D12 -Converter_DCDC:ISU0248D15 -Converter_DCDC:ISU0248S05 -Converter_DCDC:ISU0248S12 -Converter_DCDC:ISU0248S15 -Converter_DCDC:ISU0248S24 -Converter_DCDC:ITQ2403SA -Converter_DCDC:ITQ2403SA-H -Converter_DCDC:ITQ2405S -Converter_DCDC:ITQ2405S-H -Converter_DCDC:ITQ2405SA -Converter_DCDC:ITQ2405SA-H -Converter_DCDC:ITQ2409SA -Converter_DCDC:ITQ2409SA-H -Converter_DCDC:ITQ2412S -Converter_DCDC:ITQ2412S-H -Converter_DCDC:ITQ2412SA -Converter_DCDC:ITQ2412SA-H -Converter_DCDC:ITQ2415S -Converter_DCDC:ITQ2415S-H -Converter_DCDC:ITQ2415SA -Converter_DCDC:ITQ2415SA-H -Converter_DCDC:ITQ2424SA -Converter_DCDC:ITQ2424SA-H -Converter_DCDC:ITQ4803SA -Converter_DCDC:ITQ4803SA-H -Converter_DCDC:ITQ4805S -Converter_DCDC:ITQ4805S-H -Converter_DCDC:ITQ4805SA -Converter_DCDC:ITQ4805SA-H -Converter_DCDC:ITQ4809SA -Converter_DCDC:ITQ4809SA-H -Converter_DCDC:ITQ4812S -Converter_DCDC:ITQ4812S-H -Converter_DCDC:ITQ4812SA -Converter_DCDC:ITQ4812SA-H -Converter_DCDC:ITQ4815S -Converter_DCDC:ITQ4815S-H -Converter_DCDC:ITQ4815SA -Converter_DCDC:ITQ4815SA-H -Converter_DCDC:ITQ4824SA -Converter_DCDC:ITQ4824SA-H -Converter_DCDC:ITX0503SA -Converter_DCDC:ITX0503SA-H -Converter_DCDC:ITX0503SA-HR -Converter_DCDC:ITX0503SA-R -Converter_DCDC:ITX0505S -Converter_DCDC:ITX0505S-H -Converter_DCDC:ITX0505S-HR -Converter_DCDC:ITX0505S-R -Converter_DCDC:ITX0505SA -Converter_DCDC:ITX0505SA-H -Converter_DCDC:ITX0505SA-HR -Converter_DCDC:ITX0505SA-R -Converter_DCDC:ITX0509SA -Converter_DCDC:ITX0509SA-H -Converter_DCDC:ITX0509SA-HR -Converter_DCDC:ITX0509SA-R -Converter_DCDC:ITX0512S -Converter_DCDC:ITX0512S-H -Converter_DCDC:ITX0512S-HR -Converter_DCDC:ITX0512S-R -Converter_DCDC:ITX0512SA -Converter_DCDC:ITX0512SA-H -Converter_DCDC:ITX0512SA-HR -Converter_DCDC:ITX0512SA-R -Converter_DCDC:ITX0515S -Converter_DCDC:ITX0515S-H -Converter_DCDC:ITX0515S-HR -Converter_DCDC:ITX0515S-R -Converter_DCDC:ITX0515SA -Converter_DCDC:ITX0515SA-H -Converter_DCDC:ITX0515SA-HR -Converter_DCDC:ITX0515SA-R -Converter_DCDC:ITX0524SA -Converter_DCDC:ITX0524SA-H -Converter_DCDC:ITX0524SA-HR -Converter_DCDC:ITX0524SA-R -Converter_DCDC:ITX1203SA -Converter_DCDC:ITX1203SA-H -Converter_DCDC:ITX1203SA-HR -Converter_DCDC:ITX1203SA-R -Converter_DCDC:ITX1205S -Converter_DCDC:ITX1205S-H -Converter_DCDC:ITX1205S-HR -Converter_DCDC:ITX1205S-R -Converter_DCDC:ITX1205SA -Converter_DCDC:ITX1205SA-H -Converter_DCDC:ITX1205SA-HR -Converter_DCDC:ITX1205SA-R -Converter_DCDC:ITX1209SA -Converter_DCDC:ITX1209SA-H -Converter_DCDC:ITX1209SA-HR -Converter_DCDC:ITX1209SA-R -Converter_DCDC:ITX1212S -Converter_DCDC:ITX1212S-H -Converter_DCDC:ITX1212S-HR -Converter_DCDC:ITX1212S-R -Converter_DCDC:ITX1212SA -Converter_DCDC:ITX1212SA-H -Converter_DCDC:ITX1212SA-HR -Converter_DCDC:ITX1212SA-R -Converter_DCDC:ITX1215S -Converter_DCDC:ITX1215S-H -Converter_DCDC:ITX1215S-HR -Converter_DCDC:ITX1215S-R -Converter_DCDC:ITX1215SA -Converter_DCDC:ITX1215SA-H -Converter_DCDC:ITX1215SA-HR -Converter_DCDC:ITX1215SA-R -Converter_DCDC:ITX1224SA -Converter_DCDC:ITX1224SA-H -Converter_DCDC:ITX1224SA-HR -Converter_DCDC:ITX1224SA-R -Converter_DCDC:ITX2403SA -Converter_DCDC:ITX2403SA-H -Converter_DCDC:ITX2403SA-HR -Converter_DCDC:ITX2403SA-R -Converter_DCDC:ITX2405S -Converter_DCDC:ITX2405S-H -Converter_DCDC:ITX2405S-HR -Converter_DCDC:ITX2405S-R -Converter_DCDC:ITX2405SA -Converter_DCDC:ITX2405SA-H -Converter_DCDC:ITX2405SA-HR -Converter_DCDC:ITX2405SA-R -Converter_DCDC:ITX2409SA -Converter_DCDC:ITX2409SA-H -Converter_DCDC:ITX2409SA-HR -Converter_DCDC:ITX2409SA-R -Converter_DCDC:ITX2412S -Converter_DCDC:ITX2412S-H -Converter_DCDC:ITX2412S-HR -Converter_DCDC:ITX2412S-R -Converter_DCDC:ITX2412SA -Converter_DCDC:ITX2412SA-H -Converter_DCDC:ITX2412SA-HR -Converter_DCDC:ITX2412SA-R -Converter_DCDC:ITX2415S -Converter_DCDC:ITX2415S-H -Converter_DCDC:ITX2415S-HR -Converter_DCDC:ITX2415S-R -Converter_DCDC:ITX2415SA -Converter_DCDC:ITX2415SA-H -Converter_DCDC:ITX2415SA-HR -Converter_DCDC:ITX2415SA-R -Converter_DCDC:ITX2424SA -Converter_DCDC:ITX2424SA-H -Converter_DCDC:ITX2424SA-HR -Converter_DCDC:ITX2424SA-R -Converter_DCDC:ITX4803SA -Converter_DCDC:ITX4803SA-H -Converter_DCDC:ITX4803SA-HR -Converter_DCDC:ITX4803SA-R -Converter_DCDC:ITX4805S -Converter_DCDC:ITX4805S-H -Converter_DCDC:ITX4805S-HR -Converter_DCDC:ITX4805S-R -Converter_DCDC:ITX4805SA -Converter_DCDC:ITX4805SA-H -Converter_DCDC:ITX4805SA-HR -Converter_DCDC:ITX4805SA-R -Converter_DCDC:ITX4809SA -Converter_DCDC:ITX4809SA-H -Converter_DCDC:ITX4809SA-HR -Converter_DCDC:ITX4809SA-R -Converter_DCDC:ITX4812S -Converter_DCDC:ITX4812S-H -Converter_DCDC:ITX4812S-HR -Converter_DCDC:ITX4812S-R -Converter_DCDC:ITX4812SA -Converter_DCDC:ITX4812SA-H -Converter_DCDC:ITX4812SA-HR -Converter_DCDC:ITX4812SA-R -Converter_DCDC:ITX4815S -Converter_DCDC:ITX4815S-H -Converter_DCDC:ITX4815S-HR -Converter_DCDC:ITX4815S-R -Converter_DCDC:ITX4815SA -Converter_DCDC:ITX4815SA-H -Converter_DCDC:ITX4815SA-HR -Converter_DCDC:ITX4815SA-R -Converter_DCDC:ITX4824SA -Converter_DCDC:ITX4824SA-H -Converter_DCDC:ITX4824SA-HR -Converter_DCDC:ITX4824SA-R -Converter_DCDC:JTD1524D05 -Converter_DCDC:JTD1524D12 -Converter_DCDC:JTD1524D15 -Converter_DCDC:JTD1524S05 -Converter_DCDC:JTD1524S12 -Converter_DCDC:JTD1524S15 -Converter_DCDC:JTD1524S3V3 -Converter_DCDC:JTD1548D05 -Converter_DCDC:JTD1548D12 -Converter_DCDC:JTD1548D15 -Converter_DCDC:JTD1548S05 -Converter_DCDC:JTD1548S12 -Converter_DCDC:JTD1548S15 -Converter_DCDC:JTD1548S3V3 -Converter_DCDC:JTD2024D05 -Converter_DCDC:JTD2024D12 -Converter_DCDC:JTD2024D15 -Converter_DCDC:JTD2024S05 -Converter_DCDC:JTD2024S12 -Converter_DCDC:JTD2024S15 -Converter_DCDC:JTD2024S3V3 -Converter_DCDC:JTD2048D05 -Converter_DCDC:JTD2048D12 -Converter_DCDC:JTD2048D15 -Converter_DCDC:JTD2048S05 -Converter_DCDC:JTD2048S12 -Converter_DCDC:JTD2048S15 -Converter_DCDC:JTD2048S3V3 -Converter_DCDC:JTE0624D03 -Converter_DCDC:JTE0624D05 -Converter_DCDC:JTE0624D12 -Converter_DCDC:JTE0624D15 -Converter_DCDC:JTE0624D24 Converter_DCDC:LMZ13608 Converter_DCDC:LMZ22003TZ Converter_DCDC:LMZ22005TZ @@ -4815,74 +4425,10 @@ Converter_DCDC:LTM4668A Converter_DCDC:LTM4671 Converter_DCDC:LTM8049 Converter_DCDC:LTM8063 -Converter_DCDC:MEE1S0303SC -Converter_DCDC:MEE1S0305SC -Converter_DCDC:MEE1S0309SC -Converter_DCDC:MEE1S0312SC -Converter_DCDC:MEE1S0315SC -Converter_DCDC:MEE1S0503SC -Converter_DCDC:MEE1S0505SC -Converter_DCDC:MEE1S0509SC -Converter_DCDC:MEE1S0512SC -Converter_DCDC:MEE1S0515SC -Converter_DCDC:MEE1S1205SC -Converter_DCDC:MEE1S1209SC -Converter_DCDC:MEE1S1212SC -Converter_DCDC:MEE1S1215SC -Converter_DCDC:MEE1S1505SC -Converter_DCDC:MEE1S1509SC -Converter_DCDC:MEE1S1512SC -Converter_DCDC:MEE1S1515SC -Converter_DCDC:MEE1S2405SC -Converter_DCDC:MEE1S2409SC -Converter_DCDC:MEE1S2412SC -Converter_DCDC:MEE1S2415SC -Converter_DCDC:MEE3S0505SC -Converter_DCDC:MEE3S0509SC -Converter_DCDC:MEE3S0512SC -Converter_DCDC:MEE3S0515SC -Converter_DCDC:MEE3S1205SC -Converter_DCDC:MEE3S1209SC -Converter_DCDC:MEE3S1212SC -Converter_DCDC:MEE3S1215SC -Converter_DCDC:MGJ2D051505SC -Converter_DCDC:MGJ2D051509SC -Converter_DCDC:MGJ2D051515SC -Converter_DCDC:MGJ2D051802SC -Converter_DCDC:MGJ2D052003SC -Converter_DCDC:MGJ2D052005SC -Converter_DCDC:MGJ2D121505SC -Converter_DCDC:MGJ2D121509SC -Converter_DCDC:MGJ2D121802SC -Converter_DCDC:MGJ2D122003SC -Converter_DCDC:MGJ2D122005SC -Converter_DCDC:MGJ2D151505SC -Converter_DCDC:MGJ2D151509SC -Converter_DCDC:MGJ2D151515SC -Converter_DCDC:MGJ2D151802SC -Converter_DCDC:MGJ2D152003SC -Converter_DCDC:MGJ2D152005SC -Converter_DCDC:MGJ2D241505SC -Converter_DCDC:MGJ2D241509SC -Converter_DCDC:MGJ2D241709SC -Converter_DCDC:MGJ2D241802SC -Converter_DCDC:MGJ2D242003SC -Converter_DCDC:MGJ2D242005SC -Converter_DCDC:MGJ3T05150505MC -Converter_DCDC:MGJ3T12150505MC -Converter_DCDC:MGJ3T24150505MC Converter_DCDC:MUN12AD01-SH Converter_DCDC:MUN12AD03-SH Converter_DCDC:MYRGPxx0060x21RC Converter_DCDC:MYRGPxx0060x21RF -Converter_DCDC:NCS1S1203SC -Converter_DCDC:NCS1S1205SC -Converter_DCDC:NCS1S1212SC -Converter_DCDC:NCS1S2403SC -Converter_DCDC:NCS1S2405SC -Converter_DCDC:NCS1S2412SC -Converter_DCDC:NSD10-xxDyy -Converter_DCDC:NSD10-xxSyy Converter_DCDC:OKI-78SR-12_1.0-W36-C Converter_DCDC:OKI-78SR-12_1.0-W36H-C Converter_DCDC:OKI-78SR-3.3_1.5-W36-C @@ -4937,10 +4483,6 @@ Converter_DCDC:R-78HB5.0-0.5 Converter_DCDC:R-78HB6.5-0.5 Converter_DCDC:R-78HB9.0-0.5 Converter_DCDC:R-78S3.3-0.1 -Converter_DCDC:RPA60-2405SFW -Converter_DCDC:RPA60-2412SFW -Converter_DCDC:RPA60-2415SFW -Converter_DCDC:RPA60-2424SFW Converter_DCDC:RPM3.3-1.0 Converter_DCDC:RPM3.3-2.0 Converter_DCDC:RPM3.3-3.0 @@ -4954,449 +4496,9 @@ Converter_DCDC:RPMH15-1.5 Converter_DCDC:RPMH24-1.5 Converter_DCDC:RPMH3.3-1.5 Converter_DCDC:RPMH5.0-1.5 -Converter_DCDC:SMU02L-24N -Converter_DCDC:TBA1-0310 -Converter_DCDC:TBA1-0311 -Converter_DCDC:TBA1-0510 -Converter_DCDC:TBA1-0511 -Converter_DCDC:TBA1-0511E -Converter_DCDC:TBA1-0512 -Converter_DCDC:TBA1-0512E -Converter_DCDC:TBA1-0513 -Converter_DCDC:TBA1-0513E -Converter_DCDC:TBA1-0519 -Converter_DCDC:TBA1-0521E -Converter_DCDC:TBA1-0522E -Converter_DCDC:TBA1-0523E -Converter_DCDC:TBA1-1211 -Converter_DCDC:TBA1-1211E -Converter_DCDC:TBA1-1212 -Converter_DCDC:TBA1-1212E -Converter_DCDC:TBA1-1213 -Converter_DCDC:TBA1-1213E -Converter_DCDC:TBA1-1219 -Converter_DCDC:TBA1-1221E -Converter_DCDC:TBA1-1222E -Converter_DCDC:TBA1-1223E -Converter_DCDC:TBA1-2411 -Converter_DCDC:TBA1-2411E -Converter_DCDC:TBA1-2412 -Converter_DCDC:TBA1-2412E -Converter_DCDC:TBA1-2413 -Converter_DCDC:TBA1-2413E -Converter_DCDC:TBA1-2419 -Converter_DCDC:TBA1-2421E -Converter_DCDC:TBA1-2422E -Converter_DCDC:TBA1-2423E -Converter_DCDC:TBA2-0511 -Converter_DCDC:TBA2-0512 -Converter_DCDC:TBA2-0513 -Converter_DCDC:TBA2-0521 -Converter_DCDC:TBA2-0522 -Converter_DCDC:TBA2-0523 -Converter_DCDC:TBA2-1211 -Converter_DCDC:TBA2-1212 -Converter_DCDC:TBA2-1213 -Converter_DCDC:TBA2-1221 -Converter_DCDC:TBA2-1222 -Converter_DCDC:TBA2-1223 -Converter_DCDC:TBA2-2411 -Converter_DCDC:TBA2-2412 -Converter_DCDC:TBA2-2413 -Converter_DCDC:TBA2-2421 -Converter_DCDC:TBA2-2422 -Converter_DCDC:TBA2-2423 Converter_DCDC:TC7662AxPA Converter_DCDC:TC7662Bx0A Converter_DCDC:TC7662BxPA -Converter_DCDC:TDU1-0511 -Converter_DCDC:TDU1-0512 -Converter_DCDC:TDU1-0513 -Converter_DCDC:TDU1-1211 -Converter_DCDC:TDU1-1212 -Converter_DCDC:TDU1-1213 -Converter_DCDC:TDU1-2411 -Converter_DCDC:TDU1-2412 -Converter_DCDC:TDU1-2413 -Converter_DCDC:TEA1-0505 -Converter_DCDC:TEA1-0505E -Converter_DCDC:TEA1-0505HI -Converter_DCDC:TEC2-1210WI -Converter_DCDC:TEC2-1211WI -Converter_DCDC:TEC2-1212WI -Converter_DCDC:TEC2-1213WI -Converter_DCDC:TEC2-1215WI -Converter_DCDC:TEC2-1219WI -Converter_DCDC:TEC2-1221WI -Converter_DCDC:TEC2-1222WI -Converter_DCDC:TEC2-1223WI -Converter_DCDC:TEC2-2410WI -Converter_DCDC:TEC2-2411WI -Converter_DCDC:TEC2-2412WI -Converter_DCDC:TEC2-2413WI -Converter_DCDC:TEC2-2415WI -Converter_DCDC:TEC2-2419WI -Converter_DCDC:TEC2-2421WI -Converter_DCDC:TEC2-2422WI -Converter_DCDC:TEC2-2423WI -Converter_DCDC:TEC2-4810WI -Converter_DCDC:TEC2-4811WI -Converter_DCDC:TEC2-4812WI -Converter_DCDC:TEC2-4813WI -Converter_DCDC:TEC2-4815WI -Converter_DCDC:TEC2-4819WI -Converter_DCDC:TEC2-4821WI -Converter_DCDC:TEC2-4822WI -Converter_DCDC:TEC2-4823WI -Converter_DCDC:TEC3-2410UI -Converter_DCDC:TEC3-2411UI -Converter_DCDC:TEC3-2412UI -Converter_DCDC:TEC3-2413UI -Converter_DCDC:TEC3-2421UI -Converter_DCDC:TEC3-2422UI -Converter_DCDC:TEC3-2423UI -Converter_DCDC:TEC6-2410UI -Converter_DCDC:TEC6-2411UI -Converter_DCDC:TEC6-2412UI -Converter_DCDC:TEC6-2413UI -Converter_DCDC:TEC6-2415UI -Converter_DCDC:TEC6-2419UI -Converter_DCDC:TEC6-2421UI -Converter_DCDC:TEC6-2422UI -Converter_DCDC:TEC6-2423UI -Converter_DCDC:TEL12-1211 -Converter_DCDC:TEL12-1212 -Converter_DCDC:TEL12-1213 -Converter_DCDC:TEL12-1215 -Converter_DCDC:TEL12-1222 -Converter_DCDC:TEL12-1223 -Converter_DCDC:TEL12-2411 -Converter_DCDC:TEL12-2411WI -Converter_DCDC:TEL12-2412 -Converter_DCDC:TEL12-2412WI -Converter_DCDC:TEL12-2413 -Converter_DCDC:TEL12-2413WI -Converter_DCDC:TEL12-2415 -Converter_DCDC:TEL12-2415WI -Converter_DCDC:TEL12-2422 -Converter_DCDC:TEL12-2422WI -Converter_DCDC:TEL12-2423 -Converter_DCDC:TEL12-2423WI -Converter_DCDC:TEL12-4811 -Converter_DCDC:TEL12-4811WI -Converter_DCDC:TEL12-4812 -Converter_DCDC:TEL12-4812WI -Converter_DCDC:TEL12-4813 -Converter_DCDC:TEL12-4813WI -Converter_DCDC:TEL12-4815 -Converter_DCDC:TEL12-4815WI -Converter_DCDC:TEL12-4822 -Converter_DCDC:TEL12-4822WI -Converter_DCDC:TEL12-4823 -Converter_DCDC:TEL12-4823WI -Converter_DCDC:TEN10-11010WIRH -Converter_DCDC:TEN10-11011WIRH -Converter_DCDC:TEN10-11012WIRH -Converter_DCDC:TEN10-11013WIRH -Converter_DCDC:TEN10-11015WIRH -Converter_DCDC:TEN10-11021WIRH -Converter_DCDC:TEN10-11022WIRH -Converter_DCDC:TEN10-11023WIRH -Converter_DCDC:TEN20-11011WIRH -Converter_DCDC:TEN20-11012WIRH -Converter_DCDC:TEN20-11013WIRH -Converter_DCDC:TEN20-11015WIRH -Converter_DCDC:TEN20-11021WIRH -Converter_DCDC:TEN20-11022WIRH -Converter_DCDC:TEN20-11023WIRH -Converter_DCDC:TEN20-2410WIN -Converter_DCDC:TEN20-2411WIN -Converter_DCDC:TEN20-2412WIN -Converter_DCDC:TEN20-2413WIN -Converter_DCDC:TEN20-2421WIN -Converter_DCDC:TEN20-2422WIN -Converter_DCDC:TEN20-2423WIN -Converter_DCDC:TEN20-4810WIN -Converter_DCDC:TEN20-4811WIN -Converter_DCDC:TEN20-4812WIN -Converter_DCDC:TEN20-4813WIN -Converter_DCDC:TEN20-4821WIN -Converter_DCDC:TEN20-4822WIN -Converter_DCDC:TEN20-4823WIN -Converter_DCDC:TEN3-11010WIRH -Converter_DCDC:TEN3-11011WIRH -Converter_DCDC:TEN3-11012WIRH -Converter_DCDC:TEN3-11013WIRH -Converter_DCDC:TEN3-11015WIRH -Converter_DCDC:TEN3-11021WIRH -Converter_DCDC:TEN3-11022WIRH -Converter_DCDC:TEN3-11023WIRH -Converter_DCDC:TEN40-11011WIRH -Converter_DCDC:TEN40-11012WIRH -Converter_DCDC:TEN40-11013WIRH -Converter_DCDC:TEN40-11015WIRH -Converter_DCDC:TEN40-11022WIRH -Converter_DCDC:TEN40-11023WIRH -Converter_DCDC:TEN6-11010WIRH -Converter_DCDC:TEN6-11011WIRH -Converter_DCDC:TEN6-11012WIRH -Converter_DCDC:TEN6-11013WIRH -Converter_DCDC:TEN6-11015WIRH -Converter_DCDC:TEN6-11021WIRH -Converter_DCDC:TEN6-11022WIRH -Converter_DCDC:TEN6-11023WIRH -Converter_DCDC:TEP150-7211UIR -Converter_DCDC:TEP150-7212UIR -Converter_DCDC:TEP150-7213UIR -Converter_DCDC:TEP150-7215UIR -Converter_DCDC:TEP150-7218UIR -Converter_DCDC:TEP200-7211UIR -Converter_DCDC:TEP200-7212UIR -Converter_DCDC:TEP200-7213UIR -Converter_DCDC:TEP200-7215UIR -Converter_DCDC:TEP200-7218UIR -Converter_DCDC:TES1-0510 -Converter_DCDC:TES1-0511 -Converter_DCDC:TES1-0512 -Converter_DCDC:TES1-0513 -Converter_DCDC:TES1-0519 -Converter_DCDC:TES1-0521 -Converter_DCDC:TES1-0522 -Converter_DCDC:TES1-0523 -Converter_DCDC:TES1-1211 -Converter_DCDC:TES1-1212 -Converter_DCDC:TES1-1213 -Converter_DCDC:TES1-1219 -Converter_DCDC:TES1-1221 -Converter_DCDC:TES1-1222 -Converter_DCDC:TES1-1223 -Converter_DCDC:TES1-2411 -Converter_DCDC:TES1-2412 -Converter_DCDC:TES1-2413 -Converter_DCDC:TES1-2419 -Converter_DCDC:TES1-2421 -Converter_DCDC:TES1-2422 -Converter_DCDC:TES1-2423 -Converter_DCDC:THB10-1211 -Converter_DCDC:THB10-1212 -Converter_DCDC:THB10-1222 -Converter_DCDC:THB10-1223 -Converter_DCDC:THB10-2411 -Converter_DCDC:THB10-2412 -Converter_DCDC:THB10-2422 -Converter_DCDC:THB10-2423 -Converter_DCDC:THB10-4811 -Converter_DCDC:THB10-4812 -Converter_DCDC:THB10-4822 -Converter_DCDC:THB10-4823 -Converter_DCDC:THL30-2410WI -Converter_DCDC:THL30-2411WI -Converter_DCDC:THL30-2412WI -Converter_DCDC:THL30-2413WI -Converter_DCDC:THL30-2415WI -Converter_DCDC:THL30-2422WI -Converter_DCDC:THL30-2423WI -Converter_DCDC:THL30-4810WI -Converter_DCDC:THL30-4811WI -Converter_DCDC:THL30-4812WI -Converter_DCDC:THL30-4813WI -Converter_DCDC:THL30-4815WI -Converter_DCDC:THL30-4822WI -Converter_DCDC:THL30-4823WI -Converter_DCDC:THL40-2411WI -Converter_DCDC:THL40-2412WI -Converter_DCDC:THL40-2413WI -Converter_DCDC:THL40-2415WI -Converter_DCDC:THL40-2422WI -Converter_DCDC:THL40-2423WI -Converter_DCDC:THL40-4811WI -Converter_DCDC:THL40-4812WI -Converter_DCDC:THL40-4813WI -Converter_DCDC:THL40-4815WI -Converter_DCDC:THL40-4822WI -Converter_DCDC:THL40-4823WI -Converter_DCDC:THN10-3610UIR -Converter_DCDC:THN10-3611UIR -Converter_DCDC:THN10-3612UIR -Converter_DCDC:THN10-3613UIR -Converter_DCDC:THN10-3615UIR -Converter_DCDC:THN10-3621UIR -Converter_DCDC:THN10-3622UIR -Converter_DCDC:THN10-3623UIR -Converter_DCDC:THN10-7210UIR -Converter_DCDC:THN10-7211UIR -Converter_DCDC:THN10-7212UIR -Converter_DCDC:THN10-7213UIR -Converter_DCDC:THN10-7215UIR -Converter_DCDC:THN10-7221UIR -Converter_DCDC:THN10-7222UIR -Converter_DCDC:THN10-7223UIR -Converter_DCDC:THR40-7211WI -Converter_DCDC:THR40-7212WI -Converter_DCDC:THR40-7213WI -Converter_DCDC:THR40-72154WI -Converter_DCDC:THR40-7215WI -Converter_DCDC:THR40-7222WI -Converter_DCDC:THR40-7223WI -Converter_DCDC:TMA-0505D -Converter_DCDC:TMA-0505S -Converter_DCDC:TMA-0512D -Converter_DCDC:TMA-0512S -Converter_DCDC:TMA-0515D -Converter_DCDC:TMA-0515S -Converter_DCDC:TMA-1205D -Converter_DCDC:TMA-1205S -Converter_DCDC:TMA-1212D -Converter_DCDC:TMA-1212S -Converter_DCDC:TMA-1215D -Converter_DCDC:TMA-1215S -Converter_DCDC:TMA-1505D -Converter_DCDC:TMA-1505S -Converter_DCDC:TMA-1512D -Converter_DCDC:TMA-1512S -Converter_DCDC:TMA-1515D -Converter_DCDC:TMA-1515S -Converter_DCDC:TMA-2405D -Converter_DCDC:TMA-2405S -Converter_DCDC:TMA-2412D -Converter_DCDC:TMA-2412S -Converter_DCDC:TMA-2415D -Converter_DCDC:TMA-2415S -Converter_DCDC:TME-0303S -Converter_DCDC:TME-0305S -Converter_DCDC:TME-0503S -Converter_DCDC:TME-0505S -Converter_DCDC:TME-0509S -Converter_DCDC:TME-0512S -Converter_DCDC:TME-0515S -Converter_DCDC:TME-1205S -Converter_DCDC:TME-1209S -Converter_DCDC:TME-1212S -Converter_DCDC:TME-1215S -Converter_DCDC:TME-2405S -Converter_DCDC:TME-2409S -Converter_DCDC:TME-2412S -Converter_DCDC:TME-2415S -Converter_DCDC:TMR-0510 -Converter_DCDC:TMR-0511 -Converter_DCDC:TMR-0512 -Converter_DCDC:TMR-0521 -Converter_DCDC:TMR-0522 -Converter_DCDC:TMR-0523 -Converter_DCDC:TMR-1210 -Converter_DCDC:TMR-1211 -Converter_DCDC:TMR-1212 -Converter_DCDC:TMR-1221 -Converter_DCDC:TMR-1222 -Converter_DCDC:TMR-1223 -Converter_DCDC:TMR-2410 -Converter_DCDC:TMR-2411 -Converter_DCDC:TMR-2412 -Converter_DCDC:TMR-2421 -Converter_DCDC:TMR-2422 -Converter_DCDC:TMR-2423 -Converter_DCDC:TMR-4810 -Converter_DCDC:TMR-4811 -Converter_DCDC:TMR-4812 -Converter_DCDC:TMR-4821 -Converter_DCDC:TMR-4822 -Converter_DCDC:TMR-4823 -Converter_DCDC:TMR10-1211WI -Converter_DCDC:TMR10-1212WI -Converter_DCDC:TMR10-1213WI -Converter_DCDC:TMR10-1215WI -Converter_DCDC:TMR10-1222WI -Converter_DCDC:TMR10-1223WI -Converter_DCDC:TMR10-2410WIR -Converter_DCDC:TMR10-2411WI -Converter_DCDC:TMR10-2411WIR -Converter_DCDC:TMR10-2412WI -Converter_DCDC:TMR10-2412WIR -Converter_DCDC:TMR10-2413WI -Converter_DCDC:TMR10-2413WIR -Converter_DCDC:TMR10-2415WI -Converter_DCDC:TMR10-2415WIR -Converter_DCDC:TMR10-2421WIR -Converter_DCDC:TMR10-2422WI -Converter_DCDC:TMR10-2422WIR -Converter_DCDC:TMR10-2423WI -Converter_DCDC:TMR10-2423WIR -Converter_DCDC:TMR10-4810WIR -Converter_DCDC:TMR10-4811WI -Converter_DCDC:TMR10-4811WIR -Converter_DCDC:TMR10-4812WI -Converter_DCDC:TMR10-4812WIR -Converter_DCDC:TMR10-4813WI -Converter_DCDC:TMR10-4813WIR -Converter_DCDC:TMR10-4815WI -Converter_DCDC:TMR10-4815WIR -Converter_DCDC:TMR10-4821WIR -Converter_DCDC:TMR10-4822WI -Converter_DCDC:TMR10-4822WIR -Converter_DCDC:TMR10-4823WI -Converter_DCDC:TMR10-4823WIR -Converter_DCDC:TMR10-7210WIR -Converter_DCDC:TMR10-7211WIR -Converter_DCDC:TMR10-7212WIR -Converter_DCDC:TMR10-7213WIR -Converter_DCDC:TMR10-7215WIR -Converter_DCDC:TMR10-7221WIR -Converter_DCDC:TMR10-7222WIR -Converter_DCDC:TMR10-7223WIR -Converter_DCDC:TMR2-2410WI -Converter_DCDC:TMR2-2411WI -Converter_DCDC:TMR2-2412WI -Converter_DCDC:TMR2-2413WI -Converter_DCDC:TMR2-2421WI -Converter_DCDC:TMR2-2422WI -Converter_DCDC:TMR2-2423WI -Converter_DCDC:TMR2-4810WI -Converter_DCDC:TMR2-4811WI -Converter_DCDC:TMR2-4812WI -Converter_DCDC:TMR2-4813WI -Converter_DCDC:TMR2-4821WI -Converter_DCDC:TMR2-4822WI -Converter_DCDC:TMR2-4823WI -Converter_DCDC:TMR4-2411WI -Converter_DCDC:TMR4-2412WI -Converter_DCDC:TMR4-2413WI -Converter_DCDC:TMR4-2415WI -Converter_DCDC:TMR4-2422WI -Converter_DCDC:TMR4-2423WI -Converter_DCDC:TMR4-4811WI -Converter_DCDC:TMR4-4812WI -Converter_DCDC:TMR4-4813WI -Converter_DCDC:TMR4-4815WI -Converter_DCDC:TMR4-4822WI -Converter_DCDC:TMR4-4823WI -Converter_DCDC:TMU3-0511 -Converter_DCDC:TMU3-0512 -Converter_DCDC:TMU3-0513 -Converter_DCDC:TMU3-1211 -Converter_DCDC:TMU3-1212 -Converter_DCDC:TMU3-1213 -Converter_DCDC:TMU3-2411 -Converter_DCDC:TMU3-2412 -Converter_DCDC:TMU3-2413 -Converter_DCDC:TMV0505D -Converter_DCDC:TMV0505S -Converter_DCDC:TMV0509S -Converter_DCDC:TMV0512D -Converter_DCDC:TMV0512S -Converter_DCDC:TMV0515D -Converter_DCDC:TMV0515S -Converter_DCDC:TMV1205D -Converter_DCDC:TMV1205S -Converter_DCDC:TMV1212D -Converter_DCDC:TMV1212S -Converter_DCDC:TMV1215D -Converter_DCDC:TMV1215S -Converter_DCDC:TMV2405D -Converter_DCDC:TMV2405S -Converter_DCDC:TMV2412D -Converter_DCDC:TMV2412S -Converter_DCDC:TMV2415D -Converter_DCDC:TMV2415S Converter_DCDC:TPS43060RTE Converter_DCDC:TPS54240DGQ Converter_DCDC:TPS54240DRC @@ -5407,131 +4509,6 @@ Converter_DCDC:TPS82150 Converter_DCDC:TPSM53602RDA Converter_DCDC:TPSM53603RDA Converter_DCDC:TPSM53604RDA -Converter_DCDC:TRA3-0511 -Converter_DCDC:TRA3-0512 -Converter_DCDC:TRA3-0513 -Converter_DCDC:TRA3-0519 -Converter_DCDC:TRA3-1211 -Converter_DCDC:TRA3-1212 -Converter_DCDC:TRA3-1213 -Converter_DCDC:TRA3-1219 -Converter_DCDC:TRA3-2411 -Converter_DCDC:TRA3-2412 -Converter_DCDC:TRA3-2413 -Converter_DCDC:TRA3-2419 -Converter_DCDC:TRI1-0511 -Converter_DCDC:TRI1-0511SM -Converter_DCDC:TRI1-0512 -Converter_DCDC:TRI1-0512SM -Converter_DCDC:TRI1-0513 -Converter_DCDC:TRI1-0513SM -Converter_DCDC:TRI1-0522SM -Converter_DCDC:TRI1-0523SM -Converter_DCDC:TRI1-1211 -Converter_DCDC:TRI1-1211SM -Converter_DCDC:TRI1-1212 -Converter_DCDC:TRI1-1212SM -Converter_DCDC:TRI1-1213 -Converter_DCDC:TRI1-1213SM -Converter_DCDC:TRI1-1222SM -Converter_DCDC:TRI1-1223SM -Converter_DCDC:TRI1-2411 -Converter_DCDC:TRI1-2411SM -Converter_DCDC:TRI1-2412 -Converter_DCDC:TRI1-2412SM -Converter_DCDC:TRI1-2413 -Converter_DCDC:TRI1-2413SM -Converter_DCDC:TRI1-2422SM -Converter_DCDC:TRI1-2423SM -Converter_DCDC:TRI10-1210 -Converter_DCDC:TRI10-1211 -Converter_DCDC:TRI10-1212 -Converter_DCDC:TRI10-1213 -Converter_DCDC:TRI10-1215 -Converter_DCDC:TRI10-1222 -Converter_DCDC:TRI10-1223 -Converter_DCDC:TRI10-2410 -Converter_DCDC:TRI10-2411 -Converter_DCDC:TRI10-2412 -Converter_DCDC:TRI10-2413 -Converter_DCDC:TRI10-2415 -Converter_DCDC:TRI10-2422 -Converter_DCDC:TRI10-2423 -Converter_DCDC:TRI10-4810 -Converter_DCDC:TRI10-4811 -Converter_DCDC:TRI10-4812 -Converter_DCDC:TRI10-4813 -Converter_DCDC:TRI10-4815 -Converter_DCDC:TRI10-4822 -Converter_DCDC:TRI10-4823 -Converter_DCDC:TRI15-1211 -Converter_DCDC:TRI15-1212 -Converter_DCDC:TRI15-1213 -Converter_DCDC:TRI15-1215 -Converter_DCDC:TRI15-1222 -Converter_DCDC:TRI15-1223 -Converter_DCDC:TRI15-2411 -Converter_DCDC:TRI15-2412 -Converter_DCDC:TRI15-2413 -Converter_DCDC:TRI15-2415 -Converter_DCDC:TRI15-2422 -Converter_DCDC:TRI15-2423 -Converter_DCDC:TRI15-4811 -Converter_DCDC:TRI15-4812 -Converter_DCDC:TRI15-4813 -Converter_DCDC:TRI15-4815 -Converter_DCDC:TRI15-4822 -Converter_DCDC:TRI15-4823 -Converter_DCDC:TRI20-1211 -Converter_DCDC:TRI20-1212 -Converter_DCDC:TRI20-1213 -Converter_DCDC:TRI20-1215 -Converter_DCDC:TRI20-1222 -Converter_DCDC:TRI20-1223 -Converter_DCDC:TRI20-2411 -Converter_DCDC:TRI20-2412 -Converter_DCDC:TRI20-2413 -Converter_DCDC:TRI20-2415 -Converter_DCDC:TRI20-2422 -Converter_DCDC:TRI20-2423 -Converter_DCDC:TRI20-4811 -Converter_DCDC:TRI20-4812 -Converter_DCDC:TRI20-4813 -Converter_DCDC:TRI20-4815 -Converter_DCDC:TRI20-4822 -Converter_DCDC:TRI20-4823 -Converter_DCDC:TRN3-0510 -Converter_DCDC:TRN3-0511 -Converter_DCDC:TRN3-0512 -Converter_DCDC:TRN3-0513 -Converter_DCDC:TRN3-0515 -Converter_DCDC:TRN3-0521 -Converter_DCDC:TRN3-0522 -Converter_DCDC:TRN3-0523 -Converter_DCDC:TRN3-1210 -Converter_DCDC:TRN3-1211 -Converter_DCDC:TRN3-1212 -Converter_DCDC:TRN3-1213 -Converter_DCDC:TRN3-1215 -Converter_DCDC:TRN3-1221 -Converter_DCDC:TRN3-1222 -Converter_DCDC:TRN3-1223 -Converter_DCDC:TRN3-2410 -Converter_DCDC:TRN3-2411 -Converter_DCDC:TRN3-2412 -Converter_DCDC:TRN3-2413 -Converter_DCDC:TRN3-2415 -Converter_DCDC:TRN3-2421 -Converter_DCDC:TRN3-2422 -Converter_DCDC:TRN3-2423 -Converter_DCDC:TRN3-4810 -Converter_DCDC:TRN3-4811 -Converter_DCDC:TRN3-4812 -Converter_DCDC:TRN3-4813 -Converter_DCDC:TRN3-4815 -Converter_DCDC:TRN3-4821 -Converter_DCDC:TRN3-4822 -Converter_DCDC:TRN3-4823 Converter_DCDC:TSR0.5-24120 Converter_DCDC:TSR0.5-24120SM Converter_DCDC:TSR0.5-2415 @@ -5606,6 +4583,1116 @@ Converter_DCDC:TSR_1-2433 Converter_DCDC:TSR_1-2450 Converter_DCDC:TSR_1-2465 Converter_DCDC:TSR_1-2490 +Converter_DCDC_Isolated:ADuM6000 +Converter_DCDC_Isolated:ATA00A18S-L +Converter_DCDC_Isolated:ATA00A36S-L +Converter_DCDC_Isolated:ATA00AA18S-L +Converter_DCDC_Isolated:ATA00AA36S-L +Converter_DCDC_Isolated:ATA00B18S-L +Converter_DCDC_Isolated:ATA00B36S-L +Converter_DCDC_Isolated:ATA00BB18S-L +Converter_DCDC_Isolated:ATA00BB36S-L +Converter_DCDC_Isolated:ATA00C18S-L +Converter_DCDC_Isolated:ATA00C36S-L +Converter_DCDC_Isolated:ATA00CC18S-L +Converter_DCDC_Isolated:ATA00CC36S-L +Converter_DCDC_Isolated:ATA00F18S-L +Converter_DCDC_Isolated:ATA00F36S-L +Converter_DCDC_Isolated:ATA00H18S-L +Converter_DCDC_Isolated:ATA00H36S-L +Converter_DCDC_Isolated:Ag9905LP +Converter_DCDC_Isolated:CRE1S0305S3C +Converter_DCDC_Isolated:CRE1S0505DC +Converter_DCDC_Isolated:CRE1S0505S3C +Converter_DCDC_Isolated:CRE1S0505SC +Converter_DCDC_Isolated:CRE1S0515SC +Converter_DCDC_Isolated:CRE1S1205SC +Converter_DCDC_Isolated:CRE1S1212SC +Converter_DCDC_Isolated:CRE1S2405SC +Converter_DCDC_Isolated:CRE1S2412SC +Converter_DCDC_Isolated:IA0305D +Converter_DCDC_Isolated:IA0305S +Converter_DCDC_Isolated:IA0503D +Converter_DCDC_Isolated:IA0503S +Converter_DCDC_Isolated:IA0505D +Converter_DCDC_Isolated:IA0505S +Converter_DCDC_Isolated:IA0509D +Converter_DCDC_Isolated:IA0509S +Converter_DCDC_Isolated:IA0512D +Converter_DCDC_Isolated:IA0512S +Converter_DCDC_Isolated:IA0515D +Converter_DCDC_Isolated:IA0515S +Converter_DCDC_Isolated:IA0524D +Converter_DCDC_Isolated:IA0524S +Converter_DCDC_Isolated:IA1203D +Converter_DCDC_Isolated:IA1203S +Converter_DCDC_Isolated:IA1205D +Converter_DCDC_Isolated:IA1205S +Converter_DCDC_Isolated:IA1209D +Converter_DCDC_Isolated:IA1209S +Converter_DCDC_Isolated:IA1212D +Converter_DCDC_Isolated:IA1212S +Converter_DCDC_Isolated:IA1215D +Converter_DCDC_Isolated:IA1215S +Converter_DCDC_Isolated:IA1224D +Converter_DCDC_Isolated:IA1224S +Converter_DCDC_Isolated:IA2403D +Converter_DCDC_Isolated:IA2403S +Converter_DCDC_Isolated:IA2405D +Converter_DCDC_Isolated:IA2405S +Converter_DCDC_Isolated:IA2409D +Converter_DCDC_Isolated:IA2409S +Converter_DCDC_Isolated:IA2412D +Converter_DCDC_Isolated:IA2412S +Converter_DCDC_Isolated:IA2415D +Converter_DCDC_Isolated:IA2415S +Converter_DCDC_Isolated:IA2424D +Converter_DCDC_Isolated:IA2424S +Converter_DCDC_Isolated:IA4803D +Converter_DCDC_Isolated:IA4803S +Converter_DCDC_Isolated:IA4805D +Converter_DCDC_Isolated:IA4805S +Converter_DCDC_Isolated:IA4809D +Converter_DCDC_Isolated:IA4809S +Converter_DCDC_Isolated:IA4812D +Converter_DCDC_Isolated:IA4812S +Converter_DCDC_Isolated:IA4815D +Converter_DCDC_Isolated:IA4815S +Converter_DCDC_Isolated:IA4824D +Converter_DCDC_Isolated:IA4824S +Converter_DCDC_Isolated:IH0503D +Converter_DCDC_Isolated:IH0503DH +Converter_DCDC_Isolated:IH0503S +Converter_DCDC_Isolated:IH0503SH +Converter_DCDC_Isolated:IH0505D +Converter_DCDC_Isolated:IH0505DH +Converter_DCDC_Isolated:IH0505S +Converter_DCDC_Isolated:IH0505SH +Converter_DCDC_Isolated:IH0509D +Converter_DCDC_Isolated:IH0509DH +Converter_DCDC_Isolated:IH0509S +Converter_DCDC_Isolated:IH0509SH +Converter_DCDC_Isolated:IH0512D +Converter_DCDC_Isolated:IH0512DH +Converter_DCDC_Isolated:IH0512S +Converter_DCDC_Isolated:IH0512SH +Converter_DCDC_Isolated:IH0515D +Converter_DCDC_Isolated:IH0515DH +Converter_DCDC_Isolated:IH0515S +Converter_DCDC_Isolated:IH0515SH +Converter_DCDC_Isolated:IH0524D +Converter_DCDC_Isolated:IH0524DH +Converter_DCDC_Isolated:IH0524S +Converter_DCDC_Isolated:IH0524SH +Converter_DCDC_Isolated:IH1203D +Converter_DCDC_Isolated:IH1203DH +Converter_DCDC_Isolated:IH1203S +Converter_DCDC_Isolated:IH1203SH +Converter_DCDC_Isolated:IH1205D +Converter_DCDC_Isolated:IH1205DH +Converter_DCDC_Isolated:IH1205S +Converter_DCDC_Isolated:IH1205SH +Converter_DCDC_Isolated:IH1209D +Converter_DCDC_Isolated:IH1209DH +Converter_DCDC_Isolated:IH1209S +Converter_DCDC_Isolated:IH1209SH +Converter_DCDC_Isolated:IH1212D +Converter_DCDC_Isolated:IH1212DH +Converter_DCDC_Isolated:IH1212S +Converter_DCDC_Isolated:IH1212SH +Converter_DCDC_Isolated:IH1215D +Converter_DCDC_Isolated:IH1215DH +Converter_DCDC_Isolated:IH1215S +Converter_DCDC_Isolated:IH1215SH +Converter_DCDC_Isolated:IH1224D +Converter_DCDC_Isolated:IH1224DH +Converter_DCDC_Isolated:IH1224S +Converter_DCDC_Isolated:IH1224SH +Converter_DCDC_Isolated:IH2403D +Converter_DCDC_Isolated:IH2403DH +Converter_DCDC_Isolated:IH2403S +Converter_DCDC_Isolated:IH2403SH +Converter_DCDC_Isolated:IH2405D +Converter_DCDC_Isolated:IH2405DH +Converter_DCDC_Isolated:IH2405S +Converter_DCDC_Isolated:IH2405SH +Converter_DCDC_Isolated:IH2409D +Converter_DCDC_Isolated:IH2409DH +Converter_DCDC_Isolated:IH2409S +Converter_DCDC_Isolated:IH2409SH +Converter_DCDC_Isolated:IH2412D +Converter_DCDC_Isolated:IH2412DH +Converter_DCDC_Isolated:IH2412S +Converter_DCDC_Isolated:IH2412SH +Converter_DCDC_Isolated:IH2415D +Converter_DCDC_Isolated:IH2415DH +Converter_DCDC_Isolated:IH2415S +Converter_DCDC_Isolated:IH2415SH +Converter_DCDC_Isolated:IH2424D +Converter_DCDC_Isolated:IH2424DH +Converter_DCDC_Isolated:IH2424S +Converter_DCDC_Isolated:IH2424SH +Converter_DCDC_Isolated:IH4803D +Converter_DCDC_Isolated:IH4803DH +Converter_DCDC_Isolated:IH4803S +Converter_DCDC_Isolated:IH4803SH +Converter_DCDC_Isolated:IH4805D +Converter_DCDC_Isolated:IH4805DH +Converter_DCDC_Isolated:IH4805S +Converter_DCDC_Isolated:IH4805SH +Converter_DCDC_Isolated:IH4809D +Converter_DCDC_Isolated:IH4809DH +Converter_DCDC_Isolated:IH4809S +Converter_DCDC_Isolated:IH4809SH +Converter_DCDC_Isolated:IH4812D +Converter_DCDC_Isolated:IH4812DH +Converter_DCDC_Isolated:IH4812S +Converter_DCDC_Isolated:IH4812SH +Converter_DCDC_Isolated:IH4815D +Converter_DCDC_Isolated:IH4815DH +Converter_DCDC_Isolated:IH4815S +Converter_DCDC_Isolated:IH4815SH +Converter_DCDC_Isolated:IH4824D +Converter_DCDC_Isolated:IH4824DH +Converter_DCDC_Isolated:IH4824S +Converter_DCDC_Isolated:IH4824SH +Converter_DCDC_Isolated:ISU0205D12 +Converter_DCDC_Isolated:ISU0205D15 +Converter_DCDC_Isolated:ISU0205S05 +Converter_DCDC_Isolated:ISU0205S12 +Converter_DCDC_Isolated:ISU0205S15 +Converter_DCDC_Isolated:ISU0205S24 +Converter_DCDC_Isolated:ISU0224D12 +Converter_DCDC_Isolated:ISU0224D15 +Converter_DCDC_Isolated:ISU0224S05 +Converter_DCDC_Isolated:ISU0224S12 +Converter_DCDC_Isolated:ISU0224S15 +Converter_DCDC_Isolated:ISU0224S24 +Converter_DCDC_Isolated:ISU0248D12 +Converter_DCDC_Isolated:ISU0248D15 +Converter_DCDC_Isolated:ISU0248S05 +Converter_DCDC_Isolated:ISU0248S12 +Converter_DCDC_Isolated:ISU0248S15 +Converter_DCDC_Isolated:ISU0248S24 +Converter_DCDC_Isolated:ITQ2403SA +Converter_DCDC_Isolated:ITQ2403SA-H +Converter_DCDC_Isolated:ITQ2405S +Converter_DCDC_Isolated:ITQ2405S-H +Converter_DCDC_Isolated:ITQ2405SA +Converter_DCDC_Isolated:ITQ2405SA-H +Converter_DCDC_Isolated:ITQ2409SA +Converter_DCDC_Isolated:ITQ2409SA-H +Converter_DCDC_Isolated:ITQ2412S +Converter_DCDC_Isolated:ITQ2412S-H +Converter_DCDC_Isolated:ITQ2412SA +Converter_DCDC_Isolated:ITQ2412SA-H +Converter_DCDC_Isolated:ITQ2415S +Converter_DCDC_Isolated:ITQ2415S-H +Converter_DCDC_Isolated:ITQ2415SA +Converter_DCDC_Isolated:ITQ2415SA-H +Converter_DCDC_Isolated:ITQ2424SA +Converter_DCDC_Isolated:ITQ2424SA-H +Converter_DCDC_Isolated:ITQ4803SA +Converter_DCDC_Isolated:ITQ4803SA-H +Converter_DCDC_Isolated:ITQ4805S +Converter_DCDC_Isolated:ITQ4805S-H +Converter_DCDC_Isolated:ITQ4805SA +Converter_DCDC_Isolated:ITQ4805SA-H +Converter_DCDC_Isolated:ITQ4809SA +Converter_DCDC_Isolated:ITQ4809SA-H +Converter_DCDC_Isolated:ITQ4812S +Converter_DCDC_Isolated:ITQ4812S-H +Converter_DCDC_Isolated:ITQ4812SA +Converter_DCDC_Isolated:ITQ4812SA-H +Converter_DCDC_Isolated:ITQ4815S +Converter_DCDC_Isolated:ITQ4815S-H +Converter_DCDC_Isolated:ITQ4815SA +Converter_DCDC_Isolated:ITQ4815SA-H +Converter_DCDC_Isolated:ITQ4824SA +Converter_DCDC_Isolated:ITQ4824SA-H +Converter_DCDC_Isolated:ITX0503SA +Converter_DCDC_Isolated:ITX0503SA-H +Converter_DCDC_Isolated:ITX0503SA-HR +Converter_DCDC_Isolated:ITX0503SA-R +Converter_DCDC_Isolated:ITX0505S +Converter_DCDC_Isolated:ITX0505S-H +Converter_DCDC_Isolated:ITX0505S-HR +Converter_DCDC_Isolated:ITX0505S-R +Converter_DCDC_Isolated:ITX0505SA +Converter_DCDC_Isolated:ITX0505SA-H +Converter_DCDC_Isolated:ITX0505SA-HR +Converter_DCDC_Isolated:ITX0505SA-R +Converter_DCDC_Isolated:ITX0509SA +Converter_DCDC_Isolated:ITX0509SA-H +Converter_DCDC_Isolated:ITX0509SA-HR +Converter_DCDC_Isolated:ITX0509SA-R +Converter_DCDC_Isolated:ITX0512S +Converter_DCDC_Isolated:ITX0512S-H +Converter_DCDC_Isolated:ITX0512S-HR +Converter_DCDC_Isolated:ITX0512S-R +Converter_DCDC_Isolated:ITX0512SA +Converter_DCDC_Isolated:ITX0512SA-H +Converter_DCDC_Isolated:ITX0512SA-HR +Converter_DCDC_Isolated:ITX0512SA-R +Converter_DCDC_Isolated:ITX0515S +Converter_DCDC_Isolated:ITX0515S-H +Converter_DCDC_Isolated:ITX0515S-HR +Converter_DCDC_Isolated:ITX0515S-R +Converter_DCDC_Isolated:ITX0515SA +Converter_DCDC_Isolated:ITX0515SA-H +Converter_DCDC_Isolated:ITX0515SA-HR +Converter_DCDC_Isolated:ITX0515SA-R +Converter_DCDC_Isolated:ITX0524SA +Converter_DCDC_Isolated:ITX0524SA-H +Converter_DCDC_Isolated:ITX0524SA-HR +Converter_DCDC_Isolated:ITX0524SA-R +Converter_DCDC_Isolated:ITX1203SA +Converter_DCDC_Isolated:ITX1203SA-H +Converter_DCDC_Isolated:ITX1203SA-HR +Converter_DCDC_Isolated:ITX1203SA-R +Converter_DCDC_Isolated:ITX1205S +Converter_DCDC_Isolated:ITX1205S-H +Converter_DCDC_Isolated:ITX1205S-HR +Converter_DCDC_Isolated:ITX1205S-R +Converter_DCDC_Isolated:ITX1205SA +Converter_DCDC_Isolated:ITX1205SA-H +Converter_DCDC_Isolated:ITX1205SA-HR +Converter_DCDC_Isolated:ITX1205SA-R +Converter_DCDC_Isolated:ITX1209SA +Converter_DCDC_Isolated:ITX1209SA-H +Converter_DCDC_Isolated:ITX1209SA-HR +Converter_DCDC_Isolated:ITX1209SA-R +Converter_DCDC_Isolated:ITX1212S +Converter_DCDC_Isolated:ITX1212S-H +Converter_DCDC_Isolated:ITX1212S-HR +Converter_DCDC_Isolated:ITX1212S-R +Converter_DCDC_Isolated:ITX1212SA +Converter_DCDC_Isolated:ITX1212SA-H +Converter_DCDC_Isolated:ITX1212SA-HR +Converter_DCDC_Isolated:ITX1212SA-R +Converter_DCDC_Isolated:ITX1215S +Converter_DCDC_Isolated:ITX1215S-H +Converter_DCDC_Isolated:ITX1215S-HR +Converter_DCDC_Isolated:ITX1215S-R +Converter_DCDC_Isolated:ITX1215SA +Converter_DCDC_Isolated:ITX1215SA-H +Converter_DCDC_Isolated:ITX1215SA-HR +Converter_DCDC_Isolated:ITX1215SA-R +Converter_DCDC_Isolated:ITX1224SA +Converter_DCDC_Isolated:ITX1224SA-H +Converter_DCDC_Isolated:ITX1224SA-HR +Converter_DCDC_Isolated:ITX1224SA-R +Converter_DCDC_Isolated:ITX2403SA +Converter_DCDC_Isolated:ITX2403SA-H +Converter_DCDC_Isolated:ITX2403SA-HR +Converter_DCDC_Isolated:ITX2403SA-R +Converter_DCDC_Isolated:ITX2405S +Converter_DCDC_Isolated:ITX2405S-H +Converter_DCDC_Isolated:ITX2405S-HR +Converter_DCDC_Isolated:ITX2405S-R +Converter_DCDC_Isolated:ITX2405SA +Converter_DCDC_Isolated:ITX2405SA-H +Converter_DCDC_Isolated:ITX2405SA-HR +Converter_DCDC_Isolated:ITX2405SA-R +Converter_DCDC_Isolated:ITX2409SA +Converter_DCDC_Isolated:ITX2409SA-H +Converter_DCDC_Isolated:ITX2409SA-HR +Converter_DCDC_Isolated:ITX2409SA-R +Converter_DCDC_Isolated:ITX2412S +Converter_DCDC_Isolated:ITX2412S-H +Converter_DCDC_Isolated:ITX2412S-HR +Converter_DCDC_Isolated:ITX2412S-R +Converter_DCDC_Isolated:ITX2412SA +Converter_DCDC_Isolated:ITX2412SA-H +Converter_DCDC_Isolated:ITX2412SA-HR +Converter_DCDC_Isolated:ITX2412SA-R +Converter_DCDC_Isolated:ITX2415S +Converter_DCDC_Isolated:ITX2415S-H +Converter_DCDC_Isolated:ITX2415S-HR +Converter_DCDC_Isolated:ITX2415S-R +Converter_DCDC_Isolated:ITX2415SA +Converter_DCDC_Isolated:ITX2415SA-H +Converter_DCDC_Isolated:ITX2415SA-HR +Converter_DCDC_Isolated:ITX2415SA-R +Converter_DCDC_Isolated:ITX2424SA +Converter_DCDC_Isolated:ITX2424SA-H +Converter_DCDC_Isolated:ITX2424SA-HR +Converter_DCDC_Isolated:ITX2424SA-R +Converter_DCDC_Isolated:ITX4803SA +Converter_DCDC_Isolated:ITX4803SA-H +Converter_DCDC_Isolated:ITX4803SA-HR +Converter_DCDC_Isolated:ITX4803SA-R +Converter_DCDC_Isolated:ITX4805S +Converter_DCDC_Isolated:ITX4805S-H +Converter_DCDC_Isolated:ITX4805S-HR +Converter_DCDC_Isolated:ITX4805S-R +Converter_DCDC_Isolated:ITX4805SA +Converter_DCDC_Isolated:ITX4805SA-H +Converter_DCDC_Isolated:ITX4805SA-HR +Converter_DCDC_Isolated:ITX4805SA-R +Converter_DCDC_Isolated:ITX4809SA +Converter_DCDC_Isolated:ITX4809SA-H +Converter_DCDC_Isolated:ITX4809SA-HR +Converter_DCDC_Isolated:ITX4809SA-R +Converter_DCDC_Isolated:ITX4812S +Converter_DCDC_Isolated:ITX4812S-H +Converter_DCDC_Isolated:ITX4812S-HR +Converter_DCDC_Isolated:ITX4812S-R +Converter_DCDC_Isolated:ITX4812SA +Converter_DCDC_Isolated:ITX4812SA-H +Converter_DCDC_Isolated:ITX4812SA-HR +Converter_DCDC_Isolated:ITX4812SA-R +Converter_DCDC_Isolated:ITX4815S +Converter_DCDC_Isolated:ITX4815S-H +Converter_DCDC_Isolated:ITX4815S-HR +Converter_DCDC_Isolated:ITX4815S-R +Converter_DCDC_Isolated:ITX4815SA +Converter_DCDC_Isolated:ITX4815SA-H +Converter_DCDC_Isolated:ITX4815SA-HR +Converter_DCDC_Isolated:ITX4815SA-R +Converter_DCDC_Isolated:ITX4824SA +Converter_DCDC_Isolated:ITX4824SA-H +Converter_DCDC_Isolated:ITX4824SA-HR +Converter_DCDC_Isolated:ITX4824SA-R +Converter_DCDC_Isolated:JTD1524D05 +Converter_DCDC_Isolated:JTD1524D12 +Converter_DCDC_Isolated:JTD1524D15 +Converter_DCDC_Isolated:JTD1524S05 +Converter_DCDC_Isolated:JTD1524S12 +Converter_DCDC_Isolated:JTD1524S15 +Converter_DCDC_Isolated:JTD1524S3V3 +Converter_DCDC_Isolated:JTD1548D05 +Converter_DCDC_Isolated:JTD1548D12 +Converter_DCDC_Isolated:JTD1548D15 +Converter_DCDC_Isolated:JTD1548S05 +Converter_DCDC_Isolated:JTD1548S12 +Converter_DCDC_Isolated:JTD1548S15 +Converter_DCDC_Isolated:JTD1548S3V3 +Converter_DCDC_Isolated:JTD2024D05 +Converter_DCDC_Isolated:JTD2024D12 +Converter_DCDC_Isolated:JTD2024D15 +Converter_DCDC_Isolated:JTD2024S05 +Converter_DCDC_Isolated:JTD2024S12 +Converter_DCDC_Isolated:JTD2024S15 +Converter_DCDC_Isolated:JTD2024S3V3 +Converter_DCDC_Isolated:JTD2048D05 +Converter_DCDC_Isolated:JTD2048D12 +Converter_DCDC_Isolated:JTD2048D15 +Converter_DCDC_Isolated:JTD2048S05 +Converter_DCDC_Isolated:JTD2048S12 +Converter_DCDC_Isolated:JTD2048S15 +Converter_DCDC_Isolated:JTD2048S3V3 +Converter_DCDC_Isolated:JTE0624D03 +Converter_DCDC_Isolated:JTE0624D05 +Converter_DCDC_Isolated:JTE0624D12 +Converter_DCDC_Isolated:JTE0624D15 +Converter_DCDC_Isolated:JTE0624D24 +Converter_DCDC_Isolated:MEE1S0303SC +Converter_DCDC_Isolated:MEE1S0305SC +Converter_DCDC_Isolated:MEE1S0309SC +Converter_DCDC_Isolated:MEE1S0312SC +Converter_DCDC_Isolated:MEE1S0315SC +Converter_DCDC_Isolated:MEE1S0503SC +Converter_DCDC_Isolated:MEE1S0505SC +Converter_DCDC_Isolated:MEE1S0509SC +Converter_DCDC_Isolated:MEE1S0512SC +Converter_DCDC_Isolated:MEE1S0515SC +Converter_DCDC_Isolated:MEE1S1205SC +Converter_DCDC_Isolated:MEE1S1209SC +Converter_DCDC_Isolated:MEE1S1212SC +Converter_DCDC_Isolated:MEE1S1215SC +Converter_DCDC_Isolated:MEE1S1505SC +Converter_DCDC_Isolated:MEE1S1509SC +Converter_DCDC_Isolated:MEE1S1512SC +Converter_DCDC_Isolated:MEE1S1515SC +Converter_DCDC_Isolated:MEE1S2405SC +Converter_DCDC_Isolated:MEE1S2409SC +Converter_DCDC_Isolated:MEE1S2412SC +Converter_DCDC_Isolated:MEE1S2415SC +Converter_DCDC_Isolated:MEE3S0505SC +Converter_DCDC_Isolated:MEE3S0509SC +Converter_DCDC_Isolated:MEE3S0512SC +Converter_DCDC_Isolated:MEE3S0515SC +Converter_DCDC_Isolated:MEE3S1205SC +Converter_DCDC_Isolated:MEE3S1209SC +Converter_DCDC_Isolated:MEE3S1212SC +Converter_DCDC_Isolated:MEE3S1215SC +Converter_DCDC_Isolated:MGJ2D051505SC +Converter_DCDC_Isolated:MGJ2D051509SC +Converter_DCDC_Isolated:MGJ2D051515SC +Converter_DCDC_Isolated:MGJ2D051802SC +Converter_DCDC_Isolated:MGJ2D052003SC +Converter_DCDC_Isolated:MGJ2D052005SC +Converter_DCDC_Isolated:MGJ2D121505SC +Converter_DCDC_Isolated:MGJ2D121509SC +Converter_DCDC_Isolated:MGJ2D121802SC +Converter_DCDC_Isolated:MGJ2D122003SC +Converter_DCDC_Isolated:MGJ2D122005SC +Converter_DCDC_Isolated:MGJ2D151505SC +Converter_DCDC_Isolated:MGJ2D151509SC +Converter_DCDC_Isolated:MGJ2D151515SC +Converter_DCDC_Isolated:MGJ2D151802SC +Converter_DCDC_Isolated:MGJ2D152003SC +Converter_DCDC_Isolated:MGJ2D152005SC +Converter_DCDC_Isolated:MGJ2D241505SC +Converter_DCDC_Isolated:MGJ2D241509SC +Converter_DCDC_Isolated:MGJ2D241709SC +Converter_DCDC_Isolated:MGJ2D241802SC +Converter_DCDC_Isolated:MGJ2D242003SC +Converter_DCDC_Isolated:MGJ2D242005SC +Converter_DCDC_Isolated:MGJ3T05150505MC +Converter_DCDC_Isolated:MGJ3T12150505MC +Converter_DCDC_Isolated:MGJ3T24150505MC +Converter_DCDC_Isolated:NCS1S1203SC +Converter_DCDC_Isolated:NCS1S1205SC +Converter_DCDC_Isolated:NCS1S1212SC +Converter_DCDC_Isolated:NCS1S2403SC +Converter_DCDC_Isolated:NCS1S2405SC +Converter_DCDC_Isolated:NCS1S2412SC +Converter_DCDC_Isolated:NMA0505DC +Converter_DCDC_Isolated:NMA0505SC +Converter_DCDC_Isolated:NMA0509DC +Converter_DCDC_Isolated:NMA0509SC +Converter_DCDC_Isolated:NMA0512DC +Converter_DCDC_Isolated:NMA0512SC +Converter_DCDC_Isolated:NMA0515DC +Converter_DCDC_Isolated:NMA0515SC +Converter_DCDC_Isolated:NMA1205DC +Converter_DCDC_Isolated:NMA1205SC +Converter_DCDC_Isolated:NMA1209DC +Converter_DCDC_Isolated:NMA1209SC +Converter_DCDC_Isolated:NMA1212DC +Converter_DCDC_Isolated:NMA1212SC +Converter_DCDC_Isolated:NMA1215DC +Converter_DCDC_Isolated:NMA1215SC +Converter_DCDC_Isolated:NMA1505DC +Converter_DCDC_Isolated:NMA1505SC +Converter_DCDC_Isolated:NMA1512DC +Converter_DCDC_Isolated:NMA1512SC +Converter_DCDC_Isolated:NMA1515DC +Converter_DCDC_Isolated:NMA1515SC +Converter_DCDC_Isolated:NSD10-xxDyy +Converter_DCDC_Isolated:NSD10-xxSyy +Converter_DCDC_Isolated:NXE1S0303MC +Converter_DCDC_Isolated:NXE1S0305MC +Converter_DCDC_Isolated:NXE1S0505MC +Converter_DCDC_Isolated:NXE2S0505MC +Converter_DCDC_Isolated:NXE2S1205MC +Converter_DCDC_Isolated:NXE2S1212MC +Converter_DCDC_Isolated:NXE2S1215MC +Converter_DCDC_Isolated:RPA60-2405SFW +Converter_DCDC_Isolated:RPA60-2412SFW +Converter_DCDC_Isolated:RPA60-2415SFW +Converter_DCDC_Isolated:RPA60-2424SFW +Converter_DCDC_Isolated:SMU02L-24N +Converter_DCDC_Isolated:TBA1-0310 +Converter_DCDC_Isolated:TBA1-0311 +Converter_DCDC_Isolated:TBA1-0510 +Converter_DCDC_Isolated:TBA1-0511 +Converter_DCDC_Isolated:TBA1-0511E +Converter_DCDC_Isolated:TBA1-0512 +Converter_DCDC_Isolated:TBA1-0512E +Converter_DCDC_Isolated:TBA1-0513 +Converter_DCDC_Isolated:TBA1-0513E +Converter_DCDC_Isolated:TBA1-0519 +Converter_DCDC_Isolated:TBA1-0521E +Converter_DCDC_Isolated:TBA1-0522E +Converter_DCDC_Isolated:TBA1-0523E +Converter_DCDC_Isolated:TBA1-1211 +Converter_DCDC_Isolated:TBA1-1211E +Converter_DCDC_Isolated:TBA1-1212 +Converter_DCDC_Isolated:TBA1-1212E +Converter_DCDC_Isolated:TBA1-1213 +Converter_DCDC_Isolated:TBA1-1213E +Converter_DCDC_Isolated:TBA1-1219 +Converter_DCDC_Isolated:TBA1-1221E +Converter_DCDC_Isolated:TBA1-1222E +Converter_DCDC_Isolated:TBA1-1223E +Converter_DCDC_Isolated:TBA1-2411 +Converter_DCDC_Isolated:TBA1-2411E +Converter_DCDC_Isolated:TBA1-2412 +Converter_DCDC_Isolated:TBA1-2412E +Converter_DCDC_Isolated:TBA1-2413 +Converter_DCDC_Isolated:TBA1-2413E +Converter_DCDC_Isolated:TBA1-2419 +Converter_DCDC_Isolated:TBA1-2421E +Converter_DCDC_Isolated:TBA1-2422E +Converter_DCDC_Isolated:TBA1-2423E +Converter_DCDC_Isolated:TBA2-0511 +Converter_DCDC_Isolated:TBA2-0512 +Converter_DCDC_Isolated:TBA2-0513 +Converter_DCDC_Isolated:TBA2-0521 +Converter_DCDC_Isolated:TBA2-0522 +Converter_DCDC_Isolated:TBA2-0523 +Converter_DCDC_Isolated:TBA2-1211 +Converter_DCDC_Isolated:TBA2-1212 +Converter_DCDC_Isolated:TBA2-1213 +Converter_DCDC_Isolated:TBA2-1221 +Converter_DCDC_Isolated:TBA2-1222 +Converter_DCDC_Isolated:TBA2-1223 +Converter_DCDC_Isolated:TBA2-2411 +Converter_DCDC_Isolated:TBA2-2412 +Converter_DCDC_Isolated:TBA2-2413 +Converter_DCDC_Isolated:TBA2-2421 +Converter_DCDC_Isolated:TBA2-2422 +Converter_DCDC_Isolated:TBA2-2423 +Converter_DCDC_Isolated:TDU1-0511 +Converter_DCDC_Isolated:TDU1-0512 +Converter_DCDC_Isolated:TDU1-0513 +Converter_DCDC_Isolated:TDU1-1211 +Converter_DCDC_Isolated:TDU1-1212 +Converter_DCDC_Isolated:TDU1-1213 +Converter_DCDC_Isolated:TDU1-2411 +Converter_DCDC_Isolated:TDU1-2412 +Converter_DCDC_Isolated:TDU1-2413 +Converter_DCDC_Isolated:TEA1-0505 +Converter_DCDC_Isolated:TEA1-0505E +Converter_DCDC_Isolated:TEA1-0505HI +Converter_DCDC_Isolated:TEC2-1210WI +Converter_DCDC_Isolated:TEC2-1211WI +Converter_DCDC_Isolated:TEC2-1212WI +Converter_DCDC_Isolated:TEC2-1213WI +Converter_DCDC_Isolated:TEC2-1215WI +Converter_DCDC_Isolated:TEC2-1219WI +Converter_DCDC_Isolated:TEC2-1221WI +Converter_DCDC_Isolated:TEC2-1222WI +Converter_DCDC_Isolated:TEC2-1223WI +Converter_DCDC_Isolated:TEC2-2410WI +Converter_DCDC_Isolated:TEC2-2411WI +Converter_DCDC_Isolated:TEC2-2412WI +Converter_DCDC_Isolated:TEC2-2413WI +Converter_DCDC_Isolated:TEC2-2415WI +Converter_DCDC_Isolated:TEC2-2419WI +Converter_DCDC_Isolated:TEC2-2421WI +Converter_DCDC_Isolated:TEC2-2422WI +Converter_DCDC_Isolated:TEC2-2423WI +Converter_DCDC_Isolated:TEC2-4810WI +Converter_DCDC_Isolated:TEC2-4811WI +Converter_DCDC_Isolated:TEC2-4812WI +Converter_DCDC_Isolated:TEC2-4813WI +Converter_DCDC_Isolated:TEC2-4815WI +Converter_DCDC_Isolated:TEC2-4819WI +Converter_DCDC_Isolated:TEC2-4821WI +Converter_DCDC_Isolated:TEC2-4822WI +Converter_DCDC_Isolated:TEC2-4823WI +Converter_DCDC_Isolated:TEC3-2410UI +Converter_DCDC_Isolated:TEC3-2411UI +Converter_DCDC_Isolated:TEC3-2412UI +Converter_DCDC_Isolated:TEC3-2413UI +Converter_DCDC_Isolated:TEC3-2421UI +Converter_DCDC_Isolated:TEC3-2422UI +Converter_DCDC_Isolated:TEC3-2423UI +Converter_DCDC_Isolated:TEC6-2410UI +Converter_DCDC_Isolated:TEC6-2411UI +Converter_DCDC_Isolated:TEC6-2412UI +Converter_DCDC_Isolated:TEC6-2413UI +Converter_DCDC_Isolated:TEC6-2415UI +Converter_DCDC_Isolated:TEC6-2419UI +Converter_DCDC_Isolated:TEC6-2421UI +Converter_DCDC_Isolated:TEC6-2422UI +Converter_DCDC_Isolated:TEC6-2423UI +Converter_DCDC_Isolated:TEL12-1211 +Converter_DCDC_Isolated:TEL12-1212 +Converter_DCDC_Isolated:TEL12-1213 +Converter_DCDC_Isolated:TEL12-1215 +Converter_DCDC_Isolated:TEL12-1222 +Converter_DCDC_Isolated:TEL12-1223 +Converter_DCDC_Isolated:TEL12-2411 +Converter_DCDC_Isolated:TEL12-2411WI +Converter_DCDC_Isolated:TEL12-2412 +Converter_DCDC_Isolated:TEL12-2412WI +Converter_DCDC_Isolated:TEL12-2413 +Converter_DCDC_Isolated:TEL12-2413WI +Converter_DCDC_Isolated:TEL12-2415 +Converter_DCDC_Isolated:TEL12-2415WI +Converter_DCDC_Isolated:TEL12-2422 +Converter_DCDC_Isolated:TEL12-2422WI +Converter_DCDC_Isolated:TEL12-2423 +Converter_DCDC_Isolated:TEL12-2423WI +Converter_DCDC_Isolated:TEL12-4811 +Converter_DCDC_Isolated:TEL12-4811WI +Converter_DCDC_Isolated:TEL12-4812 +Converter_DCDC_Isolated:TEL12-4812WI +Converter_DCDC_Isolated:TEL12-4813 +Converter_DCDC_Isolated:TEL12-4813WI +Converter_DCDC_Isolated:TEL12-4815 +Converter_DCDC_Isolated:TEL12-4815WI +Converter_DCDC_Isolated:TEL12-4822 +Converter_DCDC_Isolated:TEL12-4822WI +Converter_DCDC_Isolated:TEL12-4823 +Converter_DCDC_Isolated:TEL12-4823WI +Converter_DCDC_Isolated:TEN10-11010WIRH +Converter_DCDC_Isolated:TEN10-11011WIRH +Converter_DCDC_Isolated:TEN10-11012WIRH +Converter_DCDC_Isolated:TEN10-11013WIRH +Converter_DCDC_Isolated:TEN10-11015WIRH +Converter_DCDC_Isolated:TEN10-11021WIRH +Converter_DCDC_Isolated:TEN10-11022WIRH +Converter_DCDC_Isolated:TEN10-11023WIRH +Converter_DCDC_Isolated:TEN20-11011WIRH +Converter_DCDC_Isolated:TEN20-11012WIRH +Converter_DCDC_Isolated:TEN20-11013WIRH +Converter_DCDC_Isolated:TEN20-11015WIRH +Converter_DCDC_Isolated:TEN20-11021WIRH +Converter_DCDC_Isolated:TEN20-11022WIRH +Converter_DCDC_Isolated:TEN20-11023WIRH +Converter_DCDC_Isolated:TEN20-2410WIN +Converter_DCDC_Isolated:TEN20-2411WIN +Converter_DCDC_Isolated:TEN20-2412WIN +Converter_DCDC_Isolated:TEN20-2413WIN +Converter_DCDC_Isolated:TEN20-2421WIN +Converter_DCDC_Isolated:TEN20-2422WIN +Converter_DCDC_Isolated:TEN20-2423WIN +Converter_DCDC_Isolated:TEN20-4810WIN +Converter_DCDC_Isolated:TEN20-4811WIN +Converter_DCDC_Isolated:TEN20-4812WIN +Converter_DCDC_Isolated:TEN20-4813WIN +Converter_DCDC_Isolated:TEN20-4821WIN +Converter_DCDC_Isolated:TEN20-4822WIN +Converter_DCDC_Isolated:TEN20-4823WIN +Converter_DCDC_Isolated:TEN3-11010WIRH +Converter_DCDC_Isolated:TEN3-11011WIRH +Converter_DCDC_Isolated:TEN3-11012WIRH +Converter_DCDC_Isolated:TEN3-11013WIRH +Converter_DCDC_Isolated:TEN3-11015WIRH +Converter_DCDC_Isolated:TEN3-11021WIRH +Converter_DCDC_Isolated:TEN3-11022WIRH +Converter_DCDC_Isolated:TEN3-11023WIRH +Converter_DCDC_Isolated:TEN40-11011WIRH +Converter_DCDC_Isolated:TEN40-11012WIRH +Converter_DCDC_Isolated:TEN40-11013WIRH +Converter_DCDC_Isolated:TEN40-11015WIRH +Converter_DCDC_Isolated:TEN40-11022WIRH +Converter_DCDC_Isolated:TEN40-11023WIRH +Converter_DCDC_Isolated:TEN6-11010WIRH +Converter_DCDC_Isolated:TEN6-11011WIRH +Converter_DCDC_Isolated:TEN6-11012WIRH +Converter_DCDC_Isolated:TEN6-11013WIRH +Converter_DCDC_Isolated:TEN6-11015WIRH +Converter_DCDC_Isolated:TEN6-11021WIRH +Converter_DCDC_Isolated:TEN6-11022WIRH +Converter_DCDC_Isolated:TEN6-11023WIRH +Converter_DCDC_Isolated:TEP150-7211UIR +Converter_DCDC_Isolated:TEP150-7212UIR +Converter_DCDC_Isolated:TEP150-7213UIR +Converter_DCDC_Isolated:TEP150-7215UIR +Converter_DCDC_Isolated:TEP150-7218UIR +Converter_DCDC_Isolated:TEP200-7211UIR +Converter_DCDC_Isolated:TEP200-7212UIR +Converter_DCDC_Isolated:TEP200-7213UIR +Converter_DCDC_Isolated:TEP200-7215UIR +Converter_DCDC_Isolated:TEP200-7218UIR +Converter_DCDC_Isolated:TES1-0510 +Converter_DCDC_Isolated:TES1-0511 +Converter_DCDC_Isolated:TES1-0512 +Converter_DCDC_Isolated:TES1-0513 +Converter_DCDC_Isolated:TES1-0519 +Converter_DCDC_Isolated:TES1-0521 +Converter_DCDC_Isolated:TES1-0522 +Converter_DCDC_Isolated:TES1-0523 +Converter_DCDC_Isolated:TES1-1211 +Converter_DCDC_Isolated:TES1-1212 +Converter_DCDC_Isolated:TES1-1213 +Converter_DCDC_Isolated:TES1-1219 +Converter_DCDC_Isolated:TES1-1221 +Converter_DCDC_Isolated:TES1-1222 +Converter_DCDC_Isolated:TES1-1223 +Converter_DCDC_Isolated:TES1-2411 +Converter_DCDC_Isolated:TES1-2412 +Converter_DCDC_Isolated:TES1-2413 +Converter_DCDC_Isolated:TES1-2419 +Converter_DCDC_Isolated:TES1-2421 +Converter_DCDC_Isolated:TES1-2422 +Converter_DCDC_Isolated:TES1-2423 +Converter_DCDC_Isolated:THB10-1211 +Converter_DCDC_Isolated:THB10-1212 +Converter_DCDC_Isolated:THB10-1222 +Converter_DCDC_Isolated:THB10-1223 +Converter_DCDC_Isolated:THB10-2411 +Converter_DCDC_Isolated:THB10-2412 +Converter_DCDC_Isolated:THB10-2422 +Converter_DCDC_Isolated:THB10-2423 +Converter_DCDC_Isolated:THB10-4811 +Converter_DCDC_Isolated:THB10-4812 +Converter_DCDC_Isolated:THB10-4822 +Converter_DCDC_Isolated:THB10-4823 +Converter_DCDC_Isolated:THL30-2410WI +Converter_DCDC_Isolated:THL30-2411WI +Converter_DCDC_Isolated:THL30-2412WI +Converter_DCDC_Isolated:THL30-2413WI +Converter_DCDC_Isolated:THL30-2415WI +Converter_DCDC_Isolated:THL30-2422WI +Converter_DCDC_Isolated:THL30-2423WI +Converter_DCDC_Isolated:THL30-4810WI +Converter_DCDC_Isolated:THL30-4811WI +Converter_DCDC_Isolated:THL30-4812WI +Converter_DCDC_Isolated:THL30-4813WI +Converter_DCDC_Isolated:THL30-4815WI +Converter_DCDC_Isolated:THL30-4822WI +Converter_DCDC_Isolated:THL30-4823WI +Converter_DCDC_Isolated:THL40-2411WI +Converter_DCDC_Isolated:THL40-2412WI +Converter_DCDC_Isolated:THL40-2413WI +Converter_DCDC_Isolated:THL40-2415WI +Converter_DCDC_Isolated:THL40-2422WI +Converter_DCDC_Isolated:THL40-2423WI +Converter_DCDC_Isolated:THL40-4811WI +Converter_DCDC_Isolated:THL40-4812WI +Converter_DCDC_Isolated:THL40-4813WI +Converter_DCDC_Isolated:THL40-4815WI +Converter_DCDC_Isolated:THL40-4822WI +Converter_DCDC_Isolated:THL40-4823WI +Converter_DCDC_Isolated:THN10-3610UIR +Converter_DCDC_Isolated:THN10-3611UIR +Converter_DCDC_Isolated:THN10-3612UIR +Converter_DCDC_Isolated:THN10-3613UIR +Converter_DCDC_Isolated:THN10-3615UIR +Converter_DCDC_Isolated:THN10-3621UIR +Converter_DCDC_Isolated:THN10-3622UIR +Converter_DCDC_Isolated:THN10-3623UIR +Converter_DCDC_Isolated:THN10-7210UIR +Converter_DCDC_Isolated:THN10-7211UIR +Converter_DCDC_Isolated:THN10-7212UIR +Converter_DCDC_Isolated:THN10-7213UIR +Converter_DCDC_Isolated:THN10-7215UIR +Converter_DCDC_Isolated:THN10-7221UIR +Converter_DCDC_Isolated:THN10-7222UIR +Converter_DCDC_Isolated:THN10-7223UIR +Converter_DCDC_Isolated:THR40-7211WI +Converter_DCDC_Isolated:THR40-7212WI +Converter_DCDC_Isolated:THR40-7213WI +Converter_DCDC_Isolated:THR40-72154WI +Converter_DCDC_Isolated:THR40-7215WI +Converter_DCDC_Isolated:THR40-7222WI +Converter_DCDC_Isolated:THR40-7223WI +Converter_DCDC_Isolated:TMA-0505D +Converter_DCDC_Isolated:TMA-0505S +Converter_DCDC_Isolated:TMA-0512D +Converter_DCDC_Isolated:TMA-0512S +Converter_DCDC_Isolated:TMA-0515D +Converter_DCDC_Isolated:TMA-0515S +Converter_DCDC_Isolated:TMA-1205D +Converter_DCDC_Isolated:TMA-1205S +Converter_DCDC_Isolated:TMA-1212D +Converter_DCDC_Isolated:TMA-1212S +Converter_DCDC_Isolated:TMA-1215D +Converter_DCDC_Isolated:TMA-1215S +Converter_DCDC_Isolated:TMA-1505D +Converter_DCDC_Isolated:TMA-1505S +Converter_DCDC_Isolated:TMA-1512D +Converter_DCDC_Isolated:TMA-1512S +Converter_DCDC_Isolated:TMA-1515D +Converter_DCDC_Isolated:TMA-1515S +Converter_DCDC_Isolated:TMA-2405D +Converter_DCDC_Isolated:TMA-2405S +Converter_DCDC_Isolated:TMA-2412D +Converter_DCDC_Isolated:TMA-2412S +Converter_DCDC_Isolated:TMA-2415D +Converter_DCDC_Isolated:TMA-2415S +Converter_DCDC_Isolated:TME-0303S +Converter_DCDC_Isolated:TME-0305S +Converter_DCDC_Isolated:TME-0503S +Converter_DCDC_Isolated:TME-0505S +Converter_DCDC_Isolated:TME-0509S +Converter_DCDC_Isolated:TME-0512S +Converter_DCDC_Isolated:TME-0515S +Converter_DCDC_Isolated:TME-1205S +Converter_DCDC_Isolated:TME-1209S +Converter_DCDC_Isolated:TME-1212S +Converter_DCDC_Isolated:TME-1215S +Converter_DCDC_Isolated:TME-2405S +Converter_DCDC_Isolated:TME-2409S +Converter_DCDC_Isolated:TME-2412S +Converter_DCDC_Isolated:TME-2415S +Converter_DCDC_Isolated:TMR-0510 +Converter_DCDC_Isolated:TMR-0511 +Converter_DCDC_Isolated:TMR-0512 +Converter_DCDC_Isolated:TMR-0521 +Converter_DCDC_Isolated:TMR-0522 +Converter_DCDC_Isolated:TMR-0523 +Converter_DCDC_Isolated:TMR-1210 +Converter_DCDC_Isolated:TMR-1211 +Converter_DCDC_Isolated:TMR-1212 +Converter_DCDC_Isolated:TMR-1221 +Converter_DCDC_Isolated:TMR-1222 +Converter_DCDC_Isolated:TMR-1223 +Converter_DCDC_Isolated:TMR-2410 +Converter_DCDC_Isolated:TMR-2411 +Converter_DCDC_Isolated:TMR-2412 +Converter_DCDC_Isolated:TMR-2421 +Converter_DCDC_Isolated:TMR-2422 +Converter_DCDC_Isolated:TMR-2423 +Converter_DCDC_Isolated:TMR-4810 +Converter_DCDC_Isolated:TMR-4811 +Converter_DCDC_Isolated:TMR-4812 +Converter_DCDC_Isolated:TMR-4821 +Converter_DCDC_Isolated:TMR-4822 +Converter_DCDC_Isolated:TMR-4823 +Converter_DCDC_Isolated:TMR10-1211WI +Converter_DCDC_Isolated:TMR10-1212WI +Converter_DCDC_Isolated:TMR10-1213WI +Converter_DCDC_Isolated:TMR10-1215WI +Converter_DCDC_Isolated:TMR10-1222WI +Converter_DCDC_Isolated:TMR10-1223WI +Converter_DCDC_Isolated:TMR10-2410WIR +Converter_DCDC_Isolated:TMR10-2411WI +Converter_DCDC_Isolated:TMR10-2411WIR +Converter_DCDC_Isolated:TMR10-2412WI +Converter_DCDC_Isolated:TMR10-2412WIR +Converter_DCDC_Isolated:TMR10-2413WI +Converter_DCDC_Isolated:TMR10-2413WIR +Converter_DCDC_Isolated:TMR10-2415WI +Converter_DCDC_Isolated:TMR10-2415WIR +Converter_DCDC_Isolated:TMR10-2421WIR +Converter_DCDC_Isolated:TMR10-2422WI +Converter_DCDC_Isolated:TMR10-2422WIR +Converter_DCDC_Isolated:TMR10-2423WI +Converter_DCDC_Isolated:TMR10-2423WIR +Converter_DCDC_Isolated:TMR10-4810WIR +Converter_DCDC_Isolated:TMR10-4811WI +Converter_DCDC_Isolated:TMR10-4811WIR +Converter_DCDC_Isolated:TMR10-4812WI +Converter_DCDC_Isolated:TMR10-4812WIR +Converter_DCDC_Isolated:TMR10-4813WI +Converter_DCDC_Isolated:TMR10-4813WIR +Converter_DCDC_Isolated:TMR10-4815WI +Converter_DCDC_Isolated:TMR10-4815WIR +Converter_DCDC_Isolated:TMR10-4821WIR +Converter_DCDC_Isolated:TMR10-4822WI +Converter_DCDC_Isolated:TMR10-4822WIR +Converter_DCDC_Isolated:TMR10-4823WI +Converter_DCDC_Isolated:TMR10-4823WIR +Converter_DCDC_Isolated:TMR10-7210WIR +Converter_DCDC_Isolated:TMR10-7211WIR +Converter_DCDC_Isolated:TMR10-7212WIR +Converter_DCDC_Isolated:TMR10-7213WIR +Converter_DCDC_Isolated:TMR10-7215WIR +Converter_DCDC_Isolated:TMR10-7221WIR +Converter_DCDC_Isolated:TMR10-7222WIR +Converter_DCDC_Isolated:TMR10-7223WIR +Converter_DCDC_Isolated:TMR2-2410WI +Converter_DCDC_Isolated:TMR2-2411WI +Converter_DCDC_Isolated:TMR2-2412WI +Converter_DCDC_Isolated:TMR2-2413WI +Converter_DCDC_Isolated:TMR2-2421WI +Converter_DCDC_Isolated:TMR2-2422WI +Converter_DCDC_Isolated:TMR2-2423WI +Converter_DCDC_Isolated:TMR2-4810WI +Converter_DCDC_Isolated:TMR2-4811WI +Converter_DCDC_Isolated:TMR2-4812WI +Converter_DCDC_Isolated:TMR2-4813WI +Converter_DCDC_Isolated:TMR2-4821WI +Converter_DCDC_Isolated:TMR2-4822WI +Converter_DCDC_Isolated:TMR2-4823WI +Converter_DCDC_Isolated:TMR4-2411WI +Converter_DCDC_Isolated:TMR4-2412WI +Converter_DCDC_Isolated:TMR4-2413WI +Converter_DCDC_Isolated:TMR4-2415WI +Converter_DCDC_Isolated:TMR4-2422WI +Converter_DCDC_Isolated:TMR4-2423WI +Converter_DCDC_Isolated:TMR4-4811WI +Converter_DCDC_Isolated:TMR4-4812WI +Converter_DCDC_Isolated:TMR4-4813WI +Converter_DCDC_Isolated:TMR4-4815WI +Converter_DCDC_Isolated:TMR4-4822WI +Converter_DCDC_Isolated:TMR4-4823WI +Converter_DCDC_Isolated:TMR_1-0511 +Converter_DCDC_Isolated:TMR_1-0511SM +Converter_DCDC_Isolated:TMR_1-0512 +Converter_DCDC_Isolated:TMR_1-0512SM +Converter_DCDC_Isolated:TMR_1-0513 +Converter_DCDC_Isolated:TMR_1-0513SM +Converter_DCDC_Isolated:TMR_1-0515 +Converter_DCDC_Isolated:TMR_1-0522 +Converter_DCDC_Isolated:TMR_1-0522SM +Converter_DCDC_Isolated:TMR_1-0523 +Converter_DCDC_Isolated:TMR_1-0523SM +Converter_DCDC_Isolated:TMR_1-1211 +Converter_DCDC_Isolated:TMR_1-1211SM +Converter_DCDC_Isolated:TMR_1-1212 +Converter_DCDC_Isolated:TMR_1-1212SM +Converter_DCDC_Isolated:TMR_1-1213 +Converter_DCDC_Isolated:TMR_1-1213SM +Converter_DCDC_Isolated:TMR_1-1215 +Converter_DCDC_Isolated:TMR_1-1222 +Converter_DCDC_Isolated:TMR_1-1222SM +Converter_DCDC_Isolated:TMR_1-1223 +Converter_DCDC_Isolated:TMR_1-1223SM +Converter_DCDC_Isolated:TMR_1-2411 +Converter_DCDC_Isolated:TMR_1-2411SM +Converter_DCDC_Isolated:TMR_1-2412 +Converter_DCDC_Isolated:TMR_1-2412SM +Converter_DCDC_Isolated:TMR_1-2413 +Converter_DCDC_Isolated:TMR_1-2413SM +Converter_DCDC_Isolated:TMR_1-2415 +Converter_DCDC_Isolated:TMR_1-2422 +Converter_DCDC_Isolated:TMR_1-2422SM +Converter_DCDC_Isolated:TMR_1-2423 +Converter_DCDC_Isolated:TMR_1-2423SM +Converter_DCDC_Isolated:TMR_1-4811 +Converter_DCDC_Isolated:TMR_1-4811SM +Converter_DCDC_Isolated:TMR_1-4812 +Converter_DCDC_Isolated:TMR_1-4812SM +Converter_DCDC_Isolated:TMR_1-4813 +Converter_DCDC_Isolated:TMR_1-4813SM +Converter_DCDC_Isolated:TMR_1-4815 +Converter_DCDC_Isolated:TMR_1-4822 +Converter_DCDC_Isolated:TMR_1-4822SM +Converter_DCDC_Isolated:TMR_1-4823 +Converter_DCDC_Isolated:TMR_1-4823SM +Converter_DCDC_Isolated:TMU3-0511 +Converter_DCDC_Isolated:TMU3-0512 +Converter_DCDC_Isolated:TMU3-0513 +Converter_DCDC_Isolated:TMU3-1211 +Converter_DCDC_Isolated:TMU3-1212 +Converter_DCDC_Isolated:TMU3-1213 +Converter_DCDC_Isolated:TMU3-2411 +Converter_DCDC_Isolated:TMU3-2412 +Converter_DCDC_Isolated:TMU3-2413 +Converter_DCDC_Isolated:TMV0505D +Converter_DCDC_Isolated:TMV0505S +Converter_DCDC_Isolated:TMV0509S +Converter_DCDC_Isolated:TMV0512D +Converter_DCDC_Isolated:TMV0512S +Converter_DCDC_Isolated:TMV0515D +Converter_DCDC_Isolated:TMV0515S +Converter_DCDC_Isolated:TMV1205D +Converter_DCDC_Isolated:TMV1205S +Converter_DCDC_Isolated:TMV1212D +Converter_DCDC_Isolated:TMV1212S +Converter_DCDC_Isolated:TMV1215D +Converter_DCDC_Isolated:TMV1215S +Converter_DCDC_Isolated:TMV2405D +Converter_DCDC_Isolated:TMV2405S +Converter_DCDC_Isolated:TMV2412D +Converter_DCDC_Isolated:TMV2412S +Converter_DCDC_Isolated:TMV2415D +Converter_DCDC_Isolated:TMV2415S +Converter_DCDC_Isolated:TRA3-0511 +Converter_DCDC_Isolated:TRA3-0512 +Converter_DCDC_Isolated:TRA3-0513 +Converter_DCDC_Isolated:TRA3-0519 +Converter_DCDC_Isolated:TRA3-1211 +Converter_DCDC_Isolated:TRA3-1212 +Converter_DCDC_Isolated:TRA3-1213 +Converter_DCDC_Isolated:TRA3-1219 +Converter_DCDC_Isolated:TRA3-2411 +Converter_DCDC_Isolated:TRA3-2412 +Converter_DCDC_Isolated:TRA3-2413 +Converter_DCDC_Isolated:TRA3-2419 +Converter_DCDC_Isolated:TRI1-0511 +Converter_DCDC_Isolated:TRI1-0511SM +Converter_DCDC_Isolated:TRI1-0512 +Converter_DCDC_Isolated:TRI1-0512SM +Converter_DCDC_Isolated:TRI1-0513 +Converter_DCDC_Isolated:TRI1-0513SM +Converter_DCDC_Isolated:TRI1-0522SM +Converter_DCDC_Isolated:TRI1-0523SM +Converter_DCDC_Isolated:TRI1-1211 +Converter_DCDC_Isolated:TRI1-1211SM +Converter_DCDC_Isolated:TRI1-1212 +Converter_DCDC_Isolated:TRI1-1212SM +Converter_DCDC_Isolated:TRI1-1213 +Converter_DCDC_Isolated:TRI1-1213SM +Converter_DCDC_Isolated:TRI1-1222SM +Converter_DCDC_Isolated:TRI1-1223SM +Converter_DCDC_Isolated:TRI1-2411 +Converter_DCDC_Isolated:TRI1-2411SM +Converter_DCDC_Isolated:TRI1-2412 +Converter_DCDC_Isolated:TRI1-2412SM +Converter_DCDC_Isolated:TRI1-2413 +Converter_DCDC_Isolated:TRI1-2413SM +Converter_DCDC_Isolated:TRI1-2422SM +Converter_DCDC_Isolated:TRI1-2423SM +Converter_DCDC_Isolated:TRI10-1210 +Converter_DCDC_Isolated:TRI10-1211 +Converter_DCDC_Isolated:TRI10-1212 +Converter_DCDC_Isolated:TRI10-1213 +Converter_DCDC_Isolated:TRI10-1215 +Converter_DCDC_Isolated:TRI10-1222 +Converter_DCDC_Isolated:TRI10-1223 +Converter_DCDC_Isolated:TRI10-2410 +Converter_DCDC_Isolated:TRI10-2411 +Converter_DCDC_Isolated:TRI10-2412 +Converter_DCDC_Isolated:TRI10-2413 +Converter_DCDC_Isolated:TRI10-2415 +Converter_DCDC_Isolated:TRI10-2422 +Converter_DCDC_Isolated:TRI10-2423 +Converter_DCDC_Isolated:TRI10-4810 +Converter_DCDC_Isolated:TRI10-4811 +Converter_DCDC_Isolated:TRI10-4812 +Converter_DCDC_Isolated:TRI10-4813 +Converter_DCDC_Isolated:TRI10-4815 +Converter_DCDC_Isolated:TRI10-4822 +Converter_DCDC_Isolated:TRI10-4823 +Converter_DCDC_Isolated:TRI15-1211 +Converter_DCDC_Isolated:TRI15-1212 +Converter_DCDC_Isolated:TRI15-1213 +Converter_DCDC_Isolated:TRI15-1215 +Converter_DCDC_Isolated:TRI15-1222 +Converter_DCDC_Isolated:TRI15-1223 +Converter_DCDC_Isolated:TRI15-2411 +Converter_DCDC_Isolated:TRI15-2412 +Converter_DCDC_Isolated:TRI15-2413 +Converter_DCDC_Isolated:TRI15-2415 +Converter_DCDC_Isolated:TRI15-2422 +Converter_DCDC_Isolated:TRI15-2423 +Converter_DCDC_Isolated:TRI15-4811 +Converter_DCDC_Isolated:TRI15-4812 +Converter_DCDC_Isolated:TRI15-4813 +Converter_DCDC_Isolated:TRI15-4815 +Converter_DCDC_Isolated:TRI15-4822 +Converter_DCDC_Isolated:TRI15-4823 +Converter_DCDC_Isolated:TRI20-1211 +Converter_DCDC_Isolated:TRI20-1212 +Converter_DCDC_Isolated:TRI20-1213 +Converter_DCDC_Isolated:TRI20-1215 +Converter_DCDC_Isolated:TRI20-1222 +Converter_DCDC_Isolated:TRI20-1223 +Converter_DCDC_Isolated:TRI20-2411 +Converter_DCDC_Isolated:TRI20-2412 +Converter_DCDC_Isolated:TRI20-2413 +Converter_DCDC_Isolated:TRI20-2415 +Converter_DCDC_Isolated:TRI20-2422 +Converter_DCDC_Isolated:TRI20-2423 +Converter_DCDC_Isolated:TRI20-4811 +Converter_DCDC_Isolated:TRI20-4812 +Converter_DCDC_Isolated:TRI20-4813 +Converter_DCDC_Isolated:TRI20-4815 +Converter_DCDC_Isolated:TRI20-4822 +Converter_DCDC_Isolated:TRI20-4823 +Converter_DCDC_Isolated:TRN3-0510 +Converter_DCDC_Isolated:TRN3-0511 +Converter_DCDC_Isolated:TRN3-0512 +Converter_DCDC_Isolated:TRN3-0513 +Converter_DCDC_Isolated:TRN3-0515 +Converter_DCDC_Isolated:TRN3-0521 +Converter_DCDC_Isolated:TRN3-0522 +Converter_DCDC_Isolated:TRN3-0523 +Converter_DCDC_Isolated:TRN3-1210 +Converter_DCDC_Isolated:TRN3-1211 +Converter_DCDC_Isolated:TRN3-1212 +Converter_DCDC_Isolated:TRN3-1213 +Converter_DCDC_Isolated:TRN3-1215 +Converter_DCDC_Isolated:TRN3-1221 +Converter_DCDC_Isolated:TRN3-1222 +Converter_DCDC_Isolated:TRN3-1223 +Converter_DCDC_Isolated:TRN3-2410 +Converter_DCDC_Isolated:TRN3-2411 +Converter_DCDC_Isolated:TRN3-2412 +Converter_DCDC_Isolated:TRN3-2413 +Converter_DCDC_Isolated:TRN3-2415 +Converter_DCDC_Isolated:TRN3-2421 +Converter_DCDC_Isolated:TRN3-2422 +Converter_DCDC_Isolated:TRN3-2423 +Converter_DCDC_Isolated:TRN3-4810 +Converter_DCDC_Isolated:TRN3-4811 +Converter_DCDC_Isolated:TRN3-4812 +Converter_DCDC_Isolated:TRN3-4813 +Converter_DCDC_Isolated:TRN3-4815 +Converter_DCDC_Isolated:TRN3-4821 +Converter_DCDC_Isolated:TRN3-4822 +Converter_DCDC_Isolated:TRN3-4823 DSP_AnalogDevices:ADAU1450 DSP_AnalogDevices:ADAU1451 DSP_AnalogDevices:ADAU1452 @@ -5981,8 +6068,6 @@ Device:NetTie_3_Tee Device:NetTie_4 Device:NetTie_4_Cross Device:Ohmmeter -Device:Opamp_Dual -Device:Opamp_Quad Device:Oscilloscope Device:PeltierElement Device:Polyfuse @@ -7597,6 +7682,7 @@ Driver_LED:IS31FL3218-GR Driver_LED:IS31FL3218-QF Driver_LED:IS31FL3236-TQ Driver_LED:IS31FL3236A-TQ +Driver_LED:IS31FL3242 Driver_LED:IS31FL3731-QF Driver_LED:IS31FL3731-SA Driver_LED:IS31FL3733-QF @@ -8188,6 +8274,10 @@ Filter:MAX7422xUA Filter:MAX7423xUA Filter:MAX7424xUA Filter:MAX7425xUA +Filter:MAX7426xPA +Filter:MAX7426xUA +Filter:MAX7427xPA +Filter:MAX7427xUA Filter:MAX7480xPA Filter:MAX7480xSA Filter:P300PL104M275xC222 @@ -8969,6 +9059,7 @@ Interface_USB:TUSB320I Interface_USB:TUSB321 Interface_USB:TUSB322I Interface_USB:TUSB4041I +Interface_USB:TUSB564 Interface_USB:TUSB7340 Interface_USB:TUSB8041 Interface_USB:TUSB8043A @@ -9575,7 +9666,6 @@ Logic_Programmable:PAL20L10xxNS Logic_Programmable:PAL20L8 Logic_Programmable:PAL20R8xx-P Logic_Programmable:PAL20RS10 -Logic_Programmable:PAL24 Logic_Programmable:PALCE16V8 Logic_Programmable:PEEL22CV10AP Logic_Programmable:PEEL22CV10AS @@ -15699,8 +15789,8 @@ Power_Management:LMG5200 Power_Management:LT1641-1 Power_Management:LT1641-2 Power_Management:LT4230xDD -Power_Management:LT4231xUF Power_Management:LT4320xDD-1 +Power_Management:LT4321xUF Power_Management:LTC4242xUHF Power_Management:LTC4357DCB Power_Management:LTC4357MS8 @@ -18851,7 +18941,6 @@ Regulator_Switching:ADP2360xCP-5.0 Regulator_Switching:ADP5054 Regulator_Switching:ADP5070AREZ Regulator_Switching:ADP5071AREZ -Regulator_Switching:ADuM6000 Regulator_Switching:AOZ1280CI Regulator_Switching:AOZ1282CI Regulator_Switching:AOZ1282CI-1 @@ -18901,15 +18990,6 @@ Regulator_Switching:BD9778F Regulator_Switching:BD9778HFP Regulator_Switching:BD9781HFP Regulator_Switching:BD9G341EFJ -Regulator_Switching:CRE1S0305S3C -Regulator_Switching:CRE1S0505DC -Regulator_Switching:CRE1S0505S3C -Regulator_Switching:CRE1S0505SC -Regulator_Switching:CRE1S0515SC -Regulator_Switching:CRE1S1205SC -Regulator_Switching:CRE1S1212SC -Regulator_Switching:CRE1S2405SC -Regulator_Switching:CRE1S2412SC Regulator_Switching:DIO6970 Regulator_Switching:EA3036CQB Regulator_Switching:EA3058QD @@ -19490,35 +19570,6 @@ Regulator_Switching:NID60S24-05 Regulator_Switching:NID60S24-12 Regulator_Switching:NID60S24-15 Regulator_Switching:NID60S48-24 -Regulator_Switching:NMA0505DC -Regulator_Switching:NMA0505SC -Regulator_Switching:NMA0509DC -Regulator_Switching:NMA0509SC -Regulator_Switching:NMA0512DC -Regulator_Switching:NMA0512SC -Regulator_Switching:NMA0515DC -Regulator_Switching:NMA0515SC -Regulator_Switching:NMA1205DC -Regulator_Switching:NMA1205SC -Regulator_Switching:NMA1209DC -Regulator_Switching:NMA1209SC -Regulator_Switching:NMA1212DC -Regulator_Switching:NMA1212SC -Regulator_Switching:NMA1215DC -Regulator_Switching:NMA1215SC -Regulator_Switching:NMA1505DC -Regulator_Switching:NMA1505SC -Regulator_Switching:NMA1512DC -Regulator_Switching:NMA1512SC -Regulator_Switching:NMA1515DC -Regulator_Switching:NMA1515SC -Regulator_Switching:NXE1S0303MC -Regulator_Switching:NXE1S0305MC -Regulator_Switching:NXE1S0505MC -Regulator_Switching:NXE2S0505MC -Regulator_Switching:NXE2S1205MC -Regulator_Switching:NXE2S1212MC -Regulator_Switching:NXE2S1215MC Regulator_Switching:PAM2301CAAB120 Regulator_Switching:PAM2301CAAB330 Regulator_Switching:PAM2301CAABADJ @@ -19610,50 +19661,6 @@ Regulator_Switching:TLV62569ADRL Regulator_Switching:TLV62569DBV Regulator_Switching:TLV62569DDC Regulator_Switching:TLV62569DRL -Regulator_Switching:TMR_1-0511 -Regulator_Switching:TMR_1-0511SM -Regulator_Switching:TMR_1-0512 -Regulator_Switching:TMR_1-0512SM -Regulator_Switching:TMR_1-0513 -Regulator_Switching:TMR_1-0513SM -Regulator_Switching:TMR_1-0515 -Regulator_Switching:TMR_1-0522 -Regulator_Switching:TMR_1-0522SM -Regulator_Switching:TMR_1-0523 -Regulator_Switching:TMR_1-0523SM -Regulator_Switching:TMR_1-1211 -Regulator_Switching:TMR_1-1211SM -Regulator_Switching:TMR_1-1212 -Regulator_Switching:TMR_1-1212SM -Regulator_Switching:TMR_1-1213 -Regulator_Switching:TMR_1-1213SM -Regulator_Switching:TMR_1-1215 -Regulator_Switching:TMR_1-1222 -Regulator_Switching:TMR_1-1222SM -Regulator_Switching:TMR_1-1223 -Regulator_Switching:TMR_1-1223SM -Regulator_Switching:TMR_1-2411 -Regulator_Switching:TMR_1-2411SM -Regulator_Switching:TMR_1-2412 -Regulator_Switching:TMR_1-2412SM -Regulator_Switching:TMR_1-2413 -Regulator_Switching:TMR_1-2413SM -Regulator_Switching:TMR_1-2415 -Regulator_Switching:TMR_1-2422 -Regulator_Switching:TMR_1-2422SM -Regulator_Switching:TMR_1-2423 -Regulator_Switching:TMR_1-2423SM -Regulator_Switching:TMR_1-4811 -Regulator_Switching:TMR_1-4811SM -Regulator_Switching:TMR_1-4812 -Regulator_Switching:TMR_1-4812SM -Regulator_Switching:TMR_1-4813 -Regulator_Switching:TMR_1-4813SM -Regulator_Switching:TMR_1-4815 -Regulator_Switching:TMR_1-4822 -Regulator_Switching:TMR_1-4822SM -Regulator_Switching:TMR_1-4823 -Regulator_Switching:TMR_1-4823SM Regulator_Switching:TNY263G Regulator_Switching:TNY263P Regulator_Switching:TNY264G diff --git a/src/Controller/HomepageController.php b/src/Controller/HomepageController.php index f64f281f..bd7f7593 100644 --- a/src/Controller/HomepageController.php +++ b/src/Controller/HomepageController.php @@ -27,6 +27,7 @@ use App\Entity\Parts\Part; use App\Services\System\AppSecretChecker; use App\Services\System\BannerHelper; use App\Services\System\GitVersionInfoProvider; +use App\Services\System\TrustedHostsChecker; use App\Services\System\UpdateAvailableFacade; use Doctrine\ORM\EntityManagerInterface; use Omines\DataTablesBundle\DataTableFactory; @@ -41,6 +42,7 @@ class HomepageController extends AbstractController private readonly DataTableFactory $dataTable, private readonly BannerHelper $bannerHelper, private readonly AppSecretChecker $appSecretChecker, + private readonly TrustedHostsChecker $trustedHostsChecker, ) { } @@ -90,6 +92,7 @@ class HomepageController extends AbstractController 'new_version_url' => $updateAvailableManager->getLatestVersionUrl(), 'insecure_app_secret' => $this->appSecretChecker->isInsecureSecret(), 'suggested_app_secret' => $this->appSecretChecker->isInsecureSecret() ? $this->appSecretChecker->generateSecret() : null, + 'trusted_hosts_unconfigured' => $this->trustedHostsChecker->isTrustedHostsUnconfigured(), ]); } } diff --git a/src/Controller/ToolsController.php b/src/Controller/ToolsController.php index 76dffb4d..a92a863f 100644 --- a/src/Controller/ToolsController.php +++ b/src/Controller/ToolsController.php @@ -74,7 +74,7 @@ class ToolsController extends AbstractController 'detailed_error_pages' => $this->getParameter('partdb.error_pages.show_help'), 'error_page_admin_email' => $this->getParameter('partdb.error_pages.admin_email'), 'configured_max_file_size' => $settings->system->attachments->maxFileSize, - 'effective_max_file_size' => $attachmentSubmitHandler->getMaximumAllowedUploadSize(), + 'effective_max_file_size' => $attachmentSubmitHandler->getMaximumEffectiveUploadSize(), 'saml_enabled' => $this->getParameter('partdb.saml.enabled'), //PHP section diff --git a/src/Form/AttachmentFormType.php b/src/Form/AttachmentFormType.php index d9fe2cd2..2773a950 100644 --- a/src/Form/AttachmentFormType.php +++ b/src/Form/AttachmentFormType.php @@ -209,7 +209,7 @@ class AttachmentFormType extends AbstractType public function finishView(FormView $view, FormInterface $form, array $options): void { - $view->vars['max_upload_size'] = $this->submitHandler->getMaximumAllowedUploadSize(); + $view->vars['max_upload_size'] = $this->submitHandler->getMaximumEffectiveUploadSize(); } public function getBlockPrefix(): string diff --git a/src/Services/Attachments/AttachmentSubmitHandler.php b/src/Services/Attachments/AttachmentSubmitHandler.php index 1b90091f..5433fcfa 100644 --- a/src/Services/Attachments/AttachmentSubmitHandler.php +++ b/src/Services/Attachments/AttachmentSubmitHandler.php @@ -217,6 +217,14 @@ class AttachmentSubmitHandler //If no file was uploaded, but we have base64 encoded data, create a file from it if (!$file && $upload->data !== null) { + if (strlen($upload->data) > $this->getMaximumUserConfiguredUploadSize() * 4 / 3) { //Base64 encoding increases the size of the data by 4/3, so we have to check for that + throw new RuntimeException( + sprintf( + 'The given base64 data is too big! Maximum size is %.1f MB!', + $this->getMaximumUserConfiguredUploadSize() / 1000 / 1000 + )); + } + $file = new UploadedBase64EncodedFile(new Base64EncodedFile($upload->data), $upload->filename ?? 'base64'); } @@ -225,6 +233,15 @@ class AttachmentSubmitHandler //When a file is given then upload it, otherwise check if we need to download the URL if ($file instanceof UploadedFile) { + //Check the file size, to avoid uploading too big files. + //The file is not necessarily validated as it can also come from an Base64 source + if ($file->getSize() > $this->getMaximumUserConfiguredUploadSize()) { + throw new RuntimeException( + sprintf( + 'The uploaded file is too big! Maximum size is %.1f MB!', + $this->getMaximumUserConfiguredUploadSize() / 1000 / 1000 + )); + } $this->upload($attachment, $file, $secure_attachment); } elseif ($upload->downloadUrl && $attachment->hasExternal()) { @@ -399,9 +416,30 @@ class AttachmentSubmitHandler //Open a temporary file in the attachment folder $fs->mkdir($attachment_folder); $fileHandler = fopen($tmp_path, 'wb'); + + $bytesDownloaded = 0; + $maxSize = $this->getMaximumUserConfiguredUploadSize(); //We use the maximum user configured size here, PHPs limits dont apply + //Write the downloaded data to file foreach ($this->httpClient->stream($response) as $chunk) { - fwrite($fileHandler, $chunk->getContent()); + $content = $chunk->getContent(); + $bytesDownloaded += strlen($content); + + //Ensure the size does not get too large to avoid filling up the disk easily. + //If the file is too big, cancel the download and delete the temporary file. + if ($bytesDownloaded > $maxSize) { + $response->cancel(); + fclose($fileHandler); + unlink($tmp_path); //Delete the temporary file, because it is too big + + throw new AttachmentDownloadException( + sprintf( + 'The downloaded file is too big! Maximum size is %.1f MB!', + $maxSize / 1000 / 1000 + )); + } + + fwrite($fileHandler, $content); } fclose($fileHandler); @@ -505,10 +543,10 @@ class AttachmentSubmitHandler } /* - * Returns the maximum allowed upload size in bytes. + * Returns the maximum effective upload size in bytes. * This is the minimum value of Part-DB max_file_size, and php.ini's post_max_size and upload_max_filesize. */ - public function getMaximumAllowedUploadSize(): int + public function getMaximumEffectiveUploadSize(): int { if ($this->max_upload_size_bytes) { return $this->max_upload_size_bytes; @@ -523,6 +561,15 @@ class AttachmentSubmitHandler return $this->max_upload_size_bytes; } + /** + * Returns the maximum user configured upload size in bytes. + * @return int + */ + public function getMaximumUserConfiguredUploadSize(): int + { + return $this->parseFileSizeString($this->settings->maxFileSize); + } + /** * Sanitizes the given SVG file, if the attachment is an internal SVG file. * @param Attachment $attachment diff --git a/src/Services/ImportExportSystem/EntityExporter.php b/src/Services/ImportExportSystem/EntityExporter.php index ab87a905..4cd92cc4 100644 --- a/src/Services/ImportExportSystem/EntityExporter.php +++ b/src/Services/ImportExportSystem/EntityExporter.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace App\Services\ImportExportSystem; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Cell\DataType; use App\Entity\Base\AbstractNamedDBElement; use App\Entity\Base\AbstractStructuralDBElement; use App\Helpers\FilenameSanatizer; @@ -179,7 +180,11 @@ class EntityExporter foreach ($columns as $column) { $cellCoordinate = Coordinate::stringFromColumnIndex($colIndex) . $rowIndex; - $worksheet->setCellValue($cellCoordinate, $column); + if (is_numeric(trim($column, '"'))) { // Check if the column value is numeric after trimming quotes, as values are surrounded by quotes in CSV + $worksheet->setCellValueExplicit($cellCoordinate, $column, DataType::TYPE_NUMERIC); + } else { + $worksheet->setCellValueExplicit($cellCoordinate, $column, DataType::TYPE_STRING); + } $colIndex++; } $rowIndex++; @@ -268,7 +273,7 @@ class EntityExporter //Remove percent for fallback $fallback = str_replace("%", "_", $filename); - + // Create the disposition of the file $disposition = $response->headers->makeDisposition( ResponseHeaderBag::DISPOSITION_ATTACHMENT, diff --git a/src/Services/InfoProviderSystem/Providers/LCSCProvider.php b/src/Services/InfoProviderSystem/Providers/LCSCProvider.php index 5f251b43..b3da3cda 100755 --- a/src/Services/InfoProviderSystem/Providers/LCSCProvider.php +++ b/src/Services/InfoProviderSystem/Providers/LCSCProvider.php @@ -136,7 +136,9 @@ class LCSCProvider implements BatchInfoProviderInterface, URLHandlerInfoProvider } } - $response = $this->lcscClient->request('POST', self::ENDPOINT_URL . "/search/v2/global", [ + //First we try the search v3 endpoint, which seems to give better results including pictures, but it only works + //on quite exact mpn matches + $response = $this->lcscClient->request('POST', self::ENDPOINT_URL . "/search/v3/global", [ 'headers' => [ 'Cookie' => new Cookie('currencyCode', $this->settings->currency) ], @@ -147,20 +149,29 @@ class LCSCProvider implements BatchInfoProviderInterface, URLHandlerInfoProvider $arr = $response->toArray(); - // Get products list - $products = $arr['result']['productSearchResultVO']['productList'] ?? []; - // Get product tip - $tipProductCode = $arr['result']['tipProductDetailUrlVO']['productCode'] ?? null; + //If we get exact matches, use them + if (!empty($arr['result']['exactMatchResult'])) { + $products = $arr['result']['exactMatchResult']; + } else { //Otherwise fallback onto the third search endpoint, which has a worse data quality but is more likely to return results for vague search terms + $response = $this->lcscClient->request('POST', self::ENDPOINT_URL."/search/third", [ + 'headers' => [ + 'Cookie' => new Cookie('currencyCode', $this->settings->currency) + ], + 'json' => [ + 'keyword' => $term, + 'currentPage' => 1, + 'pageSize' => 10, + ], + ]); + + $arr = $response->toArray(); + + // Get products list + $products = $arr['result']['productList'] ?? []; + } $result = []; - // LCSC does not display LCSC codes in the search, instead taking you directly to the - // detailed product listing. It does so utilizing a product tip field. - // If product tip exists and there are no products in the product list try a detail query - if (count($products) === 0 && $tipProductCode !== null) { - $result[] = $this->queryDetail($tipProductCode, $lightweight); - } - foreach ($products as $product) { $result[] = $this->getPartDetail($product, $lightweight); } @@ -219,7 +230,7 @@ class LCSCProvider implements BatchInfoProviderInterface, URLHandlerInfoProvider provider_key: $this->getProviderKey(), provider_id: $product['productCode'], name: $product['productModel'], - description: $this->sanitizeField($product['productIntroEn']), + description: $this->sanitizeField($product['productIntroEn']) ?? '', category: $this->sanitizeField($category ?? null), manufacturer: $this->sanitizeField($product['brandNameEn'] ?? null), mpn: $this->sanitizeField($product['productModel'] ?? null), @@ -383,7 +394,7 @@ class LCSCProvider implements BatchInfoProviderInterface, URLHandlerInfoProvider ]); } else { // Search API call for other terms - $responses[$keyword] = $this->lcscClient->request('POST', self::ENDPOINT_URL . "/search/v2/global", [ + $responses[$keyword] = $this->lcscClient->request('POST', self::ENDPOINT_URL . "/search/v3/global", [ 'headers' => [ 'Cookie' => new Cookie('currencyCode', $this->settings->currency) ], diff --git a/src/Services/LabelSystem/Barcodes/BarcodeHelper.php b/src/Services/LabelSystem/Barcodes/BarcodeHelper.php index c9fe64f3..53e52662 100644 --- a/src/Services/LabelSystem/Barcodes/BarcodeHelper.php +++ b/src/Services/LabelSystem/Barcodes/BarcodeHelper.php @@ -67,8 +67,8 @@ class BarcodeHelper { $svg = $this->barcodeAsSVG($content, $type); $base64 = $this->dataUri($svg, 'image/svg+xml'); - $alt_text ??= $content; - + $alt_text ??= htmlspecialchars($content); + return ''.$alt_text.''; } @@ -94,4 +94,4 @@ class BarcodeHelper return $repr; } -} \ No newline at end of file +} diff --git a/src/Services/LabelSystem/PlaceholderProviders/AbstractDBElementProvider.php b/src/Services/LabelSystem/PlaceholderProviders/AbstractDBElementProvider.php index 081b3e91..0059a3fc 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/AbstractDBElementProvider.php +++ b/src/Services/LabelSystem/PlaceholderProviders/AbstractDBElementProvider.php @@ -44,9 +44,9 @@ namespace App\Services\LabelSystem\PlaceholderProviders; use App\Entity\Base\AbstractDBElement; use App\Services\ElementTypeNameGenerator; -final class AbstractDBElementProvider implements PlaceholderProviderInterface +final readonly class AbstractDBElementProvider implements PlaceholderProviderInterface { - public function __construct(private readonly ElementTypeNameGenerator $elementTypeNameGenerator) + public function __construct(private ElementTypeNameGenerator $elementTypeNameGenerator) { } @@ -54,7 +54,7 @@ final class AbstractDBElementProvider implements PlaceholderProviderInterface { if ($label_target instanceof AbstractDBElement) { if ('[[TYPE]]' === $placeholder) { - return $this->elementTypeNameGenerator->getLocalizedTypeLabel($label_target); + return $this->elementTypeNameGenerator->typeLabel($label_target); } if ('[[ID]]' === $placeholder) { diff --git a/src/Services/LabelSystem/PlaceholderProviders/BarcodeProvider.php b/src/Services/LabelSystem/PlaceholderProviders/BarcodeProvider.php index 9719917a..745a8227 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/BarcodeProvider.php +++ b/src/Services/LabelSystem/PlaceholderProviders/BarcodeProvider.php @@ -31,11 +31,11 @@ use App\Services\LabelSystem\LabelBarcodeGenerator; use App\Services\LabelSystem\Barcodes\BarcodeContentGenerator; use Com\Tecnick\Barcode\Exception; -final class BarcodeProvider implements PlaceholderProviderInterface +final readonly class BarcodeProvider implements PlaceholderProviderInterface { - public function __construct(private readonly LabelBarcodeGenerator $barcodeGenerator, - private readonly BarcodeContentGenerator $barcodeContentGenerator, - private readonly BarcodeHelper $barcodeHelper) + public function __construct(private LabelBarcodeGenerator $barcodeGenerator, + private BarcodeContentGenerator $barcodeContentGenerator, + private BarcodeHelper $barcodeHelper) { } diff --git a/src/Services/LabelSystem/PlaceholderProviders/GlobalProviders.php b/src/Services/LabelSystem/PlaceholderProviders/GlobalProviders.php index f14a5863..38b59bb4 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/GlobalProviders.php +++ b/src/Services/LabelSystem/PlaceholderProviders/GlobalProviders.php @@ -53,11 +53,11 @@ use Symfony\Component\Routing\Generator\UrlGeneratorInterface; * Provides Placeholders for infos about global infos like Installation name or datetimes. * @see \App\Tests\Services\LabelSystem\PlaceholderProviders\GlobalProvidersTest */ -final class GlobalProviders implements PlaceholderProviderInterface +final readonly class GlobalProviders implements PlaceholderProviderInterface { public function __construct( - private readonly Security $security, - private readonly UrlGeneratorInterface $url_generator, + private Security $security, + private UrlGeneratorInterface $url_generator, private CustomizationSettings $customizationSettings, ) { @@ -66,13 +66,13 @@ final class GlobalProviders implements PlaceholderProviderInterface public function replace(string $placeholder, object $label_target, array $options = []): ?string { if ('[[INSTALL_NAME]]' === $placeholder) { - return $this->customizationSettings->instanceName; + return htmlspecialchars($this->customizationSettings->instanceName); } $user = $this->security->getUser(); if ('[[USERNAME]]' === $placeholder) { if ($user instanceof User) { - return $user->getName(); + return htmlspecialchars($user->getName()); } return 'anonymous'; @@ -80,7 +80,7 @@ final class GlobalProviders implements PlaceholderProviderInterface if ('[[USERNAME_FULL]]' === $placeholder) { if ($user instanceof User) { - return $user->getFullName(true); + return htmlspecialchars($user->getFullName(true)); } return 'anonymous'; diff --git a/src/Services/LabelSystem/PlaceholderProviders/NamedElementProvider.php b/src/Services/LabelSystem/PlaceholderProviders/NamedElementProvider.php index d8d38120..519f5081 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/NamedElementProvider.php +++ b/src/Services/LabelSystem/PlaceholderProviders/NamedElementProvider.php @@ -51,7 +51,7 @@ final class NamedElementProvider implements PlaceholderProviderInterface public function replace(string $placeholder, object $label_target, array $options = []): ?string { if ($label_target instanceof NamedElementInterface && '[[NAME]]' === $placeholder) { - return $label_target->getName(); + return htmlspecialchars($label_target->getName()); } return null; diff --git a/src/Services/LabelSystem/PlaceholderProviders/PartLotProvider.php b/src/Services/LabelSystem/PlaceholderProviders/PartLotProvider.php index 946b4892..7dee615b 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/PartLotProvider.php +++ b/src/Services/LabelSystem/PlaceholderProviders/PartLotProvider.php @@ -52,9 +52,9 @@ use Locale; /** * @see \App\Tests\Services\LabelSystem\PlaceholderProviders\PartLotProviderTest */ -final class PartLotProvider implements PlaceholderProviderInterface +final readonly class PartLotProvider implements PlaceholderProviderInterface { - public function __construct(private readonly LabelTextReplacer $labelTextReplacer, private readonly AmountFormatter $amountFormatter) + public function __construct(private LabelTextReplacer $labelTextReplacer, private AmountFormatter $amountFormatter) { } @@ -66,11 +66,11 @@ final class PartLotProvider implements PlaceholderProviderInterface } if ('[[LOT_NAME]]' === $placeholder) { - return $label_target->getName(); + return htmlspecialchars($label_target->getName()); } if ('[[LOT_COMMENT]]' === $placeholder) { - return $label_target->getComment(); + return htmlspecialchars($label_target->getComment()); } if ('[[EXPIRATION_DATE]]' === $placeholder) { @@ -95,19 +95,19 @@ final class PartLotProvider implements PlaceholderProviderInterface } if ('[[LOCATION]]' === $placeholder) { - return $label_target->getStorageLocation() instanceof StorageLocation ? $label_target->getStorageLocation()->getName() : ''; + return $label_target->getStorageLocation() instanceof StorageLocation ? htmlspecialchars($label_target->getStorageLocation()->getName()) : ''; } if ('[[LOCATION_FULL]]' === $placeholder) { - return $label_target->getStorageLocation() instanceof StorageLocation ? $label_target->getStorageLocation()->getFullPath() : ''; + return $label_target->getStorageLocation() instanceof StorageLocation ? htmlspecialchars($label_target->getStorageLocation()->getFullPath()) : ''; } if ('[[OWNER]]' === $placeholder) { - return $label_target->getOwner() instanceof User ? $label_target->getOwner()->getFullName() : ''; + return $label_target->getOwner() instanceof User ? htmlspecialchars($label_target->getOwner()->getFullName()) : ''; } if ('[[OWNER_USERNAME]]' === $placeholder) { - return $label_target->getOwner() instanceof User ? $label_target->getOwner()->getUsername() : ''; + return $label_target->getOwner() instanceof User ? htmlspecialchars($label_target->getOwner()->getUsername()) : ''; } return $this->labelTextReplacer->handlePlaceholder($placeholder, $label_target->getPart()); diff --git a/src/Services/LabelSystem/PlaceholderProviders/PartProvider.php b/src/Services/LabelSystem/PlaceholderProviders/PartProvider.php index 7d9e4db5..857aa1ff 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/PartProvider.php +++ b/src/Services/LabelSystem/PlaceholderProviders/PartProvider.php @@ -54,11 +54,11 @@ use Symfony\Contracts\Translation\TranslatorInterface; /** * @see \App\Tests\Services\LabelSystem\PlaceholderProviders\PartProviderTest */ -final class PartProvider implements PlaceholderProviderInterface +final readonly class PartProvider implements PlaceholderProviderInterface { - private readonly MarkdownConverter $inlineConverter; + private MarkdownConverter $inlineConverter; - public function __construct(private readonly SIFormatter $siFormatter, private readonly TranslatorInterface $translator) + public function __construct(private SIFormatter $siFormatter, private TranslatorInterface $translator) { $environment = new Environment(); $environment->addExtension(new InlinesOnlyExtension()); @@ -72,27 +72,27 @@ final class PartProvider implements PlaceholderProviderInterface } if ('[[CATEGORY]]' === $placeholder) { - return $part->getCategory() instanceof Category ? $part->getCategory()->getName() : ''; + return $part->getCategory() instanceof Category ? htmlspecialchars($part->getCategory()->getName()) : ''; } if ('[[CATEGORY_FULL]]' === $placeholder) { - return $part->getCategory() instanceof Category ? $part->getCategory()->getFullPath() : ''; + return $part->getCategory() instanceof Category ? htmlspecialchars($part->getCategory()->getFullPath()) : ''; } if ('[[MANUFACTURER]]' === $placeholder) { - return $part->getManufacturer() instanceof Manufacturer ? $part->getManufacturer()->getName() : ''; + return $part->getManufacturer() instanceof Manufacturer ? htmlspecialchars($part->getManufacturer()->getName()) : ''; } if ('[[MANUFACTURER_FULL]]' === $placeholder) { - return $part->getManufacturer() instanceof Manufacturer ? $part->getManufacturer()->getFullPath() : ''; + return $part->getManufacturer() instanceof Manufacturer ? htmlspecialchars($part->getManufacturer()->getFullPath()) : ''; } if ('[[FOOTPRINT]]' === $placeholder) { - return $part->getFootprint() instanceof Footprint ? $part->getFootprint()->getName() : ''; + return $part->getFootprint() instanceof Footprint ? htmlspecialchars($part->getFootprint()->getName()) : ''; } if ('[[FOOTPRINT_FULL]]' === $placeholder) { - return $part->getFootprint() instanceof Footprint ? $part->getFootprint()->getFullPath() : ''; + return $part->getFootprint() instanceof Footprint ? htmlspecialchars($part->getFootprint()->getFullPath()) : ''; } if ('[[MASS]]' === $placeholder) { @@ -100,15 +100,15 @@ final class PartProvider implements PlaceholderProviderInterface } if ('[[MPN]]' === $placeholder) { - return $part->getManufacturerProductNumber(); + return htmlspecialchars($part->getManufacturerProductNumber()); } if ('[[IPN]]' === $placeholder) { - return $part->getIpn() ?? ''; + return $part->getIpn() ? htmlspecialchars($part->getIpn()) : ''; } if ('[[TAGS]]' === $placeholder) { - return $part->getTags(); + return htmlspecialchars($part->getTags()); } if ('[[M_STATUS]]' === $placeholder) { diff --git a/src/Services/LabelSystem/PlaceholderProviders/PlaceholderProviderInterface.php b/src/Services/LabelSystem/PlaceholderProviders/PlaceholderProviderInterface.php index f5b1fc3b..3c1857d6 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/PlaceholderProviderInterface.php +++ b/src/Services/LabelSystem/PlaceholderProviders/PlaceholderProviderInterface.php @@ -46,6 +46,7 @@ interface PlaceholderProviderInterface /** * Determines the real value of this placeholder. * If the placeholder is not supported, null must be returned. + * The placeholder provider has to handle HTML escaping, as the output of this function will be used directly in the label template. * * @param string $placeholder The placeholder (e.g. "%%PLACEHOLDER%%") that should be replaced * @param object $label_target The object that is targeted by the label diff --git a/src/Services/LabelSystem/PlaceholderProviders/StorelocationProvider.php b/src/Services/LabelSystem/PlaceholderProviders/StorelocationProvider.php index 4b4d8dcd..de791b94 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/StorelocationProvider.php +++ b/src/Services/LabelSystem/PlaceholderProviders/StorelocationProvider.php @@ -31,11 +31,11 @@ class StorelocationProvider implements PlaceholderProviderInterface { if ($label_target instanceof StorageLocation) { if ('[[OWNER]]' === $placeholder) { - return $label_target->getOwner() instanceof User ? $label_target->getOwner()->getFullName() : ''; + return $label_target->getOwner() instanceof User ? htmlspecialchars($label_target->getOwner()->getFullName()) : ''; } if ('[[OWNER_USERNAME]]' === $placeholder) { - return $label_target->getOwner() instanceof User ? $label_target->getOwner()->getUsername() : ''; + return $label_target->getOwner() instanceof User ? htmlspecialchars($label_target->getOwner()->getUsername()) : ''; } } diff --git a/src/Services/LabelSystem/PlaceholderProviders/StructuralDBElementProvider.php b/src/Services/LabelSystem/PlaceholderProviders/StructuralDBElementProvider.php index f37f5901..c8c49cfe 100644 --- a/src/Services/LabelSystem/PlaceholderProviders/StructuralDBElementProvider.php +++ b/src/Services/LabelSystem/PlaceholderProviders/StructuralDBElementProvider.php @@ -55,13 +55,13 @@ final class StructuralDBElementProvider implements PlaceholderProviderInterface return strip_tags((string) $label_target->getComment()); } if ('[[FULL_PATH]]' === $placeholder) { - return $label_target->getFullPath(); + return htmlspecialchars($label_target->getFullPath()); } if ('[[PARENT]]' === $placeholder) { - return $label_target->getParent() instanceof AbstractStructuralDBElement ? $label_target->getParent()->getName() : ''; + return $label_target->getParent() instanceof AbstractStructuralDBElement ? htmlspecialchars($label_target->getParent()->getName()) : ''; } if ('[[PARENT_FULL_PATH]]' === $placeholder) { - return $label_target->getParent() instanceof AbstractStructuralDBElement ? $label_target->getParent()->getFullPath() : ''; + return $label_target->getParent() instanceof AbstractStructuralDBElement ? htmlspecialchars($label_target->getParent()->getFullPath()) : ''; } } diff --git a/src/Services/System/TrustedHostsChecker.php b/src/Services/System/TrustedHostsChecker.php new file mode 100644 index 00000000..49587dc9 --- /dev/null +++ b/src/Services/System/TrustedHostsChecker.php @@ -0,0 +1,45 @@ +. + */ + +declare(strict_types=1); + +namespace App\Services\System; + +use Symfony\Component\DependencyInjection\Attribute\Autowire; + +/** + * Checks whether the TRUSTED_HOSTS environment variable has been configured. + */ +final readonly class TrustedHostsChecker +{ + public function __construct( + #[Autowire('%env(TRUSTED_HOSTS)%')] + private string $trustedHosts, + ) { + } + + /** + * @return bool True if TRUSTED_HOSTS is not configured (meaning Part-DB accepts requests with any Host header), false otherwise. + */ + public function isTrustedHostsUnconfigured(): bool + { + return trim($this->trustedHosts) === ''; + } +} diff --git a/src/Services/System/TrustedUrlGenerator.php b/src/Services/System/TrustedUrlGenerator.php new file mode 100644 index 00000000..3e023a47 --- /dev/null +++ b/src/Services/System/TrustedUrlGenerator.php @@ -0,0 +1,96 @@ +. + */ + +declare(strict_types=1); + +namespace App\Services\System; + +use Symfony\Component\DependencyInjection\Attribute\Autowire; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; + +/** + * Generates absolute URLs for routes whose host can be trusted, for use in contexts where the host must not + * be attacker-controllable (e.g. links sent out via email). + * + * If no TRUSTED_HOSTS is configured, Symfony does not validate the Host header of the incoming request in + * any way, so it must not be trusted to generate such links (otherwise an attacker could poison them via a + * forged Host header). In that case, the host/scheme/base path are forced to the ones configured via + * DEFAULT_URI instead of the ones from the current HTTP request. + * If TRUSTED_HOSTS is configured, Symfony already rejects requests with a non-matching Host header, so the + * request's host can be trusted and is used as usual (which allows the app to be reachable under multiple + * trusted hostnames). + */ +final class TrustedUrlGenerator +{ + public function __construct( + private readonly UrlGeneratorInterface $urlGenerator, + private readonly TrustedHostsChecker $trustedHostsChecker, + #[Autowire('%partdb.default_uri%')] + private readonly string $defaultUri, + ) { + } + + /** + * @param array $parameters + */ + public function generate(string $route, array $parameters = []): string + { + //If TRUSTED_HOSTS is configured, Symfony already validated the request's Host header, so it can be trusted + if (!$this->trustedHostsChecker->isTrustedHostsUnconfigured()) { + return $this->urlGenerator->generate($route, $parameters, UrlGeneratorInterface::ABSOLUTE_URL); + } + + $parts = parse_url(rtrim($this->defaultUri, '/')); + + $context = $this->urlGenerator->getContext(); + + //Backup the original context, so we can restore it after generating the URL + $original = [ + 'host' => $context->getHost(), + 'scheme' => $context->getScheme(), + 'httpPort' => $context->getHttpPort(), + 'httpsPort' => $context->getHttpsPort(), + 'baseUrl' => $context->getBaseUrl(), + ]; + + $scheme = $parts['scheme'] ?? 'https'; + $context->setScheme($scheme); + $context->setHost($parts['host'] ?? ''); + if (isset($parts['port'])) { + if ($scheme === 'https') { + $context->setHttpsPort($parts['port']); + } else { + $context->setHttpPort($parts['port']); + } + } + $context->setBaseUrl($parts['path'] ?? ''); + + try { + return $this->urlGenerator->generate($route, $parameters, UrlGeneratorInterface::ABSOLUTE_URL); + } finally { + //Restore the original context, so the rest of the request is not affected + $context->setHost($original['host']); + $context->setScheme($original['scheme']); + $context->setHttpPort($original['httpPort']); + $context->setHttpsPort($original['httpsPort']); + $context->setBaseUrl($original['baseUrl']); + } + } +} diff --git a/src/Services/UserSystem/PasswordResetManager.php b/src/Services/UserSystem/PasswordResetManager.php index 1a78cb60..d826703f 100644 --- a/src/Services/UserSystem/PasswordResetManager.php +++ b/src/Services/UserSystem/PasswordResetManager.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace App\Services\UserSystem; use App\Entity\UserSystem\User; +use App\Services\System\TrustedUrlGenerator; use DateTime; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bridge\Twig\Mime\TemplatedEmail; @@ -39,7 +40,8 @@ class PasswordResetManager public function __construct(protected MailerInterface $mailer, protected EntityManagerInterface $em, protected TranslatorInterface $translator, protected UserPasswordHasherInterface $userPasswordEncoder, - PasswordHasherFactoryInterface $encoderFactory) + PasswordHasherFactoryInterface $encoderFactory, + protected TrustedUrlGenerator $trustedUrlGenerator) { $this->passwordEncoder = $encoderFactory->getPasswordHasher(User::class); } @@ -63,6 +65,9 @@ class PasswordResetManager $user->setPwResetExpires($expiration_date); if ($user->getEmail() !== null && $user->getEmail() !== '') { + $reset_url = $this->trustedUrlGenerator->generate('pw_reset_new_pw', ['user' => $user->getName(), 'token' => $unencrypted_token]); + $reset_url_fallback = $this->trustedUrlGenerator->generate('pw_reset_new_pw'); + $address = new Address($user->getEmail(), $user->getFullName()); $mail = new TemplatedEmail(); $mail->to($address); @@ -72,6 +77,8 @@ class PasswordResetManager 'expiration_date' => $expiration_date, 'token' => $unencrypted_token, 'user' => $user, + 'reset_url' => $reset_url, + 'reset_url_fallback' => $reset_url_fallback, ]); //Send email diff --git a/src/Settings/InfoProviderSystem/CanopySettings.php b/src/Settings/InfoProviderSystem/CanopySettings.php index 3c97a80e..dd36fba7 100644 --- a/src/Settings/InfoProviderSystem/CanopySettings.php +++ b/src/Settings/InfoProviderSystem/CanopySettings.php @@ -72,7 +72,7 @@ class CanopySettings /** * @var string The domain used internally for the API requests. This is not necessarily the same as the domain shown to the user, which is determined by the keys of the ALLOWED_DOMAINS constant */ - #[SettingsParameter(label: new TM("settings.ips.tme.country"), formType: ChoiceType::class, formOptions: ["choices" => self::ALLOWED_DOMAINS, 'translation_domain' => false])] + #[SettingsParameter(label: new TM("settings.ips.tme.country"), formType: ChoiceType::class, formOptions: ["choices" => self::ALLOWED_DOMAINS, 'choice_translation_domain' => false])] public string $domain = "DE"; /** diff --git a/templates/bundles/TwigBundle/Exception/error400.html.twig b/templates/bundles/TwigBundle/Exception/error400.html.twig new file mode 100644 index 00000000..f5ed56b9 --- /dev/null +++ b/templates/bundles/TwigBundle/Exception/error400.html.twig @@ -0,0 +1,39 @@ +{% extends "bundles/TwigBundle/Exception/error.html.twig" %} + +{% set untrusted_host = exception.message starts with 'Untrusted Host' or exception.message starts with 'Invalid Host' %} +{% set seen_host = untrusted_host ? (exception.message|split('"'))[1]|default(null) : null %} + +{% block status_comment %} + {% if untrusted_host %} + Part-DB was accessed using a host name that is not marked as trusted.
+ {% if seen_host %} + The host name Part-DB saw was: {{ seen_host }} + {% else %} + {{ exception.message }} + {% endif %} + {% else %} + Your browser sent a request that the server could not understand. + {% endif %} +{% endblock %} + +{% block admin_info %} + {% if untrusted_host %} + Untrusted host name.
+

For security reasons (to prevent HTTP Host header attacks), Part-DB only responds to requests using host names that were explicitly marked as trusted, once more than one host name is used to access it (e.g. behind a reverse proxy).

+

Try following things:

+ + {% else %} + {{ parent() }} + {% endif %} +{% endblock %} diff --git a/templates/homepage.html.twig b/templates/homepage.html.twig index 2a191f14..7b000e9d 100644 --- a/templates/homepage.html.twig +++ b/templates/homepage.html.twig @@ -95,6 +95,16 @@ {% endif %} + {% if trusted_hosts_unconfigured and is_granted('@system.server_infos') %} + + {% endif %} + {% if is_granted('@system.show_updates') %} {{ nv.new_version_alert(new_version_available, new_version, new_version_url) }} {% endif %} diff --git a/templates/mail/pw_reset.html.twig b/templates/mail/pw_reset.html.twig index 18a867d6..f9b9662c 100644 --- a/templates/mail/pw_reset.html.twig +++ b/templates/mail/pw_reset.html.twig @@ -6,9 +6,9 @@

{% trans with {'%name%': user.fullName|escape } %}email.hi %name%{% endtrans %},

{% trans %}email.pw_reset.message{% endtrans %}
- +
- {% trans with {'%url%': url('pw_reset_new_pw') } %}email.pw_reset.fallback{% endtrans %}: + {% trans with {'%url%': reset_url_fallback } %}email.pw_reset.fallback{% endtrans %}: diff --git a/tests/Services/ImportExportSystem/EntityExporterTest.php b/tests/Services/ImportExportSystem/EntityExporterTest.php index e4518961..2c400102 100644 --- a/tests/Services/ImportExportSystem/EntityExporterTest.php +++ b/tests/Services/ImportExportSystem/EntityExporterTest.php @@ -101,6 +101,28 @@ final class EntityExporterTest extends WebTestCase unlink($tempFile); } + public function testExportExcelFormulaInjectionPrevention(): void + { + // Values starting with formula characters must be stored as plain strings, not evaluated formulas + $entity = (new Category())->setName('=1+1')->setComment('@SUM(A1)'); + + $xlsxData = $this->service->exportEntities([$entity], ['format' => 'xlsx', 'level' => 'simple']); + $this->assertNotEmpty($xlsxData); + + $tempFile = tempnam(sys_get_temp_dir(), 'test_formula') . '.xlsx'; + file_put_contents($tempFile, $xlsxData); + + $spreadsheet = IOFactory::load($tempFile); + $worksheet = $spreadsheet->getActiveSheet(); + + // The formula-prefixed name must be stored as a plain string, not a formula + $cell = $worksheet->getCell('A2'); + $this->assertSame(\PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING, $cell->getDataType()); + $this->assertSame('=1+1', $cell->getValue()); + + unlink($tempFile); + } + public function testExportExcelFromRequest(): void { $entities = $this->getEntities(); diff --git a/tests/Services/InfoProviderSystem/Providers/LCSCProviderTest.php b/tests/Services/InfoProviderSystem/Providers/LCSCProviderTest.php index 9ec3abe1..63e1b452 100644 --- a/tests/Services/InfoProviderSystem/Providers/LCSCProviderTest.php +++ b/tests/Services/InfoProviderSystem/Providers/LCSCProviderTest.php @@ -133,25 +133,21 @@ final class LCSCProviderTest extends TestCase { $mockResponse = new MockResponse(json_encode([ 'result' => [ - 'productSearchResultVO' => [ - 'productList' => [ - [ - 'productCode' => 'C789012', - 'productModel' => 'Regular Component', - 'productIntroEn' => 'Regular description', - 'brandNameEn' => 'Regular Manufacturer', - 'encapStandard' => '0805', - 'productImageUrl' => 'https://example.com/regular.jpg', - 'productImages' => ['https://example.com/regular1.jpg'], - 'productPriceList' => [ - ['ladder' => 10, 'productPrice' => '0.08', 'currencySymbol' => '€'] - ], - 'paramVOList' => [], - 'pdfUrl' => null, - 'weight' => null - ] - ] - ] + 'exactMatchResult' => [[ + 'productCode' => 'C789012', + 'productModel' => 'Regular Component', + 'productIntroEn' => 'Regular description', + 'brandNameEn' => 'Regular Manufacturer', + 'encapStandard' => '0805', + 'productImageUrl' => 'https://example.com/regular.jpg', + 'productImages' => ['https://example.com/regular1.jpg'], + 'productPriceList' => [ + ['ladder' => 10, 'productPrice' => '0.08', 'currencySymbol' => '€'] + ], + 'paramVOList' => [], + 'pdfUrl' => null, + 'weight' => null + ]] ] ])); @@ -166,45 +162,6 @@ final class LCSCProviderTest extends TestCase $this->assertSame('Regular Component', $results[0]->name); } - public function testSearchByKeywordWithTipProduct(): void - { - $mockResponse = new MockResponse(json_encode([ - 'result' => [ - 'productSearchResultVO' => [ - 'productList' => [] - ], - 'tipProductDetailUrlVO' => [ - 'productCode' => 'C555555' - ] - ] - ])); - - $detailResponse = new MockResponse(json_encode([ - 'result' => [ - 'productCode' => 'C555555', - 'productModel' => 'Tip Component', - 'productIntroEn' => 'Tip description', - 'brandNameEn' => 'Tip Manufacturer', - 'encapStandard' => '1206', - 'productImageUrl' => null, - 'productImages' => [], - 'productPriceList' => [], - 'paramVOList' => [], - 'pdfUrl' => null, - 'weight' => null - ] - ])); - - $this->httpClient->setResponseFactory([$mockResponse, $detailResponse]); - - $results = $this->provider->searchByKeyword('special'); - - $this->assertIsArray($results); - $this->assertCount(1, $results); - $this->assertInstanceOf(PartDetailDTO::class, $results[0]); - $this->assertSame('C555555', $results[0]->provider_id); - $this->assertSame('Tip Component', $results[0]->name); - } public function testSearchByKeywordsBatch(): void { @@ -310,7 +267,7 @@ final class LCSCProviderTest extends TestCase ] ])); - $this->httpClient->setResponseFactory([$mockResponse]); + $this->httpClient->setResponseFactory([$mockResponse, $mockResponse]); $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('No part found with ID INVALID'); @@ -322,8 +279,7 @@ final class LCSCProviderTest extends TestCase { $mockResponse = new MockResponse(json_encode([ 'result' => [ - 'productSearchResultVO' => [ - 'productList' => [ + 'exactMatchResult' => [ [ 'productCode' => 'C123456', 'productModel' => 'Component 1', @@ -350,7 +306,6 @@ final class LCSCProviderTest extends TestCase 'pdfUrl' => null, 'weight' => null ] - ] ] ] ])); diff --git a/tests/Services/System/TrustedUrlGeneratorTest.php b/tests/Services/System/TrustedUrlGeneratorTest.php new file mode 100644 index 00000000..40c7c2c5 --- /dev/null +++ b/tests/Services/System/TrustedUrlGeneratorTest.php @@ -0,0 +1,172 @@ +. + */ + +declare(strict_types=1); + +namespace App\Tests\Services\System; + +use App\Services\System\TrustedHostsChecker; +use App\Services\System\TrustedUrlGenerator; +use PHPUnit\Framework\TestCase; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; +use Symfony\Component\Routing\RequestContext; + +final class TrustedUrlGeneratorTest extends TestCase +{ + private function createGenerator(UrlGeneratorInterface $urlGenerator, string $trustedHosts, string $defaultUri): TrustedUrlGenerator + { + return new TrustedUrlGenerator($urlGenerator, new TrustedHostsChecker($trustedHosts), $defaultUri); + } + + public function testUsesCurrentRequestContextWhenTrustedHostsIsConfigured(): void + { + //If TRUSTED_HOSTS is configured, the request's host is already validated by Symfony, so it should be used as-is + $urlGenerator = $this->createMock(UrlGeneratorInterface::class); + $urlGenerator->expects($this->never())->method('getContext'); + $urlGenerator->expects($this->once()) + ->method('generate') + ->with('pw_reset_new_pw', ['user' => 'john', 'token' => 'abc'], UrlGeneratorInterface::ABSOLUTE_URL) + ->willReturn('https://request-host.example.com/pw_reset/new_pw/john/abc'); + + $generator = $this->createGenerator($urlGenerator, 'example\.com', 'https://trusted.example.com/'); + + $url = $generator->generate('pw_reset_new_pw', ['user' => 'john', 'token' => 'abc']); + $this->assertSame('https://request-host.example.com/pw_reset/new_pw/john/abc', $url); + } + + public function testForcesDefaultUriHostWhenTrustedHostsIsNotConfigured(): void + { + //If TRUSTED_HOSTS is not configured, the request's Host header is attacker-controllable, so the + //host/scheme/base path configured via DEFAULT_URI must be used instead. + $context = new RequestContext(); + $context->setScheme('http'); + $context->setHost('attacker.evil'); + $context->setBaseUrl(''); + + $capturedHost = null; + $capturedScheme = null; + + $urlGenerator = $this->createMock(UrlGeneratorInterface::class); + $urlGenerator->method('getContext')->willReturn($context); + $urlGenerator->expects($this->once()) + ->method('generate') + ->with('pw_reset_new_pw', ['user' => 'john', 'token' => 'abc'], UrlGeneratorInterface::ABSOLUTE_URL) + ->willReturnCallback(function () use ($context, &$capturedHost, &$capturedScheme) { + //Capture the context state as it is seen by the URL generator during the call + $capturedHost = $context->getHost(); + $capturedScheme = $context->getScheme(); + + return $capturedScheme.'://'.$capturedHost.'/pw_reset/new_pw/john/abc'; + }); + + $generator = $this->createGenerator($urlGenerator, '', 'https://trusted.example.com/'); + + $url = $generator->generate('pw_reset_new_pw', ['user' => 'john', 'token' => 'abc']); + + $this->assertSame('trusted.example.com', $capturedHost); + $this->assertSame('https', $capturedScheme); + $this->assertSame('https://trusted.example.com/pw_reset/new_pw/john/abc', $url); + } + + public function testRestoresOriginalContextAfterGenerating(): void + { + //The context is shared with the rest of the application, so it must not be left modified afterward + $context = new RequestContext(); + $context->setScheme('http'); + $context->setHost('attacker.evil'); + $context->setHttpPort(8080); + $context->setBaseUrl('/original'); + + $urlGenerator = $this->createMock(UrlGeneratorInterface::class); + $urlGenerator->method('getContext')->willReturn($context); + $urlGenerator->method('generate')->willReturn('https://trusted.example.com/foo'); + + $generator = $this->createGenerator($urlGenerator, '', 'https://trusted.example.com/sub/'); + $generator->generate('some_route'); + + $this->assertSame('attacker.evil', $context->getHost()); + $this->assertSame('http', $context->getScheme()); + $this->assertSame(8080, $context->getHttpPort()); + $this->assertSame('/original', $context->getBaseUrl()); + } + + public function testRestoresOriginalContextEvenWhenGenerateThrows(): void + { + $context = new RequestContext(); + $context->setScheme('http'); + $context->setHost('attacker.evil'); + + $urlGenerator = $this->createMock(UrlGeneratorInterface::class); + $urlGenerator->method('getContext')->willReturn($context); + $urlGenerator->method('generate')->willThrowException(new \RuntimeException('route not found')); + + $generator = $this->createGenerator($urlGenerator, '', 'https://trusted.example.com/'); + + try { + $generator->generate('unknown_route'); + $this->fail('Expected exception was not thrown'); + } catch (\RuntimeException) { + //Expected + } + + $this->assertSame('attacker.evil', $context->getHost()); + $this->assertSame('http', $context->getScheme()); + } + + public function testUsesHttpsPortForHttpsDefaultUri(): void + { + $context = new RequestContext(); + + $capturedHttpsPort = null; + + $urlGenerator = $this->createMock(UrlGeneratorInterface::class); + $urlGenerator->method('getContext')->willReturn($context); + $urlGenerator->method('generate')->willReturnCallback(function () use ($context, &$capturedHttpsPort) { + $capturedHttpsPort = $context->getHttpsPort(); + + return 'https://trusted.example.com:8443/foo'; + }); + + $generator = $this->createGenerator($urlGenerator, '', 'https://trusted.example.com:8443/'); + $generator->generate('some_route'); + + $this->assertSame(8443, $capturedHttpsPort); + } + + public function testUsesBasePathFromDefaultUri(): void + { + $context = new RequestContext(); + + $capturedBaseUrl = null; + + $urlGenerator = $this->createMock(UrlGeneratorInterface::class); + $urlGenerator->method('getContext')->willReturn($context); + $urlGenerator->method('generate')->willReturnCallback(function () use ($context, &$capturedBaseUrl) { + $capturedBaseUrl = $context->getBaseUrl(); + + return 'https://trusted.example.com/partdb/foo'; + }); + + $generator = $this->createGenerator($urlGenerator, '', 'https://trusted.example.com/partdb/'); + $generator->generate('some_route'); + + $this->assertSame('/partdb', $capturedBaseUrl); + } +} diff --git a/translations/frontend.ko.xlf b/translations/frontend.ko.xlf new file mode 100644 index 00000000..37c885c0 --- /dev/null +++ b/translations/frontend.ko.xlf @@ -0,0 +1,83 @@ + + + + + + search.placeholder + 검색 + + + + + part.labelp + 부품 + + + + + entity.select.group.new_not_added_to_DB + 신규 (아직 DB에 추가되지 않음) + + + + + user.password_strength.very_weak + 매우 약함 + + + + + user.password_strength.weak + 약함 + + + + + user.password_strength.medium + 보통 + + + + + user.password_strength.strong + 강함 + + + + + user.password_strength.very_strong + 매우 강함 + + + + + search.submit + 이동! + + + + + user.password_strength.crack_time + 예상 해독 시간: %time% + + + + + dialog.btn.ok + 확인 + + + + + dialog.btn.cancel + 취소 + + + + + dialog.btn.deny + 아니요 + + + + diff --git a/translations/messages.de.xlf b/translations/messages.de.xlf index 5542a6ed..15801601 100644 --- a/translations/messages.de.xlf +++ b/translations/messages.de.xlf @@ -13695,6 +13695,24 @@ Buerklin-API-Authentication-Server: Sie können diesen zufällig generierten Wert verwenden (geben Sie ihn niemandem weiter): + + + system.trusted_hosts.unconfigured.title + TRUSTED_HOSTS nicht konfiguriert + + + + + system.trusted_hosts.unconfigured.message + Die Umgebungsvariable <code>TRUSTED_HOSTS</code> ist nicht gesetzt. Das bedeutet, dass Part-DB Anfragen für jeden beliebigen Hostnamen akzeptiert, was ein Sicherheitsrisiko darstellen kann (z. B. HTTP-Host-Header-Injection). Es wird empfohlen, dies auf die Hostnamen zu beschränken, unter denen Part-DB tatsächlich erreichbar ist. + + + + + system.trusted_hosts.unconfigured.suggestion + Legen Sie einen regulären Ausdruck fest, der alle Hostnamen abdeckt, unter denen Part-DB erreichbar sein soll, z. B. basierend auf dem Hostnamen, den Sie für den Zugriff auf diese Seite verwendet haben. Dies ist möglich in Ihrer Datei <code>.env.local</code> oder <code>docker-compose.yaml</code>: + + info_providers.provider_key diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index 36021868..d4d40359 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -675,7 +675,7 @@ Sub elements will be moved upwards. part_list.loading.message - This can take a moment. If this message do not disappear, try to reload the page. + This can take a moment. If this message does not disappear, try to reload the page. @@ -960,7 +960,7 @@ Sub elements will be moved upwards. email.pw_reset.message - somebody (hopefully you) requested a reset of your password. If this request was not made by you, ignore this mail. + Somebody (hopefully you) requested a reset of your password. If this request was not made by you, ignore this mail. @@ -2143,7 +2143,7 @@ Also note that without two-factor authentication, your account is no longer as w tfa_google.step.download - Download an authenticator app (e.g. <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a> oder <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp">FreeOTP Authenticator</a>) + Download an authenticator app (e.g. <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a> or <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp">FreeOTP Authenticator</a>) @@ -3065,7 +3065,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can attachment.edit.url.help - You can specify an URL to an external file here, or input an keyword which is used to search in built-in resources (e.g. footprints) + You can specify a URL to an external file here, or input a keyword which is used to search in built-in resources (e.g. footprints) @@ -4208,7 +4208,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can validator.noLockout - You can not withdraw yourself the "change permission" permission, to prevent that you lockout yourself accidentally. + You can not withdraw yourself the "change permission" permission, to prevent that you lock yourself out accidentally. @@ -4703,7 +4703,7 @@ Element 1 -> Element 1.2 storelocation.edit.is_full.label - Storelocation full + Storage location full @@ -4713,7 +4713,7 @@ Element 1 -> Element 1.2 storelocation.edit.is_full.help - If this option is selected, it is neither possible to add new [[part]] to this storelocation or to increase the amount of existing [[part]]. + If this option is selected, it is neither possible to add new [[part]] to this storage location or to increase the amount of existing [[part]]. @@ -4733,7 +4733,7 @@ Element 1 -> Element 1.2 storelocation.limit_to_existing.help - If this option is activated, it is not possible to add new [[part]] to this storelocation, but the amount of existing [[part]] can be increased. + If this option is activated, it is not possible to add new [[part]] to this storage location, but the amount of existing [[part]] can be increased. @@ -5988,7 +5988,7 @@ Element 1 -> Element 1.2 log.type.security.trusted_device_reset - Trusted devices resetted + Trusted devices reset @@ -6123,7 +6123,7 @@ Element 1 -> Element 1.2 group.edit.enforce_2fa.help - If this option is enabled, every direct member of this group, has to configure at least one second-factor for authentication. Recommended for administrative groups with much permissions. + If this option is enabled, every direct member of this group, has to configure at least one second-factor for authentication. Recommended for administrative groups with many permissions. @@ -6363,7 +6363,7 @@ Element 1 -> Element 1.2 tools.reel_calc.explanation - This calculator gives you an estimation, how many parts are remaining on an SMD reel. Measure the noted the dimensions on the reel (or use some of the presets) and click "Update" to get an result. + This calculator gives you an estimation, how many parts are remaining on an SMD reel. Measure the noted the dimensions on the reel (or use the presets) and click "Update" to get a result. @@ -7893,7 +7893,7 @@ Element 1 -> Element 1.2 log.element_edited.changed_fields.is_full - Storelocation full + Storage location full @@ -8289,13 +8289,13 @@ Element 1 -> Element 1.2 import.create_unknown_datastructures - Create unknown datastructures + Create unknown data structures import.create_unknown_datastructures.help - If this is selected, datastructures (like categories, footprints, etc.) which does not exist in the database yet, will be automatically created. If this is not selected, only existing data structures will be used, and if no matching data structure is found, the part will get assigned nothing + If this is selected, data structures (like categories, footprints, etc.) which does not exist in the database yet, will be automatically created. If this is not selected, only existing data structures will be used, and if no matching data structure is found, the part will get assigned nothing @@ -8307,7 +8307,7 @@ Element 1 -> Element 1.2 import.path_delimiter.help - The delimiter used to mark different levels in data structure pathes like category, footprint, etc. + The delimiter used to mark different levels in data structure paths like category, footprint, etc. @@ -8367,7 +8367,7 @@ Element 1 -> Element 1.2 project.bom_import.type.kicad_pcbnew - KiCAD Pcbnew BOM (CSV file) + KiCad Pcbnew BOM (CSV file) @@ -8535,7 +8535,7 @@ Element 1 -> Element 1.2 log.user_login.ip_anonymize_hint - If the last digits of the IP address are missing, then the GDPR mode is enabled, in which IP addresses are anynomized. + If the last digits of the IP address are missing, then the GDPR mode is enabled, in which IP addresses are anonymized. @@ -8571,7 +8571,7 @@ Element 1 -> Element 1.2 error_table.error - An error occured during your request. + An error occurred during your request. @@ -9347,7 +9347,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g permission.legend.dependency_note - Please note that some permission operations depend on each other. If you encounter a warning that missing permissions were corrected and a permission was set to allow again, you have to set the dependent operation to forbid too. The dependents can normally found right of an operation. + Please note that some permission operations depend on each other. If you encounter a warning that missing permissions were corrected and a permission was set to allow again, you have to set the dependent operation to forbid too. The dependents can normally be found right of an operation. @@ -12152,7 +12152,7 @@ Buerklin-API Authentication server: info_providers.search.error.transport_exception - Transport error while retrieving information from the providers. Check that your server has internet accesss. See server logs for more info. + Transport error while retrieving information from the providers. Check that your server has internet access. See server logs for more info. @@ -13697,6 +13697,24 @@ Buerklin-API Authentication server: You can use this randomly generated value (share it with nobody): + + + system.trusted_hosts.unconfigured.title + TRUSTED_HOSTS not configured + + + + + system.trusted_hosts.unconfigured.message + The <code>TRUSTED_HOSTS</code> environment variable is not set. This means Part-DB will accept requests for any host name, which can be a security risk (e.g. HTTP Host header injection). It is recommended to restrict this to the host names Part-DB is actually reachable under. + + + + + system.trusted_hosts.unconfigured.suggestion + Set it to a regular expression matching all host names Part-DB should be reachable under in your <code>.env.local</code> or <code>docker-compose.yaml</code> file, e.g. based on the host name you used to access this page: + + info_providers.provider_key diff --git a/translations/messages.ko.xlf b/translations/messages.ko.xlf new file mode 100644 index 00000000..b5ee7202 --- /dev/null +++ b/translations/messages.ko.xlf @@ -0,0 +1,13749 @@ + + + + + + attachment_type.caption + 첨부파일의 파일 형식 + + + + + new + + + attachment_type.edit + [attachment_type] 편집 + + + + + new + + + attachment_type.new + 새 [attachment_type] + + + + + category.labelp + 카테고리 + + + + + admin.options + 옵션 + + + + + admin.advanced + 고급 + + + + + new + + + category.edit + [category] 편집 + + + + + new + + + category.new + 새 [category] + + + + + currency.iso_code.caption + ISO 코드 + + + + + currency.symbol.caption + 통화 기호 + + + + + new + + + currency.edit + [currency] 편집 + + + + + new + + + currency.new + 새 [currency] + + + + + new + + + project.edit + [project] 편집 + + + + + new + + + project.new + 새 [project] + + + + + search.placeholder + 검색 + + + + + expandAll + 모두 펼치기 + + + + + reduceAll + 모두 접기 + + + + + part.info.timetravel_hint + %timestamp% 이전의 부품 상태입니다. <i>이 기능은 실험적이므로 정보가 정확하지 않을 수 있습니다. </i> + + + + + standard.label + 속성 + + + + + infos.label + 정보 + + + + + new + + + history.label + 이력 + + + + + export.label + 내보내기 + + + + + import_export.label + 가져오기 / 내보내기 + + + + + mass_creation.label + 대량 생성 + + + + + admin.common + 일반 + + + + + admin.attachments + 첨부파일 + + + + + admin.parameters + 파라미터 + + + + + export_all.label + 모든 요소 내보내기 + + + + + mass_creation.help + 각 줄은 생성될 요소의 이름으로 해석됩니다. 들여쓰기로 중첩 구조를 만들 수 있습니다. + + + + + edit.caption + "%name" 요소 편집 + + + + + new.caption + 새 요소 + + + + + footprint.labelp + 풋프린트 + + + + + new + + + footprint.edit + [footprint] 편집 + + + + + new + + + footprint.new + 새 [footprint] + + + + + user.edit.permissions + 권한 + + + + + new + + + group.edit + [group] 편집 + + + + + new + + + group.new + 새 [group] + + + + + label_profile.advanced + 고급 + + + + + label_profile.comment + 메모 + + + + + new + + + label_profile.edit + [label_profile] 편집 + + + + + new + + + label_profile.new + 새 [label_profile] + + + + + new + + + manufacturer.edit + [manufacturer] 편집 + + + + + new + + + manufacturer.new + 새 [manufacturer] + + + + + storelocation.labelp + 보관 위치 + + + + + new + + + storelocation.edit + [storage_location] 편집 + + + + + new + + + storelocation.new + 새 [storage_location] + + + + + new + + + supplier.edit + [supplier] 편집 + + + + + new + + + supplier.new + 새 [supplier] + + + + + user.edit.configuration + 설정 + + + + + user.edit.password + 비밀번호 + + + + + user.edit.tfa.caption + 2단계 인증 + + + + + user.edit.tfa.google_active + 인증 앱 활성화됨 + + + + + tfa_backup.remaining_tokens + 남은 백업 코드 수 + + + + + tfa_backup.generation_date + 백업 코드 생성일 + + + + + user.edit.tfa.disabled + 사용하지 않는 방법 + + + + + user.edit.tfa.u2f_keys_count + 활성 보안 키 + + + + + user.edit.tfa.disable_tfa_title + 정말 진행하시겠습니까? + + + + + user.edit.tfa.disable_tfa_message + 이 작업은 <b>사용자의 모든 활성 2단계 인증 방법</b>을 비활성화하고 <b>백업 코드</b>를 삭제합니다! +<br> +사용자는 모든 2단계 인증 방법을 다시 설정하고 새 백업 코드를 출력해야 합니다! <br><br> +<b>도움을 요청한 사용자의 신원이 확실한 경우에만 진행하세요. 그렇지 않으면 공격자가 계정을 탈취할 수 있습니다!</b> + + + + + user.edit.tfa.disable_tfa.btn + 모든 2단계 인증 방법 비활성화 + + + + + new + + + user.edit + [user] 편집 + + + + + new + + + user.new + 새 [user] + + + + + attachment.delete + 삭제 + + + + + attachment.external_only + 외부 링크만 + + + + + attachment.preview.alt + 첨부파일 미리보기 + + + + + attachment.view_local + 로컬 사본 보기 + + + + + attachment.file_not_found + 파일을 찾을 수 없음 + + + + + attachment.secure + 비공개 첨부파일 + + + + + attachment.create + 첨부파일 추가 + + + + + part_lot.edit.delete.confirm + 정말 이 재고를 삭제하시겠습니까? 되돌릴 수 없습니다! + + + + + entity.delete.confirm_title + 정말 %name%을(를) 삭제하시겠습니까? + + + + + entity.delete.message + 되돌릴 수 없습니다! +<br> +하위 요소는 상위로 이동됩니다. + + + + + entity.delete + 요소 삭제 + + + + + new + + + edit.log_comment + 변경 사항 메모 + + + + + entity.delete.recursive + 재귀 삭제 (모든 하위 요소 포함) + + + + + entity.duplicate + 요소 복제 + + + + + export.format + 파일 형식 + + + + + export.level + 상세 수준 + + + + + export.level.simple + 간단히 + + + + + export.level.extended + 확장 + + + + + export.level.full + 전체 + + + + + export.include_children + 하위 요소를 내보내기에 포함 + + + + + export.btn + 내보내기 + + + + + id.label + ID + + + + + createdAt + 생성일 + + + + + lastModified + 마지막 수정일 + + + + + entity.info.parts_count + 이 요소를 사용하는 [[part]] 수 + + + + + specifications.property + 파라미터 + + + + + specifications.symbol + 기호 + + + + + specifications.value_min + 최소 + + + + + specifications.value_typ + 일반 + + + + + specifications.value_max + 최대 + + + + + specifications.unit + 단위 + + + + + specifications.text + 텍스트 + + + + + specifications.group + 그룹 + + + + + specifications.eda_visibility.help + 이 파라미터를 EDA 필드로 내보내기 + + + + + specification.create + 새 파라미터 + + + + + parameter.delete.confirm + 정말 이 파라미터를 삭제하시겠습니까? + + + + + attachment.list.title + 첨부파일 목록 + + + + + part_list.loading.caption + 불러오는 중 + + + + + part_list.loading.message + 잠시 걸릴 수 있습니다. 이 메시지가 사라지지 않으면 페이지를 새로고침해 보세요. + + + + + vendor.base.javascript_hint + 모든 기능을 사용하려면 Javascript를 활성화하세요! + + + + + sidebar.big.toggle + 사이드바 표시/숨기기 + + + + + loading.caption + 불러오는 중: + + + + + loading.message + 시간이 걸릴 수 있습니다. 이 메시지가 오래 지속되면 페이지를 새로고침해 보세요. + + + + + loading.bar + 불러오는 중... + + + + + back_to_top + 페이지 맨 위로 + + + + + permission.edit.permission + 권한 + + + + + permission.edit.value + + + + + + permission.legend.title + 상태 설명 + + + + + permission.legend.disallow + 금지 + + + + + permission.legend.allow + 허용 + + + + + permission.legend.inherit + (상위) 그룹에서 상속 + + + + + bool.true + + + + + + bool.false + 거짓 + + + + + Yes + + + + + + No + 아니요 + + + + + specifications.value + + + + + + version.caption + 버전 + + + + + homepage.license + 라이선스 정보 + + + + + homepage.github.caption + 프로젝트 페이지 + + + + + homepage.github.text + 소스, 다운로드, 버그 신고, 할 일 목록 등은 <a href="%href%" class="link-external" target="_blank">GitHub 프로젝트 페이지</a>에서 확인할 수 있습니다 + + + + + homepage.help.caption + 도움말 + + + + + homepage.help.text + 도움말과 팁은 <a href="%href%" class="link-external" target="_blank">GitHub 페이지</a>의 Wiki에서 확인할 수 있습니다 + + + + + homepage.forum.caption + 포럼 + + + + + new + + + homepage.last_activity + 최근 활동 + + + + + label_generator.title + 라벨 생성기 + + + + + label_generator.common + 일반 + + + + + label_generator.advanced + 고급 + + + + + label_generator.profiles + 프로필 + + + + + label_generator.selected_profile + 현재 선택된 프로필 + + + + + label_generator.edit_profile + 프로필 편집 + + + + + label_generator.load_profile + 프로필 불러오기 + + + + + label_generator.download + 다운로드 + + + + + label_generator.label_btn + 라벨 생성 + + + + + label_generator.label_empty + 새 빈 라벨 + + + + + label_scanner.title + 라벨 스캐너 + + + + + label_scanner.no_cam_found.title + 웹캠을 찾을 수 없음 + + + + + label_scanner.no_cam_found.text + 스캐너 기능을 사용하려면 웹캠이 필요하며 사용 권한을 허용해야 합니다. 아래에 바코드를 직접 입력할 수도 있습니다. + + + + + label_scanner.source_select + 소스 선택 + + + + + log.list.title + 시스템 로그 + + + + + new + + + log.undo.confirm_title + 정말 변경을 취소하거나 해당 시점으로 되돌리시겠습니까? + + + + + new + + + log.undo.confirm_message + 정말 이 변경을 취소하거나 요소를 해당 시점으로 재설정하시겠습니까? + + + + + mail.footer.email_sent_by + 이 이메일은 다음에 의해 자동 발송되었습니다: + + + + + mail.footer.dont_reply + 이 이메일에 회신하지 마세요. + + + + + email.hi %name% + 안녕하세요 %name%님 + + + + + email.pw_reset.message + 누군가(본인이길 바랍니다)가 비밀번호 재설정을 요청했습니다. 본인이 요청하지 않았다면 이 메일을 무시하세요. + + + + + email.pw_reset.button + 비밀번호를 재설정하려면 여기를 클릭 + + + + + email.pw_reset.fallback + 작동하지 않는 경우 <a href="%url%">%url%</a>로 이동하여 다음 정보를 입력하세요 + + + + + email.pw_reset.username + 사용자 이름 + + + + + email.pw_reset.token + 토큰 + + + + + email.pw_reset.valid_unit %date% + 재설정 토큰은 <i>%date%</i>까지 유효합니다. + + + + + orderdetail.delete + 삭제 + + + + + pricedetails.edit.min_qty + 최소 할인 수량 + + + + + pricedetails.edit.price + 가격 + + + + + pricedetails.edit.price_qty + 수량 기준 + + + + + pricedetail.create + 가격 추가 + + + + + part.edit.title + [part] 편집 + + + + + part.edit.card_title + [part] 편집 + + + + + form.dirty_form.unsaved_changes.title + 저장되지 않은 변경 사항 + + + + + form.dirty_form.unsaved_changes.message + 저장되지 않은 변경 사항이 있으며 이 페이지를 벗어나면 사라집니다. 계속하시겠습니까? + + + + + part.edit.tab.common + 일반 + + + + + part.edit.tab.manufacturer + 제조사 + + + + + part.edit.tab.advanced + 고급 + + + + + part.edit.tab.advanced.ipn.commonSectionHeader + 부품 증가 번호 없는 제안 + + + + + part.edit.tab.advanced.ipn.partIncrementHeader + 숫자 증가 번호를 포함한 제안 + + + + + part.edit.tab.advanced.ipn.prefix.description.current-increment + 이 부품의 현재 IPN 지정 + + + + + part.edit.tab.advanced.ipn.prefix.description.increment + 동일한 부품 설명 기반의 다음 가능한 IPN 지정 + + + + + part.edit.tab.advanced.ipn.prefix_empty.direct_category + 직속 카테고리의 IPN 접두사가 비어 있습니다. "%name%" 카테고리에서 지정하세요 + + + + + part.edit.tab.advanced.ipn.prefix.direct_category + 직속 카테고리의 IPN 접두사 + + + + + part.edit.tab.advanced.ipn.prefix.direct_category.increment + 직속 카테고리의 IPN 접두사 및 부품별 증가 번호 + + + + + part.edit.tab.advanced.ipn.prefix.hierarchical.no_increment + 상위 접두사의 계층적 카테고리 순서를 따른 IPN 접두사 + + + + + part.edit.tab.advanced.ipn.prefix.hierarchical.increment + 상위 접두사의 계층적 카테고리 순서와 부품별 증가 번호를 포함한 IPN 접두사 + + + + + part.edit.tab.advanced.ipn.prefix.not_saved + 먼저 부품을 생성하고 카테고리에 배정하세요. 카테고리와 해당 IPN 접두사가 있으면 부품의 IPN을 자동으로 제안받을 수 있습니다 + + + + + part.edit.tab.part_lots + 재고 + + + + + part.edit.tab.attachments + 첨부파일 + + + + + part.edit.tab.orderdetails + 구매 정보 + + + + + part.edit.tab.specifications + 파라미터 + + + + + part.edit.tab.comment + 메모 + + + + + part.new.card_title + 새 [part] 생성 + + + + + part_lot.delete + 삭제 + + + + + part_lot.create + 재고 추가 + + + + + orderdetail.create + 판매처 추가 + + + + + pricedetails.edit.delete.confirm + 정말 이 가격을 삭제하시겠습니까? 되돌릴 수 없습니다. + + + + + orderdetails.edit.delete.confirm + 정말 이 판매처 정보를 삭제하시겠습니까? 되돌릴 수 없습니다! + + + + + part.info.title + [part] 상세 정보 + + + + + part.part_lots.label + 재고 + + + + + comment.label + 메모 + + + + + part.info.specifications + 파라미터 + + + + + attachment.labelp + 첨부파일 + + + + + vendor.partinfo.shopping_infos + 구매 정보 + + + + + vendor.partinfo.history + 이력 + + + + + tools.label + 도구 + + + + + extended_info.label + 확장 정보 + + + + + attachment.name + 이름 + + + + + attachment.attachment_type + 첨부파일 형식 + + + + + attachment.file_name + 파일 이름 + + + + + attachment.file_size + 파일 크기 + + + + + attachment.preview + 미리보기 사진 + + + + + attachment.download_local + 로컬 사본 다운로드 + + + + + new + + + user.creating_user + 이 [part]을(를) 생성한 사용자 + + + + + Unknown + 알 수 없음 + + + + + new + + + accessDenied + 접근 거부됨 + + + + + new + + + user.last_editing_user + 이 [part]을(를) 마지막으로 편집한 사용자 + + + + + part.isFavorite + 즐겨찾기 + + + + + part.minOrderAmount + 최소 주문 수량 + + + + + manufacturer.label + 제조사 + + + + + name.label + 이름 + + + + + new + + + part.back_to_info + 현재 버전으로 돌아가기 + + + + + description.label + 설명 + + + + + category.label + 카테고리 + + + + + instock.label + 재고량 + + + + + mininstock.label + 최소 재고량 + + + + + footprint.label + 풋프린트 + + + + + part.avg_price.label + 평균 가격 + + + + + part.supplier.name + 이름 + + + + + part.supplier.partnr + 부품 번호 + + + + + part.order.minamount + 최소 수량 + + + + + part.order.price + 가격 + + + + + part.order.single_price + 단가 + + + + + part_lots.description + 설명 + + + + + part_lots.storage_location + 보관 위치 + + + + + part_lots.amount + 수량 + + + + + part_lots.location_unknown + 보관 위치 알 수 없음 + + + + + part_lots.instock_unknown + 수량 알 수 없음 + + + + + part_lots.expiration_date + 유효 기간 + + + + + part_lots.is_expired + 기간 만료 + + + + + part_lots.need_refill + 보충 필요 + + + + + part.info.prev_picture + 이전 사진 + + + + + part.info.next_picture + 다음 사진 + + + + + part.mass.tooltip + 질량 + + + + + part.needs_review.badge + 검토 필요 + + + + + part.favorite.badge + 즐겨찾기 + + + + + part.obsolete.badge + 더 이상 판매되지 않음 + + + + + parameters.extracted_from_description + 설명에서 자동 추출됨 + + + + + parameters.auto_extracted_from_comment + 메모에서 자동 추출됨 + + + + + part.edit.btn + [part] 편집 + + + + + part.clone.btn + [part] 복제 + + + + + part.create.btn + 새 [part] 생성 + + + + + part.delete.confirm_title + 정말 이 [part]을(를) 삭제하시겠습니까? + + + + + part.delete.message + 이 [part]과(와) 관련된 모든 정보(첨부파일, 가격 정보 등)가 삭제됩니다. 되돌릴 수 없습니다! + + + + + part.delete + [part] 삭제 + + + + + parts_list.all.title + 모든 [[part]] + + + + + parts_list.category.title + [category]의 [[Part]] + + + + + parts_list.footprint.title + [footprint]의 [[Part]] + + + + + parts_list.manufacturer.title + [manufacturer]의 [[Part]] + + + + + parts_list.search.title + [[part]] 검색 + + + + + parts_list.storelocation.title + [[storage_location]]의 [[Part]] + + + + + parts_list.supplier.title + [supplier]의 [[Part]] + + + + + parts_list.tags.title + 태그가 있는 부품 + + + + + entity.info.common.tab + 일반 + + + + + entity.info.statistics.tab + 통계 + + + + + entity.info.attachments.tab + 첨부파일 + + + + + entity.info.parameters.tab + 파라미터 + + + + + entity.info.name + 이름 + + + + + entity.info.parent + 상위 요소 + + + + + entity.edit.btn + 편집 + + + + + entity.info.children_count + 하위 요소 수 + + + + + tfa.check.title + 2단계 인증 필요 + + + + + tfa.code.trusted_pc + 신뢰할 수 있는 컴퓨터입니다 (활성화하면 이 컴퓨터에서는 2단계 인증을 다시 묻지 않습니다) + + + + + login.btn + 로그인 + + + + + user.logout + 로그아웃 + + + + + tfa.check.code.label + 인증 앱 코드 + + + + + tfa.check.code.help + 인증 앱의 6자리 코드를 입력하세요. 인증 앱을 사용할 수 없는 경우 백업 코드 중 하나를 입력하세요. + + + + + login.title + 로그인 + + + + + login.card_title + 로그인 + + + + + login.username.label + 사용자 이름 + + + + + login.username.placeholder + 사용자 이름 + + + + + login.password.label + 비밀번호 + + + + + login.password.placeholder + 비밀번호 + + + + + login.rememberme + 로그인 상태 유지 (공용 컴퓨터에서는 사용하지 마세요) + + + + + pw_reset.password_forget + 사용자 이름/비밀번호를 잊으셨나요? + + + + + pw_reset.new_pw.header.title + 새 비밀번호 설정 + + + + + pw_reset.request.header.title + 새 비밀번호 요청 + + + + + tfa_u2f.http_warning + 안전하지 않은 HTTP 방식으로 이 페이지에 접속 중이므로 U2F가 작동하지 않을 가능성이 높습니다(Bad Request 오류 발생). 보안 키를 사용하려면 관리자에게 HTTPS 설정을 요청하세요. + + + + + r_u2f_two_factor.pressbutton + 보안 키를 연결하고 버튼을 눌러주세요! + + + + + tfa_u2f.add_key.title + 보안 키 추가 + + + + + tfa_u2f.explanation + U2F/FIDO 호환 보안 키(예: YubiKey, NitroKey)를 사용하면 사용자 친화적이고 안전한 2단계 인증이 가능합니다. 여기서 보안 키를 등록할 수 있으며, 2단계 인증이 필요할 때 키를 USB로 연결하거나 NFC로 기기에 대기만 하면 됩니다. + + + + + tfa_u2f.add_key.backup_hint + 키를 분실해도 접근할 수 있도록 두 번째 키를 백업으로 등록하고 안전한 곳에 보관하는 것을 권장합니다! + + + + + tfa_u2f.add_key.add_button + 보안 키 추가 + + + + + tfa_u2f.add_key.back_to_settings + 설정으로 돌아가기 + + + + + new + + + statistics.title + 통계 + + + + + new + + + statistics.parts + 부품 + + + + + new + + + statistics.data_structures + 데이터 구조 + + + + + new + + + statistics.attachments + 첨부파일 + + + + + new + + + statistics.property + 항목 + + + + + new + + + statistics.value + + + + + + new + + + statistics.distinct_parts_count + 고유 [[part]] 수 + + + + + new + + + statistics.parts_instock_sum + 모든 [[part]] 재고 합계 + + + + + new + + + statistics.parts_with_price + 가격 정보가 있는 [[part]] 수 + + + + + new + + + statistics.categories_count + [[category]] 수 + + + + + new + + + statistics.footprints_count + [[footprint]] 수 + + + + + new + + + statistics.manufacturers_count + [[manufacturer]] 수 + + + + + new + + + statistics.storelocations_count + [[storage_location]] 수 + + + + + new + + + statistics.suppliers_count + [[supplier]] 수 + + + + + new + + + statistics.currencies_count + [[currency]] 수 + + + + + new + + + statistics.measurement_units_count + [[measurement_unit]] 수 + + + + + new + + + statistics.devices_count + [[project]] 수 + + + + + new + + + statistics.attachment_types_count + [[attachment_type]] 수 + + + + + new + + + statistics.all_attachments_count + 전체 첨부파일 수 + + + + + new + + + statistics.user_uploaded_attachments_count + 사용자가 업로드한 첨부파일 수 + + + + + new + + + statistics.private_attachments_count + 비공개 첨부파일 수 + + + + + new + + + statistics.external_attachments_count + 외부 첨부파일(URL) 수 + + + + + tfa_backup.codes.title + 백업 코드 + + + + + tfa_backup.codes.explanation + 이 코드들을 출력하여 안전한 곳에 보관하세요! + + + + + tfa_backup.codes.help + 인증 앱이 설치된 기기를 더 이상 사용할 수 없는 경우(스마트폰 분실, 데이터 손실 등) 이 코드 중 하나로 계정에 접근하여 새 인증 앱을 설정할 수 있습니다. 각 코드는 한 번만 사용할 수 있으며, 사용한 코드는 지우는 것을 권장합니다. 이 코드에 접근할 수 있는 사람은 누구나 계정에 접근할 수 있으니 안전한 곳에 보관하세요. + + + + + tfa_backup.username + 사용자 이름 + + + + + tfa_backup.codes.page_generated_on + %date%에 생성된 페이지 + + + + + tfa_backup.codes.print + 인쇄 + + + + + tfa_backup.codes.copy_clipboard + 클립보드에 복사 + + + + + user.info.label + 사용자 정보 + + + + + user.firstName.label + 이름 + + + + + user.lastName.label + + + + + + user.email.label + 이메일 + + + + + user.department.label + 부서 + + + + + user.username.label + 사용자 이름 + + + + + group.label + 그룹 + + + + + user.permissions + 권한 + + + + + user.settings.label + 사용자 설정 + + + + + user_settings.data.label + 개인 정보 + + + + + user_settings.configuration.label + 설정 + + + + + user.settings.change_pw + 비밀번호 변경 + + + + + user.settings.2fa_settings + 2단계 인증 + + + + + tfa.settings.google.tab + 인증 앱 + + + + + tfa.settings.bakup.tab + 백업 코드 + + + + + tfa.settings.u2f.tab + 보안 키 (U2F) + + + + + tfa.settings.trustedDevices.tab + 신뢰하는 기기 + + + + + tfa_google.disable.confirm_title + 정말 인증 앱을 비활성화하시겠습니까? + + + + + tfa_google.disable.confirm_message + 인증 앱을 비활성화하면 모든 백업 코드가 삭제되므로 다시 출력해야 할 수 있습니다.<br> +또한 2단계 인증이 없으면 계정이 공격자로부터 잘 보호되지 않는다는 점에 유의하세요! + + + + + tfa_google.disabled_message + 인증 앱이 비활성화되었습니다! + + + + + tfa_google.step.download + 인증 앱을 다운로드하세요 (예: <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a> 또는 <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp">FreeOTP Authenticator</a>) + + + + + tfa_google.step.scan + 옆의 QR 코드를 앱으로 스캔하거나 데이터를 직접 입력하세요 + + + + + tfa_google.step.input_code + 생성된 코드를 아래 입력란에 입력하고 확인하세요 + + + + + tfa_google.step.download_backup + 백업 코드를 출력하여 안전한 곳에 보관하세요 + + + + + tfa_google.manual_setup + 수동 설정 + + + + + tfa_google.manual_setup.type + 유형 + + + + + tfa_google.manual_setup.username + 사용자 이름 + + + + + tfa_google.manual_setup.secret + 시크릿 + + + + + tfa_google.manual_setup.digit_count + 자리 수 + + + + + tfa_google.enabled_message + 인증 앱이 활성화되었습니다 + + + + + tfa_backup.disabled + 백업 코드가 비활성화되어 있습니다. 백업 코드를 사용하려면 인증 앱을 설정하세요. + + + + + tfa_backup.explanation + 인증 앱이 설치된 기기를 분실해도 이 백업 코드로 계정에 접근할 수 있습니다. 코드를 출력하여 안전한 곳에 보관하세요. + + + + + tfa_backup.reset_codes.confirm_title + 정말 코드를 재설정하시겠습니까? + + + + + tfa_backup.reset_codes.confirm_message + 이전 코드가 모두 삭제되고 새 코드가 생성됩니다. 되돌릴 수 없습니다. 새 코드를 출력하여 안전한 곳에 보관하세요! + + + + + tfa_backup.enabled + 백업 코드 활성화됨 + + + + + tfa_backup.show_codes + 백업 코드 보기 + + + + + tfa_u2f.table_caption + 등록된 보안 키 + + + + + tfa_u2f.delete_u2f.confirm_title + 정말 이 보안 키를 제거하시겠습니까? + + + + + tfa_u2f.delete_u2f.confirm_message + 이 키를 제거하면 더 이상 이 키로 로그인할 수 없습니다. 남은 보안 키가 없으면 2단계 인증이 비활성화됩니다. + + + + + tfa_u2f.keys.name + 키 이름 + + + + + tfa_u2f.keys.added_date + 등록일 + + + + + tfa_u2f.key_delete + 키 삭제 + + + + + tfa_u2f.no_keys_registered + 아직 등록된 키가 없습니다. + + + + + tfa_u2f.add_new_key + 새 보안 키 등록 + + + + + tfa_trustedDevices.explanation + 2단계 인증 확인 시 현재 컴퓨터를 신뢰할 수 있는 기기로 지정하면 이 컴퓨터에서 더 이상 2단계 인증을 묻지 않습니다. +실수로 지정했거나 더 이상 신뢰할 수 없는 컴퓨터가 있다면 여기서 <i>모든 </i>컴퓨터의 상태를 재설정할 수 있습니다. + + + + + tfa_trustedDevices.invalidate.confirm_title + 정말 신뢰하는 컴퓨터를 모두 제거하시겠습니까? + + + + + tfa_trustedDevices.invalidate.confirm_message + 모든 컴퓨터에서 2단계 인증을 다시 수행해야 합니다. 2단계 인증 기기를 준비해 두세요. + + + + + tfa_trustedDevices.invalidate.btn + 신뢰하는 기기 재설정 + + + + + sidebar.toggle + 사이드바 전환 + + + + + navbar.scanner.link + 스캐너 + + + + + user.loggedin.label + 로그인 계정 + + + + + user.login + 로그인 + + + + + ui.toggle_darkmode + 다크 모드 + + + + + user.language_select + 언어 변경 + + + + + search.options.label + 검색 옵션 + + + + + tags.label + 태그 + + + + + storelocation.label + 보관 위치 + + + + + ordernumber.label.short + 판매처 부품번호 + + + + + supplier.label + 판매처 + + + + + search.regexmatching + 정규식 검색 + + + + + project.labelp + 프로젝트 + + + + + actions + 동작 + + + + + datasource + 데이터 소스 + + + + + manufacturer.labelp + 제조사 + + + + + supplier.labelp + 판매처 + + + + + attachment.download_failed + 외부 첨부파일 다운로드에 실패했습니다. + + + + + entity.edit_flash + 변경 사항이 저장되었습니다. + + + + + entity.edit_flash.invalid + 변경 사항을 저장할 수 없습니다. 입력을 확인하세요! + + + + + entity.created_flash + 요소가 생성되었습니다. + + + + + entity.created_flash.invalid + 요소를 생성할 수 없습니다. 입력을 확인하세요! + + + + + attachment_type.deleted + 요소가 삭제되었습니다! + + + + + csfr_invalid + CSRF 토큰이 유효하지 않습니다. 페이지를 새로고침하거나, 이 메시지가 계속되면 관리자에게 문의하세요. + + + + + label_generator.no_entities_found + 범위와 일치하는 항목이 없습니다. + + + + + new + + + log.undo.target_not_found + 대상 요소를 DB에서 찾을 수 없습니다! + + + + + new + + + log.undo.revert_success + 해당 시점으로 되돌렸습니다. + + + + + new + + + log.undo.element_undelete_success + 요소 삭제를 취소했습니다. + + + + + new + + + log.undo.element_element_already_undeleted + 요소가 이미 복원되어 있습니다! + + + + + new + + + log.undo.element_delete_success + 요소가 삭제되었습니다. + + + + + new + + + log.undo.element.element_already_delted + 요소가 이미 삭제되어 있습니다! + + + + + new + + + log.undo.element_change_undone + 변경이 취소되었습니다! + + + + + new + + + log.undo.do_undelete_before + 이 변경을 취소하려면 먼저 요소를 복원해야 합니다! + + + + + new + + + log.undo.log_type_invalid + 이 로그 항목은 취소할 수 없습니다! + + + + + part.edited_flash + 변경 사항이 저장되었습니다! + + + + + part.deleted + 부품이 삭제되었습니다. + + + + + part.created_flash + 부품이 생성되었습니다! + + + + + part.created_flash.invalid + 생성 중 오류 발생: 입력을 확인하세요! + + + + + scan.qr_not_found + 해당 바코드에 대한 요소를 찾을 수 없습니다. + + + + + scan.format_unknown + 알 수 없는 형식입니다! + + + + + scan.qr_success + 요소를 찾았습니다. + + + + + pw_reset.user_or_email + 사용자 이름 / 이메일 + + + + + pw_reset.request.success + 재설정 요청이 완료되었습니다! 이메일에서 다음 안내를 확인하세요. + + + + + pw_reset.username + 사용자 이름 + + + + + pw_reset.token + 토큰 + + + + + pw_reset.new_pw.error + 사용자 이름 또는 토큰이 유효하지 않습니다! 입력을 확인하세요. + + + + + pw_reset.new_pw.success + 비밀번호가 재설정되었습니다. 새 비밀번호로 로그인할 수 있습니다. + + + + + user.edit.reset_success + 모든 2단계 인증 방법이 비활성화되었습니다. + + + + + tfa_backup.no_codes_enabled + 활성화된 백업 코드가 없습니다! + + + + + tfa_u2f.u2f_delete.not_existing + 해당 ID의 보안 키가 존재하지 않습니다. + + + + + tfa_u2f.u2f_delete.access_denied + 다른 사용자의 보안 키는 삭제할 수 없습니다! + + + + + tfa.u2f.u2f_delete.success + 보안 키가 제거되었습니다. + + + + + tfa_trustedDevice.invalidate.success + 신뢰하는 기기가 재설정되었습니다. + + + + + user.settings.saved_flash + 설정이 저장되었습니다! + + + + + user.settings.pw_changed_flash + 비밀번호가 변경되었습니다! + + + + + user.settings.2fa.google.activated + 인증 앱이 활성화되었습니다. + + + + + user.settings.2fa.google.disabled + 인증 앱이 비활성화되었습니다. + + + + + user.settings.2fa.backup_codes.regenerated + 새 백업 코드가 생성되었습니다. + + + + + attachment.table.filesize + 파일 크기 + + + + + true + + + + + + false + 거짓 + + + + + log.target_deleted + 삭제됨 + + + + + new + + + log.undo.undelete + 요소 복원 + + + + + new + + + log.undo.undo + 변경 취소 + + + + + new + + + log.undo.revert + 요소를 이 시점으로 되돌리기 + + + + + log.id + ID + + + + + log.timestamp + 시각 + + + + + log.type + 이벤트 + + + + + log.level + 수준 + + + + + log.user + 사용자 + + + + + log.target_type + 대상 유형 + + + + + log.target + 대상 + + + + + new + + + log.extra + 추가 정보 + + + + + part.table.name + 이름 + + + + + part.table.si_value + SI 값 + + + + + part.table.id + ID + + + + + part.table.description + 설명 + + + + + part.table.category + 카테고리 + + + + + part.table.footprint + 풋프린트 + + + + + part.table.manufacturer + 제조사 + + + + + part.table.storeLocations + 보관 위치 + + + + + part.table.amount + 수량 + + + + + part.table.minamount + 최소 수량 + + + + + part.table.partUnit + 측정 단위 + + + + + part.table.partCustomState + 사용자 정의 부품 상태 + + + + + part.table.addedDate + 생성일 + + + + + part.table.lastModified + 마지막 수정일 + + + + + part.table.needsReview + 검토 필요 + + + + + part.table.favorite + 즐겨찾기 + + + + + part.table.manufacturingStatus + 상태 + + + + + m_status.unknown + 알 수 없음 + + + + + m_status.announced + 출시 예정 + + + + + m_status.active + 생산 중 + + + + + m_status.nrfnd + 신규 설계에 비권장 + + + + + m_status.eol + 단종 예정 + + + + + m_status.discontinued + 단종 + + + + + part.table.mpn + MPN + + + + + part.table.mass + 질량 + + + + + part.table.tags + 태그 + + + + + part.table.attachments + 첨부파일 + + + + + part.table.eda_status + EDA + + + + + eda.status.symbol_set + KiCad 심볼 설정됨 + + + + + eda.status.footprint_set + KiCad 풋프린트 설정됨 + + + + + eda.status.reference_set + 참조 접두사 설정됨 + + + + + eda.status.complete + EDA 필드 완료 (심볼, 풋프린트, 참조) + + + + + eda.status.partial + EDA 필드 일부 설정됨 + + + + + flash.login_successful + 로그인 성공 + + + + + JSON + JSON + + + + + XML + XML + + + + + CSV + CSV + + + + + YAML + YAML + + + + + import.abort_on_validation.help + 이 옵션을 활성화하면 유효하지 않은 데이터가 발견될 때 전체 가져오기 과정이 중단됩니다. 선택하지 않으면 유효하지 않은 데이터는 무시하고 나머지 요소를 가져옵니다. + + + + + import.csv_separator + CSV 구분자 + + + + + parent.label + 상위 요소 + + + + + import.file + 파일 + + + + + import.preserve_children + 가져오기 시 하위 요소 유지 + + + + + import.abort_on_validation + 유효하지 않은 데이터 발견 시 중단 + + + + + import.btn + 가져오기 + + + + + attachment.edit.secure_file.help + 비공개로 표시된 첨부파일은 적절한 권한을 가진 인증된 사용자만 접근할 수 있습니다. 활성화하면 썸네일이 생성되지 않고 파일 접근 성능이 저하됩니다. + + + + + attachment.edit.url.help + 외부 파일 URL을 지정하거나, 내장 리소스(예: 풋프린트) 검색에 사용할 키워드를 입력할 수 있습니다 + + + + + attachment.edit.name + 이름 + + + + + attachment.edit.attachment_type + 첨부파일 형식 + + + + + attachment.edit.show_in_table + 테이블에 표시 + + + + + attachment.edit.secure_file + 비공개 첨부파일 + + + + + attachment.edit.url + URL + + + + + attachment.edit.download_url + 외부 파일 다운로드 + + + + + attachment.edit.file + 파일 업로드 + + + + + part.label + 부품 + + + + + part_lot.label + 부품 로트 + + + + + label_options.barcode_type.none + 없음 + + + + + label_options.barcode_type.qr + QR 코드 (권장) + + + + + label_options.barcode_type.code128 + Code 128 (권장) + + + + + label_options.barcode_type.code39 + Code 39 (권장) + + + + + label_options.barcode_type.code93 + Code 93 + + + + + label_options.barcode_type.datamatrix + Datamatrix + + + + + label_options.lines_mode.html + 플레이스홀더 + + + + + label.options.lines_mode.twig + Twig + + + + + label_options.lines_mode.help + 여기서 Twig를 선택하면 내용 필드가 Twig 템플릿으로 해석됩니다. 자세한 내용은 <a href="https://twig.symfony.com/doc/3.x/templates.html">Twig 문서</a>와 <a href="https://docs.part-db.de/usage/labels.html#twig-mode">Wiki</a>를 참고하세요. + + + + + label_options.page_size.label + 라벨 크기 + + + + + label_options.supported_elements.label + 대상 유형 + + + + + label_options.barcode_type.label + 바코드 + + + + + label_profile.lines.label + 내용 + + + + + label_options.additional_css.label + 추가 스타일 (CSS) + + + + + label_options.lines_mode.label + 파서 모드 + + + + + label_options.width.placeholder + 너비 + + + + + label_options.height.placeholder + 높이 + + + + + label_generator.target_id.range_hint + 여러 ID(예: 1,2,3) 또는 범위(1-3)를 지정하여 여러 요소의 라벨을 한 번에 생성할 수 있습니다. + + + + + label_generator.target_id.label + 대상 ID + + + + + label_generator.update + 업데이트 + + + + + scan_dialog.input + 입력 + + + + + scan_dialog.submit + 제출 + + + + + parameters.name.placeholder + 예: DC 전류 이득 + + + + + parameters.symbol.placeholder + 예: h_{FE} + + + + + parameters.text.placeholder + 예: 시험 조건 + + + + + parameters.max.placeholder + 예: 350 + + + + + parameters.min.placeholder + 예: 100 + + + + + parameters.typical.placeholder + 예: 200 + + + + + parameters.unit.placeholder + 예: V + + + + + parameter.group.placeholder + 예: 기술 사양 + + + + + orderdetails.edit.supplierpartnr + 판매처 부품 번호 + + + + + orderdetails.edit.supplier + 판매처 + + + + + orderdetails.edit.url + 판매 페이지 링크 + + + + + orderdetails.edit.obsolete + 더 이상 판매되지 않음 + + + + + orderdetails.edit.eda_visibility + EDA에 표시 + + + + + orderdetails.edit.supplierpartnr.placeholder + 예: BC 547 + + + + + part.edit.name + 이름 + + + + + part.edit.description + 설명 + + + + + part.edit.mininstock + 최소 재고 + + + + + part.edit.category + 카테고리 + + + + + part.edit.footprint + 풋프린트 + + + + + part.edit.tags + 태그 + + + + + part.edit.manufacturer.label + 제조사 + + + + + part.edit.manufacturer_url.label + 제품 페이지 링크 + + + + + part.edit.mpn + 제조사 부품 번호 + + + + + part.edit.manufacturing_status + 생산 상태 + + + + + part.edit.needs_review + 검토 필요 + + + + + part.edit.is_favorite + 즐겨찾기 + + + + + part.edit.mass + 질량 + + + + + part.edit.partUnit + 측정 단위 + + + + + part.edit.partCustomState + 사용자 정의 부품 상태 + + + + + part.edit.comment + 메모 + + + + + part.edit.master_attachment + 미리보기 이미지 + + + + + part.edit.save + 변경 사항 저장 + + + + + part.edit.reset + 변경 사항 초기화 + + + + + part.edit.name.placeholder + 예: BC547 + + + + + part.edit.description.placeholder + 예: NPN 45V, 0.1A, 0.5W + + + + + part.editmininstock.placeholder + 예: 1 + + + + + part_lot.edit.description + 설명 + + + + + part_lot.edit.location + 보관 위치 + + + + + part_lot.edit.amount + 수량 + + + + + part_lot.edit.instock_unknown + 수량 알 수 없음 + + + + + part_lot.edit.needs_refill + 보충 필요 + + + + + part_lot.edit.expiration_date + 유효 기간 + + + + + part_lot.edit.comment + 메모 + + + + + perm.group.other + 기타 + + + + + tfa_google.enable + 인증 앱 활성화 + + + + + tfa_google.disable + 인증 앱 비활성화 + + + + + google_confirmation + 확인 코드 + + + + + user.timezone.label + 시간대 + + + + + user.currency.label + 기본 통화 + + + + + save + 변경 사항 적용 + + + + + reset + 변경 사항 취소 + + + + + user_settings.language.placeholder + 서버 기본 언어 + + + + + user_settings.timezone.placeholder + 서버 기본 시간대 + + + + + attachment.label + 첨부파일 + + + + + attachment_type.label + 첨부파일 형식 + + + + + project.label + 프로젝트 + + + + + measurement_unit.label + 측정 단위 + + + + + part_custom_state.label + 사용자 정의 부품 상태 + + + + + currency.label + 통화 + + + + + orderdetail.label + 주문 정보 + + + + + pricedetail.label + 가격 정보 + + + + + user.label + 사용자 + + + + + parameter.label + 파라미터 + + + + + label_profile.label + 라벨 프로필 + + + + + new + + + log.element_deleted.old_name.unknown + 알 수 없음 + + + + + markdown.loading + 마크다운을 불러오는 중입니다. 이 메시지가 사라지지 않으면 페이지를 새로고침해 보세요. + + + + + pw_reset.email.subject + Part-DB 계정 비밀번호 재설정 + + + + + tree.tools.tools + 도구 + + + + + tree.tools.edit + 편집 + + + + + tree.tools.show + 보기 + + + + + tree.tools.system + 시스템 + + + + + tree.tools.tools.label_dialog + 라벨 생성기 + + + + + tree.tools.tools.label_scanner + 스캐너 + + + + + tree.tools.edit.attachment_types + [[Attachment_type]] + + + + + tree.tools.edit.categories + [[Category]] + + + + + tree.tools.edit.projects + [[Project]] + + + + + tree.tools.edit.suppliers + [[Supplier]] + + + + + tree.tools.edit.manufacturer + [[Manufacturer]] + + + + + tree.tools.edit.storelocation + [[Storage_location]] + + + + + tree.tools.edit.footprint + [[Footprint]] + + + + + tree.tools.edit.currency + [[Currency]] + + + + + tree.tools.edit.measurement_unit + [[Measurement_unit]] + + + + + tree.tools.edit.part_custom_state + [[Part_custom_state]] + + + + + tree.tools.edit.label_profile + [[Label_profile]] + + + + + tree.tools.edit.part + 새 [part] + + + + + tree.tools.show.all_parts + 모든 [[part]] 보기 + + + + + tree.tools.show.all_attachments + 첨부파일 + + + + + new + + + tree.tools.show.statistics + 통계 + + + + + tree.tools.system.users + [[User]] + + + + + tree.tools.system.groups + [[Group]] + + + + + new + + + tree.tools.system.event_log + 이벤트 로그 + + + + + entity.tree.new + 새 요소 + + + + + obsolete + + + attachment.edit + 편집 + + + + + obsolete + + + barcode.scan + 바코드 스캔 + + + + + obsolete + + + user.theme.label + 테마 + + + + + obsolete + + + user_settings.theme.placeholder + 서버 기본 테마 + + + + + new + obsolete + + + log.user_login.ip + IP + + + + + new + obsolete + + + log.undo_mode.undo + 변경 취소됨 + + + + + new + obsolete + + + log.undo_mode.revert + 요소 되돌림 + + + + + new + obsolete + + + log.element_created.original_instock + 이전 재고 + + + + + new + obsolete + + + log.element_deleted.old_name + 이전 이름 + + + + + new + obsolete + + + log.element_edited.changed_fields + 변경된 필드 + + + + + new + obsolete + + + log.instock_changed.comment + 메모 + + + + + new + obsolete + + + log.collection_deleted.deleted + 삭제된 요소 + + + + + obsolete + obsolete + + + go.exclamation + 이동! + + + + + obsolete + obsolete + + + language.english + 영어 + + + + + obsolete + obsolete + + + language.german + 독일어 + + + + + obsolete + obsolete + + + flash.password_change_needed + 비밀번호 변경이 필요합니다! + + + + + obsolete + obsolete + + + attachment.table.type + 첨부파일 형식 + + + + + obsolete + obsolete + + + attachment.table.element + 연결된 요소 + + + + + obsolete + obsolete + + + attachment.edit.isPicture + 사진 여부 + + + + + obsolete + obsolete + + + attachment.edit.is3DModel + 3D 모델 여부 + + + + + obsolete + obsolete + + + attachment.edit.isBuiltin + 내장 여부 + + + + + obsolete + obsolete + + + category.edit.default_comment.placeholder + 예: 스위칭 용도에 적합 + + + + + obsolete + obsolete + + + tfa_backup.regenerate_codes + 새 백업 코드 생성 + + + + + obsolete + obsolete + + + validator.noneofitschild.self + 요소는 자기 자신의 상위가 될 수 없습니다. + + + + + obsolete + obsolete + + + validator.noneofitschild.children + 상위 요소는 자신의 하위 요소가 될 수 없습니다. + + + + + obsolete + obsolete + + + validator.part_lot.location_full + 이 [storage_location]은(는) 가득 찬 것으로 표시되어 새 [part]을(를) 추가할 수 없습니다. + + + + + obsolete + obsolete + + + validator.part_lot.only_existing + 이 [storage_location]은(는) "기존 항목만"으로 표시되어 새 [part]을(를) 추가할 수 없습니다. + + + + + obsolete + obsolete + + + validator.part_lot.single_part + 이 [storage_location]은(는) "단일 [part]"로 표시되어 새 [part]을(를) 추가할 수 없습니다. + + + + + obsolete + obsolete + + + m_status.active.help + 이 부품은 현재 및 가까운 장래에 생산됩니다 + + + + + obsolete + obsolete + + + m_status.announced.help + 이 부품은 발표되었지만 아직 판매되지 않습니다. + + + + + obsolete + obsolete + + + m_status.discontinued.help + 이 부품은 단종되어 더 이상 생산되지 않습니다. + + + + + obsolete + obsolete + + + m_status.eol.help + 이 제품은 수명 종료 단계에 도달했으며 곧 생산이 중단됩니다. + + + + + obsolete + obsolete + + + m_status.nrfnd.help + 이 부품은 현재 생산 중이지만 신규 설계에는 권장되지 않습니다. + + + + + obsolete + obsolete + + + m_status.unknown.help + 이 부품의 생산 상태를 알 수 없습니다. + + + + + obsolete + obsolete + + + flash.success + 성공 + + + + + obsolete + obsolete + + + flash.error + 오류 + + + + + obsolete + obsolete + + + flash.warning + 경고 + + + + + obsolete + obsolete + + + flash.notice + 알림 + + + + + obsolete + obsolete + + + flash.info + 정보 + + + + + obsolete + obsolete + + + validator.noLockout + 실수로 스스로를 잠그는 것을 방지하기 위해, 자신의 "권한 변경" 권한은 회수할 수 없습니다. + + + + + obsolete + obsolete + + + attachment_type.edit.filetype_filter + 허용되는 파일 확장자 + + + + + obsolete + obsolete + + + attachment_type.edit.filetype_filter.help + 이 첨부파일 형식에 업로드되는 파일이 가져야 하는 파일 확장자 또는 MIME 형식을 쉼표로 구분하여 지정할 수 있습니다. 지원되는 모든 이미지 파일을 허용하려면 image/*를 사용하세요. + + + + + obsolete + obsolete + + + attachment_type.edit.filetype_filter.placeholder + 예: .txt, application/pdf, image/* + + + + + obsolete + obsolete + + + part.name.placeholder + 예: BC547 + + + + + obsolete + obsolete + + + entity.edit.not_selectable + 선택 불가 + + + + + obsolete + obsolete + + + entity.edit.not_selectable.help + 이 옵션을 활성화하면 이 요소를 [part] 속성에 지정할 수 없습니다. 그룹화 용도로만 사용하는 요소에 유용합니다. + + + + + obsolete + obsolete + + + bbcode.hint + 여기서 BBCode를 사용할 수 있습니다 (예: [b]굵게[/b]) + + + + + obsolete + obsolete + + + entity.create + 요소 생성 + + + + + obsolete + obsolete + + + entity.edit.save + 저장 + + + + + obsolete + obsolete + + + category.edit.disable_footprints + [[footprint]] 비활성화 + + + + + obsolete + obsolete + + + category.edit.disable_footprints.help + 이 옵션을 활성화하면 이 [category]에 속한 모든 [[part]]에서 [footprint] 속성이 비활성화됩니다. + + + + + obsolete + obsolete + + + category.edit.disable_manufacturers + [[manufacturer]] 비활성화 + + + + + obsolete + obsolete + + + category.edit.disable_manufacturers.help + 이 옵션을 활성화하면 이 [category]에 속한 모든 [[part]]에서 [manufacturer] 속성이 비활성화됩니다. + + + + + obsolete + obsolete + + + category.edit.disable_autodatasheets + 자동 데이터시트 링크 비활성화 + + + + + obsolete + obsolete + + + category.edit.disable_autodatasheets.help + 이 옵션을 활성화하면 이 [category]에 속한 [[part]]에 대해 데이터시트 자동 링크가 생성되지 않습니다. + + + + + obsolete + obsolete + + + category.edit.disable_properties + 속성 비활성화 + + + + + obsolete + obsolete + + + category.edit.disable_properties.help + 이 옵션을 활성화하면 이 [category]에 속한 [[part]]의 [part] 속성이 비활성화됩니다. + + + + + obsolete + obsolete + + + category.edit.partname_hint + 부품 이름 힌트 + + + + + obsolete + obsolete + + + category.edit.partname_hint.placeholder + 예: 100nF + + + + + obsolete + obsolete + + + category.edit.partname_regex + 이름 필터 + + + + + category.edit.part_ipn_prefix + 부품 IPN 접두사 + + + + + obsolete + obsolete + + + category.edit.default_description + 기본 설명 + + + + + obsolete + obsolete + + + category.edit.default_description.placeholder + 예: 커패시터, 10mm x 10mm, SMD + + + + + obsolete + obsolete + + + category.edit.default_comment + 기본 메모 + + + + + obsolete + obsolete + + + company.edit.address + 주소 + + + + + obsolete + obsolete + + + company.edit.address.placeholder + 예: 서울시 예시로 314 +예시빌딩 + + + + + obsolete + obsolete + + + company.edit.phone_number + 전화번호 + + + + + obsolete + obsolete + + + company.edit.phone_number.placeholder + +82 2 1234 5678 + + + + + obsolete + obsolete + + + company.edit.fax_number + 팩스 번호 + + + + + obsolete + obsolete + + + company.edit.email + 이메일 + + + + + obsolete + obsolete + + + company.edit.email.placeholder + 예: contact@foo.bar + + + + + obsolete + obsolete + + + company.edit.website + 웹사이트 + + + + + obsolete + obsolete + + + company.edit.website.placeholder + https://www.foo.bar + + + + + obsolete + obsolete + + + company.edit.auto_product_url + 제품 URL + + + + + obsolete + obsolete + + + company.edit.auto_product_url.help + 이 필드는 회사 페이지에서 부품 링크를 결정하는 데 사용됩니다. %PARTNUMBER%는 주문 번호로 대체됩니다. + + + + + obsolete + obsolete + + + company.edit.auto_product_url.placeholder + https://foo.bar/product/%PARTNUMBER% + + + + + obsolete + obsolete + + + currency.edit.iso_code + ISO 코드 + + + + + obsolete + obsolete + + + currency.edit.exchange_rate + 환율 + + + + + obsolete + obsolete + + + footprint.edit.3d_model + 3D 모델 + + + + + obsolete + obsolete + + + mass_creation.lines + 입력 + + + + + obsolete + obsolete + + + mass_creation.lines.placeholder + 요소 1 + 요소 1.1 + 요소 1.1.1 + 요소 1.2 +요소 2 +요소 3 + +요소 1 -> 요소 1.1 +요소 1 -> 요소 1.2 + + + + + obsolete + obsolete + + + entity.mass_creation.btn + 생성 + + + + + obsolete + obsolete + + + measurement_unit.edit.is_integer + 정수 단위 + + + + + obsolete + obsolete + + + measurement_unit.edit.is_integer.help + 이 옵션을 활성화하면 이 단위의 모든 값이 정수로 반올림됩니다. + + + + + obsolete + obsolete + + + measurement_unit.edit.use_si_prefix + SI 접두사 사용 + + + + + obsolete + obsolete + + + measurement_unit.edit.use_si_prefix.help + 이 옵션을 활성화하면 값이 SI 접두사와 함께 표시됩니다 (예: 1200g 대신 1.2kg) + + + + + obsolete + obsolete + + + measurement_unit.edit.unit_symbol + 단위 기호 + + + + + obsolete + obsolete + + + measurement_unit.edit.unit_symbol.placeholder + 예: m + + + + + obsolete + obsolete + + + storelocation.edit.is_full.label + 보관 위치 가득 참 + + + + + obsolete + obsolete + + + storelocation.edit.is_full.help + 이 옵션을 선택하면 이 보관 위치에 새 [[part]]을(를) 추가하거나 기존 [[part]]의 수량을 늘릴 수 없습니다. + + + + + obsolete + obsolete + + + storelocation.limit_to_existing.label + 기존 [[part]]로 제한 + + + + + obsolete + obsolete + + + storelocation.limit_to_existing.help + 이 옵션을 활성화하면 이 보관 위치에 새 [[part]]을(를) 추가할 수 없지만, 기존 [[part]]의 수량은 늘릴 수 있습니다. + + + + + obsolete + obsolete + + + storelocation.only_single_part.label + 단일 [part]만 + + + + + obsolete + obsolete + + + storelocation.only_single_part.help + 이 옵션을 활성화하면 이 [storage_location]에 단일 [part](수량 무관)만 지정할 수 있습니다. 소형 SMD 상자나 피더에 유용합니다. + + + + + obsolete + obsolete + + + storelocation.storage_type.label + 보관 유형 + + + + + obsolete + obsolete + + + storelocation.storage_type.help + 여기서 [measurement_unit]을(를) 선택하면, 해당 단위를 가진 [part]만 이 [storage_location]에 지정할 수 있습니다 + + + + + obsolete + obsolete + + + supplier.edit.default_currency + 기본 통화 + + + + + obsolete + obsolete + + + supplier.shipping_costs.label + 배송비 + + + + + obsolete + obsolete + + + user.username.placeholder + 예: hong.gd + + + + + obsolete + obsolete + + + user.firstName.placeholder + 예: 길동 + + + + + obsolete + obsolete + + + user.lastName.placeholder + 예: 홍 + + + + + obsolete + obsolete + + + user.email.placeholder + hong.gd@ecorp.com + + + + + obsolete + obsolete + + + user.department.placeholder + 예: 개발팀 + + + + + obsolete + obsolete + + + user.settings.pw_new.label + 새 비밀번호 + + + + + obsolete + obsolete + + + user.settings.pw_confirm.label + 새 비밀번호 확인 + + + + + obsolete + obsolete + + + user.edit.needs_pw_change + 사용자 비밀번호 변경 필요 + + + + + obsolete + obsolete + + + user.edit.user_disabled + 사용자 비활성화 (로그인 불가) + + + + + obsolete + obsolete + + + user.create + 사용자 생성 + + + + + obsolete + obsolete + + + user.edit.save + 저장 + + + + + obsolete + obsolete + + + entity.edit.reset + 변경 사항 취소 + + + + + obsolete + obsolete + + + part.add.btn + 추가 + + + + + obsolete + obsolete + + + manufacturer_url.label + 제조사 링크 + + + + + obsolete + obsolete + + + perm.group.parts + 부품 + + + + + obsolete + obsolete + + + perm.group.structures + 데이터 구조 + + + + + obsolete + obsolete + + + perm.group.system + 시스템 + + + + + obsolete + obsolete + + + perm.read + 보기 + + + + + obsolete + obsolete + + + perm.edit + 편집 + + + + + obsolete + obsolete + + + perm.create + 생성 + + + + + obsolete + obsolete + + + perm.part.move + 카테고리 변경 + + + + + obsolete + obsolete + + + perm.delete + 삭제 + + + + + obsolete + obsolete + + + perm.part.search + 검색 + + + + + obsolete + obsolete + + + perm.part.all_parts + 모든 [[part]] 목록 + + + + + obsolete + obsolete + + + perm.part.no_price_parts + 가격 정보가 없는 [[part]] 목록 + + + + + obsolete + obsolete + + + perm.part.obsolete_parts + 단종된 [[part]] 목록 + + + + + obsolete + obsolete + + + perm.part.unknown_instock_parts + 재고 미상 부품 보기 + + + + + obsolete + obsolete + + + perm.part.change_favorite + 즐겨찾기 상태 변경 + + + + + obsolete + obsolete + + + perm.part.show_favorite + 즐겨찾기 부품 목록 + + + + + obsolete + obsolete + + + perm.part.show_last_edit_parts + 최근 편집/추가된 부품 보기 + + + + + obsolete + obsolete + + + perm.part.show_users + 마지막 수정 사용자 보기 + + + + + obsolete + obsolete + + + perm.part.show_history + 이력 보기 + + + + + obsolete + obsolete + + + perm.part.name + 이름 + + + + + obsolete + obsolete + + + perm.part.description + 설명 + + + + + obsolete + obsolete + + + perm.part.instock + 재고량 + + + + + obsolete + obsolete + + + perm.part.mininstock + 최소 재고량 + + + + + obsolete + obsolete + + + perm.part.comment + 메모 + + + + + obsolete + obsolete + + + perm.part.storelocation + 보관 위치 + + + + + obsolete + obsolete + + + perm.part.manufacturer + 제조사 + + + + + obsolete + obsolete + + + perm.part.orderdetails + 주문 정보 + + + + + obsolete + obsolete + + + perm.part.prices + 가격 + + + + + obsolete + obsolete + + + perm.part.attachments + 파일 첨부 + + + + + obsolete + obsolete + + + perm.part.order + 주문 + + + + + obsolete + obsolete + + + perm.move + 이동 + + + + + obsolete + obsolete + + + perm.list_parts + 부품 목록 + + + + + obsolete + obsolete + + + perm.tools.import + 가져오기 + + + + + obsolete + obsolete + + + perm.tools.labels + 라벨 + + + + + obsolete + obsolete + + + perm.tools.calculator + 저항 계산기 + + + + + obsolete + obsolete + + + perm.tools.footprints + 풋프린트 + + + + + obsolete + obsolete + + + perm.tools.ic_logos + IC 로고 + + + + + obsolete + obsolete + + + perm.tools.statistics + 통계 + + + + + obsolete + obsolete + + + perm.edit_permissions + 권한 편집 + + + + + obsolete + obsolete + + + perm.users.edit_user_name + 사용자 이름 편집 + + + + + obsolete + obsolete + + + perm.users.edit_change_group + 그룹 변경 + + + + + obsolete + obsolete + + + perm.users.edit_infos + 정보 편집 + + + + + obsolete + obsolete + + + perm.users.edit_permissions + 권한 편집 + + + + + obsolete + obsolete + + + perm.users.set_password + 비밀번호 설정 + + + + + obsolete + obsolete + + + perm.users.change_user_settings + 사용자 설정 변경 + + + + + obsolete + obsolete + + + perm.database.see_status + 상태 보기 + + + + + obsolete + obsolete + + + perm.database.update_db + DB 업데이트 + + + + + obsolete + obsolete + + + perm.database.read_db_settings + DB 설정 읽기 + + + + + obsolete + obsolete + + + perm.database.write_db_settings + DB 설정 쓰기 + + + + + obsolete + obsolete + + + perm.config.read_config + 설정 읽기 + + + + + obsolete + obsolete + + + perm.config.edit_config + 설정 편집 + + + + + obsolete + obsolete + + + perm.config.server_info + 서버 정보 + + + + + obsolete + obsolete + + + perm.config.use_debug + 디버그 도구 사용 + + + + + obsolete + obsolete + + + perm.show_logs + 로그 보기 + + + + + obsolete + obsolete + + + perm.delete_logs + 로그 삭제 + + + + + obsolete + obsolete + + + perm.self.edit_infos + 정보 편집 + + + + + obsolete + obsolete + + + perm.self.edit_username + 사용자 이름 편집 + + + + + obsolete + obsolete + + + perm.self.show_permissions + 권한 보기 + + + + + obsolete + obsolete + + + perm.self.show_logs + 자신의 로그 항목 보기 + + + + + obsolete + obsolete + + + perm.self.create_labels + 라벨 생성 + + + + + obsolete + obsolete + + + perm.self.edit_options + 옵션 편집 + + + + + obsolete + obsolete + + + perm.self.delete_profiles + 프로필 삭제 + + + + + obsolete + obsolete + + + perm.self.edit_profiles + 프로필 편집 + + + + + obsolete + obsolete + + + perm.part.tools + 도구 + + + + + obsolete + obsolete + + + perm.groups + 그룹 + + + + + obsolete + obsolete + + + perm.users + 사용자 + + + + + obsolete + obsolete + + + perm.database + 데이터베이스 + + + + + obsolete + obsolete + + + perm.config + 설정 + + + + + obsolete + obsolete + + + perm.system + 시스템 + + + + + obsolete + obsolete + + + perm.self + 내 계정 + + + + + obsolete + obsolete + + + perm.labels + 라벨 + + + + + obsolete + obsolete + + + perm.part.category + 카테고리 + + + + + obsolete + obsolete + + + perm.part.minamount + 최소 수량 + + + + + obsolete + obsolete + + + perm.part.footprint + 풋프린트 + + + + + obsolete + obsolete + + + perm.part.mpn + MPN + + + + + obsolete + obsolete + + + perm.part.status + 생산 상태 + + + + + obsolete + obsolete + + + perm.part.tags + 태그 + + + + + obsolete + obsolete + + + perm.part.unit + 부품 단위 + + + + + obsolete + obsolete + + + perm.part.mass + 질량 + + + + + obsolete + obsolete + + + perm.part.lots + 부품 로트 + + + + + obsolete + obsolete + + + perm.show_users + 마지막 수정 사용자 보기 + + + + + obsolete + obsolete + + + perm.currencies + 통화 + + + + + obsolete + obsolete + + + perm.measurement_units + 측정 단위 + + + + + obsolete + obsolete + + + user.settings.pw_old.label + 기존 비밀번호 + + + + + obsolete + obsolete + + + pw_reset.submit + 비밀번호 재설정 + + + + + obsolete + obsolete + + + u2f_two_factor + 보안 키 (U2F) + + + + + obsolete + obsolete + + + google + Google + + + + + tfa.provider.webauthn_two_factor_provider + 보안 키 + + + + + obsolete + obsolete + + + tfa.provider.google + 인증 앱 + + + + + obsolete + obsolete + + + log.type.exception + 처리되지 않은 예외 (사용 안 함) + + + + + obsolete + obsolete + + + log.type.user_login + 사용자 로그인 + + + + + obsolete + obsolete + + + log.type.user_logout + 사용자 로그아웃 + + + + + obsolete + obsolete + + + log.type.unknown + 알 수 없음 + + + + + obsolete + obsolete + + + log.type.element_created + 요소 생성됨 + + + + + obsolete + obsolete + + + log.type.element_edited + 요소 편집됨 + + + + + obsolete + obsolete + + + log.type.element_deleted + 요소 삭제됨 + + + + + obsolete + obsolete + + + log.type.database_updated + 데이터베이스 업데이트됨 + + + + + obsolete + + + perm.revert_elements + 요소 되돌리기 + + + + + obsolete + + + perm.show_history + 이력 보기 + + + + + obsolete + + + perm.tools.lastActivity + 최근 활동 보기 + + + + + obsolete + + + perm.tools.timeTravel + 이전 버전 요소 보기 (시간 여행) + + + + + obsolete + + + log.type.security.google_disabled + 인증 앱 비활성화됨 + + + + + obsolete + + + log.type.security.u2f_removed + 보안 키 제거됨 + + + + + obsolete + + + log.type.security.u2f_added + 보안 키 추가됨 + + + + + obsolete + + + log.type.security.backup_keys_reset + 백업 코드 재생성됨 + + + + + obsolete + + + log.type.security.google_enabled + 인증 앱 활성화됨 + + + + + obsolete + + + log.type.security.password_changed + 비밀번호 변경됨 + + + + + obsolete + + + log.type.security.trusted_device_reset + 신뢰하는 기기 재설정됨 + + + + + obsolete + + + log.type.collection_element_deleted + 컬렉션의 요소 삭제됨 + + + + + obsolete + + + log.type.security.password_reset + 비밀번호 재설정 + + + + + obsolete + + + log.type.security.2fa_admin_reset + 관리자에 의한 2단계 인증 재설정 + + + + + obsolete + + + log.type.user_not_allowed + 권한 없는 접근 시도 + + + + + obsolete + + + log.database_updated.success + 성공 + + + + + obsolete + + + label_options.barcode_type.2D + 2D + + + + + obsolete + + + label_options.barcode_type.1D + 1D + + + + + obsolete + + + perm.part.parameters + 파라미터 + + + + + obsolete + + + perm.attachment_show_private + 비공개 첨부파일 보기 + + + + + obsolete + + + perm.tools.label_scanner + 라벨 스캐너 + + + + + obsolete + + + perm.self.read_profiles + 프로필 읽기 + + + + + obsolete + + + perm.self.create_profiles + 프로필 생성 + + + + + obsolete + + + perm.labels.use_twig + Twig 모드 사용 + + + + + label_profile.showInDropdown + 빠른 선택에 표시 + + + + + group.edit.enforce_2fa + 2단계 인증(2FA) 강제 + + + + + group.edit.enforce_2fa.help + 이 옵션을 활성화하면 이 그룹의 모든 직속 구성원은 최소 하나의 2단계 인증 수단을 설정해야 합니다. 권한이 많은 관리자 그룹에 권장됩니다. + + + + + selectpicker.nothing_selected + 선택된 항목 없음 + + + + + entity.delete.must_not_contain_parts + "%PATH%" 요소에 아직 부품이 있습니다! 이 요소를 삭제하려면 부품을 이동해야 합니다. + + + + + entity.delete.must_not_contain_attachments + 이 첨부파일 형식에 아직 첨부파일이 있습니다. 이 형식을 삭제하려면 첨부파일들의 형식을 변경하세요. + + + + + entity.delete.must_not_contain_prices + 이 통화에 아직 가격 정보가 있습니다. 이 요소를 삭제하려면 가격 정보의 통화를 변경해야 합니다. + + + + + entity.delete.must_not_contain_users + 아직 이 그룹을 사용하는 사용자가 있습니다! 이 그룹을 삭제하려면 사용자의 그룹을 변경하세요. + + + + + part.table.edit + 편집 + + + + + part.table.edit.title + [part] 편집 + + + + + part_list.action.scrollable_hint + 모든 동작을 보려면 스크롤하세요 + + + + + part_list.action.action.title + 동작 선택 + + + + + part_list.action.action.group.favorite + 즐겨찾기 상태 + + + + + part_list.action.action.favorite + 즐겨찾기 + + + + + part_list.action.action.unfavorite + 즐겨찾기 해제 + + + + + part_list.action.action.group.change_field + 필드 변경 + + + + + part_list.action.action.change_category + 카테고리 변경 + + + + + part_list.action.action.change_footprint + 풋프린트 변경 + + + + + part_list.action.action.change_manufacturer + 제조사 변경 + + + + + part_list.action.action.change_unit + 부품 단위 변경 + + + + + part_list.action.action.delete + 삭제 + + + + + part_list.action.submit + 제출 + + + + + part_list.action.part_count + %count%개 부품 선택됨 + + + + + company.edit.quick.website + 웹사이트 열기 + + + + + company.edit.quick.email + 이메일 보내기 + + + + + company.edit.quick.phone + 전화 걸기 + + + + + company.edit.quick.fax + 팩스 보내기 + + + + + company.fax_number.placeholder + 예: +82 2 1234 5678 + + + + + part.edit.save_and_clone + 저장 후 복제 + + + + + validator.file_ext_not_allowed + 이 첨부파일 형식에는 허용되지 않는 파일 확장자입니다. + + + + + tools.reel_calc.title + SMD 릴 계산기 + + + + + tools.reel_calc.inner_dia + 내경 + + + + + tools.reel_calc.outer_dia + 외경 + + + + + tools.reel_calc.tape_thick + 테이프 두께 + + + + + tools.reel_calc.part_distance + 부품 간격 + + + + + tools.reel_calc.update + 업데이트 + + + + + tools.reel_calc.parts_per_meter + 미터당 부품 수 + + + + + tools.reel_calc.result_length + 테이프 길이 + + + + + tools.reel_calc.result_amount + 예상 부품 수 + + + + + tools.reel_calc.outer_greater_inner_error + 오류: 외경은 내경보다 커야 합니다! + + + + + tools.reel_calc.missing_values.error + 모든 값을 입력해 주세요! + + + + + tools.reel_calc.load_preset + 프리셋 불러오기 + + + + + tools.reel_calc.explanation + 이 계산기는 SMD 릴에 남아 있는 부품 수를 추정합니다. 릴에 표시된 치수를 측정하거나 프리셋을 사용한 뒤 "업데이트"를 클릭하면 결과를 확인할 수 있습니다. + + + + + perm.tools.reel_calculator + SMD 릴 계산기 + + + + + tree.tools.tools.reel_calculator + SMD 릴 계산기 + + + + + user.pw_change_needed.flash + 비밀번호를 변경해야 합니다! 새 비밀번호를 설정하세요. + + + + + part_list.action.select_null + 빈 요소 + + + + + part_list.action.delete-title + 정말 이 부품들을 삭제하시겠습니까? + + + + + part_list.action.delete-message + 이 부품들과 관련된 모든 정보(첨부파일, 가격 정보 등)가 삭제됩니다. 되돌릴 수 없습니다! + + + + + part.table.actions.success + 동작이 완료되었습니다. + + + + + attachment.edit.delete.confirm + 정말 이 첨부파일을 삭제하시겠습니까? + + + + + filter.text_constraint.value.operator.EQ + 일치 + + + + + filter.text_constraint.value.operator.NEQ + 불일치 + + + + + filter.text_constraint.value.operator.STARTS + 시작 문자 + + + + + filter.text_constraint.value.operator.CONTAINS + 포함 + + + + + filter.text_constraint.value.operator.ENDS + 끝 문자 + + + + + filter.text_constraint.value.operator.LIKE + LIKE 패턴 + + + + + filter.text_constraint.value.operator.REGEX + 정규 표현식 + + + + + filter.number_constraint.value.operator.BETWEEN + 범위 + + + + + filter.number_constraint.AND + 그리고 + + + + + filter.entity_constraint.operator.EQ + 일치 (하위 제외) + + + + + filter.entity_constraint.operator.NEQ + 불일치 (하위 제외) + + + + + filter.entity_constraint.operator.INCLUDING_CHILDREN + 일치 (하위 포함) + + + + + filter.entity_constraint.operator.EXCLUDING_CHILDREN + 불일치 (하위 포함) + + + + + part.filter.dbId + 데이터베이스 ID + + + + + filter.tags_constraint.operator.ANY + 태그 중 하나라도 + + + + + filter.tags_constraint.operator.ALL + 모든 태그 + + + + + filter.tags_constraint.operator.NONE + 태그 없음 + + + + + part.filter.lot_count + 로트 수 + + + + + part.filter.attachments_count + 첨부파일 수 + + + + + part.filter.orderdetails_count + 주문 정보 수 + + + + + part.filter.lotExpirationDate + 로트 유효 기간 + + + + + part.filter.lotNeedsRefill + 보충 필요 로트 있음 + + + + + part.filter.lotUnknwonAmount + 수량 미상 로트 있음 + + + + + part.filter.attachmentName + 첨부파일 이름 + + + + + filter.bulk_import_job.label + 대량 가져오기 작업 + + + + + filter.bulk_import_job.job_status + 작업 상태 + + + + + filter.bulk_import_job.part_status_in_job + 작업 내 부품 상태 + + + + + filter.bulk_import_job.status.pending + 대기 중 + + + + + filter.bulk_import_job.status.in_progress + 진행 중 + + + + + filter.bulk_import_job.status.completed + 완료됨 + + + + + filter.bulk_import_job.status.stopped + 중지됨 + + + + + filter.bulk_import_job.status.failed + 실패함 + + + + + filter.bulk_import_job.part_status.pending + 대기 중 + + + + + filter.bulk_import_job.part_status.completed + 완료됨 + + + + + filter.bulk_import_job.part_status.skipped + 건너뜀 + + + + + filter.choice_constraint.operator.ANY + 다음 중 하나 + + + + + filter.choice_constraint.operator.NONE + 다음에 없음 + + + + + part.filter.amount_sum + 총 수량 + + + + + filter.submit + 업데이트 + + + + + filter.discard + 변경 사항 취소 + + + + + filter.clear_filters + 모든 필터 지우기 + + + + + filter.title + 필터 + + + + + filter.parameter_value_constraint.operator.= + 일반값 = + + + + + filter.parameter_value_constraint.operator.!= + 일반값 != + + + + + filter.parameter_value_constraint.operator.< + 일반값 < + + + + + filter.parameter_value_constraint.operator.> + 일반값 > + + + + + filter.parameter_value_constraint.operator.<= + 일반값 <= + + + + + filter.parameter_value_constraint.operator.>= + 일반값 >= + + + + + filter.parameter_value_constraint.operator.BETWEEN + 일반값 범위 + + + + + filter.parameter_value_constraint.operator.IN_RANGE + 값 범위 안 + + + + + filter.parameter_value_constraint.operator.NOT_IN_RANGE + 값 범위 밖 + + + + + filter.parameter_value_constraint.operator.GREATER_THAN_RANGE + 값 범위보다 큼 + + + + + filter.parameter_value_constraint.operator.GREATER_EQUAL_RANGE + 값 범위보다 크거나 같음 + + + + + filter.parameter_value_constraint.operator.LESS_THAN_RANGE + 값 범위보다 작음 + + + + + filter.parameter_value_constraint.operator.LESS_EQUAL_RANGE + 값 범위보다 작거나 같음 + + + + + filter.parameter_value_constraint.operator.RANGE_IN_RANGE + 범위가 값 범위에 완전히 포함 + + + + + filter.parameter_value_constraint.operator.RANGE_INTERSECT_RANGE + 범위가 값 범위와 겹침 + + + + + filter.text_constraint.value + 설정된 값 없음 + + + + + filter.number_constraint.value1 + 설정된 값 없음 + + + + + filter.number_constraint.value2 + 최대값 + + + + + filter.datetime_constraint.value1 + 설정된 일시 없음 + + + + + filter.datetime_constraint.value2 + 최대 일시 + + + + + filter.constraint.add + 조건 추가 + + + + + part.filter.parameters_count + 파라미터 수 + + + + + part.filter.lotDescription + 로트 설명 + + + + + parts_list.search.searching_for + <b>%keyword%</b> 키워드로 부품 검색 중 + + + + + parts_list.search_options.caption + 활성화된 검색 옵션 + + + + + attachment.table.element_type + 연결된 요소 유형 + + + + + log.level.debug + 디버그 + + + + + log.level.info + 정보 + + + + + log.level.notice + 알림 + + + + + log.level.warning + 경고 + + + + + log.level.error + 오류 + + + + + log.level.critical + 심각 + + + + + log.level.alert + 긴급 + + + + + log.level.emergency + 비상 + + + + + log.type.security + 보안 관련 이벤트 + + + + + log.type.instock_changed + [레거시] 재고 변경됨 + + + + + log.target_id + 대상 요소 ID + + + + + entity.info.parts_count_recursive + 이 요소 또는 하위 요소를 사용하는 [[part]] 수 + + + + + tools.server_infos.title + 서버 정보 + + + + + permission.preset.read_only + 읽기 전용 + + + + + permission.preset.read_only.desc + 데이터 읽기 작업만 허용 + + + + + permission.preset.all_inherit + 모두 상속 + + + + + permission.preset.all_inherit.desc + 모든 권한을 상속으로 설정 + + + + + permission.preset.all_forbid + 모두 금지 + + + + + permission.preset.all_forbid.desc + 모든 권한을 금지로 설정 + + + + + permission.preset.all_allow + 모두 허용 + + + + + permission.preset.all_allow.desc + 모든 권한을 허용으로 설정 + + + + + perm.server_infos + 서버 정보 + + + + + permission.preset.editor + 편집자 + + + + + permission.preset.editor.desc + 부품 및 데이터 구조 변경 허용 + + + + + permission.preset.admin + 관리자 + + + + + permission.preset.admin.desc + 관리 작업 허용 + + + + + permission.preset.button + 프리셋 적용 + + + + + perm.attachments.show_private + 비공개 첨부파일 보기 + + + + + perm.attachments.list_attachments + 모든 첨부파일 목록 보기 + + + + + user.edit.permission_success + 권한 프리셋이 적용되었습니다. 새 권한이 요구 사항에 맞는지 확인하세요. + + + + + perm.group.data + 데이터 + + + + + part_list.action.action.group.needs_review + 검토 필요 + + + + + part_list.action.action.set_needs_review + 검토 필요 상태 지정 + + + + + part_list.action.action.unset_needs_review + 검토 필요 상태 해제 + + + + + part.edit.ipn + 내부 부품 번호 (IPN) + + + + + part.ipn.not_defined + 미지정 + + + + + part.table.ipn + IPN + + + + + currency.edit.update_rate + 환율 가져오기 + + + + + currency.edit.exchange_rate_update.unsupported_currency + 환율 제공자가 지원하지 않는 통화입니다. 환율 제공자 설정을 확인하세요. + + + + + currency.edit.exchange_rate_update.generic_error + 환율을 가져올 수 없습니다. 환율 제공자 설정을 확인하세요. + + + + + currency.edit.exchange_rate_updated.success + 환율을 가져왔습니다. + + + + + project.bom.quantity + BOM 수량 + + + + + project.bom.mountnames + 장착 이름 + + + + + project.bom.name + 이름 + + + + + project.bom.comment + 메모 + + + + + project.bom.part + 부품 + + + + + project.bom.add_entry + 항목 추가 + + + + + part_list.action.group.projects + 프로젝트 + + + + + part_list.action.projects.add_to_project + 프로젝트에 부품 추가 + + + + + project.bom.delete.confirm + 정말 이 BOM 항목을 삭제하시겠습니까? + + + + + project.add_parts_to_project + [project] BOM에 [[part]] 추가 + + + + + part.info.add_part_to_project + 이 [part]을(를) [project]에 추가 + + + + + project_bom_entry.label + BOM 항목 + + + + + project.edit.status + 프로젝트 상태 + + + + + project.status.draft + 초안 + + + + + project.status.planning + 계획 중 + + + + + project.status.in_production + 제작 중 + + + + + project.status.finished + 완료 + + + + + project.status.archived + 보관됨 + + + + + part.new_build_part.error.build_part_already_exists + 이 [project]에는 이미 빌드 [part]이(가) 있습니다! + + + + + project.edit.associated_build_part + 연결된 빌드 [part] + + + + + project.edit.associated_build_part.add + 빌드 [part] 추가 + + + + + project.edit.associated_build.hint + 이 [part]은(는) 어딘가에 보관된 이 [project]의 빌드를 나타냅니다. + + + + + part.info.projectBuildPart.hint + 이 [part]은(는) 다음 [project]의 빌드를 나타내며 해당 프로젝트와 연결되어 있습니다 + + + + + part.is_build_part + [project] 빌드 [part] 여부 + + + + + project.info.title + [Project] 정보 + + + + + project.info.bom_entries_count + BOM 항목 + + + + + project.info.sub_projects_count + 하위 프로젝트 + + + + + project.info.total_build_price + 총 제작 가격 + + + + + project.info.per_unit_price + 단위당 + + + + + project.info.bom_add_parts + BOM 항목 추가 + + + + + project.info.info.label + 정보 + + + + + project.info.sub_projects.label + 하위 프로젝트 + + + + + project.bom.price + 가격 + + + + + project.bom.ext_price + 합계 가격 + + + + + part.info.withdraw_modal.title.withdraw + 로트에서 부품 출고 + + + + + part.info.withdraw_modal.title.add + 로트에 부품 입고 + + + + + part.info.withdraw_modal.title.move + 부품을 다른 로트로 이동 + + + + + part.info.withdraw_modal.amount + 수량 + + + + + part.info.withdraw_modal.move_to + 이동 대상 + + + + + part.info.withdraw_modal.comment + 메모 + + + + + part.info.withdraw_modal.comment.hint + 이 작업을 수행하는 이유(예: 부품 사용 목적)를 메모로 남길 수 있습니다. 이 정보는 로그에 저장됩니다. + + + + + modal.close + 닫기 + + + + + modal.submit + 제출 + + + + + part.withdraw.success + 부품 입고/이동/출고가 완료되었습니다. + + + + + perm.parts_stock + 부품 재고 + + + + + perm.parts_stock.withdraw + 재고에서 부품 출고 + + + + + perm.parts_stock.add + 재고에 부품 입고 + + + + + perm.parts_stock.move + 로트 간 부품 이동 + + + + + user.permissions_schema_updated + 사용자의 권한 스키마가 최신 버전으로 업그레이드되었습니다. + + + + + log.type.part_stock_changed + 부품 재고 변경됨 + + + + + log.part_stock_changed.withdraw + 재고 출고됨 + + + + + log.part_stock_changed.add + 재고 입고됨 + + + + + log.part_stock_changed.move + 재고 이동됨 + + + + + log.part_stock_changed.comment + 메모 + + + + + log.part_stock_changed.change + 변경 + + + + + log.part_stock_changed.move_target + 이동 대상 + + + + + tools.builtin_footprints_viewer.title + 내장 풋프린트 이미지 갤러리 + + + + + tools.builtin_footprints_viewer.hint + 이 갤러리는 사용 가능한 모든 내장 풋프린트 이미지를 보여줍니다. 첨부파일에서 사용하려면 첨부파일의 경로 필드에 이름(또는 키워드)을 입력하고 드롭다운에서 이미지를 선택하세요. + + + + + tools.ic_logos.title + IC 로고 + + + + + part_list.action.group.labels + 라벨 + + + + + part_list.action.projects.generate_label + 라벨 생성 ([[part]]용) + + + + + part_list.action.projects.generate_label_lot + 라벨 생성 ([[part_lot]]용) + + + + + part_list.action.generate_label.empty + 빈 라벨 + + + + + project.info.builds.label + 제작 + + + + + project.builds.build_not_possible + 제작 불가: 부품 재고 없음 + + + + + project.builds.following_bom_entries_miss_instock + 다음 [[part]]의 재고가 부족하여 이 [project]을(를) 한 번도 제작할 수 없습니다: + + + + + project.builds.stocked + 보유 + + + + + project.builds.needed + 필요 + + + + + project.builds.build_possible + 제작 가능 + + + + + project.builds.number_of_builds_possible + 이 [project]을(를) <b>%max_builds%</b>회 제작할 수 있는 재고를 보유하고 있습니다. + + + + + project.builds.check_project_status + 현재 [project] 상태는 <b>"%project_status%"</b>입니다. 이 상태에서 정말 [project]을(를) 제작할지 확인하세요! + + + + + project.builds.following_bom_entries_miss_instock_n + 이 [project]을(를) %number_of_builds%회 제작하기에 [[part]] 재고가 부족합니다. 다음 [[part]]의 재고가 부족합니다: + + + + + project.build.flash.invalid_input + 프로젝트를 제작할 수 없습니다. 입력을 확인하세요! + + + + + project.build.required_qty + 필요 수량 + + + + + project.build.btn_build + 제작 + + + + + project.build.help + 이 [project]을(를) 제작할 때 어느 [[part_lot]]에서 재고를 사용할지(그리고 얼마나 사용할지) 선택하세요. 각 BOM 항목에서 [[part]] 출고가 완료되면 체크박스를 선택하거나, 상단 체크박스로 한 번에 모두 선택할 수 있습니다. + + + + + project.build.buildsPartLot.new_lot + 새 로트 생성 + + + + + project.build.add_builds_to_builds_part + 제작품을 프로젝트 빌드 부품에 추가 + + + + + project.build.builds_part_lot + 대상 로트 + + + + + project.builds.number_of_builds + 제작 수량 + + + + + project.builds.no_stocked_builds + 보유 중인 제작품 수 + + + + + user.change_avatar.label + 프로필 사진 변경 + + + + + user_settings.change_avatar.label + 프로필 사진 변경 + + + + + user_settings.remove_avatar.label + 프로필 사진 제거 + + + + + part.edit.name.category_hint + 카테고리의 힌트 + + + + + category.edit.partname_regex.placeholder + 예: "/Capacitor \d+ nF/i" + + + + + category.edit.part_ipn_prefix.placeholder + 예: "B12A" + + + + + category.edit.partname_regex.help + 부품 이름이 일치해야 하는 PCRE 호환 정규 표현식입니다. + + + + + category.edit.part_ipn_prefix.help + 부품의 IPN 입력 시 제안되는 접두사입니다. + + + + + entity.select.add_hint + ->를 사용하여 중첩 구조를 만들 수 있습니다. 예: "노드 1->노드 1.1" + + + + + entity.select.group.new_not_added_to_DB + 신규 (아직 DB에 추가되지 않음) + + + + + part.edit.save_and_new + 저장 후 새 빈 부품 생성 + + + + + homepage.first_steps.title + 첫 단계 + + + + + homepage.first_steps.introduction + 데이터베이스가 아직 비어 있습니다. <a href="%url%">문서</a>를 읽어보거나 다음 데이터 구조를 만들어 보세요: + + + + + homepage.first_steps.create_part + 또는 바로 <a href="%url%">새 부품을 생성</a>할 수 있습니다. + + + + + homepage.first_steps.hide_hint + 첫 부품을 생성하면 이 상자는 사라집니다. + + + + + homepage.forum.text + Part-DB에 대한 질문은 <a href="%href%" class="link-external" target="_blank">토론 포럼</a>을 이용하세요 + + + + + log.element_edited.changed_fields.category + 카테고리 + + + + + log.element_edited.changed_fields.footprint + 풋프린트 + + + + + log.element_edited.changed_fields.manufacturer + 제조사 + + + + + log.element_edited.changed_fields.value_typical + 일반값 + + + + + log.element_edited.changed_fields.pw_reset_expires + 비밀번호 재설정 + + + + + log.element_edited.changed_fields.comment + 메모 + + + + + log.element_edited.changed_fields.supplierpartnr + 판매처 부품 번호 + + + + + log.element_edited.changed_fields.supplier_product_url + 판매 페이지 링크 + + + + + log.element_edited.changed_fields.price + 가격 + + + + + log.element_edited.changed_fields.min_discount_quantity + 최소 할인 수량 + + + + + log.element_edited.changed_fields.original_filename + 원본 파일 이름 + + + + + log.element_edited.changed_fields.path + 파일 경로 + + + + + log.element_edited.changed_fields.description + 설명 + + + + + log.element_edited.changed_fields.manufacturing_status + 생산 상태 + + + + + log.element_edited.changed_fields.options.barcode_type + 바코드 유형 + + + + + log.element_edited.changed_fields.status + 상태 + + + + + log.element_edited.changed_fields.quantity + BOM 수량 + + + + + log.element_edited.changed_fields.mountnames + 장착 이름 + + + + + log.element_edited.changed_fields.name + 이름 + + + + + log.element_edited.changed_fields.part + 부품 + + + + + log.element_edited.changed_fields.price_currency + 가격 통화 + + + + + log.element_edited.changed_fields.partname_hint + 부품 이름 힌트 + + + + + log.element_edited.changed_fields.partname_regex + 이름 필터 + + + + + log.element_edited.changed_fields.disable_footprints + [[footprint]] 비활성화 + + + + + log.element_edited.changed_fields.disable_manufacturers + [[manufacturer]] 비활성화 + + + + + log.element_edited.changed_fields.disable_autodatasheets + 자동 데이터시트 링크 비활성화 + + + + + log.element_edited.changed_fields.disable_properties + 속성 비활성화 + + + + + log.element_edited.changed_fields.default_description + 기본 설명 + + + + + log.element_edited.changed_fields.default_comment + 기본 메모 + + + + + log.element_edited.changed_fields.filetype_filter + 허용되는 파일 확장자 + + + + + log.element_edited.changed_fields.not_selectable + 선택 불가 + + + + + log.element_edited.changed_fields.parent + 상위 요소 + + + + + log.element_edited.changed_fields.shipping_costs + 배송비 + + + + + log.element_edited.changed_fields.default_currency + 기본 통화 + + + + + log.element_edited.changed_fields.address + 주소 + + + + + log.element_edited.changed_fields.phone_number + 전화번호 + + + + + log.element_edited.changed_fields.fax_number + 팩스 번호 + + + + + log.element_edited.changed_fields.email_address + 이메일 + + + + + log.element_edited.changed_fields.website + 웹사이트 + + + + + log.element_edited.changed_fields.auto_product_url + 제품 URL + + + + + log.element_edited.changed_fields.is_full + 보관 위치 가득 참 + + + + + log.element_edited.changed_fields.limit_to_existing_parts + 기존 부품으로 제한 + + + + + log.element_edited.changed_fields.only_single_part + 단일 부품만 + + + + + log.element_edited.changed_fields.storage_type + 보관 유형 + + + + + log.element_edited.changed_fields.footprint_3d + 3D 모델 + + + + + log.element_edited.changed_fields.master_picture_attachment + 미리보기 이미지 + + + + + log.element_edited.changed_fields.exchange_rate + 환율 + + + + + log.element_edited.changed_fields.iso_code + ISO 코드 + + + + + log.element_edited.changed_fields.unit + 단위 기호 + + + + + log.element_edited.changed_fields.is_integer + 정수 단위 + + + + + log.element_edited.changed_fields.use_si_prefix + SI 접두사 사용 + + + + + log.element_edited.changed_fields.options.width + 너비 + + + + + log.element_edited.changed_fields.options.height + 높이 + + + + + log.element_edited.changed_fields.options.supported_element + 대상 유형 + + + + + log.element_edited.changed_fields.options.additional_css + 추가 스타일 (CSS) + + + + + log.element_edited.changed_fields.options.lines + 내용 + + + + + log.element_edited.changed_fields.permissions.data + 권한 + + + + + log.element_edited.changed_fields.disabled + 비활성화됨 + + + + + log.element_edited.changed_fields.theme + 테마 + + + + + log.element_edited.changed_fields.timezone + 시간대 + + + + + log.element_edited.changed_fields.language + 언어 + + + + + log.element_edited.changed_fields.email + 이메일 + + + + + log.element_edited.changed_fields.department + 부서 + + + + + log.element_edited.changed_fields.last_name + + + + + + log.element_edited.changed_fields.first_name + 이름 + + + + + log.element_edited.changed_fields.group + 그룹 + + + + + log.element_edited.changed_fields.currency + 기본 통화 + + + + + log.element_edited.changed_fields.enforce2FA + 2FA 강제 + + + + + log.element_edited.changed_fields.symbol + 기호 + + + + + log.element_edited.changed_fields.value_min + 최소값 + + + + + log.element_edited.changed_fields.value_max + 최대값 + + + + + log.element_edited.changed_fields.value_text + 텍스트 값 + + + + + log.element_edited.changed_fields.show_in_table + 테이블에 표시 + + + + + log.element_edited.changed_fields.attachment_type + 첨부파일 형식 + + + + + log.element_edited.changed_fields.needs_review + 검토 필요 + + + + + log.element_edited.changed_fields.tags + 태그 + + + + + log.element_edited.changed_fields.mass + 질량 + + + + + log.element_edited.changed_fields.ipn + IPN + + + + + log.element_edited.changed_fields.favorite + 즐겨찾기 + + + + + log.element_edited.changed_fields.minamount + 최소 재고 + + + + + log.element_edited.changed_fields.manufacturer_product_url + 제품 페이지 링크 + + + + + log.element_edited.changed_fields.manufacturer_product_number + MPN + + + + + log.element_edited.changed_fields.partUnit + 측정 단위 + + + + + log.element_edited.changed_fields.partCustomState + 사용자 정의 부품 상태 + + + + + log.element_edited.changed_fields.expiration_date + 유효 기간 + + + + + log.element_edited.changed_fields.amount + 수량 + + + + + log.element_edited.changed_fields.storage_location + 보관 위치 + + + + + attachment.max_file_size + 최대 파일 크기 + + + + + user.saml_user + SSO / SAML 사용자 + + + + + user.saml_user.pw_change_hint + 이 계정은 통합 인증(SSO)을 사용합니다. 여기서는 비밀번호와 2FA 설정을 변경할 수 없습니다. 중앙 SSO 제공자에서 설정하세요! + + + + + login.sso_saml_login + 통합 인증 로그인 (SSO) + + + + + login.local_login_hint + 아래 양식은 로컬 사용자 로그인 전용입니다. 통합 인증으로 로그인하려면 위 버튼을 누르세요. + + + + + part_list.action.action.export + 부품 내보내기 + + + + + part_list.action.export_json + JSON으로 내보내기 + + + + + part_list.action.export_csv + CSV로 내보내기 + + + + + part_list.action.export_yaml + YAML로 내보내기 + + + + + part_list.action.export_xml + XML로 내보내기 + + + + + part_list.action.export_xlsx + Excel로 내보내기 + + + + + parts.import.title + 부품 가져오기 + + + + + parts.import.errors.title + 가져오기 오류 + + + + + parts.import.flash.error + 가져오기 중 오류가 발생했습니다. 대부분 유효하지 않은 데이터가 원인입니다. + + + + + parts.import.format.auto + 자동 (파일 확장자 기반) + + + + + parts.import.flash.error.unknown_format + 해당 파일의 형식을 판별할 수 없습니다! + + + + + parts.import.flash.error.invalid_file + 파일이 유효하지 않습니다. 올바른 형식을 선택했는지 확인하세요! + + + + + parts.import.part_category.label + 카테고리 재정의 + + + + + parts.import.part_category.help + 여기서 값을 선택하면 데이터의 설정과 무관하게 가져온 모든 부품이 이 카테고리에 배정됩니다. + + + + + import.create_unknown_datastructures + 알 수 없는 데이터 구조 생성 + + + + + import.create_unknown_datastructures.help + 이 옵션을 선택하면 데이터베이스에 아직 없는 데이터 구조(카테고리, 풋프린트 등)가 자동으로 생성됩니다. 선택하지 않으면 기존 데이터 구조만 사용하며, 일치하는 데이터 구조가 없으면 부품에 아무것도 배정되지 않습니다 + + + + + import.path_delimiter + 경로 구분자 + + + + + import.path_delimiter.help + 카테고리, 풋프린트 등의 데이터 구조 경로에서 계층을 구분하는 데 사용되는 구분자입니다. + + + + + parts.import.help_documentation + 파일 형식에 대한 자세한 내용은 <a href="%link%">문서</a>를 참고하세요. + + + + + parts.import.help + 이 도구로 기존 파일에서 부품을 가져올 수 있습니다. 부품은 데이터베이스에 바로 기록되므로, 업로드하기 전에 파일 내용이 올바른지 미리 확인하세요. + + + + + parts.import.flash.success + 부품 가져오기 완료! + + + + + parts.import.errors.imported_entities + 가져온 부품 + + + + + perm.import + 데이터 가져오기 + + + + + parts.import.part_needs_review.label + 가져온 모든 부품을 "검토 필요"로 표시 + + + + + parts.import.part_needs_review.help + 이 옵션을 선택하면 데이터의 설정과 무관하게 모든 부품이 "검토 필요"로 표시됩니다. + + + + + project.bom_import.flash.success + BOM 항목 %count%개를 가져왔습니다. + + + + + project.bom_import.type + 유형 + + + + + project.bom_import.type.kicad_pcbnew + KiCad Pcbnew BOM (CSV 파일) + + + + + project.bom_import.clear_existing_bom + 가져오기 전에 기존 BOM 항목 지우기 + + + + + project.bom_import.clear_existing_bom.help + 이 옵션을 선택하면 프로젝트의 기존 BOM 항목이 모두 삭제되고 가져온 BOM 파일로 대체됩니다! + + + + + project.bom_import.flash.invalid_file + 파일을 가져올 수 없습니다. 올바른 파일 형식을 선택했는지 확인하세요. 오류 메시지: %message% + + + + + project.bom_import.flash.invalid_entries + 유효성 검사 오류! 데이터를 확인하세요! + + + + + project.import_bom + 프로젝트 BOM 가져오기 + + + + + project.edit.bom.import_bom + BOM 가져오기 + + + + + measurement_unit.new + 새 [measurement_unit] + + + + + measurement_unit.edit + [measurement_unit] 편집 + + + + + part_custom_state.new + 새 [part_custom_state] + + + + + part_custom_state.edit + [part_custom_state] 편집 + + + + + user.aboutMe.label + 자기소개 + + + + + storelocation.owner.label + 소유자 + + + + + storelocation.part_owner_must_match.label + [Part_lot] 소유자가 [storage_location] 소유자와 일치해야 함 + + + + + part_lot.owner + 소유자 + + + + + part_lot.owner.help + 소유자만 이 로트에서 재고를 출고하거나 입고할 수 있습니다. + + + + + log.element_edited.changed_fields.owner + 소유자 + + + + + log.element_edited.changed_fields.instock_unknown + 수량 알 수 없음 + + + + + log.element_edited.changed_fields.needs_refill + 보충 필요 + + + + + part.withdraw.access_denied + 해당 작업을 수행할 권한이 없습니다. 권한과 [[part_lot]]의 소유자를 확인하세요. + + + + + part.info.amount.less_than_desired + 희망 수량보다 적음 + + + + + log.cli_user + CLI 사용자 + + + + + log.element_edited.changed_fields.part_owner_must_match + [Part] 소유자가 [storage_location] 소유자와 일치해야 함 + + + + + part.filter.lessThanDesired + 재고가 희망 수량보다 적음 (총 수량 < 최소 수량) + + + + + part.filter.lotOwner + 로트 소유자 + + + + + user.show_email_on_profile.label + 공개 프로필 페이지에 이메일 표시 + + + + + log.details.title + 로그 상세 정보 + + + + + log.user_login.login_from_ip + IP 주소에서 로그인 + + + + + log.user_login.ip_anonymize_hint + IP 주소의 마지막 자리가 누락되어 있다면 IP 주소를 익명화하는 GDPR 모드가 활성화된 것입니다. + + + + + log.user_not_allowed.unauthorized_access_attempt_to + 페이지에 대한 권한 없는 접근 시도 + + + + + log.user_not_allowed.hint + 요청이 차단되었습니다. 별도 조치는 필요하지 않습니다. + + + + + log.no_comment + 메모 없음 + + + + + log.element_changed.field + 필드 + + + + + log.element_changed.data_before + 변경 전 데이터 + + + + + error_table.error + 요청 처리 중 오류가 발생했습니다. + + + + + part.table.invalid_regex + 유효하지 않은 정규 표현식 (regex) + + + + + log.element_changed.data_after + 변경 후 데이터 + + + + + log.element_changed.diff + 차이 + + + + + log.undo.undo.short + 취소 + + + + + log.undo.revert.short + 이 시점으로 되돌리기 + + + + + log.view_version + 버전 보기 + + + + + log.undo.undelete.short + 복원 + + + + + log.element_edited.changed_fields.id + ID + + + + + log.element_edited.changed_fields.id_owner + 소유자 + + + + + log.element_edited.changed_fields.parent_id + 상위 요소 + + + + + log.details.delete_entry + 로그 항목 삭제 + + + + + log.delete.message.title + 정말 이 로그 항목을 삭제하시겠습니까? + + + + + log.delete.message + 요소 이력 항목인 경우 요소 이력이 깨집니다! 시간 여행 기능 사용 시 예상치 못한 결과가 발생할 수 있습니다. + + + + + log.collection_deleted.on_collection + 컬렉션에서 + + + + + log.element_edited.changed_fields.attachments + 첨부파일 + + + + + tfa_u2f.add_key.registration_error + 보안 키 등록 중 오류가 발생했습니다. 다시 시도하거나 다른 보안 키를 사용하세요! + + + + + log.target_type.none + 없음 + + + + + ui.darkmode.light + 라이트 + + + + + ui.darkmode.dark + 다크 + + + + + ui.darkmode.auto + 자동 (시스템 설정 기준) + + + + + label_generator.no_lines_given + 텍스트 내용이 없습니다! 라벨이 비어 있게 됩니다. + + + + + perm.users.impersonate + 다른 사용자로 로그인 + + + + + user.impersonated_by.label + 대리 로그인 사용자 + + + + + user.stop_impersonation + 대리 로그인 종료 + + + + + user.impersonate.btn + 대리 로그인 + + + + + user.impersonate.confirm.title + 정말 이 사용자로 로그인하시겠습니까? + + + + + user.impersonate.confirm.message + 이 작업은 기록됩니다. 정당한 이유가 있을 때만 수행하세요. + +비활성화된 사용자로는 대리 로그인할 수 없습니다. 시도하면 "접근 거부" 메시지가 표시됩니다. + + + + + log.type.security.user_impersonated + 사용자 대리 로그인됨 + + + + + info_providers.providers_list.title + 정보 제공자 + + + + + info_providers.providers_list.active + 활성 + + + + + info_providers.providers_list.disabled + 비활성 + + + + + info_providers.capabilities.basic + 기본 + + + + + info_providers.capabilities.footprint + 풋프린트 + + + + + info_providers.capabilities.picture + 사진 + + + + + info_providers.capabilities.datasheet + 데이터시트 + + + + + info_providers.capabilities.price + 가격 + + + + + part.info_provider_reference.badge + 이 부품 생성에 사용된 정보 제공자입니다. + + + + + part.info_provider_reference + 정보 제공자로 생성됨 + + + + + oauth_client.connect.btn + OAuth 연결 + + + + + info_providers.table.provider.label + 제공자 + + + + + info_providers.search.keyword + 키워드 + + + + + info_providers.search.submit + 검색 + + + + + info_providers.search.providers.help + 검색할 제공자를 선택하세요. + + + + + info_providers.search.providers + 제공자 + + + + + info_providers.search.info_providers_list + 사용 가능한 모든 정보 제공자 보기 + + + + + info_providers.search.title + 정보 제공자로 부품 생성 + + + + + oauth_client.flash.connection_successful + OAuth 애플리케이션에 연결되었습니다! + + + + + perm.part.info_providers + 정보 제공자 + + + + + perm.part.info_providers.create_parts + 정보 제공자로 부품 생성 + + + + + entity.edit.alternative_names.label + 대체 이름 + + + + + entity.edit.alternative_names.help + 여기에 입력한 대체 이름은 정보 제공자 결과를 기반으로 이 요소를 찾는 데 사용됩니다. + + + + + info_providers.form.help_prefix + 제공자 + + + + + update_manager.new_version_available.title + 새 버전 사용 가능 + + + + + update_manager.new_version_available.text + Part-DB의 새 버전이 있습니다. 여기서 확인하세요 + + + + + update_manager.new_version_available.only_administrators_can_see + 이 메시지는 관리자만 볼 수 있습니다. + + + + + perm.system.show_available_updates + 사용 가능한 Part-DB 업데이트 보기 + + + + + user.settings.api_tokens + API 토큰 + + + + + user.settings.api_tokens.description + API 토큰을 사용하면 다른 애플리케이션이 회원님의 사용자 권한으로 Part-DB에 접근하여 Part-DB REST API로 다양한 작업을 수행할 수 있습니다. 여기서 API 토큰을 삭제하면 해당 토큰을 사용하는 애플리케이션은 더 이상 회원님을 대신해 Part-DB에 접근할 수 없습니다. + + + + + api_tokens.name + 이름 + + + + + api_tokens.access_level + 접근 수준 + + + + + api_tokens.expiration_date + 만료일 + + + + + api_tokens.last_time_used + 마지막 사용 시각 + + + + + datetime.never + 없음 + + + + + api_token.valid + 유효 + + + + + api_token.expired + 만료됨 + + + + + user.settings.show_api_documentation + API 문서 보기 + + + + + api_token.create_new + 새 API 토큰 생성 + + + + + api_token.level.read_only + 읽기 전용 + + + + + api_token.level.edit + 편집 + + + + + api_token.level.admin + 관리자 + + + + + api_token.level.full + 전체 + + + + + api_tokens.access_level.help + API 토큰이 접근할 수 있는 범위를 제한할 수 있습니다. 접근 범위는 항상 사용자의 권한 이내로 제한됩니다. + + + + + api_tokens.expiration_date.help + 이 날짜 이후에는 토큰을 사용할 수 없습니다. 토큰이 만료되지 않게 하려면 비워 두세요. + + + + + api_tokens.your_token_is + API 토큰은 다음과 같습니다 + + + + + api_tokens.please_save_it + 저장해 두세요. 다시 볼 수 없습니다! + + + + + api_tokens.create_new.back_to_user_settings + 사용자 설정으로 돌아가기 + + + + + project.build.dont_check_quantity + 수량 확인 안 함 + + + + + project.build.dont_check_quantity.help + 이 옵션을 선택하면 이 [project] 제작에 실제로 필요한 [[part]] 수와 무관하게 지정한 출고 수량이 그대로 사용됩니다. + + + + + part_list.action.invert_selection + 선택 반전 + + + + + perm.api + API + + + + + perm.api.access_api + API 접근 + + + + + perm.api.manage_tokens + API 토큰 관리 + + + + + user.settings.api_tokens.delete.title + 정말 이 API 토큰을 삭제하시겠습니까? + + + + + user.settings.api_tokens.delete + 삭제 + + + + + user.settings.api_tokens.delete.message + 이 API 토큰을 사용하는 애플리케이션은 더 이상 Part-DB에 접근할 수 없습니다. 이 작업은 되돌릴 수 없습니다! + + + + + api_tokens.deleted + API 토큰이 삭제되었습니다! + + + + + user.settings.api_tokens.no_api_tokens_yet + 설정된 API 토큰이 없습니다. + + + + + api_token.ends_with + 끝자리 + + + + + entity.select.creating_new_entities_not_allowed + 이 유형의 새 항목을 생성할 권한이 없습니다! 기존 항목을 선택하세요. + + + + + scan_dialog.mode + 바코드 유형 + + + + + scan_dialog.mode.auto + 자동 감지 + + + + + scan_dialog.mode.ipn + IPN 바코드 + + + + + scan_dialog.mode.internal + Part-DB 바코드 + + + + + part_association.label + 부품 연관 + + + + + part.edit.tab.associations + 연관 부품 + + + + + part_association.edit.other_part + 연관 부품 + + + + + part_association.edit.type + 관계 유형 + + + + + part_association.edit.comment + 메모 + + + + + part_association.edit.type.help + 선택한 부품이 이 부품과 어떤 관계인지 여기서 선택할 수 있습니다. + + + + + part_association.table.from_this_part + 이 부품에서 다른 부품으로의 연관 + + + + + part_association.table.from + 출발 + + + + + part_association.table.type + 관계 + + + + + part_association.table.to + 대상 + + + + + part_association.type.compatible + 호환됨 + + + + + part_association.table.to_this_part + 다른 부품에서 이 부품으로의 연관 + + + + + part_association.type.other + 기타 (사용자 정의 값) + + + + + part_association.type.supersedes + 대체함 + + + + + part_association.edit.other_type + 사용자 정의 유형 + + + + + part_association.edit.delete.confirm + 정말 이 연관을 삭제하시겠습니까? 되돌릴 수 없습니다. + + + + + part_lot.edit.advanced + 고급 옵션 펼치기 + + + + + part_lot.edit.vendor_barcode + 공급업체 바코드 + + + + + part_lot.edit.vendor_barcode.help + 이 로트에 이미 바코드가 있는 경우(예: 공급업체가 부착한 것) 그 내용을 여기에 입력하면 쉽게 스캔할 수 있습니다. + + + + + scan_dialog.mode.vendor + 공급업체 바코드 (부품 로트에 설정됨) + + + + + project.bom.instockAmount + 보유 수량 + + + + + collection_type.new_element.tooltip + 이 요소는 새로 생성되었으며 아직 데이터베이스에 저장되지 않았습니다. + + + + + part.merge.title + 부품 병합 + + + + + part.merge.title.into + 대상: + + + + + part.merge.confirm.title + 정말 <b>%other%</b>을(를) <b>%target%</b>(으)로 병합하시겠습니까? + + + + + part.merge.confirm.message + <b>%other%</b>은(는) 삭제되고, 표시된 정보로 부품이 저장됩니다. + + + + + part.info.merge_modal.title + 부품 병합 + + + + + part.info.merge_modal.other_part + 다른 부품 + + + + + part.info.merge_modal.other_into_this + 다른 부품을 이 부품으로 병합 (다른 부품 삭제, 이 부품 유지) + + + + + part.info.merge_modal.this_into_other + 이 부품을 다른 부품으로 병합 (이 부품 삭제, 다른 부품 유지) + + + + + part.info.merge_btn + 부품 병합 + + + + + part.update_part_from_info_provider.btn + 정보 제공자로 부품 업데이트 + + + + + info_providers.update_part.title + 정보 제공자로 기존 부품 업데이트 + + + + + part.merge.flash.please_review + 데이터가 아직 저장되지 않았습니다. 변경 사항을 검토하고 저장을 클릭하여 새 데이터를 반영하세요. + + + + + user.edit.flash.permissions_fixed + 다른 권한이 필요로 하는 권한이 누락되어 있어 수정되었습니다. 권한이 의도한 대로 설정되었는지 확인하세요. + + + + + permission.legend.dependency_note + 일부 권한 작업은 서로 의존한다는 점에 유의하세요. 누락된 권한이 수정되었다는 경고와 함께 권한이 다시 허용으로 설정된 경우, 의존하는 작업도 금지로 설정해야 합니다. 의존 항목은 보통 작업 오른쪽에서 확인할 수 있습니다. + + + + + log.part_stock_changed.timestamp + 시각 + + + + + part.info.withdraw_modal.timestamp + 작업 시각 + + + + + part.info.withdraw_modal.timestamp.hint + 이 필드를 사용하면 로그에 기록된 시각이 아닌, 재고 작업이 실제로 수행된 날짜를 지정할 수 있습니다. 이 값은 로그 항목의 추가 필드에 저장됩니다. + + + + + part.info.withdraw_modal.delete_lot_if_empty + 비게 되면 이 로트 삭제 + + + + + info_providers.search.error.client_exception + 정보 제공자와 통신 중 오류가 발생했습니다. 해당 제공자 설정을 확인하고 가능하면 OAuth 토큰을 새로고침하세요. + + + + + eda_info.reference_prefix.placeholder + 예: R + + + + + eda_info.reference_prefix + 참조 접두사 + + + + + eda_info.kicad_section.title + KiCad 관련 설정 + + + + + eda_info.value + + + + + + eda_info.value.placeholder + 예: 100n + + + + + eda_info.exclude_from_bom + BOM에서 부품 제외 + + + + + eda_info.exclude_from_board + PCB/보드에서 부품 제외 + + + + + eda_info.exclude_from_sim + 시뮬레이션에서 부품 제외 + + + + + eda_info.kicad_symbol + KiCad 회로도 심볼 + + + + + eda_info.kicad_symbol.placeholder + 예: Transistor_BJT:BC547 + + + + + eda_info.kicad_footprint + KiCad 풋프린트 + + + + + eda_info.kicad_footprint.placeholder + 예: Package_TO_SOT_THT:TO-92 + + + + + part.edit.tab.eda + EDA 정보 + + + + + api.api_endpoints.title + API 엔드포인트 + + + + + api.api_endpoints.partdb + Part-DB API + + + + + api.api_endpoints.kicad_root_url + KiCad API 루트 URL + + + + + eda_info.visibility + 표시 여부 강제 + + + + + eda_info.visibility.help + 기본적으로 EDA 소프트웨어에 대한 표시 여부는 자동으로 결정됩니다. 이 체크박스로 부품을 강제로 표시하거나 숨길 수 있습니다. + + + + + part.withdraw.zero_amount + 0개 수량으로 출고/입고를 시도했습니다! 작업이 수행되지 않았습니다. + + + + + login.flash.access_denied_please_login + 접근이 거부되었습니다! 계속하려면 로그인하세요. + + + + + attachment.upload_multiple_files + 파일 업로드 + + + + + entity.mass_creation_flash + %COUNT%개 항목이 생성되었습니다. + + + + + info_providers.search.number_of_results + 결과 %number%건 + + + + + info_providers.search.no_results + 결과 없음 + + + + + tfa.check.code.confirmation + 생성된 코드 + + + + + info_providers.search.show_existing_part + 기존 부품 보기 + + + + + info_providers.search.edit_existing_part + 기존 부품 편집 + + + + + info_providers.search.existing_part_found.short + 이미 존재하는 부품 + + + + + info_providers.search.existing_part_found + 이 부품(또는 매우 유사한 부품)이 이미 데이터베이스에 있습니다. 동일한 부품인지, 다시 생성할지 확인하세요! + + + + + info_providers.search.update_existing_part + 정보 제공자로 기존 부품 업데이트 + + + + + part.create_from_info_provider.no_category_yet + 정보 제공자가 카테고리를 자동으로 결정하지 못했습니다. 데이터를 검토하고 카테고리를 직접 선택하세요. + + + + + part_lot.edit.user_barcode + 사용자 바코드 + + + + + scan_dialog.mode.user + 사용자 정의 바코드 (부품 로트에 설정됨) + + + + + scan_dialog.mode.eigp + EIGP 114 바코드 (예: DigiKey, Mouser 주문의 데이터매트릭스 코드) + + + + + scan_dialog.mode.lcsc + LCSC.com 바코드 + + + + + scan_dialog.info_mode + 정보 모드 (바코드를 해석하여 내용을 표시하되 부품으로 이동하지 않음) + + + + + label_scanner.decoded_info.title + 해석된 정보 + + + + + label_scanner.target_found + 데이터베이스에서 항목 발견 + + + + + label_scanner.scan_result.title + 스캔 결과 + + + + + label_scanner.no_locations + 이 부품은 어느 위치에도 보관되어 있지 않습니다. + + + + + label_generator.edit_profiles + 프로필 편집 + + + + + label_generator.profile_name_empty + 프로필 이름은 비워 둘 수 없습니다! + + + + + label_generator.save_profile_name + 프로필 이름 + + + + + label_generator.save_profile + 새 프로필로 저장 + + + + + label_generator.profile_saved + 프로필이 저장되었습니다! + + + + + settings.ips.element14 + Element 14 / Farnell + + + + + settings.ips.element14.apiKey + API 키 + + + + + settings.ips.element14.apiKey.help + <a href="https://partner.element14.com/">https://partner.element14.com/</a>에서 API 키를 등록할 수 있습니다. + + + + + settings.ips.element14.storeId + 스토어 도메인 + + + + + settings.ips.element14.storeId.help + 데이터를 가져올 스토어 도메인입니다. 결과의 언어와 통화를 결정합니다. 유효한 도메인 목록은 <a href="https://partner.element14.com/docs/Product_Search_API_REST__Description">여기</a>를 참고하세요. + + + + + settings.ips.tme + TME + + + + + settings.ips.tme.token + API 토큰 + + + + + settings.ips.tme.token.help + <a href="https://developers.tme.eu/en/">https://developers.tme.eu/en/</a>에서 API 토큰과 시크릿을 발급받을 수 있습니다. + + + + + settings.ips.tme.secret + API 시크릿 + + + + + settings.ips.tme.currency + 통화 + + + + + settings.ips.tme.language + 언어 + + + + + settings.ips.tme.country + 국가 + + + + + settings.ips.tme.grossPrices + 세금 포함 가격 가져오기 + + + + + settings.ips.mouser + Mouser + + + + + settings.ips.mouser.apiKey + API 키 + + + + + settings.ips.mouser.apiKey.help + <a href="https://eu.mouser.com/api-hub/">https://eu.mouser.com/api-hub/</a>에서 API 키를 등록할 수 있습니다. + + + + + settings.ips.mouser.searchLimit + 검색 제한 + + + + + settings.ips.mouser.searchLimit.help + 단일 검색의 최대 결과 수입니다. 50을 초과할 수 없습니다. + + + + + settings.ips.mouser.searchOptions + 검색 필터 + + + + + settings.ips.mouser.searchOptions.help + 특정 가용성 및/또는 규제 준수 조건을 만족하는 부품만 표시할 수 있습니다. + + + + + settings.ips.mouser.searchOptions.none + 필터 없음 + + + + + settings.ips.mouser.searchOptions.rohs + RoHS 준수 부품만 + + + + + settings.ips.mouser.searchOptions.inStock + 재고 있는 부품만 + + + + + settings.ips.mouser.searchOptions.rohsAndInStock + 재고 있고 RoHS를 준수하는 부품만 + + + + + settings.ips.lcsc + LCSC + + + + + settings.ips.lcsc.help + 경고: LCSC는 공식 API를 제공하지 않습니다. 이 제공자는 웹샵 API를 사용합니다. LCSC가 의도한 사용 방식이 아니므로 언제든 작동이 중단될 수 있으며, 사용에 따른 책임은 본인에게 있습니다. + + + + + settings.ips.lcsc.enabled + 활성화 + + + + + settings.ips.lcsc.currency + 통화 + + + + + settings.system.attachments + 첨부파일 및 파일 + + + + + settings.system.attachments.maxFileSize + 최대 파일 크기 + + + + + settings.system.attachments.maxFileSize.help + 업로드할 수 있는 파일의 최대 크기입니다. PHP 설정에 의해서도 제한된다는 점에 유의하세요. + + + + + settings.system.attachments.allowDownloads + 외부 파일 다운로드 허용 + + + + + settings.system.attachments.allowDownloads.help + 이 옵션을 사용하면 사용자가 URL을 입력해 외부 파일을 Part-DB로 다운로드할 수 있습니다. <b>주의: 사용자가 Part-DB를 통해 인트라넷 자원에 접근할 수 있게 되므로 보안 문제가 될 수 있습니다!</b> + + + + + settings.system.attachments.downloadByDefault + 새 첨부파일 URL을 기본적으로 다운로드 + + + + + settings.system.customization + 사용자 정의 + + + + + settings.system.customization.instanceName + 인스턴스 이름 + + + + + settings.system.customization.instanceName.help + 이 Part-DB 설치의 이름입니다. 이 값은 탐색 바와 제목에 표시됩니다. + + + + + settings.system.customization.banner + 홈페이지 배너 + + + + + settings.system.history + 이력 로그 + + + + + settings.system.history.saveChangedFields + 요소의 어떤 필드가 변경되었는지 로그 항목에 저장 + + + + + settings.system.history.saveOldData + 요소 변경 시 이전 데이터를 로그 항목에 저장 + + + + + settings.system.history.saveNewData + 요소 변경/생성 시 새 데이터를 로그 항목에 저장 + + + + + settings.system.history.saveRemovedData + 요소 삭제 시 삭제된 데이터를 로그 항목에 저장 + + + + + settings.system.customization.theme + 전역 테마 + + + + + settings.system.history.enforceComments + 작업 유형별 메모 강제 + + + + + settings.system.history.enforceComments.description + 이 옵션으로 어떤 작업에서 사용자가 사유를 반드시 입력해야 하는지 지정할 수 있으며, 입력된 사유는 이력에 기록됩니다. + + + + + settings.system.history.enforceComments.type.part_edit + 부품 편집 + + + + + settings.system.history.enforceComments.type.part_create + 부품 생성 + + + + + settings.system.history.enforceComments.type.part_delete + 부품 삭제 + + + + + settings.system.history.enforceComments.type.part_stock_operation + 부품 재고 작업 + + + + + settings.system.history.enforceComments.type.datastructure_edit + 데이터 구조 편집 + + + + + settings.system.history.enforceComments.type.datastructure_create + 데이터 구조 생성 + + + + + settings.system.history.enforceComments.type.datastructure_delete + 데이터 구조 삭제 + + + + + settings.system.privacy.useGravatar + Gravatar 아바타 사용 + + + + + settings.system.privacy.useGravatar.description + 사용자가 아바타 이미지를 지정하지 않은 경우 사용자 이메일 기반의 Gravatar 아바타를 사용합니다. 이 경우 브라우저가 제3자로부터 이미지를 불러옵니다! + + + + + settings.system.privacy.checkForUpdates + Part-DB 업데이트 확인 + + + + + settings.system.privacy.checkForUpdates.description + Part-DB는 GitHub에서 새 버전이 있는지 정기적으로 확인합니다. 원하지 않거나 서버가 인터넷에 연결할 수 없는 경우 여기서 비활성화하세요. + + + + + settings.system.localization.locale + 기본 언어 / 로캘 + + + + + settings.system.localization + 현지화 + + + + + settings.system.localization.timezone + 기본 시간대 + + + + + settings.system.localization.base_currency + 기준 통화 + + + + + settings.system.localization.base_currency_description + 가격 정보와 환율을 저장하는 데 사용되는 통화입니다. 가격 정보에 통화가 설정되지 않은 경우 이 통화로 간주됩니다. +<b>이 값을 변경해도 기존 통화가 변환되지 않는다는 점에 유의하세요. 가격 정보를 이미 추가한 뒤 기본 통화를 변경하면 가격이 잘못 표시됩니다!</b> + + + + + settings.system.privacy + 개인정보 + + + + + settings.title + 서버 설정 + + + + + settings.misc.kicad_eda + KiCad 연동 + + + + + settings.misc.kicad_eda.category_depth + 카테고리 깊이 + + + + + settings.misc.kicad_eda.category_depth.help + 이 값은 KiCad에서 표시되는 카테고리 트리의 깊이를 결정합니다. 0이면 최상위 카테고리만 표시됩니다. 0보다 큰 값으로 설정하면 더 많은 계층이 표시됩니다. -1로 설정하면 Part-DB의 모든 부품이 KiCad에서 단일 카테고리로 표시됩니다. + + + + + settings.misc.kicad_eda.datasheet_link + 데이터시트 필드를 PDF로 연결 + + + + + settings.misc.kicad_eda.datasheet_link.help + 활성화하면 KiCad의 데이터시트 필드가 실제 PDF 파일(존재하는 경우)로 연결됩니다. 비활성화하면 Part-DB 페이지로 연결됩니다. Part-DB 페이지 링크는 별도의 "Part-DB URL" 필드로 항상 제공됩니다. + + + + + settings.misc.kicad_eda.editor.title + KiCad 자동완성 목록 + + + + + settings.misc.kicad_eda.editor.link + 자동완성 설정 + + + + + settings.misc.kicad_eda.editor.description + KiCad 자동완성이 자동 생성된 기본 목록을 사용할지, 사용자 정의 파일을 사용할지 설정합니다. 사용자 정의 파일은 여기서 편집할 수 있으며, 기본 파일은 참고용으로 읽기 전용으로 표시됩니다. + + + + + settings.misc.kicad_eda.editor.footprints + 풋프린트 목록 + + + + + settings.misc.kicad_eda.editor.footprints.help + 한 줄에 하나씩 입력합니다. KiCad 풋프린트 필드의 자동완성 제안으로 사용됩니다. + + + + + settings.misc.kicad_eda.editor.symbols + 심볼 목록 + + + + + settings.misc.kicad_eda.editor.symbols.help + 한 줄에 하나씩 입력합니다. KiCad 심볼 필드의 자동완성 제안으로 사용됩니다. + + + + + settings.misc.kicad_eda.use_custom_list + 사용자 정의 자동완성 목록 사용 + + + + + settings.misc.kicad_eda.use_custom_list.help + 활성화하면 KiCad 자동완성이 자동 생성된 기본 파일 대신 public/kicad/footprints_custom.txt와 public/kicad/symbols_custom.txt를 사용합니다. + + + + + settings.misc.kicad_eda.editor.custom_footprints + 사용자 정의 풋프린트 목록 + + + + + settings.misc.kicad_eda.editor.custom_symbols + 사용자 정의 심볼 목록 + + + + + settings.misc.kicad_eda.editor.default_footprints + 기본 풋프린트 목록 + + + + + settings.misc.kicad_eda.editor.default_symbols + 기본 심볼 목록 + + + + + settings.misc.kicad_eda.editor.default_files_help + 참고용으로만 표시되는 자동 생성 파일입니다. 변경은 사용자 정의 목록에서 해야 합니다. + + + + + settings.behavior.sidebar + 사이드바 + + + + + settings.behavior.sidebar.items + 사이드바 항목 + + + + + settings.behavior.sidebar.items.help + 기본적으로 사이드바에 표시되는 메뉴입니다. 항목 순서는 드래그 앤 드롭으로 변경할 수 있습니다. + + + + + settings.behavior.sidebar.rootNodeEnabled + 루트 노드 사용 + + + + + settings.behavior.sidebar.rootNodeEnabled.help + 활성화하면 모든 최상위 카테고리, 풋프린트 등이 하나의 루트 노드 아래에 배치됩니다. 비활성화하면 최상위 카테고리가 메뉴에 바로 배치됩니다. + + + + + settings.behavior.sidebar.rootNodeExpanded + 루트 노드 기본 펼침 + + + + + settings.behavior.table + 테이블 + + + + + settings.behavior.table.default_page_size + 기본 페이지 크기 + + + + + settings.behavior.table.default_page_size.help + 전체 페이지 테이블의 기본 페이지 크기입니다. -1로 설정하면 페이지네이션 없이 모든 항목이 표시됩니다. + + + + + settings.behavior.table.parts_default_columns + 부품 테이블 기본 열 + + + + + settings.behavior.table.parts_default_columns.help + 부품 테이블에 기본으로 표시할 열입니다. 항목 순서는 드래그 앤 드롭으로 변경할 수 있습니다. + + + + + settings.ips.oemsecrets + OEMSecrets + + + + + settings.ips.oemsecrets.keepZeroPrices + 가격이 0인 판매처 유지 + + + + + settings.ips.oemsecrets.keepZeroPrices.help + 이 옵션을 설정하지 않으면 가격이 0인 판매처는 유효하지 않은 것으로 간주되어 제외됩니다 + + + + + settings.ips.oemsecrets.parseParams + 설명에서 파라미터 추출 + + + + + settings.ips.oemsecrets.parseParams.help + 활성화하면 제공자가 OEMSecrets의 비구조화된 설명을 구조화된 파라미터로 변환하려 시도합니다. 설명의 각 파라미터는 "...;name1:value1;name2:value2" 형식이어야 합니다 + + + + + settings.ips.oemsecrets.sortMode + 결과 정렬 방식 + + + + + settings.ips.oemsecrets.sortMode.N + 없음 + + + + + settings.ips.oemsecrets.sortMode.C + 완성도 (상세 정보가 많은 항목 우선) + + + + + settings.ips.oemsecrets.sortMode.M + 완성도 및 제조사 이름 + + + + + entity.export.flash.error.no_entities + 내보낼 항목이 없습니다! + + + + + attachment.table.internal_file + 내부 파일 + + + + + attachment.table.external_link + 외부 링크 + + + + + attachment.view_external.view_at + %host%에서 보기 + + + + + attachment.view_external + 외부 버전 보기 + + + + + part.table.actions.error + 동작 수행 중 %count%건의 오류가 발생했습니다: + + + + + part.table.actions.error_detail + %part_name% (ID: %part_id%): %message% + + + + + part_list.action.action.change_location + 위치 변경 (단일 로트 부품만) + + + + + parts.table.action_handler.error.part_lots_multiple + 이 부품은 두 개 이상의 재고를 가지고 있습니다. 어떤 재고를 선택할지 직접 위치를 변경하세요. + + + + + settings.ips.reichelt + Reichelt + + + + + settings.ips.reichelt.help + Reichelt.com은 공식 API를 제공하지 않으므로 이 정보 제공자는 웹사이트를 스크래핑하여 정보를 추출합니다. 언제든 작동이 중단될 수 있으며, 사용에 따른 책임은 본인에게 있습니다. + + + + + settings.ips.reichelt.include_vat + 가격에 부가세 포함 + + + + + settings.ips.pollin + Pollin + + + + + settings.ips.pollin.help + Pollin.de는 공식 API를 제공하지 않으므로 이 정보 제공자는 웹사이트를 스크래핑하여 정보를 추출합니다. 언제든 작동이 중단될 수 있으며, 사용에 따른 책임은 본인에게 있습니다. + + + + + settings.behavior.sidebar.rootNodeRedirectsToNewEntity + 루트 노드를 새 항목 페이지로 연결 + + + + + settings.ips.digikey + Digikey + + + + + settings.ips.digikey.client_id + 클라이언트 ID + + + + + settings.ips.digikey.secret + 시크릿 + + + + + settings.ips.octopart + Octopart / Nexar + + + + + settings.ips.octopart.searchLimit + 결과 수 + + + + + settings.ips.octopart.searchLimit.help + 검색 시 Octopart에서 가져올 결과 수입니다 (API 한도에 포함된다는 점에 유의하세요) + + + + + settings.ips.octopart.onlyAuthorizedSellers + 공인 판매자만 + + + + + settings.ips.octopart.onlyAuthorizedSellers.help + 비공인 판매 정보를 결과에 포함하려면 false로 설정하세요 + + + + + settings.misc.exchange_rate + 환율 + + + + + settings.misc.exchange_rate.fixer_api_key + Fixer.io API 키 + + + + + settings.misc.exchange_rate.fixer_api_key.help + 유로 외 통화 간 환율이 필요한 경우 fixer.io의 API 키를 여기에 입력할 수 있습니다. + + + + + settings.misc.ipn_suggest + 부품 IPN 제안 + + + + + settings.misc.ipn_suggest.regex + 정규식 + + + + + settings.misc.ipn_suggest.regex_help + 도움말 텍스트 + + + + + settings.misc.ipn_suggest.regex_help_description + 정규식 형식 지정에 대한 사용자 도움말 텍스트를 직접 정의합니다. + + + + + settings.misc.ipn_suggest.autoAppendSuffix + IPN 값이 다른 부품에서 이미 사용 중이면 증가 접미사 추가 + + + + + settings.misc.ipn_suggest.suggestPartDigits + 증가 자릿수 + + + + + settings.misc.ipn_suggest.useDuplicateDescription + 부품 설명을 사용하여 다음 사용 가능한 IPN 찾기 + + + + + settings.misc.ipn_suggest.suggestPartDigits.help + IPN(내부 부품 번호) 제안 시스템에서 부품의 증가 번호에 사용되는 자릿수입니다. + + + + + settings.behavior.part_info + 부품 정보 페이지 + + + + + settings.behavior.part_info.show_part_image_overlay + 이미지 오버레이 표시 + + + + + settings.behavior.part_info.show_part_image_overlay.help + 부품 이미지 갤러리에 마우스를 올리면 첨부파일 상세 정보가 담긴 이미지 오버레이를 표시합니다. + + + + + settings.behavior.keybindings + 단축키 + + + + + settings.behavior.keybindings.enable_special_characters + 특수 문자 단축키 활성화 + + + + + settings.behavior.keybindings.enable_special_characters.help + 텍스트 입력란에서 Alt+키 단축키로 특수 문자(그리스 문자, 수학 기호 등)를 입력할 수 있게 합니다. 키보드 배열이나 시스템 단축키와 충돌하는 경우 비활성화하세요. + + + + + perm.config.change_system_settings + 시스템 설정 변경 + + + + + tree.tools.system.settings + 시스템 설정 + + + + + tree.tools.system.update_manager + 업데이트 관리자 + + + + + settings.tooltip.overrideable_by_env + 이 매개변수의 값은 환경 변수 "%env%"를 설정하여 재정의할 수 있습니다. + + + + + settings.flash.saved + 설정이 저장되었습니다. + + + + + settings.flash.invalid + 설정이 유효하지 않습니다. 입력을 확인하세요! + + + + + info_providers.settings.title + 정보 제공자 설정 + + + + + form.apikey.redacted + 보안상의 이유로 숨김 처리됨 + + + + + project.bom_import.map_fields + 필드 매핑 + + + + + project.bom_import.map_fields.help + CSV 열이 BOM 필드에 매핑되는 방식을 설정합니다 + + + + + project.bom_import.delimiter + 구분자 + + + + + project.bom_import.delimiter.comma + 쉼표 (,) + + + + + project.bom_import.delimiter.semicolon + 세미콜론 (;) + + + + + project.bom_import.delimiter.tab + + + + + + project.bom_import.field_mapping.title + 필드 매핑 + + + + + project.bom_import.field_mapping.csv_field + CSV 필드 + + + + + project.bom_import.field_mapping.maps_to + 매핑 대상 + + + + + project.bom_import.field_mapping.suggestion + 제안 + + + + + project.bom_import.field_mapping.priority + 우선순위 + + + + + project.bom_import.field_mapping.priority_help + 우선순위 (낮은 숫자 = 높은 우선순위) + + + + + project.bom_import.field_mapping.priority_short + P + + + + + project.bom_import.field_mapping.priority_note + 우선순위 팁: 낮은 숫자 = 높은 우선순위. 기본 우선순위는 10입니다. 가장 중요한 필드에는 1-9, 일반 우선순위에는 10 이상을 사용하세요. + + + + + project.bom_import.field_mapping.summary + 필드 매핑 요약 + + + + + project.bom_import.field_mapping.select_to_see_summary + 요약을 보려면 필드 매핑을 선택하세요 + + + + + project.bom_import.field_mapping.no_suggestion + 제안 없음 + + + + + project.bom_import.preview + 미리보기 + + + + + project.bom_import.flash.session_expired + 가져오기 세션이 만료되었습니다. 파일을 다시 업로드하세요. + + + + + project.bom_import.field_mapping.ignore + 무시 + + + + + project.bom_import.type.kicad_schematic + KiCad 회로도 BOM (CSV 파일) + + + + + common.back + 뒤로 + + + + + project.bom_import.validation.errors.required_field_missing + %line%줄: 필수 필드 "%field%"가 없거나 비어 있습니다. 이 필드가 매핑되어 있고 데이터가 있는지 확인하세요. + + + + + project.bom_import.validation.errors.no_valid_designators + %line%줄: 지정자 필드에 유효한 부품 참조가 없습니다. 예상 형식: "R1,C2,U3" 또는 "R1, C2, U3". + + + + + project.bom_import.validation.warnings.unusual_designator_format + %line%줄: 일부 부품 참조의 형식이 특이할 수 있습니다: %designators%. 예상 형식: "R1", "C2", "U3" 등. + + + + + project.bom_import.validation.errors.duplicate_designators + %line%줄: 중복된 부품 참조가 있습니다: %designators%. 각 부품은 줄당 한 번만 참조되어야 합니다. + + + + + project.bom_import.validation.errors.invalid_quantity + %line%줄: 수량 "%quantity%"는 유효한 숫자가 아닙니다. 숫자 값을 입력하세요 (예: 1, 2.5, 10). + + + + + project.bom_import.validation.errors.quantity_zero_or_negative + %line%줄: 수량은 0보다 커야 합니다. 입력값: %quantity%. + + + + + project.bom_import.validation.warnings.quantity_unusually_high + %line%줄: 수량 %quantity%이(가) 비정상적으로 높아 보입니다. 올바른지 확인하세요. + + + + + project.bom_import.validation.warnings.quantity_not_whole_number + %line%줄: 수량 %quantity%은(는) 정수가 아니지만 부품 참조가 %count%개 있습니다. 불일치일 수 있습니다. + + + + + project.bom_import.validation.errors.quantity_designator_mismatch + %line%줄: 수량과 부품 참조가 일치하지 않습니다. 수량: %quantity%, 참조: %count%개 (%designators%). 이 둘은 일치해야 합니다. 수량을 조정하거나 부품 참조를 확인하세요. + + + + + project.bom_import.validation.errors.invalid_partdb_id + %line%줄: Part-DB ID "%id%"는 유효한 숫자가 아닙니다. 숫자 ID를 입력하세요. + + + + + project.bom_import.validation.errors.partdb_id_zero_or_negative + %line%줄: Part-DB ID는 0보다 커야 합니다. 입력값: %id%. + + + + + project.bom_import.validation.warnings.partdb_id_not_found + %line%줄: Part-DB ID %id%을(를) 데이터베이스에서 찾을 수 없습니다. 부품은 기존 부품과 연결 없이 가져옵니다. + + + + + project.bom_import.validation.info.partdb_link_success + %line%줄: Part-DB 부품 "%name%" (ID: %id%)에 연결되었습니다. + + + + + project.bom_import.validation.warnings.no_component_name + %line%줄: 부품 이름/명칭(MPN, 명칭 또는 값)이 없습니다. 부품 이름이 "Unknown Component"로 지정됩니다. + + + + + project.bom_import.validation.warnings.package_name_too_long + %line%줄: 패키지 이름 "%package%"이(가) 비정상적으로 깁니다. 올바른지 확인하세요. + + + + + project.bom_import.validation.info.library_prefix_detected + %line%줄: 패키지 "%package%"에 라이브러리 접두사가 포함되어 있습니다. 가져오기 시 자동으로 제거됩니다. + + + + + project.bom_import.validation.errors.non_numeric_field + %line%줄: 필드 "%field%"에 숫자가 아닌 값 "%value%"이(가) 있습니다. 유효한 숫자를 입력하세요. + + + + + project.bom_import.validation.info.import_summary + 가져오기 요약: 총 %total%개 항목, 유효 %valid%개, 문제 있음 %invalid%개. + + + + + project.bom_import.validation.errors.summary + 가져오기를 진행하기 전에 수정해야 하는 유효성 검사 오류 %count%건이 발견되었습니다. + + + + + project.bom_import.validation.warnings.summary + 경고 %count%건이 발견되었습니다. 진행하기 전에 검토하세요. + + + + + project.bom_import.validation.info.all_valid + 모든 항목이 유효성 검사를 통과했습니다! + + + + + project.bom_import.validation.summary + 유효성 검사 요약 + + + + + project.bom_import.validation.total_entries + 전체 항목 + + + + + project.bom_import.validation.valid_entries + 유효한 항목 + + + + + project.bom_import.validation.invalid_entries + 유효하지 않은 항목 + + + + + project.bom_import.validation.success_rate + 성공률 + + + + + project.bom_import.validation.errors.title + 유효성 검사 오류 + + + + + project.bom_import.validation.errors.description + 가져오기를 진행하려면 다음 오류를 수정해야 합니다: + + + + + project.bom_import.validation.warnings.title + 유효성 검사 경고 + + + + + project.bom_import.validation.warnings.description + 진행하기 전에 다음 경고를 검토하세요: + + + + + project.bom_import.validation.info.title + 정보 + + + + + project.bom_import.validation.details.title + 상세 유효성 검사 결과 + + + + + project.bom_import.validation.details.line + + + + + + project.bom_import.validation.details.status + 상태 + + + + + project.bom_import.validation.details.messages + 메시지 + + + + + project.bom_import.validation.details.valid + 유효 + + + + + project.bom_import.validation.details.invalid + 유효하지 않음 + + + + + project.bom_import.validation.all_valid + 모든 항목이 유효하며 가져올 준비가 되었습니다! + + + + + project.bom_import.validation.fix_errors + 가져오기를 진행하기 전에 유효성 검사 오류를 수정하세요. + + + + + project.bom_import.type.generic_csv + 일반 CSV + + + + + label_generator.update_profile + 현재 설정으로 프로필 업데이트 + + + + + label_generator.profile_updated + 라벨 프로필이 업데이트되었습니다. + + + + + settings.behavior.hompepage.items + 홈페이지 항목 + + + + + settings.behavior.homepage.items.help + 홈페이지에 표시할 항목입니다. 순서는 드래그 앤 드롭으로 변경할 수 있습니다. + + + + + settings.system.customization.showVersionOnHomepage + 홈페이지에 Part-DB 버전 표시 + + + + + settings.behavior.part_info.extract_params_from_description + 부품 설명에서 파라미터 추출 + + + + + settings.behavior.part_info.extract_params_from_notes + 부품 메모에서 파라미터 추출 + + + + + settings.ips.default_providers + 기본 검색 제공자 + + + + + settings.ips.general + 일반 설정 + + + + + settings.ips.default_providers.help + 부품 제공자 검색 시 이 제공자들이 미리 선택됩니다. + + + + + settings.behavior.table.preview_image_max_width + 미리보기 이미지 최대 너비 (px) + + + + + settings.behavior.table.preview_image_min_width + 미리보기 이미지 최소 너비 (px) + + + + + info_providers.bulk_import.step1.title + 대량 정보 제공자 가져오기 - 1단계 + + + + + info_providers.bulk_import.parts_selected + 개 부품 선택됨 + + + + + info_providers.bulk_import.step1.global_mapping_description + 선택한 모든 부품에 적용할 필드 매핑을 설정합니다. 예: "MPN → LCSC + Mouser"는 각 부품의 MPN 필드로 LCSC와 Mouser 제공자를 검색한다는 의미입니다. + + + + + info_providers.bulk_import.selected_parts + 선택된 부품 + + + + + info_providers.bulk_import.field_mappings + 필드 매핑 + + + + + info_providers.bulk_import.field_mappings_help + 어떤 부품 필드로 어떤 정보 제공자를 검색할지 정의합니다. 여러 매핑은 조합되어 적용됩니다. + + + + + info_providers.bulk_import.add_mapping + 매핑 추가 + + + + + info_providers.bulk_import.search_results.title + 검색 결과 + + + + + info_providers.bulk_import.errors + 오류 + + + + + info_providers.bulk_import.results_found + 결과 %count%건 발견 + + + + + info_providers.bulk_import.source_field + 소스 필드 + + + + + info_providers.bulk_import.view_existing + 기존 항목 보기 + + + + + info_providers.bulk_search.search_field + 검색 필드 + + + + + info_providers.bulk_search.providers + 정보 제공자 + + + + + info_providers.bulk_import.actions.label + 동작 + + + + + info_providers.bulk_search.providers.help + 부품에 이 필드가 있을 때 검색할 정보 제공자를 선택하세요. + + + + + info_providers.bulk_search.submit + 모든 부품 검색 + + + + + info_providers.bulk_search.field.select + 검색 기준 필드 선택 + + + + + info_providers.bulk_search.field.mpn + 제조사 부품 번호 (MPN) + + + + + info_providers.bulk_search.field.name + 부품 이름 + + + + + part_list.action.action.info_provider + 정보 제공자 + + + + + part_list.action.bulk_info_provider_import + 대량 정보 제공자 가져오기 + + + + + part_list.action.group.eda + EDA / KiCad + + + + + part_list.action.batch_edit_eda + EDA 필드 일괄 편집 + + + + + batch_eda.title + EDA 필드 일괄 편집 + + + + + batch_eda.description + 선택한 부품 %count%개의 EDA/KiCad 필드를 편집합니다. 변경할 각 필드 옆의 "적용" 체크박스를 선택하세요. + + + + + batch_eda.show_parts + 선택된 부품 보기 + + + + + batch_eda.apply_hint + "적용" 체크박스를 선택한 필드만 변경됩니다. 선택하지 않은 필드는 그대로 유지됩니다. + + + + + batch_eda.apply + 적용 + + + + + batch_eda.field + 필드 + + + + + batch_eda.value + + + + + + batch_eda.submit + 선택한 부품에 적용 + + + + + batch_eda.cancel + 취소 + + + + + batch_eda.success + EDA 필드가 업데이트되었습니다. + + + + + batch_eda.no_parts_selected + 일괄 편집할 부품이 선택되지 않았습니다. + + + + + info_providers.bulk_import.step1.spn_recommendation + 더 나은 결과를 위해 SPN(판매처 부품 번호) 사용을 권장합니다. 각 판매처의 SPN을 사용하려면 판매처별 매핑을 추가하세요. + + + + + info_providers.bulk_import.update_part + 부품 업데이트 + + + + + info_providers.bulk_import.back_to_jobs + 작업 목록으로 + + + + + info_providers.bulk_import.back_to_parts + 부품 목록으로 + + + + + info_providers.bulk_import.job_completed + 작업 완료! + + + + + info_providers.bulk_import.job_completed.description + 모든 부품이 처리되었습니다. 아래에서 결과를 검토하거나 부품 목록으로 돌아갈 수 있습니다. + + + + + info_providers.bulk_import.recommended + 상위 + + + + + info_providers.bulk_import.exact_match + 이름 정확히 일치 + + + + + info_providers.bulk_import.mpn_match + MPN 일치 + + + + + info_providers.bulk_import.active_jobs + 활성 작업 + + + + + info_providers.bulk_import.finished_jobs + 기록 + + + + + info_providers.bulk_import.spn_match + SPN 일치 + + + + + info_providers.bulk_import.match + 일치 + + + + + info_providers.bulk_import.quick_apply + 빠른 적용 + + + + + info_providers.bulk_import.quick_apply.tooltip + 편집 양식을 열지 않고 이 제공자 결과를 부품에 적용합니다 + + + + + info_providers.bulk_import.quick_apply_all + 모두 적용 (상위 결과) + + + + + info_providers.bulk_import.quick_apply_all.tooltip + 개별 검토 없이 최상위 검색 결과를 대기 중인 모든 부품에 적용합니다 + + + + + info_providers.bulk_import.prefetch_details + 상세 정보 미리 가져오기 + + + + + info_providers.bulk_import.prefetch_details_help + 모든 결과의 상세 정보를 미리 가져옵니다. 시간이 더 걸리지만 부품 업데이트 작업 속도가 빨라집니다. + + + + + info_providers.bulk_import.step2.title + 정보 제공자에서 대량 가져오기 + + + + + info_providers.bulk_import.step2.card_title + 부품 %count%개 대량 가져오기 - %date% + + + + + info_providers.bulk_import.parts + 개 부품 + + + + + info_providers.bulk_import.results + 개 결과 + + + + + info_providers.bulk_import.created_at + 생성일 + + + + + info_providers.bulk_import.status.in_progress + 진행 중 + + + + + info_providers.bulk_import.status.completed + 완료됨 + + + + + info_providers.bulk_import.status.failed + 실패함 + + + + + info_providers.bulk_import.table.name + 이름 + + + + + info_providers.bulk_import.table.description + 설명 + + + + + info_providers.bulk_import.table.manufacturer + 제조사 + + + + + info_providers.bulk_import.table.provider + 제공자 + + + + + info_providers.bulk_import.table.source_field + 소스 필드 + + + + + info_providers.bulk_import.back + 뒤로 + + + + + info_providers.bulk_import.progress + 진행 상황: + + + + + info_providers.bulk_import.status.pending + 대기 중 + + + + + info_providers.bulk_import.completed + 완료 + + + + + info_providers.bulk_import.skipped + 건너뜀 + + + + + info_providers.bulk_import.mark_completed + 완료로 표시 + + + + + info_providers.bulk_import.mark_skipped + 건너뜀으로 표시 + + + + + info_providers.bulk_import.mark_pending + 대기 중으로 표시 + + + + + info_providers.bulk_import.skip_reason + 건너뛴 이유 + + + + + info_providers.bulk_import.editing_part + 대량 가져오기의 일부로 부품 편집 중 + + + + + info_providers.bulk_import.complete + 완료 + + + + + info_providers.bulk_import.existing_jobs + 기존 작업 + + + + + info_providers.bulk_import.job_name + 작업 이름 + + + + + info_providers.bulk_import.parts_count + 부품 수 + + + + + info_providers.bulk_import.results_count + 결과 수 + + + + + info_providers.bulk_import.progress_label + 진행 상황: %current%/%total% + + + + + info_providers.bulk_import.manage_jobs + 대량 가져오기 작업 관리 + + + + + info_providers.bulk_import.view_results + 결과 보기 + + + + + info_providers.bulk_import.status + 상태 + + + + + info_providers.bulk_import.manage_jobs_description + 모든 대량 가져오기 작업을 보고 관리합니다. 새 작업을 만들려면 부품을 선택하고 "정보 제공자에서 대량 가져오기"를 클릭하세요. + + + + + info_providers.bulk_import.no_jobs_found + 대량 가져오기 작업이 없습니다. + + + + + info_providers.bulk_import.create_first_job + 부품 테이블에서 여러 부품을 선택하고 "대량 정보 제공자 가져오기" 옵션을 선택하여 첫 대량 가져오기 작업을 만들어 보세요. + + + + + info_providers.bulk_import.confirm_delete_job + 정말 이 작업을 삭제하시겠습니까? + + + + + info_providers.bulk_import.job_name_template + 부품 %count%개 대량 가져오기 + + + + + info_providers.bulk_import.step2.instructions.title + 대량 가져오기 사용 방법 + + + + + info_providers.bulk_import.step2.instructions.description + 다음 단계에 따라 부품을 효율적으로 업데이트하세요: + + + + + info_providers.bulk_import.step2.instructions.step1 + "부품 업데이트"를 클릭하여 판매처 데이터로 부품을 편집하세요 + + + + + info_providers.bulk_import.step2.instructions.step2 + 필요에 따라 부품 정보를 검토하고 수정하세요. 참고: 변경 사항을 저장하려면 "저장"을 두 번 클릭해야 합니다. + + + + + info_providers.bulk_import.step2.instructions.step3 + "완료"를 클릭하여 부품을 완료로 표시하고 이 개요로 돌아오세요 + + + + + info_providers.bulk_import.created_by + 생성자 + + + + + info_providers.bulk_import.completed_at + 완료 시각 + + + + + info_providers.bulk_import.action.label + 동작 + + + + + info_providers.bulk_import.action.delete + 삭제 + + + + + info_providers.bulk_import.status.active + 활성 + + + + + info_providers.bulk_import.progress.title + 진행 상황 + + + + + info_providers.bulk_import.progress.completed_text + %completed% / %total% 완료 + + + + + info_providers.bulk_import.status.stopped + 중지됨 + + + + + info_providers.bulk_import.action.stop + 중지 + + + + + info_providers.bulk_import.confirm_stop_job + 정말 이 작업을 중지하시겠습니까? + + + + + part.filter.in_bulk_import_job + 대량 가져오기 작업에 포함됨 + + + + + part.filter.bulk_import_job_status + 대량 가져오기 작업 상태 + + + + + part.filter.bulk_import_part_status + 대량 가져오기 부품 상태 + + + + + part.edit.tab.bulk_import + 대량 가져오기 작업 + + + + + bulk_import.status.pending + 대기 중 + + + + + bulk_import.status.in_progress + 진행 중 + + + + + bulk_import.status.completed + 완료됨 + + + + + bulk_import.status.stopped + 중지됨 + + + + + bulk_import.status.failed + 실패함 + + + + + bulk_import.part_status.pending + 대기 중 + + + + + bulk_import.part_status.completed + 완료됨 + + + + + bulk_import.part_status.skipped + 건너뜀 + + + + + bulk_import.part_status.failed + 실패함 + + + + + bulk_info_provider_import_job.label + 대량 정보 제공자 가져오기 + + + + + bulk_info_provider_import_job_part.label + 대량 가져오기 작업 부품 + + + + + info_providers.bulk_search.priority + 우선순위 + + + + + info_providers.bulk_search.priority.help + 낮은 숫자 = 높은 우선순위. 같은 우선순위 = 결과 조합. 다른 우선순위 = 가장 높은 것부터 시도하고, 결과가 없으면 다음으로 대체합니다. + + + + + info_providers.bulk_import.priority_system.title + 우선순위 시스템 + + + + + info_providers.bulk_import.priority_system.description + 낮은 숫자 = 높은 우선순위. 같은 우선순위 = 결과 조합. 다른 우선순위 = 가장 높은 것부터 시도하고, 결과가 없으면 다음으로 대체합니다. + + + + + info_providers.bulk_import.priority_system.example + 예: 우선순위 1: "LCSC SPN → LCSC", 우선순위 2: "MPN → LCSC + Mouser", 우선순위 3: "이름 → 모든 제공자" + + + + + info_providers.bulk_import.search.submit + 제공자 검색 + + + + + info_providers.bulk_import.research.title + 부품 재검색 + + + + + info_providers.bulk_import.research.description + 업데이트된 정보(예: 새 MPN)로 부품을 다시 검색합니다. 원래 검색과 동일한 필드 매핑을 사용합니다. + + + + + info_providers.bulk_import.research.all_pending + 대기 중인 모든 부품 재검색 + + + + + info_providers.bulk_import.research.part + 재검색 + + + + + info_providers.bulk_import.research.part_tooltip + 업데이트된 정보로 이 부품을 재검색합니다 + + + + + info_providers.bulk_import.max_mappings_reached + 최대 매핑 수에 도달했습니다 + + + + + settings.system + 시스템 + + + + + settings.behavior + 동작 + + + + + settings.ips + 정보 제공자 + + + + + settings.misc + 기타 + + + + + settings.system.localization.language_menu_entries + 언어 메뉴 항목 + + + + + settings.system.localization.language_menu_entries.description + 언어 드롭다운 메뉴에 표시할 언어입니다. 순서는 드래그 앤 드롭으로 변경할 수 있습니다. 비워 두면 사용 가능한 모든 언어가 표시됩니다. + + + + + project.builds.no_bom_entries + 프로젝트에 BOM 항목이 없습니다 + + + + + settings.behavior.sidebar.data_structure_nodes_table_include_children + 테이블에 하위 노드를 기본으로 포함 + + + + + settings.behavior.sidebar.data_structure_nodes_table_include_children.help + 선택하면 카테고리, 풋프린트 등의 부품 테이블에 하위 카테고리의 모든 부품이 포함됩니다. 선택하지 않으면 클릭한 노드에 직접 속한 부품만 표시됩니다. + + + + + info_providers.search.error.oauth_reconnect + 다음 제공자의 OAuth를 다시 연결해야 합니다: %provider% +제공자 정보 목록에서 다시 연결할 수 있습니다. + + + + + settings.misc.ipn_suggest.useDuplicateDescription.help + 활성화하면 부품 설명으로 동일한 설명을 가진 기존 부품을 찾고, 해당 부품의 숫자 접미사를 증가시켜 제안 목록의 다음 사용 가능한 IPN을 결정합니다. + + + + + settings.misc.ipn_suggest.regex.help + 모든 IPN이 만족해야 하는 PCRE 호환 정규 표현식입니다. 모든 값을 IPN으로 허용하려면 비워 두세요. + + + + + user.labelp + 사용자 + + + + + currency.labelp + 통화 + + + + + measurement_unit.labelp + 측정 단위 + + + + + attachment_type.labelp + 첨부파일 형식 + + + + + label_profile.labelp + 라벨 프로필 + + + + + part_custom_state.labelp + 사용자 정의 부품 상태 + + + + + group.labelp + 그룹 + + + + + settings.synonyms.type_synonym.type + 유형 + + + + + settings.synonyms.type_synonym.language + 언어 + + + + + settings.synonyms.type_synonym.translation_singular + 번역 (단수) + + + + + settings.synonyms.type_synonym.translation_plural + 번역 (복수) + + + + + settings.synonyms.type_synonym.add_entry + 항목 추가 + + + + + settings.synonyms.type_synonym.remove_entry + 항목 제거 + + + + + settings.synonyms + 동의어 + + + + + settings.synonyms.help + 동의어 시스템을 사용하면 Part-DB가 특정 항목을 부르는 명칭을 재정의할 수 있습니다. 특히 Part-DB를 전자부품 외의 용도로 사용할 때 유용합니다. +이 시스템은 현재 실험적이며 여기서 정의한 동의어가 모든 곳에 표시되지 않을 수 있습니다. + + + + + settings.synonyms.type_synonyms + 유형 동의어 + + + + + settings.synonyms.type_synonyms.help + 유형 동의어를 사용하면 내장 데이터 유형의 라벨을 바꿀 수 있습니다. 예를 들어 "풋프린트"를 다른 이름으로 바꿀 수 있습니다. + + + + + log.element_edited.changed_fields.part_ipn_prefix + IPN 접두사 + + + + + part.labelp + 부품 + + + + + project_bom_entry.labelp + BOM 항목 + + + + + part_lot.labelp + 부품 로트 + + + + + orderdetail.labelp + 주문 정보 + + + + + pricedetail.labelp + 가격 정보 + + + + + parameter.labelp + 파라미터 + + + + + part_association.labelp + 부품 연관 + + + + + bulk_info_provider_import_job.labelp + 대량 정보 제공자 가져오기 + + + + + bulk_info_provider_import_job_part.labelp + 대량 가져오기 작업 부품 + + + + + password_toggle.hide + 숨기기 + + + + + password_toggle.show + 표시 + + + + + settings.misc.ipn_suggest.regex.help.placeholder + 예: 형식: "-"로 구분된 3~4개의 영숫자 구간(임의 개수) 뒤에 "-"와 숫자 4자리, 예: PCOM-RES-0001 + + + + + part.edit.tab.advanced.ipn.prefix.global_prefix + 모든 부품에 공통으로 적용되는 전역 IPN 접두사 + + + + + settings.misc.ipn_suggest.fallbackPrefix + 대체 접두사 + + + + + settings.misc.ipn_suggest.fallbackPrefix.help + 카테고리에 접두사가 정의되지 않은 경우 사용되는 IPN 접두사입니다. + + + + + settings.misc.ipn_suggest.numberSeparator + 번호 구분자 + + + + + settings.misc.ipn_suggest.numberSeparator.help + 접두사와 IPN 번호를 구분하는 데 사용되는 구분 문자입니다. + + + + + settings.misc.ipn_suggest.categorySeparator + 카테고리 구분자 + + + + + settings.misc.ipn_suggest.categorySeparator.help + 서로 다른 계층의 카테고리 접두사를 구분하는 데 사용되는 구분 문자입니다. + + + + + settings.misc.ipn_suggest.globalPrefix + 전역 접두사 + + + + + settings.misc.ipn_suggest.globalPrefix.help + 활성화하면 모든 카테고리의 부품에 공통으로 적용되는 이 전역 접두사로 IPN을 생성하는 옵션이 제공됩니다. + + + + + Do not remove! Used for datatables rendering. + + + datatable.datatable.lengthMenu + _MENU_ + + + + + settings.ips.buerklin + Buerklin + + + + + settings.ips.buerklin.username + 사용자 이름 + + + + + settings.ips.buerklin.help + Buerklin API 접근 제한: +IP 주소당 분당 100회 요청 +Buerklin API 인증 서버: +IP 주소당 분당 10회 요청 + + + + + project.bom.part_id + [Part] ID + + + + + info_providers.search.error.general_exception + 정보 제공자에서 부품을 가져오는 중 알 수 없는 오류: %type%. 제공자가 올바르게 설정되어 있고 접근 키가 올바른지 확인하세요. 자세한 내용은 서버 로그를 참고하세요. + + + + + info_providers.search.error.transport_exception + 제공자에서 정보를 가져오는 중 전송 오류가 발생했습니다. 서버가 인터넷에 연결되어 있는지 확인하세요. 자세한 내용은 서버 로그를 참고하세요. + + + + + update_manager.title + 업데이트 관리자 + + + + + update_manager.new + 신규 + + + + + update_manager.current_installation + 현재 설치 + + + + + update_manager.version + 버전 + + + + + update_manager.installation_type + 설치 유형 + + + + + update_manager.git_branch + Git 브랜치 + + + + + update_manager.git_commit + Git 커밋 + + + + + update_manager.local_changes + 로컬 변경 사항 + + + + + update_manager.commits_behind + 뒤처진 커밋 수 + + + + + update_manager.auto_update_supported + 자동 업데이트 지원 + + + + + update_manager.refresh + 새로고침 + + + + + update_manager.latest_release + 최신 릴리스 + + + + + update_manager.tag + 태그 + + + + + update_manager.released + 릴리스 일자 + + + + + update_manager.release_notes + 릴리스 노트 + + + + + update_manager.view + 보기 + + + + + update_manager.view_on_github + GitHub에서 보기 + + + + + update_manager.view_release + 릴리스 보기 + + + + + update_manager.could_not_fetch_releases + 릴리스 정보를 가져올 수 없습니다. 인터넷 연결을 확인하세요. + + + + + update_manager.how_to_update + 업데이트 방법 + + + + + update_manager.cli_instruction + Part-DB를 업데이트하려면 터미널에서 다음 명령 중 하나를 실행하세요: + + + + + update_manager.check_for_updates + 업데이트 확인 + + + + + update_manager.update_to_latest + 최신 버전으로 업데이트 + + + + + update_manager.update_to_specific + 특정 버전으로 업데이트 + + + + + update_manager.cli_recommendation + 안전성과 신뢰성을 위해 업데이트는 명령줄 인터페이스로 수행해야 합니다. 업데이트 과정에서 자동으로 백업을 생성하고, 유지보수 모드를 활성화하며, 마이그레이션을 처리합니다. + + + + + update_manager.up_to_date + 최신 상태 + + + + + update_manager.newer + 더 새로움 + + + + + update_manager.current + 현재 + + + + + update_manager.older + 더 오래됨 + + + + + update_manager.prerelease + 사전 릴리스 + + + + + update_manager.status + 상태 + + + + + update_manager.available_versions + 사용 가능한 버전 + + + + + update_manager.no_releases_found + 릴리스를 찾을 수 없습니다 + + + + + update_manager.view_release_notes + 릴리스 노트 보기 + + + + + update_manager.update_logs + 업데이트 로그 + + + + + update_manager.backups + 백업 + + + + + update_manager.date + 날짜 + + + + + update_manager.log_file + 로그 파일 + + + + + update_manager.no_logs_found + 업데이트 로그를 찾을 수 없습니다 + + + + + update_manager.file + 파일 + + + + + update_manager.size + 크기 + + + + + update_manager.no_backups_found + 백업을 찾을 수 없습니다 + + + + + update_manager.validation_issues + 유효성 검사 문제 + + + + + update_manager.maintenance_mode_active + 유지보수 모드가 활성화되어 있습니다 + + + + + update_manager.update_in_progress + 현재 업데이트가 진행 중입니다 + + + + + update_manager.started_at + 시작 시각 + + + + + update_manager.new_version_available.message + Part-DB %version% 버전이 출시되었습니다! 최신 기능과 보안 수정을 위해 업데이트를 고려하세요. + + + + + update_manager.changelog + 변경 사항 + + + + + update_manager.no_release_notes + 이 버전의 릴리스 노트가 없습니다. + + + + + update_manager.back_to_update_manager + 업데이트 관리자로 돌아가기 + + + + + update_manager.download_assets + 다운로드 + + + + + update_manager.update_to_this_version + 이 버전으로 업데이트 + + + + + update_manager.run_command_to_update + 이 버전으로 업데이트하려면 터미널에서 다음 명령을 실행하세요: + + + + + update_manager.log_viewer + 로그 뷰어 + + + + + update_manager.update_log + 업데이트 로그 + + + + + update_manager.bytes + 바이트 + + + + + perm.system.manage_updates + Part-DB 업데이트 관리 + + + + + update_manager.create_backup + 업데이트 전 백업 생성 (권장) + + + + + update_manager.confirm_update + 정말 Part-DB를 업데이트하시겠습니까? 업데이트 전에 백업이 생성됩니다. + + + + + update_manager.already_up_to_date + 최신 버전의 Part-DB를 사용 중입니다. + + + + + update_manager.progress.title + 업데이트 진행 상황 + + + + + update_manager.progress.updating + Part-DB 업데이트 중... + + + + + update_manager.progress.completed + 업데이트 완료! + + + + + update_manager.progress.failed + 업데이트 실패 + + + + + update_manager.progress.initializing + 초기화 중... + + + + + update_manager.progress.updating_to + %version% 버전으로 업데이트 중 + + + + + update_manager.progress.downgrading_to + %version% 버전으로 다운그레이드 중 + + + + + update_manager.progress.error + 오류 + + + + + update_manager.progress.success_message + Part-DB가 업데이트되었습니다! 새 버전을 확인하려면 페이지를 새로고침해야 할 수 있습니다. + + + + + update_manager.progress.steps + 업데이트 단계 + + + + + update_manager.progress.waiting + 업데이트 시작 대기 중... + + + + + update_manager.progress.back + 업데이트 관리자로 돌아가기 + + + + + update_manager.progress.refresh_page + 페이지 새로고침 + + + + + update_manager.progress.warning + 중요 + + + + + update_manager.progress.do_not_close + 업데이트가 진행되는 동안 이 페이지를 닫거나 다른 페이지로 이동하지 마세요. 페이지를 닫아도 업데이트는 계속되지만 진행 상황을 확인할 수 없게 됩니다. + + + + + update_manager.progress.auto_refresh + 이 페이지는 진행 상황 표시를 위해 2초마다 자동으로 새로고침됩니다. + + + + + update_manager.progress.downgrade_title + 다운그레이드 진행 상황 + + + + + update_manager.progress.downgrade_completed + 다운그레이드 완료! + + + + + update_manager.progress.downgrade_failed + 다운그레이드 실패 + + + + + update_manager.progress.downgrade_success_message + Part-DB가 다운그레이드되었습니다! 새 버전을 확인하려면 페이지를 새로고침해야 할 수 있습니다. + + + + + update_manager.progress.downgrade_steps + 다운그레이드 단계 + + + + + update_manager.progress.downgrade_do_not_close + 다운그레이드가 진행되는 동안 이 페이지를 닫거나 다른 페이지로 이동하지 마세요. 페이지를 닫아도 다운그레이드는 계속되지만 진행 상황을 확인할 수 없게 됩니다. + + + + + update_manager.confirm_downgrade + 정말 Part-DB를 다운그레이드하시겠습니까? 이전 버전으로 되돌아갑니다. 다운그레이드 전에 백업이 생성됩니다. + + + + + update_manager.downgrade_removes_update_manager + 경고: 이 버전에는 업데이트 관리자가 포함되어 있지 않습니다. 다운그레이드 후에는 명령줄(git checkout, composer install 등)로 직접 업데이트해야 합니다. + + + + + update_manager.restore_backup + 백업 복원 + + + + + update_manager.restore_confirm_title + 백업에서 복원 + + + + + update_manager.restore_confirm_message + 정말 이 백업에서 데이터베이스를 복원하시겠습니까? + + + + + update_manager.restore_confirm_warning + 경고: 현재 데이터베이스가 백업 데이터로 덮어씌워집니다. 이 작업은 되돌릴 수 없습니다! 진행하기 전에 최신 백업이 있는지 확인하세요. + + + + + update_manager.web_updates_disabled + 웹 기반 업데이트가 비활성화되어 있습니다 + + + + + update_manager.web_updates_disabled_hint + 서버 관리자가 웹 기반 업데이트를 비활성화했습니다. CLI 명령 "php bin/console partdb:update"로 업데이트를 수행하세요. + + + + + update_manager.backup_restore_disabled + 서버 설정에 의해 백업 복원이 비활성화되어 있습니다. + + + + + update_manager.backup.create + 백업 생성 + + + + + update_manager.backup.create.confirm + 지금 전체 백업을 생성하시겠습니까? 시간이 걸릴 수 있습니다. + + + + + update_manager.backup.created + 백업이 생성되었습니다. + + + + + update_manager.backup.delete.confirm + 정말 이 백업을 삭제하시겠습니까? + + + + + update_manager.backup.deleted + 백업이 삭제되었습니다. + + + + + update_manager.backup.delete_error + 백업 삭제에 실패했습니다. + + + + + update_manager.log.delete.confirm + 정말 이 로그를 삭제하시겠습니까? + + + + + update_manager.log.deleted + 로그가 삭제되었습니다. + + + + + update_manager.log.delete_error + 로그 삭제에 실패했습니다. + + + + + update_manager.view_log + 로그 보기 + + + + + update_manager.delete + 삭제 + + + + + update_manager.backup.download + 백업 다운로드 + + + + + update_manager.backup.download.password_label + 다운로드하려면 비밀번호를 확인하세요 + + + + + update_manager.backup.download.security_warning + 백업에는 비밀번호 해시와 시크릿 등 민감한 데이터가 포함되어 있습니다. 다운로드를 진행하려면 비밀번호를 확인하세요. + + + + + update_manager.backup.download.invalid_password + 비밀번호가 올바르지 않습니다. 백업 다운로드가 거부되었습니다. + + + + + update_manager.backup.docker_warning + Docker 설치가 감지되었습니다. 백업은 영구 볼륨이 아닌 var/backups/에 저장됩니다. 다운로드 버튼으로 백업을 외부에 저장하거나 docker-compose.yml에서 var/backups/를 볼륨으로 마운트하세요. + + + + + settings.ips.conrad + Conrad + + + + + settings.ips.conrad.shopID + 숍 ID + + + + + settings.ips.conrad.shopID.description + 결과를 가져올 Conrad 스토어 버전입니다. 결과의 언어, 가격, 통화를 결정합니다. B2B와 B2C 버전이 모두 있는 경우 부가세 포함 가격을 원하면 B2C 버전을 선택하세요. + + + + + settings.ips.conrad.attachment_language_filter + 첨부파일 언어 필터 + + + + + settings.ips.conrad.attachment_language_filter.description + 선택한 언어의 첨부파일만 결과에 포함합니다. + + + + + settings.ips.generic_web_provider + 일반 웹 URL 제공자 + + + + + settings.ips.generic_web_provider.description + 이 정보 제공자는 다양한 쇼핑몰 페이지 URL에서 기본 부품 정보를 가져올 수 있습니다. + + + + + settings.ips.generic_web_provider.enabled.help + 이 제공자를 활성화하면 사용자가 Part-DB 서버를 통해 임의의 웹사이트에 요청을 보낼 수 있습니다. 잠재적 결과를 인지하고 있는 경우에만 활성화하세요. + + + + + info_providers.from_url.title + URL로 [part] 생성 + + + + + info_providers.from_url.url.label + URL + + + + + info_providers.from_url.no_part_found + 해당 URL에서 부품을 찾을 수 없습니다. 유효한 쇼핑몰 URL이 맞나요? + + + + + info_providers.from_url.help + 입력한 URL을 기반으로 부품을 생성합니다. 가능하면 기존 정보 제공자에 위임하고, 그렇지 않으면 웹페이지 메타데이터에서 기본 데이터를 추출합니다. + + + + + update_manager.cant_auto_update + WebUI에서 자동으로 업데이트할 수 없습니다 + + + + + update_manager.switch_to + 전환 + + + + + update_manager.update_to + 업데이트 + + + + + part.gtin + GTIN / EAN + + + + + info_providers.capabilities.gtin + GTIN / EAN + + + + + part.table.gtin + GTIN + + + + + scan_dialog.mode.gtin + GTIN / EAN 바코드 + + + + + attachment_type.edit.allowed_targets + 사용 대상 제한 + + + + + attachment_type.edit.allowed_targets.help + 이 첨부파일 형식을 특정 요소 클래스에서만 사용할 수 있게 합니다. 비워 두면 모든 요소 클래스에서 이 첨부파일 형식이 표시됩니다. + + + + + orderdetails.edit.prices_includes_vat + 가격에 부가세 포함 + + + + + prices.incl_vat + 부가세 포함 + + + + + prices.excl_vat + 부가세 별도 + + + + + settings.system.localization.prices_include_tax_by_default + 가격에 부가세를 기본으로 포함 + + + + + settings.system.localization.prices_include_tax_by_default.description + 새로 생성되는 구매 정보에서 가격의 부가세 포함 여부에 대한 기본값입니다. + + + + + part_lot.edit.last_stocktake_at + 마지막 재고 실사 + + + + + perm.parts_stock.stocktake + 재고 실사 + + + + + part.info.stocktake_modal.title + 로트 재고 실사 + + + + + part.info.stocktake_modal.expected_amount + 예상 수량 + + + + + part.info.stocktake_modal.actual_amount + 실제 수량 + + + + + log.part_stock_changed.stock_take + 재고 실사 + + + + + log.element_edited.changed_fields.last_stocktake_at + 마지막 재고 실사 + + + + + part.table.eda_reference + EDA 참조 + + + + + part.table.eda_value + EDA 값 + + + + + settings.misc.kicad_eda.default_parameter_visibility + 파라미터의 기본 EDA 표시 여부 + + + + + settings.misc.kicad_eda.default_parameter_visibility.help + 표시 여부가 명시적으로 설정되지 않은 모든 [part] 파라미터의 EDA 표시 여부입니다. 활성화하면 모든 파라미터가 기본적으로 EDA 소프트웨어에 표시됩니다. + + + + + settings.misc.kicad_eda.default_orderdetails_visibility + 구매 정보의 기본 EDA 표시 여부 + + + + + settings.misc.kicad_eda.default_orderdetails_visibility.help + 표시 여부가 명시적으로 설정되지 않은 모든 구매 정보의 EDA 표시 여부입니다. 활성화하면 모든 구매 정보가 기본적으로 EDA 소프트웨어에 표시됩니다. + + + + + label_scanner.open + 상세 보기 + + + + + label_scanner.db_part_found + 바코드에 해당하는 데이터베이스 [part] 발견 + + + + + label_scanner.part_can_be_created + [Part] 생성 가능 + + + + + label_scanner.part_can_be_created.help + 데이터베이스에서 일치하는 [part]을(를) 찾지 못했지만, 이 바코드를 기반으로 새 [part]을(를) 생성할 수 있습니다. + + + + + label_scanner.part_create_btn + 바코드로 [part] 생성 + + + + + parts.create_from_scan.title + 라벨 스캔으로 [part] 생성 + + + + + scan_dialog.mode.amazon + Amazon 바코드 + + + + + scan_dialog.mode.tme + TME 바코드 + + + + + settings.ips.canopy + Canopy + + + + + settings.ips.canopy.alwaysGetDetails + 항상 상세 정보 가져오기 + + + + + settings.ips.canopy.alwaysGetDetails.help + 선택하면 부품 생성 시 Canopy에서 더 많은 상세 정보를 가져옵니다. API 요청이 추가로 발생하지만 제품 요점 설명과 카테고리 정보를 얻을 수 있습니다. + + + + + attachment.sandbox.warning + 경고: 사용자가 업로드한 첨부파일을 보고 있습니다. 신뢰할 수 없는 콘텐츠입니다. 주의해서 진행하세요. + + + + + attachment.sandbox.back_to_partdb + Part-DB로 돌아가기 + + + + + settings.system.attachments.showHTMLAttachments + 업로드된 HTML 첨부파일 표시 (샌드박스) + + + + + settings.system.attachments.showHTMLAttachments.help + ⚠️ 활성화하면 사용자가 업로드한 HTML 첨부파일을 브라우저에서 바로 볼 수 있습니다. 많은 잠재적 악성 기능이 제한되지만, 여전히 잠재적 보안 위험이므로 파일을 업로드할 수 있는 사용자를 신뢰하는 경우에만 활성화하세요. + + + + + attachment.sandbox.title + HTML [Attachment] + + + + + attachment.sandbox.as_plain_text + 일반 텍스트로 보기 + + + + + modal.cancel + 취소 + + + + + update_manager.web_updates_allowed + 웹 업데이트 허용됨 + + + + + update_manager.backup_restore_allowed + 백업 복원 허용됨 + + + + + update_manager.backup_download_allowed + 백업 다운로드 허용됨 + + + + + update_manager.docker.setup_title + Watchtower로 원클릭 Docker 업데이트 활성화 + + + + + update_manager.docker.setup_description + Part-DB는 오픈소스 컨테이너 업데이터인 Watchtower를 사용해 Docker 컨테이너를 자동으로 업데이트할 수 있습니다. Watchtower를 보조 컨테이너로 추가하고 아래에서 연결을 설정하세요. + + + + + update_manager.docker.setup_step1 + 1. docker-compose.yml에 Watchtower를 추가하세요: + + + + + update_manager.docker.setup_step2 + 2. Part-DB 컨테이너에 다음 환경 변수를 추가하세요: + + + + + update_manager.docker.setup_network_hint + Part-DB와 Watchtower가 같은 Docker 네트워크에 있는지 확인하세요. Watchtower에서 라벨 기반 필터링(WATCHTOWER_LABEL_ENABLE=true)을 사용한다면 Part-DB 컨테이너에 "com.centurylinklabs.watchtower.enable=true" 라벨을 추가하세요. + + + + + update_manager.docker.watchtower_unreachable_title + Watchtower에 연결할 수 없음 + + + + + update_manager.docker.watchtower_unreachable_description + Watchtower가 설정되어 있지만 연결할 수 없습니다. Watchtower 컨테이너가 실행 중인지, API URL과 토큰이 올바른지 확인하세요. + + + + + update_manager.docker.confirm_update + 정말 Watchtower로 Part-DB를 업데이트하시겠습니까? 컨테이너가 새 이미지로 재시작됩니다. Git 업데이트와 달리 Docker 업데이트는 자동으로 롤백할 수 없습니다. + + + + + update_manager.docker.update_via_watchtower + Watchtower로 업데이트: + + + + + update_manager.docker.no_rollback_warning + Docker 업데이트는 자동으로 롤백할 수 없습니다. 필요 시 데이터를 복원할 수 있도록 업데이트 전에 데이터베이스 백업이 생성됩니다. + + + + + update_manager.docker.progress_title + Docker 업데이트 진행 중 + + + + + update_manager.docker.waiting_for_watchtower + Watchtower가 새 이미지를 가져오기를 기다리는 중... + + + + + update_manager.docker.elapsed + 경과 시간 + + + + + update_manager.docker.waiting_title + 업데이트 시작됨 + + + + + update_manager.docker.waiting_description + Watchtower에 알림이 전송되었습니다. 최신 Docker 이미지를 가져오고 Part-DB 컨테이너를 재시작합니다. + + + + + update_manager.docker.watchtower_working + Watchtower가 업데이트를 처리하는 중... + + + + + update_manager.docker.watchtower_working_hint + 인터넷 속도와 이미지 크기에 따라 몇 분 정도 걸릴 수 있습니다. + + + + + update_manager.docker.restarting_title + 컨테이너 재시작 중 + + + + + update_manager.docker.restarting_description + Watchtower가 새 이미지를 가져왔으며 Part-DB 컨테이너를 재시작하고 있습니다. + + + + + update_manager.docker.restarting_hint + 서버가 다시 온라인 상태가 되면 페이지가 자동으로 감지합니다. 보통 10-30초 정도 걸립니다. + + + + + update_manager.docker.success_title + 업데이트 완료! + + + + + update_manager.docker.success_message + Watchtower를 통해 Part-DB가 업데이트되었습니다. + + + + + update_manager.docker.previous_version + 이전 버전 + + + + + update_manager.docker.new_version + 새 버전 + + + + + update_manager.docker.back_to_update_manager + 업데이트 관리자로 돌아가기 + + + + + update_manager.docker.go_to_homepage + 홈페이지로 이동 + + + + + update_manager.docker.timeout_title + 업데이트가 예상보다 오래 걸림 + + + + + update_manager.docker.timeout_message + 업데이트가 예상보다 오래 걸리고 있습니다. 자세한 내용은 Watchtower 컨테이너 로그를 확인하세요. 업데이트가 아직 진행 중일 수 있습니다. + + + + + update_manager.docker.retry + 재시도 + + + + + update_manager.docker.warning + 경고 + + + + + update_manager.docker.do_not_close + 이 페이지를 닫지 마세요. 업데이트가 완료되면 자동으로 감지됩니다. + + + + + update_manager.docker.updating_via_watchtower + Watchtower로 업데이트 중 + + + + + update_manager.docker.step_waiting + 이미지 가져오기 + + + + + update_manager.docker.steps + 업데이트 단계 + + + + + update_manager.docker.step_trigger + 업데이트 시작 + + + + + update_manager.docker.step_trigger_desc + Watchtower에 업데이트 확인 알림이 전송되었습니다 + + + + + update_manager.docker.step_pull + 새 이미지 가져오기 + + + + + update_manager.docker.step_pull_desc + 레지스트리에서 최신 Docker 이미지를 다운로드하는 중 + + + + + update_manager.docker.step_restart + 컨테이너 재시작 + + + + + update_manager.docker.step_restart_desc + 이전 컨테이너를 중지하고 새 컨테이너를 시작하는 중 + + + + + update_manager.docker.step_verify + 확인 + + + + + update_manager.docker.step_verify_desc + Part-DB가 새 버전으로 실행 중인지 확인하는 중 + + + + + update_manager.docker.watchtower_status + Watchtower + + + + + update_manager.docker.watchtower_connected + 연결됨 + + + + + update_manager.docker.watchtower_unreachable_short + 연결 불가 + + + + + update_manager.docker.watchtower_not_configured + 설정되지 않음 + + + + + update_manager.docker.step_stop + 컨테이너 중지 + + + + + update_manager.docker.step_stop_desc + 재생성 전에 현재 컨테이너를 정상적으로 중지하는 중 + + + + + update_manager.docker.step_health + 상태 확인 + + + + + update_manager.docker.step_health_desc + 새 컨테이너가 상태 확인을 통과하기를 기다리는 중 + + + + + update_manager.docker.updating + Docker로 Part-DB 업데이트 중... + + + + + part.create_from_info_provider.lot_filled_from_barcode + 바코드로 [Part_lot]이(가) 생성되었습니다. 데이터가 올바르고 의도한 대로인지 확인하세요. + + + + + project.bom_import.field_mapping.error.check_delimiter + 매핑 오류: 올바른 구분자를 선택했는지 확인하세요! + + + + + settings.ai + AI + + + + + settings.ai.openrouter + OpenRouter + + + + + settings.ai.lmstudio + LMStudio + + + + + settings.ips.ai_extractor.model + AI 모델 + + + + + settings.ips.ai_extractor.ai_platform + AI 플랫폼 + + + + + settings.ips.ai_extractor.model.help + 추출에 사용할 AI 모델입니다. 구조화된 출력을 지원해야 합니다. + + + + + settings.ips.ai_extractor.max_content_length + 최대 웹사이트 콘텐츠 길이 + + + + + settings.ips.ai_extractor.max_content_length.description + AI 서비스로 전송되는 웹사이트 콘텐츠의 최대 문자 수입니다. + + + + + settings.ips.ai_extractor.output_language + 출력 언어 + + + + + settings.ips.ai_extractor.output_language.description + 기본적으로 제공자는 웹사이트와 같은 언어로 정보를 반환합니다. 이 옵션으로 AI에게 번역을 요청할 수 있습니다. 일부 모델에서만 작동할 수 있습니다. + + + + + settings.ips.ai_extractor.additional_instructions + 추가 지시 사항 + + + + + settings.ips.ai_extractor.additional_instructions.description + 추가 지시 사항은 시스템 프롬프트에 덧붙여집니다. + + + + + info_providers.search.advanced_options + 고급 옵션 + + + + + info_providers.no_cache_search + 검색 결과 캐시 안 함 / 새로 검색 강제 + + + + + info_providers.no_cache_details + 결과 상세 캐시 안 함 / 부품 상세 정보 새로 가져오기 강제 + + + + + info_providers.from_url.method.generic_web + 클래식 웹 스크래퍼 + + + + + info_providers.from_url.method.ai_web + AI 웹 스크래퍼 + + + + + info_providers.from_url.method + 방식 + + + + + info_providers.from_url.no_cache + 캐시 무시 / 정보 새로 가져오기 강제 + + + + + info_providers.from_url.skip_delegation + 특화 정보 제공자에 위임하지 않음 + + + + + settings.ips.ai_extractor + AI 웹 추출기 + + + + + settings.ips.ai_extractor.description + 이 정보 제공자는 대규모 언어 모델(LLM)을 사용해 임의의 쇼핑몰 URL에서 상세한 부품 정보를 추출합니다. + + + + + settings.ai.openrouter.help + openrouter.ai를 통해 다양한 AI 모델에 접근 + + + + + settings.ai.lmstudio.hosturl + 호스트 URL + + + + + settings.ai.ollama + Ollama + + + + + settings.ai.ollama.endpoint + 엔드포인트 URL + + + + + settings.ai.ollama.apiKey + API 키 + + + + + settings.ai.timeout + 타임아웃 + + + + + settings.ai.timeout.help + 응답을 기다리는 최대 시간(초)입니다. 로컬 AI 추론은 몇 분이 걸릴 수 있으며, 클라우드 추론은 일반적으로 더 빠릅니다. + + + + + browser_plugin.recent_pages.title + 최근 브라우저 제출 + + + + + browser_plugin.recent_pages.help + 브라우저 확장 프로그램에서 최근 제출한 페이지입니다. 클릭하면 캡처된 HTML로 부품을 생성합니다. + + + + + settings.ips.browser_plugin + 브라우저 플러그인 + + + + + settings.ips.browser_plugin.description + 브라우저 플러그인을 사용하면 브라우저에서 직접 Part-DB로 페이지를 제출해 새 부품을 생성할 수 있습니다. HTML 콘텐츠가 제출되므로 DDoS 보호 페이지나 올바른 렌더링에 자바스크립트가 필요한 페이지에서도 추출이 가능합니다. 유용하게 사용하려면 일반 웹 또는 AI 웹 추출기가 활성화되어 있어야 합니다. + + + + + settings.ips.browser_plugin.enabled.help + 활성화하면 정보 제공자 권한이 있는 사용자가 Part-DB에 페이지를 제출하고 나중에 조회할 수 있습니다. + + + + + system.app_secret.insecure.title + 안전하지 않은 APP_SECRET + + + + + system.app_secret.insecure.message + <code>APP_SECRET</code> 환경 변수가 Part-DB에 기본으로 제공되는 값으로 설정되어 있습니다. 보안 위험입니다! <code>.env.local</code> 또는 <code>docker-compose.yaml</code> 파일에서 새 무작위 값으로 설정하세요. + + + + + system.app_secret.insecure.suggestion + 무작위로 생성된 이 값을 사용할 수 있습니다 (누구와도 공유하지 마세요): + + + + + info_providers.provider_key + 정보 제공자 + + + + + info_providers.provider_id + 제공자 ID + + + + + info_providers.provider_url + 제공자 URL + + + + + part.edit.provider_reference + 정보 제공자 참조 + + + + + log.element_edited.changed_fields.providerReference.provider_key + 정보 제공자 + + + + + log.element_edited.changed_fields.providerReference.provider_id + 제공자 ID + + + + + part.info_provider_reference.updated_never + 업데이트된 적 없음 + + + + + part.edit.provider_reference.warning + 경고: 여기서 값을 변경하면 정보 조회 메커니즘이 작동하지 않을 수 있습니다! 가능한 한 "정보 제공자로 업데이트" 기능을 사용하세요. + + + + diff --git a/translations/security.ko.xlf b/translations/security.ko.xlf new file mode 100644 index 00000000..4f11a770 --- /dev/null +++ b/translations/security.ko.xlf @@ -0,0 +1,23 @@ + + + + + + user.login_error.user_disabled + 계정이 비활성화되어 있습니다! 오류라고 생각되면 관리자에게 문의하세요. + + + + + saml.error.cannot_login_local_user_per_saml + 로컬 사용자는 SSO로 로그인할 수 없습니다! 로컬 사용자 비밀번호를 사용하세요. + + + + + saml.error.cannot_login_saml_user_locally + SAML 사용자는 로컬 인증으로 로그인할 수 없습니다! SSO 로그인을 사용하세요. + + + + diff --git a/translations/validators.ko.xlf b/translations/validators.ko.xlf new file mode 100644 index 00000000..1ce63215 --- /dev/null +++ b/translations/validators.ko.xlf @@ -0,0 +1,275 @@ + + + + + + part.master_attachment.must_be_picture + 미리보기 첨부파일은 유효한 사진이어야 합니다! + + + + + structural.entity.unique_name + 이 계층에 같은 이름의 요소가 이미 있습니다! + + + + + parameters.validator.min_lesser_typical + 값은 일반값({{ compared_value }}) 이하여야 합니다. + + + + + parameters.validator.min_lesser_max + 값은 최대값({{ compared_value }})보다 작아야 합니다. + + + + + parameters.validator.max_greater_typical + 값은 일반값({{ compared_value }}) 이상이어야 합니다. + + + + + validator.user.username_already_used + 같은 이름의 사용자가 이미 있습니다 + + + + + user.invalid_username + 사용자 이름은 문자, 숫자, 밑줄, 마침표, 더하기, 빼기만 포함할 수 있으며 @로 시작할 수 없습니다! + + + + + obsolete + + + validator.noneofitschild.self + 요소는 자기 자신의 상위가 될 수 없습니다! + + + + + obsolete + + + validator.noneofitschild.children + 하위 요소를 상위 요소로 지정할 수 없습니다 (순환이 발생합니다)! + + + + + validator.select_valid_category + 유효한 카테고리를 선택하세요! + + + + + validator.part_lot.only_existing + 이 위치는 "기존 항목만"으로 표시되어 새 부품을 추가할 수 없습니다 + + + + + validator.part_lot.location_full.no_increase + 위치가 가득 찼습니다. 수량을 늘릴 수 없습니다 (새 값은 {{ old_amount }}보다 작아야 합니다). + + + + + validator.part_lot.location_full + 위치가 가득 찼습니다. 새 부품을 추가할 수 없습니다. + + + + + validator.part_lot.single_part + 이 위치는 단일 부품만 보관할 수 있으며 이미 가득 찼습니다! + + + + + validator.attachment.must_not_be_null + 첨부파일 형식을 선택해야 합니다! + + + + + validator.orderdetail.supplier_must_not_be_null + 판매처를 선택해야 합니다! + + + + + validator.measurement_unit.use_si_prefix_needs_unit + SI 접두사를 사용하려면 단위 기호를 설정해야 합니다! + + + + + part.ipn.must_be_unique + 내부 부품 번호는 고유해야 합니다. {{ value }}은(는) 이미 사용 중입니다! + + + + + validator.project.bom_entry.name_or_part_needed + 부품 BOM 항목에는 부품을 선택하고, 부품이 아닌 BOM 항목에는 이름을 설정해야 합니다. + + + + + project.bom_entry.name_already_in_bom + 같은 이름의 BOM 항목이 이미 있습니다! + + + + + project.bom_entry.part_already_in_bom + 이 부품은 이미 BOM에 있습니다! + + + + + project.bom_entry.mountnames_quantity_mismatch + 장착 이름의 수는 BOM 수량과 일치해야 합니다! + + + + + project.bom_entry.can_not_add_own_builds_part + 프로젝트 자신의 빌드 부품을 BOM에 추가할 수 없습니다. + + + + + project.bom_has_to_include_all_subelement_parts + 프로젝트 BOM에는 모든 하위 프로젝트의 빌드 부품이 포함되어야 합니다. %project_name% 프로젝트의 %part_name% 부품이 누락되었습니다! + + + + + project.bom_entry.price_not_allowed_on_parts + 부품과 연결된 BOM 항목에는 가격을 설정할 수 없습니다. 대신 부품에 가격을 정의하세요. + + + + + validator.project_build.lot_bigger_than_needed + 필요한 것보다 많은 출고 수량을 선택했습니다! 불필요한 수량을 제거하세요. + + + + + validator.project_build.lot_smaller_than_needed + 제작에 필요한 것보다 적은 출고 수량을 선택했습니다! 수량을 추가하세요. + + + + + part.name.must_match_category_regex + 부품 이름이 카테고리에서 지정한 정규 표현식과 일치하지 않습니다: %regex% + + + + + validator.attachment.name_not_blank + 여기에 값을 설정하거나, 파일을 업로드하여 파일 이름을 첨부파일 이름으로 자동 사용하세요. + + + + + validator.part_lot.owner_must_match_storage_location_owner + 이 로트의 소유자는 선택한 보관 위치의 소유자(%owner_name%)와 일치해야 합니다! + + + + + validator.part_lot.owner_must_not_be_anonymous + 로트 소유자는 익명 사용자일 수 없습니다! + + + + + validator.part_association.must_set_an_value_if_type_is_other + 유형을 "기타"로 설정한 경우 이를 설명하는 값을 설정해야 합니다! + + + + + validator.part_association.part_cannot_be_associated_with_itself + 부품은 자기 자신과 연관될 수 없습니다! + + + + + validator.part_association.already_exists + 이 부품과의 연관이 이미 있습니다! + + + + + validator.part_lot.vendor_barcode_must_be_unique + 이 공급업체 바코드 값은 다른 로트에서 이미 사용되었습니다. 바코드는 고유해야 합니다! + + + + + validator.year_2038_bug_on_32bit + 기술적 제약으로 인해 32비트 시스템에서는 2038-01-19 이후의 날짜를 선택할 수 없습니다! + + + + + validator.fileSize.invalidFormat + 유효하지 않은 파일 크기 형식입니다. 정수와 함께 킬로, 메가, 기가바이트를 뜻하는 K, M, G 접미사를 사용하세요. + + + + + validator.invalid_range + 지정한 범위가 유효하지 않습니다! + + + + + validator.google_code.wrong_code + 유효하지 않은 코드입니다. 인증 앱이 올바르게 설정되어 있는지, 서버와 인증 기기의 시간이 정확한지 확인하세요. + + + + + settings.synonyms.type_synonyms.collection_type.duplicate + 이 유형과 언어에 대한 번역이 이미 정의되어 있습니다! + + + + + validator.invalid_gtin + 유효한 GTIN / EAN이 아닙니다! + + + + + info_providers.validation.provider_id_without_key + 제공자 ID를 지정하려면 정보 제공자도 지정하거나, 둘 다 제거해야 합니다. + + + + + info_providers.validation.provider_url_without_key + 제공자 URL을 지정하려면 정보 제공자도 지정해야 합니다. + + + + + info_providers.validation.provider_key_without_id + 정보 제공자를 지정하려면 제공자 ID도 지정하거나, 둘 다 제거해야 합니다. + + + + diff --git a/yarn.lock b/yarn.lock index 168c98f0..98bf3443 100644 --- a/yarn.lock +++ b/yarn.lock @@ -846,458 +846,458 @@ "@babel/helper-string-parser" "^7.29.7" "@babel/helper-validator-identifier" "^7.29.7" -"@ckeditor/ckeditor5-adapter-ckfinder@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-adapter-ckfinder/-/ckeditor5-adapter-ckfinder-48.2.0.tgz#b534f74d00ef7abaafd9099eb839baa8284cb375" - integrity sha512-CSXIUWc5/DHqJJL6L3WnjgFMKpHERmB3jpzrAIupdZLnPbg1H01Ki8yeWcghzfc4nm5fy9ZSfxT4okWFPWsEpA== +"@ckeditor/ckeditor5-adapter-ckfinder@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-adapter-ckfinder/-/ckeditor5-adapter-ckfinder-48.3.1.tgz#57b7c5995a71b401c4f8951b90d05c4f177b8125" + integrity sha512-xv072kFznzCLzG6Kiro9Pwb6v3FNXMu6/NWQX+NCl0wlqit85hRbIMJW0WyWxuYY4XgcDn4cgB89vRJ5p0zKsQ== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-upload" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-upload" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-alignment@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-alignment/-/ckeditor5-alignment-48.2.0.tgz#2a350be8e2d1077886eff6cef934cadf14d15b7a" - integrity sha512-N6UL341Kq1UFhwJlmdZHJdoxoIxQJUoEcK+vEY6fafDzNO7jIVzkFr3BdgAIgOTuarerqt/gkQbs+oLHndvgsQ== +"@ckeditor/ckeditor5-alignment@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-alignment/-/ckeditor5-alignment-48.3.1.tgz#ec6e2055ed02504f695f3ea10b5a76011e747c74" + integrity sha512-ayiSLBtw4xvtMEPl6AhMX66Io6ajmq+2y2+FePfwu+9B8f8JblEApcWFLlj0HXxfWfJ470sEVMvwUJAwPLH9Jg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-autoformat@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-48.2.0.tgz#fc99108de2db0542f406d379a0812d298dbcdec4" - integrity sha512-KzJpfKSA+VtyaSR7asMOdM5Qz9iTUeRy5VMuXRahaQ1KWK4jgju0kJKlAgVyVCneO8Hs+44R7BEzz+nzxrhvlQ== +"@ckeditor/ckeditor5-autoformat@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-48.3.1.tgz#c00fd4878635b2704c2f447df02a0bc828ecb607" + integrity sha512-65TMkSDpfE63WquypME53ESV209U1iXuhX32x95nc45hSi4CMn25oxqansrCpxIlHWww3d7z3tUgSRFGXpFSag== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-heading" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-heading" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-autosave@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autosave/-/ckeditor5-autosave-48.2.0.tgz#25e1a68da00eded4febe9b881ca7157fd58aec20" - integrity sha512-qTNEUlKWbfqDM67hUtzVw12czaAsBXS4oDluAtz7Gs7ap3C+3p0i+GnNZM6NC8u7vboymi6fqLlM5aaiyUU1jA== +"@ckeditor/ckeditor5-autosave@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autosave/-/ckeditor5-autosave-48.3.1.tgz#27dcbf95a53096ee2091f2015cfdd3593a87d7ca" + integrity sha512-mc9UmTpyVBUn+V/pmzkP8PKJNuijytY8RuV7bckeq9OmxXOz2AD0lqlp+X48OcrgcefCA6e01D1hgElMhHQ/Hw== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-basic-styles@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-48.2.0.tgz#9cfd32f149ef748068814315411dbb8709ff2a98" - integrity sha512-ulOc3xhQNmVfXL5xaWiHjDv8H+5fYtZ3+UKXbUMB5mnzGUX0ICx0aY63idKJe5lNPvFFetJI+PlPps6EhclHbw== +"@ckeditor/ckeditor5-basic-styles@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-48.3.1.tgz#4943dc6e546af2d058ff470ec9b0be6aff9e322a" + integrity sha512-uVbKZLNScqYyvj/Wg3uP2sWCHVuvYyFCGSNA1osnmI4DwKi3BS4TW/rm3IYUPrD6q2y/GGJK05OyHr3hyw4oig== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-block-quote@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-block-quote/-/ckeditor5-block-quote-48.2.0.tgz#05c3c482b6965602443efa94e0f7db0100401bae" - integrity sha512-cE4piVJA1Wruqz/jEGXJuI1IR9qzGAbb8F+bo0D/Jy2D9kSunJwHyeHQt4sQ2sFaude5AbW8n9DYyeS11LYDag== +"@ckeditor/ckeditor5-block-quote@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-block-quote/-/ckeditor5-block-quote-48.3.1.tgz#e3ae741e61426c4660ba9b70b2ba8f4c7cd4bc3f" + integrity sha512-9T03V/VjWYu6dhyKWZVrlggeOumQXpUt4lygK6NQuSQ9lIMEnhFgzjqtZsGe9l90zvnPaUvV9IC3u1xUFZvzhg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-bookmark@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-bookmark/-/ckeditor5-bookmark-48.2.0.tgz#5fdf41aa652d1b1b119cb7214d5ba9b3af0d03cf" - integrity sha512-st8EIDRjawJX4Iv93S0cXnZEW3tLyhye54bj0PvOuMWjNtbxoWDCwDPUkTTckrfTJJ1wY+FN17J+HkwoLJS1DA== +"@ckeditor/ckeditor5-bookmark@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-bookmark/-/ckeditor5-bookmark-48.3.1.tgz#b9be09be4ebbf3fdefab3ee393db80630a7c3f48" + integrity sha512-EC5fmzUT5GKyIwQw+4tnHHJD4kUIBbiwP/+0gjHVZnHisRLfBOC3GAIczzq/AXDBIuaHqC9DZOAQQp+ltItHfQ== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-link" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-link" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" -"@ckeditor/ckeditor5-ckbox@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckbox/-/ckeditor5-ckbox-48.2.0.tgz#1fb6fe259dc36e809efe70a019d9901477616ca7" - integrity sha512-qttYjAJVjCdkFHMVRxgWgPzh+7Eppp0wo9I/wqHgT1+pBq/z1fWlzlyCNy1xlXbhMa4jJeA94OjmQvIF1OK87A== +"@ckeditor/ckeditor5-ckbox@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckbox/-/ckeditor5-ckbox-48.3.1.tgz#758aa9a9b8442c48274c3c09f49efe0812009dd1" + integrity sha512-ZaonwyuQjqjsho4iKDGSTn/M+SFs/OTl0WMkFU3tOhWpUikWKejNM94z+T6OR9oELWJVb58Jg6ubV6+ZYaLL7A== dependencies: - "@ckeditor/ckeditor5-cloud-services" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-image" "48.2.0" - "@ckeditor/ckeditor5-link" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-upload" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-cloud-services" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-image" "48.3.1" + "@ckeditor/ckeditor5-link" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-upload" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" blurhash "2.0.5" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-ckfinder@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckfinder/-/ckeditor5-ckfinder-48.2.0.tgz#cd24dc803f9daa1a59ee2854ba845d7c456bbaea" - integrity sha512-OnoYi8R1fI6KHMFQHMBXXajHHAQXVkVpRKMa2uTwS7BEzbcQhAJUJ6QI/JxH+mJ1EDdK2xDUiOb3fvPKbjeuvQ== +"@ckeditor/ckeditor5-ckfinder@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckfinder/-/ckeditor5-ckfinder-48.3.1.tgz#c520b5716b0e80a6c52fbdc34e0082ee1bca5b7b" + integrity sha512-kZBp/eDhr8Y/CcE2UQZxFp3fZ+w4WYdYxmyuQ70mg4cOS1TMV9eh26Zz5khWAt+oAJsxVIDL5KNodak/hFpJ2w== dependencies: - "@ckeditor/ckeditor5-adapter-ckfinder" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-image" "48.2.0" - "@ckeditor/ckeditor5-link" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-adapter-ckfinder" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-image" "48.3.1" + "@ckeditor/ckeditor5-link" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-clipboard@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-clipboard/-/ckeditor5-clipboard-48.2.0.tgz#5f7fac641e7767f80d4eec5e1f2d5a44288f848a" - integrity sha512-2xPSy1ib0NidKvxrjakvAfz8BPCpw5uxh4Azr2DEdEF+zBjlsdCk+nqlU3lO9/OiGROImq+hP2M6dcpS0CUTog== +"@ckeditor/ckeditor5-clipboard@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-clipboard/-/ckeditor5-clipboard-48.3.1.tgz#93fbd62903583cbef6a27800aaf560b9c43bf4be" + integrity sha512-PNI7yw9ese+fyQz0LzExRPY1CkjA6q9XqLDeMuLgp92Mkd7Vp1wftbB0ZLVyrzTIw8DEUudKziVsY3A4mT5aWA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-cloud-services@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-cloud-services/-/ckeditor5-cloud-services-48.2.0.tgz#10b122794df6ae9ee3e39e7f4ce2cd4428fcbb0c" - integrity sha512-3PsW/6uv3ecYShuVAJcMBrdMIMyfWljrm5GkXmeW5E0MG5KacfIMRjuKqXP3DhacvuxBwpN0IKp1BgvwmWmPow== +"@ckeditor/ckeditor5-cloud-services@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-cloud-services/-/ckeditor5-cloud-services-48.3.1.tgz#298cd992552dcbb37966a727bb285793d9b806a4" + integrity sha512-pHJAj5RRhTV7uyexs0ryFj82zZNex91VtmwTOB/z+VPXSHq4jzpxFE1fVuoHgkydUF5S5Dl6TiFru48yYlK4YA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-upload" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-upload" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-code-block@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-code-block/-/ckeditor5-code-block-48.2.0.tgz#444c2f0d9e6d1a25d92514735099ac5e7dfa1fe6" - integrity sha512-49+8UKuZY0X4g91SkZS02+dHQ7bUSXnjWK8mENZOJ3RGxdeOw5SaxNtvMlaMvgQGRSGQOlzRBKO8+a3mOLoIVQ== +"@ckeditor/ckeditor5-code-block@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-code-block/-/ckeditor5-code-block-48.3.1.tgz#d294a94b802b95bd5df1947893b858ad42c5b33c" + integrity sha512-9mwgtcrNCTK/06HXH+o8yNbrN/nCAflQtJ6LmAf1Gw/6Fed9gQslMcs5+ADO98Jer5OetpuKeqgmBACAuQUTmg== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-core@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-core/-/ckeditor5-core-48.2.0.tgz#3075df68b5d097471e27e59050422af64be9a34f" - integrity sha512-ooTO/BxSF2hx4MKcihq4zFWiNOGO8bVN8fE2I/El6qdnHaTV+brZwd5Ge0ykxEpy7uydmqGNeeoywMnY4j2I/A== +"@ckeditor/ckeditor5-core@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-core/-/ckeditor5-core-48.3.1.tgz#65c4f5069e34d1b6d874694bd1c0ad17b68a404c" + integrity sha512-wrAhYK5R8MkGAE0VrOMFQN9LSRpSATS7DFKr4CCJod9EgBT873SCu34Ey0fzSqGxeOqamlcXQJVh/77+3JP4SQ== dependencies: - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-watchdog" "48.2.0" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-watchdog" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-easy-image@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-easy-image/-/ckeditor5-easy-image-48.2.0.tgz#e93f1e9aef8a0880f1005bdb03da6d5652bb7693" - integrity sha512-jeC6seMQ3+LmodTzLsYXsvcFplSvJj+iJ+FMYHcm6HW1e4EyUsbl8IDLzNdiNsVEk8BTgwDioa22IpCBIdZodw== +"@ckeditor/ckeditor5-easy-image@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-easy-image/-/ckeditor5-easy-image-48.3.1.tgz#817218939b8cb689fe164658030dc3c651cfa86c" + integrity sha512-A63AcmaAAGVUhALHVtwHrlBaWEaRjBhxWTwkQoy3RFPpSAXi1k0Cy55HhkVrnqVZSuKmljcX3FttpjOb6MQq8g== dependencies: - "@ckeditor/ckeditor5-cloud-services" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-image" "48.2.0" - "@ckeditor/ckeditor5-upload" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-cloud-services" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-image" "48.3.1" + "@ckeditor/ckeditor5-upload" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-editor-balloon@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-balloon/-/ckeditor5-editor-balloon-48.2.0.tgz#2a2c324fa41efd66455ab5e5913c5f4ca34bab22" - integrity sha512-hyONQSh6m4Yy+lgPzPbMh9mq7EjAXY+WcYyyVIdxbVTgZkd29aLEgJgJzHZrcfM52k1uGSGzxvLtv5JttKbpYw== +"@ckeditor/ckeditor5-editor-balloon@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-balloon/-/ckeditor5-editor-balloon-48.3.1.tgz#bade00c33e4b1efadfb3e90e94e57fc753692c64" + integrity sha512-Unmzb3E+O83gIAvIT/RHyV1EzaxQGOzBiXGJhQahhQg++EvHUt4tmAJ6VzSLgJbtr8z3rMkA+lYpD5+OzpGT4w== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-editor-classic@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-classic/-/ckeditor5-editor-classic-48.2.0.tgz#08274d739b90dd83e67356c0f085be8f414ba93c" - integrity sha512-1QJ3/xUdIRNI5vfRSfLrS8QYru82cQ6/QAg0B42GzxGfVL8BJQW7UZsglrpDR2zwYuHyLQu7N4eZZXzDmb2ohQ== +"@ckeditor/ckeditor5-editor-classic@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-classic/-/ckeditor5-editor-classic-48.3.1.tgz#337b973cb40ff8da2f07e774d3c9007ded354083" + integrity sha512-7azS8ry8+c3H8S1RM1Aphq8wCig4mmLpK/kTmdF2/+JkPUszRoVK1HThSmBkstKCHDv4UuSVR+FcJ6Co6Tavog== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-editor-decoupled@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-decoupled/-/ckeditor5-editor-decoupled-48.2.0.tgz#2af0eb883587dcfd2bb2c93bef3281b855fabcd6" - integrity sha512-kB6TBJjZKXsTi4PgMeRvQ7Ln8AsVCshq2onIwubzQO8hFKXJr8+Q1aIx3co+tXgF12gF0p8rK6+B4hIxd78+oQ== +"@ckeditor/ckeditor5-editor-decoupled@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-decoupled/-/ckeditor5-editor-decoupled-48.3.1.tgz#87c0b3c041dc266ea7ff716ae8b0cdd6f99f0ce4" + integrity sha512-S9xGZS7Hl2jWQrZFVwk3o7x9Wwl7tgbQl8TCujr0Bi0zxoM286WkHbBUej9oLVVtDHvq7xDSafmUURbL/K5ZXw== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-editor-inline@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-inline/-/ckeditor5-editor-inline-48.2.0.tgz#9ca009f62dc75daf9de590a653ff9ef8a99aa623" - integrity sha512-z30QvsTlOc8maqQjHwEXJqGsLpb9wIz4ow/2BXw+B0uUadmBd56YAwQ2yYlvQFs5rbgdvP/5stN0epcqTHUHHw== +"@ckeditor/ckeditor5-editor-inline@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-inline/-/ckeditor5-editor-inline-48.3.1.tgz#79fc10ad9183b2e77ddd9d9a859babd2588ea704" + integrity sha512-uoXl+lfvGzH6HPHyjgcQcwK/WSDxchmkQvPrMHxTCyeimn4ffzFKzIH4WiOz39t1lXpMjI0hTy66eTB8F/+qvg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-editor-multi-root@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-multi-root/-/ckeditor5-editor-multi-root-48.2.0.tgz#54634612f00db8f0378b2275e47317f8622cbd90" - integrity sha512-PkLK5OCanAZ3wjG5pR4bCfzH/UkKD0UTAOfgmOAt3+9ORXReiSQmt5p4npkDnpr60wQ/9dkAx+bCF5FhvM/RxA== +"@ckeditor/ckeditor5-editor-multi-root@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-multi-root/-/ckeditor5-editor-multi-root-48.3.1.tgz#bdf0bd8da7c8d74ac925b73e22d8737391099e6f" + integrity sha512-5BUDEfVCsj4Al6lHWPDxUCRUymoWwmwwg9hZqd6iSkBtDOuZfiGC9IitMb6qYvrD2Q0MLRoiW0z9n6My4ZMHfQ== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-emoji@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-emoji/-/ckeditor5-emoji-48.2.0.tgz#a1d66be3cfc399b3e77199f06bfd6d4ace0176f8" - integrity sha512-CWhAfLcpq48PrjWh9M84jmigwDlV2aFwgR9h9Djv7FVvV7LPBWkaU2JrSKxn7KMcVn7Rtjmje9j51VmPh772tQ== +"@ckeditor/ckeditor5-emoji@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-emoji/-/ckeditor5-emoji-48.3.1.tgz#d9531fe709ffdd3e4026cfa821b708727a7f5f0b" + integrity sha512-JQGLX9rMMnMY5/d8bJrF2htxKGxFfrW+E+rAy+Uc5FZ+cOCQCUfI0+kYpZYj/oyt5BH6VXn099e1Uu4xjicgAA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-mention" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-mention" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" fuzzysort "3.1.0" -"@ckeditor/ckeditor5-engine@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-48.2.0.tgz#1966fe5168e292dcca8f129e189c3e5baebaec45" - integrity sha512-80ku17bnA+U8JHrTMPMSyDZY0B9RRogfGqEw8hYhOHj6N96sbMNXQyvnnSh/szwPyAIDo2cTgbOlKkqUNn+4rA== +"@ckeditor/ckeditor5-engine@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-48.3.1.tgz#ae4206605fb3620395c7e08ff9a9db49c2493c9d" + integrity sha512-CbOuKrm3g8T2Df6WMEYtQMm4DJTAlmRutQQFj94zaXqDPyb8dSLpdPZ0Z89Qg2tagh9IEw0maG40ei2H4FETiQ== dependencies: - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-enter@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-enter/-/ckeditor5-enter-48.2.0.tgz#c4c05fe7b3dec0998985ed38de2fdb342cfa04db" - integrity sha512-YZGbLDDyIzRMmITlEsVNmFhyTSFg4ZLQfQf70YnPOIXu38rnHrCS3cKPA+IYedc7pwdLHNA3zvSlGh8F30+V3w== +"@ckeditor/ckeditor5-enter@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-enter/-/ckeditor5-enter-48.3.1.tgz#253fbda70f741879cba08cf9c86a70833bfecc23" + integrity sha512-+gs7yLyWSfYlBofKA1ce4O4fPBoMw4mSXNun9CZP2FgByvsnS/5sOE3c3UTJS2bSLYabNkZRH3SG4XWKKhunGg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-essentials@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-essentials/-/ckeditor5-essentials-48.2.0.tgz#38837c3f1de811bb07e65346363a8f91dfe465cf" - integrity sha512-ZWA+RvckTsjnajg7p9FE3Q4RoEqKuQClLoHB+SiLCmCN0grFp4K+msLk2h8n4Wrr1gzTO61Fs0VpFjLd8pN8nA== +"@ckeditor/ckeditor5-essentials@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-essentials/-/ckeditor5-essentials-48.3.1.tgz#ca482d3acf8f87843f82300d5bcc6b1b7eda7f89" + integrity sha512-/yYMvcdYpwfQOumLNFccOnQvWfJoXN4Ny5a8m9OO/syGqeMtgpLy+Pn8be3nq4/pxdU6Qz0VnGVzU9OaHXxw4A== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-select-all" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-undo" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-select-all" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-undo" "48.3.1" -"@ckeditor/ckeditor5-find-and-replace@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-find-and-replace/-/ckeditor5-find-and-replace-48.2.0.tgz#08e7bc068b9df8e0ce9c56892ba21cc3a7412315" - integrity sha512-TcmhZ2Z8gq8PT9BVhI//2G6g4dBESznJ5LzniGR9m5w/dNPxUo+Qf4Aipp7u68nFYtevJAckMLSKF9EpYhmDQw== +"@ckeditor/ckeditor5-find-and-replace@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-find-and-replace/-/ckeditor5-find-and-replace-48.3.1.tgz#b5caeed53d369819be99831948b08d7a9be88418" + integrity sha512-R4DPKGC5XmN68W2HuUBRo8VJJ1KCB5Y8gr6JbNDNGQ7aJWrgAjQU7H7d9EEwxU6wjxzNAT7MJqPOEX/WixUBhA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-font@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-font/-/ckeditor5-font-48.2.0.tgz#88f425234e59285242e17960f8a8f349e6564502" - integrity sha512-YB8/u4gOktKwHfxHGM+b+PM464JY1JwY32/TDd4GV7ptg3dRxK7pbLglSR9FjxISMg1fC7t+noMZJ4G/ni6zQg== +"@ckeditor/ckeditor5-font@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-font/-/ckeditor5-font-48.3.1.tgz#392af6adbf1dcd9a9f1e3458152feae22cf7ba38" + integrity sha512-Q8EVEjVix3HOleJ6XtJpXDqD7WGMU3WZR/9eK1hMvOHnvRWkHwXJve5IoaBseJXSSQopG98D1rvWuNvE+qsZNg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-fullscreen@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-fullscreen/-/ckeditor5-fullscreen-48.2.0.tgz#8e9c4aeb438cb2359389c03185838d80a57c2756" - integrity sha512-34dTisns5muLJzwpIpLy5FWnqLEKyBKp7X9F6zHR0lEIWv8x0jSfVGNsLsGHWQh7QIkPMWwx8HhsJJwQOOwB0w== +"@ckeditor/ckeditor5-fullscreen@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-fullscreen/-/ckeditor5-fullscreen-48.3.1.tgz#f685b9ceb57fabc22d7626c314f96d0b6a24f7dd" + integrity sha512-/UQzJFhOMJrDBB+02jSNJVD6E0cjNZ43KgsR8croTDEPLQ2pRH50aUkBZTZn7TfSYx7X2aeaYbyegvSB+pfw6g== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-editor-classic" "48.2.0" - "@ckeditor/ckeditor5-editor-decoupled" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-editor-classic" "48.3.1" + "@ckeditor/ckeditor5-editor-decoupled" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-heading@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-48.2.0.tgz#730f9a0dc837922ee606a3502f2c1fda49080640" - integrity sha512-KCtnFyTIwTPq5Sq6HqjS4qmLtSvN0CC7IvE5ER6Mqu8gusmbjdwU2hKyCKrOwnasgmenUxL4ZlIG0C3yrylDKA== +"@ckeditor/ckeditor5-heading@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-48.3.1.tgz#cd92a1da918112ff985b2ff5f22d8b77b2001a86" + integrity sha512-CPlf4wSatQLqbgsj7DWPaOtjTgqchQX4Mv57NbV/2ZvDnqDOpjMi06d49yQngiPFv/6zqszr8U1raUX1OUhfYA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-paragraph" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-paragraph" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-highlight@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-highlight/-/ckeditor5-highlight-48.2.0.tgz#93fe8840ba907ff06c6255adfa1d8aa20f45e1d5" - integrity sha512-kDnyioMZVxq+QuFu8mFIG4pPQLobjwfenrDfWbdhfBdX9w45SzomT4qQJGC+PXhX31+IjuLiwtKzoR9hRz6W6A== +"@ckeditor/ckeditor5-highlight@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-highlight/-/ckeditor5-highlight-48.3.1.tgz#304d0c7c0254763d0809bc8d1792a876301a4cd0" + integrity sha512-wlqHoOuHeA2qrE9rBeVHgVK75puzTFWn/V8IhAcVBCPB2AApLYNTO7fkfhOEpxqodE2It1lPpN4JfVRWUkoCIw== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-horizontal-line@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-horizontal-line/-/ckeditor5-horizontal-line-48.2.0.tgz#99694ae04839d318a03f541775de7f23d697218d" - integrity sha512-EHOS2ynz+LO5xd8rBCtyOL1OfywjttMRWUiIU7Bj9/2wBNWcxHFURpNRpJtSKioYszyAfBZmU+dPWpFXONMFZw== +"@ckeditor/ckeditor5-horizontal-line@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-horizontal-line/-/ckeditor5-horizontal-line-48.3.1.tgz#edf4e9b96a796085ff8aa557a5e32792b5c6f48a" + integrity sha512-yl25cVmB5T+fsC2VqJvDLnmS9ymn+4LLaGSnue2D8Tg1WK/YTyWxKg3n0anPzMWBBLr1XcKAyVmnGFI66AKwvA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" -"@ckeditor/ckeditor5-html-embed@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-embed/-/ckeditor5-html-embed-48.2.0.tgz#636212a815c158abf2d9965b2f3f17e421e1522f" - integrity sha512-KT/Bj8S6ZGmoxDBHRzdlKRlQWNHPRtMU7T0wPtX6idVcK97ZaINRY6qfGuxJLKBNiymzaiWlc6wsN7NdIAp5Vg== +"@ckeditor/ckeditor5-html-embed@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-embed/-/ckeditor5-html-embed-48.3.1.tgz#11c282e72d29f6493cfdf0cf46875ad86c8a43e4" + integrity sha512-AuXaTHSnxR6chWIz9Z9UY2x4ANHN6Uf0jkfiAFcP6POWaD7YLsviTEYk+YGYw/kcXExMw3CQriDK5KdsjZtnkA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" -"@ckeditor/ckeditor5-html-support@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-support/-/ckeditor5-html-support-48.2.0.tgz#22c2ca43702a691c186c636d7da25d75a0b3fe2f" - integrity sha512-fjGj6abXEOXzUnOIkP0hdnNMxhKlnP+UdrtWep3cNy9YnXCNypBGnhqAE/jfI+Q17DsEajnxNfLwiH1OTZ4B+A== +"@ckeditor/ckeditor5-html-support@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-support/-/ckeditor5-html-support-48.3.1.tgz#d7c1610a3fd1ff9ab870038e441f4ab544e15781" + integrity sha512-aQ0ZHvvOATsUBykQJcGCFOTJjBDX3OULfeJWV1bqdVWAQt0BHC5xkq6d1IpbyKDaW9IkcB19GOS9nQgs1FasNg== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-heading" "48.2.0" - "@ckeditor/ckeditor5-image" "48.2.0" - "@ckeditor/ckeditor5-list" "48.2.0" - "@ckeditor/ckeditor5-remove-format" "48.2.0" - "@ckeditor/ckeditor5-table" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-heading" "48.3.1" + "@ckeditor/ckeditor5-image" "48.3.1" + "@ckeditor/ckeditor5-list" "48.3.1" + "@ckeditor/ckeditor5-remove-format" "48.3.1" + "@ckeditor/ckeditor5-table" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-icons@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-icons/-/ckeditor5-icons-48.2.0.tgz#f3f1f28432ffd03b14b52edc2a77a9b0e5016301" - integrity sha512-w5WVrweq8iaXhf7msnZ9b9GtlGSM1jQe6jvezVs+X4OkZd+QMkkQ+ROPp1TZniXLUKx3+Q872KUPxsl9FBSMMg== +"@ckeditor/ckeditor5-icons@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-icons/-/ckeditor5-icons-48.3.1.tgz#95e3fd5afe180411d47c6957a1b0c51fc41f11fd" + integrity sha512-a8mE5oTQ8TKf/325UmDixhhqGbDyzd749kcrANyzxwc89PtTMdUayl+D0Sj92Xp5fqMHgDEqipUcoohH9OSFBg== -"@ckeditor/ckeditor5-image@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-image/-/ckeditor5-image-48.2.0.tgz#d1d040f2a9e3af4b27d64bd4428916772a336634" - integrity sha512-rbl6MRlNjotA+LhXroksLhspDxIiwRTeciY/B1OShMzjNIFc07pY691uIM/roJzu+L84TLQfejC3SdzY2xufXg== +"@ckeditor/ckeditor5-image@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-image/-/ckeditor5-image-48.3.1.tgz#3fc449c4eea46c6a0ea77cd1c6dcfc22bcf15257" + integrity sha512-3lQY0LEpUNle2nUrONOtOXax62JQE9ZYltMDkOhMy9hcto0BoIngBebBsBBKZmpPugvMTf4qPYh1VkorOAdH0g== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-undo" "48.2.0" - "@ckeditor/ckeditor5-upload" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-undo" "48.3.1" + "@ckeditor/ckeditor5-upload" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-indent@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-indent/-/ckeditor5-indent-48.2.0.tgz#9b77d1599fc305f28b533c5edb50a1498f88b3ef" - integrity sha512-Nwu0HqLzpHdqOpKHNjk4KDcGGS3BwAELjH2piIDQsc3HkHQRfmfi25KlTk/gfbnwBebTvKfPyy/1opD69aJxBA== +"@ckeditor/ckeditor5-indent@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-indent/-/ckeditor5-indent-48.3.1.tgz#d8cdc0f57f8607536bf91df11fd008e0dc72a071" + integrity sha512-hRuAPVDex46Ky86wuWNoPLpkPYQt0jGECKPnSYsjavm/il6rm57J/Y/jk7CKGJJVIovVLFftvWsI0yHLcsAP1w== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-heading" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-list" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-heading" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-list" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-language@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-language/-/ckeditor5-language-48.2.0.tgz#9c43116288cd7acd6b44c6da0cddf45c2dd5ea96" - integrity sha512-XnzCyoiB+pIpFTQInmo9jgHfR/8UBLdVFO2mLMfwdSpWI0iJRwtMzTZx2dEikebGX1/6PIJAiWFBDb/dzYeSqQ== +"@ckeditor/ckeditor5-language@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-language/-/ckeditor5-language-48.3.1.tgz#209e9147c7c345935cde4a665099d9b50fa81166" + integrity sha512-DGOxZyTvrXisV+3FhFEcagfSlTC7m2tdhD2CJJmBRkKX+2ZOdeP1D0QCD6ybFlO3D/wT57Po2QX2nCVI6U79dQ== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-link@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-link/-/ckeditor5-link-48.2.0.tgz#d3df52b6dd440dfe8d2fd72f6f930c2792794b96" - integrity sha512-kwENWSQdFIjyioIftXgXNxXts2UMcN95iG50P5LM8dNDkWES76KuFrPb7r3ihdTKCnZN6gJjTFxi3HHehhWEQg== +"@ckeditor/ckeditor5-link@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-link/-/ckeditor5-link-48.3.1.tgz#8f660fc75b862d993c4855492a86f7191ed33f0c" + integrity sha512-E3pAhuNy77F55JUnX40apemSbsOC3RbUPIgPclNlh/1PXs1uN/bjkkyDVYQ/rT5MrophY3tw/bLZ/cRrbEuKBg== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-image" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-image" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-list@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-list/-/ckeditor5-list-48.2.0.tgz#49656f1385a522ecc0a9f396d692fb48eacaea68" - integrity sha512-i5PwMQ26w3o+AoH7ouChmLBa4wIenlPy9QHKsh2mSZz0qZl8fbTf6lU+LPCI4wIUt2qHUPya/SUkFIz3+8bXOA== +"@ckeditor/ckeditor5-list@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-list/-/ckeditor5-list-48.3.1.tgz#321330390a85a0449dfc3218faeabe26cfd5daa6" + integrity sha512-KyuXH0aAiiQCOB+yJAru/C5GJqT7a+OoHoanjZMsFq5jjK9r5Tjrh6hUfqXpw+okU1x7Ow+/J4QLVI3QqSnluQ== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-font" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-font" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-markdown-gfm@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-markdown-gfm/-/ckeditor5-markdown-gfm-48.2.0.tgz#f14efc0c6e8f7261d84d445babea1fc4ac424eef" - integrity sha512-XD8+taDeUH7WBKyQuwk421j70uUg8gIBO5hUYzwoEhuTWzkZEe9hfATh4qKE9iDYkHA3HXVHtcHXr9L001Qakw== +"@ckeditor/ckeditor5-markdown-gfm@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-markdown-gfm/-/ckeditor5-markdown-gfm-48.3.1.tgz#16db1dadb8338c0c63fe28ecc46551ad15863c72" + integrity sha512-y+aa3uPNwaTKxSXRcW3DNP4CfXBmXDmQk24mDVE4q7rl6lWkdnAUeEvUsaGYTRjs4szvY+HIaCts8OcSgKfvhA== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" "@types/hast" "3.0.4" hast-util-from-dom "5.0.1" hast-util-to-html "9.0.5" @@ -1314,259 +1314,259 @@ unified "11.0.5" unist-util-visit "5.0.0" -"@ckeditor/ckeditor5-media-embed@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-media-embed/-/ckeditor5-media-embed-48.2.0.tgz#58fe9a8a4788ac055d84a9ab71939282d9c988e6" - integrity sha512-uM1FhPw/jj/xr+RabIMaXHvcHnLUUFEWlPWx5wE7RWW2lucKt0mJ5xAMUo6TqATKuavKrVX3fL98/Cbv+Y6bpg== +"@ckeditor/ckeditor5-media-embed@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-media-embed/-/ckeditor5-media-embed-48.3.1.tgz#00d7fd1bfe0174732e695ebe864fbd4180fa13a6" + integrity sha512-Asq6B/nuhhHCka4mtjbIM4RrHAOWwCAYmR4kaX8xh6G81FfXKI/X26rJ8TjLno5J7lNgacdB6OznNu/UcJO0gQ== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-undo" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-undo" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" -"@ckeditor/ckeditor5-mention@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-mention/-/ckeditor5-mention-48.2.0.tgz#6d3190217a0a3f1fe012947bd698868023b844ab" - integrity sha512-826BaVDvvkZT/qb7UTwpzLkoKuBFfBd9UQDJg1+iwppTbIl9XmwFW1SVcpOQNwv4eH8aZqEylMEJk+DoSalEoA== +"@ckeditor/ckeditor5-mention@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-mention/-/ckeditor5-mention-48.3.1.tgz#00686950fadb63d9b8b221a756bcd374af532a16" + integrity sha512-TdmXZ+NnBXdbMtbA6Yo93mZpTs0oz9HfN8jY9yEJXsECOC0XPC1+nghQQrxJ3a9+eq6qba/JNLLM+ZV0W6DOaA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-minimap@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-minimap/-/ckeditor5-minimap-48.2.0.tgz#6bc67da3cbc7e79965289dd4a4b8bd205a364d9c" - integrity sha512-BrqFY9XpHdxqeswY/NWYlcmYTy/LshUFGHADvMCmyjbRMd78ws1cMiP21oxy18Z6LvkL/IsiC9g1tk4G1hB5zQ== +"@ckeditor/ckeditor5-minimap@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-minimap/-/ckeditor5-minimap-48.3.1.tgz#fecf72e03a6d15b20a3ae0fb592f8aa8b28070d3" + integrity sha512-kDJfTRv31WrFisXBKzHNtKhAseiSsJKw1oWIPqqLIN9rnYXnEpjqa5BRgypfFbS7LW0wgjKvCOH/yHMyPrv64A== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-page-break@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-page-break/-/ckeditor5-page-break-48.2.0.tgz#2b2eebc5299c387e3ee0b4d21776cf7ad27d14be" - integrity sha512-cddeD4R9c5soyZ0Y218i/t373qDiYgfvdW4Sm8KgpEj90kDx2Hy1OlZB29BXYg7a7rIujIZsXsHZcVHPHaOxzA== +"@ckeditor/ckeditor5-page-break@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-page-break/-/ckeditor5-page-break-48.3.1.tgz#b0811faa6cd9054d3519c3f60bb9f11e5ee21ebd" + integrity sha512-Wbsq6ZEOQN+zmfhMx05Ey0mda6qCj74j34yEZrnJ5nfFAoody7q3hJ7yJ9Edu10zF8+LXfC8+ebpaXQr77IvLg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" -"@ckeditor/ckeditor5-paragraph@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paragraph/-/ckeditor5-paragraph-48.2.0.tgz#fd63047020339629d16a1bed9b6089a82cf48a3e" - integrity sha512-vo8xor5aAzRelxpQt0ZghjpYi2N5Hy2iAtyU1scMlgxGEJzX85b2qN+xN/lKVQUbEzvHFqQHaATjSiuMGDG8ZA== +"@ckeditor/ckeditor5-paragraph@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paragraph/-/ckeditor5-paragraph-48.3.1.tgz#75c270e7739cfab04928023ed559191216ea29b2" + integrity sha512-TnfBhRiFMBbGoXaPOpUiG109IpUFjbdEQEtjlBfiB4bMG71J1pdVYBe+qN1kvr34cYgdR96P/wbUnqC4BZA6Jw== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-paste-from-office@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paste-from-office/-/ckeditor5-paste-from-office-48.2.0.tgz#53c248c51719bbee75a5a22209e990994ed8c8a4" - integrity sha512-8T1/DS3iXJOE4xseTAOBsHqTrRqQB4axGaXW11Mrfw3IVdMwfJV9N/4Yeja+AovPkgOyGLluTxxcpyNCMXITMQ== +"@ckeditor/ckeditor5-paste-from-office@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paste-from-office/-/ckeditor5-paste-from-office-48.3.1.tgz#16966c0490c42ed88facfbcd67917f0253c77b49" + integrity sha512-PAyMPmRRTY9MvvfhLdfPwgDOAlzm9u9C97aS7S/JbeKl2uys9uJ7nZRBC9v+9zf6eJMHx90ThKyVBtstKDC6LQ== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-remove-format@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-remove-format/-/ckeditor5-remove-format-48.2.0.tgz#428850bcf64b8c0e82674f709974b2ef6c14e87c" - integrity sha512-dPwkXs3E0ckisv0YZHcLKjyk2hOO/ZUq4AcOxW6BgfsVRAiXMicuYmQRjNPGussb80+54ZEaYS++f72SDRc4XA== +"@ckeditor/ckeditor5-remove-format@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-remove-format/-/ckeditor5-remove-format-48.3.1.tgz#47ed5255046db5aac9647ad1fdfbfde54ab12586" + integrity sha512-ZVuLTxUupAnoilnhC6Sjev1+qdzzSJxZ0h1h41boaRHSoqXGtnvXosb4MYZ416LiLYDBkFdL1yLJhhPOsWNXMg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-restricted-editing@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-restricted-editing/-/ckeditor5-restricted-editing-48.2.0.tgz#228d2db7efb7a57e93512ce8335ad5fc1298f75a" - integrity sha512-l1Q1/y4zseqHhTTG/VsgSPIQ17WW6TrpUOk2W6w/kvmiuD3L0WuClQ+YJ9SNKItMeO0Rp5DbzKfH6daI9DAXRA== +"@ckeditor/ckeditor5-restricted-editing@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-restricted-editing/-/ckeditor5-restricted-editing-48.3.1.tgz#16e0eb643b25de79c73bf7df1b2d8ac0a872b41a" + integrity sha512-53u38P5fpz/8qwanJtGYtgmi5Szqg+6VhqnbSyPWOWK8dlJAUi0aMJy/ihseFkUFt2AfaUZHlUW7WzpwttbDCw== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-select-all@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-48.2.0.tgz#152eebd364ef04813bfda62f11940420365034bd" - integrity sha512-HFC8lPT/bT71uUHqvEwoLFwKu3UnsXXOghh1XIcTgILnRjDWHEY3ttSrpGTsQxlRjmSb6IPxf1hkj+RHmqv5zg== +"@ckeditor/ckeditor5-select-all@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-48.3.1.tgz#5544cd8325f844ebcd0c2f0aad0e3f44c6415670" + integrity sha512-bPXjCzqNeroJxnpW+dHXtBb5vigap7cwANJ6LS9lvTbQGKk3Ocq6jO0RlhmJ9RvcuHwAMH60a+23zW3PJAOkAQ== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-show-blocks@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-show-blocks/-/ckeditor5-show-blocks-48.2.0.tgz#c263662fbd459f599d3214f82c211af9fce297db" - integrity sha512-ty0Hg0YYQOrbvpWoCyw63x/vfWURhAzbqyZyG733A3NF+LDmONgxDW1LVhvb7T2hhnvhUGwYsFRLN4P65tTCaA== +"@ckeditor/ckeditor5-show-blocks@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-show-blocks/-/ckeditor5-show-blocks-48.3.1.tgz#fe9f212a61bf78a27e18b4699cf0dee9af167f4b" + integrity sha512-Frzw96nYEET7ymiEUvMHjkJ/QClUfsGTd+jJufXaT9hUx7t1nONVQVhzIEIruy8dgqt8prIRqVpczD3mQS8T4Q== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-source-editing@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-source-editing/-/ckeditor5-source-editing-48.2.0.tgz#26f42dffae61cbcf9e88d90467b53f88369b3040" - integrity sha512-TIXQDtsBHhh3+7Z6e5CEgBJ7T1gYY3+mp8FiaSUzzKLZEqq0QQVERBoNx1ojG9uWmVn9wctjF/vAlnY0xs0doA== +"@ckeditor/ckeditor5-source-editing@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-source-editing/-/ckeditor5-source-editing-48.3.1.tgz#4d086b1a6f5c9c6e68409368bc1c1ff01c167f1f" + integrity sha512-20rfbBZgZjEYnFCpS69U27TKZq9ZLMzKCBSXv8Kmv4qObHGgZMBY+R5UsG1VpIRG5DdUjP9lBWgmCVkzlof1EA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-special-characters@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-special-characters/-/ckeditor5-special-characters-48.2.0.tgz#eb96db4d868c89e1e21ed837f45d7c2224d9e67d" - integrity sha512-jvydvV/3+UqOabg/wcZZYaP5q36aPk+NEBqF0nTsR0oIPGxlaw8ihbXsdcF8UX8+kkkXU/awr+Uowiay8hs2AA== +"@ckeditor/ckeditor5-special-characters@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-special-characters/-/ckeditor5-special-characters-48.3.1.tgz#82b692b7b30867660ff7245c78545dac0050e876" + integrity sha512-gqfxywMLASyjJV7AvhV3WCX3QYuizjWG0SxUy7zOils00UjIeImfQW07X5u/FSi2GLeUsOjSfttsAbtJXQXHzg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-style@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-style/-/ckeditor5-style-48.2.0.tgz#ffb7c7cd63b56978c05518e5779257a5822a0846" - integrity sha512-N0RJNPrP8NcCvPLKCAYeaJSnx4qg+cZL9u9hvYtdnI0NITUYdhgVCurZqOjubw9CQrfUYAVkka40M1Q2/0eUOg== +"@ckeditor/ckeditor5-style@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-style/-/ckeditor5-style-48.3.1.tgz#6e309e4800253c2499c72c40b89b805cb0f04e5c" + integrity sha512-rYikWptU+1Kd4UbzZ0s04tO6CqlEoPzfX09jfdwWSNYLbgB9+CfrxnkbnFvfg3SCAgtFDactc07TBtxsH9+Eag== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-html-support" "48.2.0" - "@ckeditor/ckeditor5-list" "48.2.0" - "@ckeditor/ckeditor5-table" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-html-support" "48.3.1" + "@ckeditor/ckeditor5-list" "48.3.1" + "@ckeditor/ckeditor5-table" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-table@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-table/-/ckeditor5-table-48.2.0.tgz#4aca49aa88c0a08a81f488ceabf4283fd0f6af8b" - integrity sha512-YsqUdqGQiY+StFWTYKtWzqkuUgR970czEe8tJabPzh46fgvHEGxATPqHVnHq6Y5Fmx7TL+df+CvLTyElYAFmsQ== +"@ckeditor/ckeditor5-table@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-table/-/ckeditor5-table-48.3.1.tgz#bbb0da4cbd49f082c5fce9a3ecae8c36cec1531d" + integrity sha512-aoVzI5Srl5g0AP2XslxNugJFeogQGstk8JiCwPN1cRvtOb/e7pvMYBsAXhqdf3GFeq3E7HMw/fceXmDLlWJPgw== dependencies: - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-typing@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-typing/-/ckeditor5-typing-48.2.0.tgz#fb26bea04f3346df8a196a7e5a1d1d09c612b186" - integrity sha512-aYigcMZn3Ae9qfEDcy6Wg+W0xjw9Z+nT9Iryl8JIqyLTCbLW7eOrLy2aXWmoHvcegFfAtTLaIigRT8j4ZQm3SQ== +"@ckeditor/ckeditor5-typing@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-typing/-/ckeditor5-typing-48.3.1.tgz#4fdf7c548c47bd22b31ee10bc7f8059c46aa7de0" + integrity sha512-kBtgdIA9oWqrmTk24WRxaK/p91N00Mz0XE9/w7NDiOLAPBJNeBvt8Le4zOzyeLt8tn+DCP2h/BQg0t04oFveNQ== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-ui@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-48.2.0.tgz#76d7b6aa8537ba18022b4b96d17396fc42bf8618" - integrity sha512-J43uo8TPR5awC8fw7CBlgx+tXGiyD2kuomELEJeaeoOw26ADEpLfnYZKlB1mb+VKnXJ43IHuqv/6GFF1hPKhpg== +"@ckeditor/ckeditor5-ui@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-48.3.1.tgz#0412a773b358043346b97db37568adb6ff092656" + integrity sha512-bs0VgxH3xfs8B14it+5dNK9I5YIWDI27qxArJqmfDFbnVBVtxlaLtnntyykbrNWCck53LKZ2qCpDueVsCV2JmA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-editor-multi-root" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-editor-multi-root" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" "@types/color-convert" "2.0.4" color-convert "3.1.0" color-parse "2.0.2" es-toolkit "1.45.1" vanilla-colorful "0.7.2" -"@ckeditor/ckeditor5-undo@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-undo/-/ckeditor5-undo-48.2.0.tgz#9d78f1774fb280f857c201eef9f4bf011a037733" - integrity sha512-nWGPcFI9K/Pl1UhErAHN3HZRucU3FuK9ECyufc+640I5UWdFwCDMEdij+lfdegEIwvN2T3tZE52f1BnL83wdzQ== +"@ckeditor/ckeditor5-undo@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-undo/-/ckeditor5-undo-48.3.1.tgz#9deb6fe24c1b66592236704632e6421cf971679d" + integrity sha512-psJd40k7knNqfbdCaBc6D6cC88exr4Y6AwQihUn/9DaQv8vBjJDNsifVsSgfBemT7QIchUDIoJwYkF8hmUDT9Q== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-upload@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-upload/-/ckeditor5-upload-48.2.0.tgz#599023da600293fbc24e0259f30b3d534b3c08e3" - integrity sha512-sY/wuaBypDxQknplKI90zhtiY0VnpSB07zvHw2ednU3QjxnTLXYsEEENuEswLd9tWwuQ1v5qvqKRM5LFuiaKZg== +"@ckeditor/ckeditor5-upload@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-upload/-/ckeditor5-upload-48.3.1.tgz#27367faffd93a03d37556a8c3fc6b73334de103e" + integrity sha512-6hEOB4rAgtbDhntBw7Vw1wyn6BxR03mXNSGaKHyJ+OCZ1FzNAcCCkHI+6CI5INpAiAp8ISXfzblKec+EB0iA0Q== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" -"@ckeditor/ckeditor5-utils@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-48.2.0.tgz#49be7348d74a3df8fdf9d6165a637b81e33dd25e" - integrity sha512-htCvovEGW2MCKnnX8T0jwoxGqsLiwBp8wg65sr5nXx8i+B9IUAHZlnIK1VNE8g1ZLl1qhoaQTpbQTL12W5sTTw== +"@ckeditor/ckeditor5-utils@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-48.3.1.tgz#caafa91ea85efb0f51d4d357efb6ec93eca79634" + integrity sha512-hLZLjgwWSQKB3/a7AULSB5066PujeqwQiiUwU71ObxLGAHJA5EWD102Jp093BmiFvf5k8/hXFqOtUuaihDCXtg== dependencies: - "@ckeditor/ckeditor5-ui" "48.2.0" + "@ckeditor/ckeditor5-ui" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-watchdog@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-watchdog/-/ckeditor5-watchdog-48.2.0.tgz#0e9958d86fef9222a8659bd14341d1e1af2c7a1a" - integrity sha512-o8i6a20WzgxGOqk2ZYgithtDyfVjNog7I/NECsDFyEU1u8hkrO/IdYblUOEFQgT8QySIcUBKiV+5fA8wZSv+XA== +"@ckeditor/ckeditor5-watchdog@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-watchdog/-/ckeditor5-watchdog-48.3.1.tgz#6e96ff9c189268628b78db7e2aeca9f892a0e152" + integrity sha512-qv0D8GdaRdP9kM5LFYNNZTT3kN70jeEilZIA8wqLDf2+nIkz68xNZiwMbad9yrjGbMe2iQqrURTmML1/2+FRqA== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-widget@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-48.2.0.tgz#57e94e9a20eb28bc4985c78573c59692d62fb28f" - integrity sha512-O8V7juKYJ6muzeRw1dm+o3jQ75PG6Tm582XFegIFMnAA+j1iXb2fEaw2Mvb07uGC9x8Xpaz63b2sSYC1EheJ6A== +"@ckeditor/ckeditor5-widget@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-48.3.1.tgz#eed18f23747bd1449c1fc480bda62387f4f7ef53" + integrity sha512-2XrBEd0pz/aVmSlXYC/Q3vgGVLadtN2KK5T3euQv3MSWTZtA66ZQKeKLFwl5pNvv/ItnCHUDz/RMEAP1CqsfTg== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" -"@ckeditor/ckeditor5-word-count@48.2.0": - version "48.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-word-count/-/ckeditor5-word-count-48.2.0.tgz#806cba7d99af92156eff94ce61ddfb3f27e5a0d4" - integrity sha512-CzXyNmkd2nqo9TR+JeQQWPXSh8sP3akqaKy5OUMlDee7l849heOn+q6mMesqzWxySdq51cy/YgfHOJnfWuv2eA== +"@ckeditor/ckeditor5-word-count@48.3.1": + version "48.3.1" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-word-count/-/ckeditor5-word-count-48.3.1.tgz#353db0d5ddcc33ed301b34eb9ac4b7a4fc3ae9e8" + integrity sha512-ylAMJ0LNVJasul0cVbZFSIXK4tdZ/850NXPjtTiL63K//2bYfxRj3Xwh+mN14H4NX3ozkJhN2jaA9PU6Gmfs3Q== dependencies: - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" es-toolkit "1.45.1" "@colordx/core@^5.4.3": @@ -1621,9 +1621,9 @@ tslib "^2.8.0" "@fortawesome/fontawesome-free@^7.0.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-7.3.0.tgz#c26db8baad037c5dff9d88980757cb5d90540d8a" - integrity sha512-Yw4Qa43P6e4Xwh0TwEUkHQNRJInWaqIBo73VJmns3j2AIlZPAvUcR4yGIxCPqPRCgyJ5KIVIalF/I1GxhZ/Kgw== + version "7.3.1" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-7.3.1.tgz#9d7d7df8f850637e001d24e6cd901422b4b09099" + integrity sha512-wmglKKPDIkgV3aWlZzWECCPoGIkYCulzBwxG9+w7rc5BGapZ6cPMpoPOT8k36J0Ni7PPX6c/rsoMWfS4d1MUMg== "@hotwired/stimulus-webpack-helpers@^1.0.1": version "1.0.1" @@ -1765,9 +1765,9 @@ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@sinclair/typebox@^0.34.0": - version "0.34.49" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.49.tgz#4f1369234f2ecf693866476c3b2e1b54d2a9d68e" - integrity sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A== + version "0.34.52" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.52.tgz#62f8a686e4ab28a8944902e2ad2d648312ef11cb" + integrity sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw== "@swc/helpers@^0.5.12": version "0.5.23" @@ -1843,13 +1843,20 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== -"@types/hast@3.0.4", "@types/hast@^3.0.0": +"@types/hast@3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== dependencies: "@types/unist" "*" +"@types/hast@^3.0.0": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.5.tgz#48020de4c0e63492f4ca9db42068c108f68b7f8f" + integrity sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g== + dependencies: + "@types/unist" "*" + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.6": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" @@ -1887,9 +1894,9 @@ integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/node@*": - version "26.0.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-26.0.1.tgz#4a60e2c7a6d68bd261e265f8983bfe1601263ce3" - integrity sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw== + version "26.1.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.1.1.tgz#bad758d601e97d6cf457d204ee76a35fce7bd119" + integrity sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw== dependencies: undici-types "~8.3.0" @@ -1921,9 +1928,9 @@ "@types/yargs-parser" "*" "@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.3.0": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.2.tgz#a03ad82cd5676414d068ba86f880c5681194aadf" - integrity sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.3.tgz#094041e1a4cb1987f038335421281ac8be390bcc" + integrity sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg== "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" @@ -2084,9 +2091,9 @@ integrity sha512-p3KyPzxGc3vWSap5hHA6SllbUCmh7s+NtpGyC3qEWrxYJT9t9TUAzjPm48Okipo+UUyPQfDlIvTcs9JRShBFiQ== "@zxcvbn-ts/language-common@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@zxcvbn-ts/language-common/-/language-common-4.1.2.tgz#c38c52500865d3a2ab7fa1193d747dafc4f2b995" - integrity sha512-uJlBzhC9/KjPImqdnc1/lPxmdn4xKbkruN5p1mASWkXA0gli+GZ5LrVL+dqscA8Pcf4OfudE56TtCWeHljJOvA== + version "4.1.3" + resolved "https://registry.yarnpkg.com/@zxcvbn-ts/language-common/-/language-common-4.1.3.tgz#c0955cc6819f89e49f4274c7013890c1ae7fdd06" + integrity sha512-g2bg4skmlJG9aJqC/nWziZzgYpSe/f3rKeGobrkdFiOrfZVFqqzUgC6BUQWuX54Sua9j0Jxxt+1bf4f/Mal1Kg== dependencies: "@zxcvbn-ts/dictionary-compression" "^3.0.1" @@ -2235,11 +2242,11 @@ bail@^2.0.0: integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== barcode-detector@^3.0.0, barcode-detector@^3.0.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/barcode-detector/-/barcode-detector-3.2.0.tgz#6bf6cc5e404b8c7a05b349305477049825e254bc" - integrity sha512-MrT5TT058ptG5YB157pHLfXKVpp0BKEfQBOb8QvzTbatzmLDu85JJ0Gd/sCYwbwdwStJvxsYflrSN6D6E4Ndyw== + version "3.2.1" + resolved "https://registry.yarnpkg.com/barcode-detector/-/barcode-detector-3.2.1.tgz#a4e205253dd0daba2c02c993c5c45f99a4bf128d" + integrity sha512-zLL7AbT9uNJBUzYpKg9v5tUA4yQGReExSi60q0g660Mj0wjUhKmN0GrUF3qELo8ITW9THzyJXdZQkXLMnsieiw== dependencies: - zxing-wasm "3.1.0" + zxing-wasm "3.1.1" base64-js@0.0.8: version "0.0.8" @@ -2251,10 +2258,10 @@ base64-js@^1.1.2, base64-js@^1.3.0: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -baseline-browser-mapping@^2.10.38: - version "2.10.40" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.40.tgz#f372c8eb36ff4ad0b5e7ae467014abef124554ba" - integrity sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw== +baseline-browser-mapping@^2.10.42: + version "2.10.43" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.43.tgz#7b5d11590ce5acdbe4859443e3c940e81ce8c02d" + integrity sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ== big.js@^5.2.2: version "5.2.2" @@ -2296,14 +2303,14 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.24.0, browserslist@^4.28.1, browserslist@^4.28.2: - version "4.28.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.4.tgz#dd8b8167a32845ff5f8cd6ce13f5abba16cd04c9" - integrity sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw== + version "4.28.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.6.tgz#7cf83afcd69c55fde6fb2dcc5039ff0f4ba42610" + integrity sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw== dependencies: - baseline-browser-mapping "^2.10.38" - caniuse-lite "^1.0.30001799" - electron-to-chromium "^1.5.376" - node-releases "^2.0.48" + baseline-browser-mapping "^2.10.42" + caniuse-lite "^1.0.30001803" + electron-to-chromium "^1.5.389" + node-releases "^2.0.51" update-browserslist-db "^1.2.3" bs-custom-file-input@^1.3.4: @@ -2326,10 +2333,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001799: - version "1.0.30001799" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz#5c909138c27f1a61219d3e092071c1cc7d32dc55" - integrity sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001803: + version "1.0.30001806" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz#1bc8e502b723fa393455dfbedd5ccec0c29bb74e" + integrity sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw== ccount@^2.0.0: version "2.0.1" @@ -2370,70 +2377,70 @@ ci-info@^4.2.0: integrity sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg== ckeditor5@^48.0.0: - version "48.2.0" - resolved "https://registry.yarnpkg.com/ckeditor5/-/ckeditor5-48.2.0.tgz#bf459c90d6d6759aa974361c5119d50ce40bf0ef" - integrity sha512-qhK0KDC8sks9u7XziILfdL9NrK6Rv7n0mD4FhMWV9q6Nec13F1a9IlxffZRdJlQCgnlOPfH7ZzhjecZQLCflFw== + version "48.3.1" + resolved "https://registry.yarnpkg.com/ckeditor5/-/ckeditor5-48.3.1.tgz#b80a164124c872ca56094143b3217807d07f18de" + integrity sha512-uuWdrM7mHVO0NsO3DTGDXp2zBkcuSYoS78+Ovpuci3B1pxzG7eHeLfeaNKIltWorhcWCxY4G+JTWOobcwflCTA== dependencies: - "@ckeditor/ckeditor5-adapter-ckfinder" "48.2.0" - "@ckeditor/ckeditor5-alignment" "48.2.0" - "@ckeditor/ckeditor5-autoformat" "48.2.0" - "@ckeditor/ckeditor5-autosave" "48.2.0" - "@ckeditor/ckeditor5-basic-styles" "48.2.0" - "@ckeditor/ckeditor5-block-quote" "48.2.0" - "@ckeditor/ckeditor5-bookmark" "48.2.0" - "@ckeditor/ckeditor5-ckbox" "48.2.0" - "@ckeditor/ckeditor5-ckfinder" "48.2.0" - "@ckeditor/ckeditor5-clipboard" "48.2.0" - "@ckeditor/ckeditor5-cloud-services" "48.2.0" - "@ckeditor/ckeditor5-code-block" "48.2.0" - "@ckeditor/ckeditor5-core" "48.2.0" - "@ckeditor/ckeditor5-easy-image" "48.2.0" - "@ckeditor/ckeditor5-editor-balloon" "48.2.0" - "@ckeditor/ckeditor5-editor-classic" "48.2.0" - "@ckeditor/ckeditor5-editor-decoupled" "48.2.0" - "@ckeditor/ckeditor5-editor-inline" "48.2.0" - "@ckeditor/ckeditor5-editor-multi-root" "48.2.0" - "@ckeditor/ckeditor5-emoji" "48.2.0" - "@ckeditor/ckeditor5-engine" "48.2.0" - "@ckeditor/ckeditor5-enter" "48.2.0" - "@ckeditor/ckeditor5-essentials" "48.2.0" - "@ckeditor/ckeditor5-find-and-replace" "48.2.0" - "@ckeditor/ckeditor5-font" "48.2.0" - "@ckeditor/ckeditor5-fullscreen" "48.2.0" - "@ckeditor/ckeditor5-heading" "48.2.0" - "@ckeditor/ckeditor5-highlight" "48.2.0" - "@ckeditor/ckeditor5-horizontal-line" "48.2.0" - "@ckeditor/ckeditor5-html-embed" "48.2.0" - "@ckeditor/ckeditor5-html-support" "48.2.0" - "@ckeditor/ckeditor5-icons" "48.2.0" - "@ckeditor/ckeditor5-image" "48.2.0" - "@ckeditor/ckeditor5-indent" "48.2.0" - "@ckeditor/ckeditor5-language" "48.2.0" - "@ckeditor/ckeditor5-link" "48.2.0" - "@ckeditor/ckeditor5-list" "48.2.0" - "@ckeditor/ckeditor5-markdown-gfm" "48.2.0" - "@ckeditor/ckeditor5-media-embed" "48.2.0" - "@ckeditor/ckeditor5-mention" "48.2.0" - "@ckeditor/ckeditor5-minimap" "48.2.0" - "@ckeditor/ckeditor5-page-break" "48.2.0" - "@ckeditor/ckeditor5-paragraph" "48.2.0" - "@ckeditor/ckeditor5-paste-from-office" "48.2.0" - "@ckeditor/ckeditor5-remove-format" "48.2.0" - "@ckeditor/ckeditor5-restricted-editing" "48.2.0" - "@ckeditor/ckeditor5-select-all" "48.2.0" - "@ckeditor/ckeditor5-show-blocks" "48.2.0" - "@ckeditor/ckeditor5-source-editing" "48.2.0" - "@ckeditor/ckeditor5-special-characters" "48.2.0" - "@ckeditor/ckeditor5-style" "48.2.0" - "@ckeditor/ckeditor5-table" "48.2.0" - "@ckeditor/ckeditor5-typing" "48.2.0" - "@ckeditor/ckeditor5-ui" "48.2.0" - "@ckeditor/ckeditor5-undo" "48.2.0" - "@ckeditor/ckeditor5-upload" "48.2.0" - "@ckeditor/ckeditor5-utils" "48.2.0" - "@ckeditor/ckeditor5-watchdog" "48.2.0" - "@ckeditor/ckeditor5-widget" "48.2.0" - "@ckeditor/ckeditor5-word-count" "48.2.0" + "@ckeditor/ckeditor5-adapter-ckfinder" "48.3.1" + "@ckeditor/ckeditor5-alignment" "48.3.1" + "@ckeditor/ckeditor5-autoformat" "48.3.1" + "@ckeditor/ckeditor5-autosave" "48.3.1" + "@ckeditor/ckeditor5-basic-styles" "48.3.1" + "@ckeditor/ckeditor5-block-quote" "48.3.1" + "@ckeditor/ckeditor5-bookmark" "48.3.1" + "@ckeditor/ckeditor5-ckbox" "48.3.1" + "@ckeditor/ckeditor5-ckfinder" "48.3.1" + "@ckeditor/ckeditor5-clipboard" "48.3.1" + "@ckeditor/ckeditor5-cloud-services" "48.3.1" + "@ckeditor/ckeditor5-code-block" "48.3.1" + "@ckeditor/ckeditor5-core" "48.3.1" + "@ckeditor/ckeditor5-easy-image" "48.3.1" + "@ckeditor/ckeditor5-editor-balloon" "48.3.1" + "@ckeditor/ckeditor5-editor-classic" "48.3.1" + "@ckeditor/ckeditor5-editor-decoupled" "48.3.1" + "@ckeditor/ckeditor5-editor-inline" "48.3.1" + "@ckeditor/ckeditor5-editor-multi-root" "48.3.1" + "@ckeditor/ckeditor5-emoji" "48.3.1" + "@ckeditor/ckeditor5-engine" "48.3.1" + "@ckeditor/ckeditor5-enter" "48.3.1" + "@ckeditor/ckeditor5-essentials" "48.3.1" + "@ckeditor/ckeditor5-find-and-replace" "48.3.1" + "@ckeditor/ckeditor5-font" "48.3.1" + "@ckeditor/ckeditor5-fullscreen" "48.3.1" + "@ckeditor/ckeditor5-heading" "48.3.1" + "@ckeditor/ckeditor5-highlight" "48.3.1" + "@ckeditor/ckeditor5-horizontal-line" "48.3.1" + "@ckeditor/ckeditor5-html-embed" "48.3.1" + "@ckeditor/ckeditor5-html-support" "48.3.1" + "@ckeditor/ckeditor5-icons" "48.3.1" + "@ckeditor/ckeditor5-image" "48.3.1" + "@ckeditor/ckeditor5-indent" "48.3.1" + "@ckeditor/ckeditor5-language" "48.3.1" + "@ckeditor/ckeditor5-link" "48.3.1" + "@ckeditor/ckeditor5-list" "48.3.1" + "@ckeditor/ckeditor5-markdown-gfm" "48.3.1" + "@ckeditor/ckeditor5-media-embed" "48.3.1" + "@ckeditor/ckeditor5-mention" "48.3.1" + "@ckeditor/ckeditor5-minimap" "48.3.1" + "@ckeditor/ckeditor5-page-break" "48.3.1" + "@ckeditor/ckeditor5-paragraph" "48.3.1" + "@ckeditor/ckeditor5-paste-from-office" "48.3.1" + "@ckeditor/ckeditor5-remove-format" "48.3.1" + "@ckeditor/ckeditor5-restricted-editing" "48.3.1" + "@ckeditor/ckeditor5-select-all" "48.3.1" + "@ckeditor/ckeditor5-show-blocks" "48.3.1" + "@ckeditor/ckeditor5-source-editing" "48.3.1" + "@ckeditor/ckeditor5-special-characters" "48.3.1" + "@ckeditor/ckeditor5-style" "48.3.1" + "@ckeditor/ckeditor5-table" "48.3.1" + "@ckeditor/ckeditor5-typing" "48.3.1" + "@ckeditor/ckeditor5-ui" "48.3.1" + "@ckeditor/ckeditor5-undo" "48.3.1" + "@ckeditor/ckeditor5-upload" "48.3.1" + "@ckeditor/ckeditor5-utils" "48.3.1" + "@ckeditor/ckeditor5-watchdog" "48.3.1" + "@ckeditor/ckeditor5-widget" "48.3.1" + "@ckeditor/ckeditor5-word-count" "48.3.1" clipboard@^2.0.4: version "2.0.11" @@ -2894,9 +2901,9 @@ domhandler@^5.0.2, domhandler@^5.0.3: domelementtype "^2.3.0" dompurify@^3.0.3: - version "3.4.11" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.11.tgz#29c8ba496475f279ef4015784068452fb14a0680" - integrity sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw== + version "3.4.12" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.12.tgz#6fa2265e9bbdce882c4ace4107626051b448ffa8" + integrity sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg== optionalDependencies: "@types/trusted-types" "^2.0.7" @@ -2918,10 +2925,10 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.0.3" -electron-to-chromium@^1.5.376: - version "1.5.380" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.380.tgz#6dbe112f22b35ccdf627f894ad7515cdd35f6388" - integrity sha512-W6d5AbuEoRayO447cqrg6lKJIlscgRnnxOZl/08kfV71BQDoEBC7Wwis68z87LjyK6f4kWyTaubuDbhHKrZkbA== +electron-to-chromium@^1.5.389: + version "1.5.393" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.393.tgz#aec971df2a6f4f7e51fbacb200d66cebfc7d3c17" + integrity sha512-kiDJdIUawuEIcp9XoICKp1iTYDEbgguIPq526N1Q7jIQDeQ3CqoMx71025PI/7E48Ddtw2HuWsVjY7afEgNxmg== emoji-regex@^8.0.0: version "8.0.0" @@ -2934,9 +2941,9 @@ emojis-list@^3.0.0: integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== enhanced-resolve@^5.22.2: - version "5.24.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz#b2439adf5d31d7e4764de1f9ecf942d6cd3fc874" - integrity sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw== + version "5.24.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.2.tgz#f25d703a24431cb1e02f944adb74aefa4fcb8d7e" + integrity sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw== dependencies: graceful-fs "^4.2.4" tapable "^2.3.3" @@ -2969,9 +2976,9 @@ es-errors@^1.3.0: integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-module-lexer@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.1.0.tgz#1dfcbb5ea3bbfb63f28e1fc3676c3676d1c9624c" - integrity sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ== + version "2.3.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.3.1.tgz#5bf2df06999dbbe5f006a5f46a11fb9f5b7b391b" + integrity sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA== es-toolkit@1.45.1: version "1.45.1" @@ -3041,9 +3048,9 @@ fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-uri@^3.0.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.2.tgz#8af3d4fc9d3e71b11572cc2673b514a7d1a8c8ec" - integrity sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ== + version "3.1.4" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.4.tgz#3b3daf9ce68f41f956df0b505132c0cfce9ec7af" + integrity sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw== fastest-levenshtein@1.0.16, fastest-levenshtein@^1.0.12, fastest-levenshtein@^1.0.16: version "1.0.16" @@ -3587,9 +3594,9 @@ marked-mangle@^1.0.1: integrity sha512-phz1W/nYMr1T08Q7wqH2aj+PPiK85E69WQGfId+prvryfgjY/Idibx4YUvKaYMDV9rK1qo+/yC+Quu/3gdaBeA== marked@^18.0.0: - version "18.0.5" - resolved "https://registry.yarnpkg.com/marked/-/marked-18.0.5.tgz#c229c0ac6ad1e275ae8e5037c6168f76d2f42e61" - integrity sha512-S6GcvALHg6K4ohtu4E7x0a1AqhAjp6cV8KhLSyN9qVapnzJkusVBxZRcIU9AeYsbe6P1hKDusSbEOzGyyuce6w== + version "18.0.6" + resolved "https://registry.yarnpkg.com/marked/-/marked-18.0.6.tgz#7faf26fd580b9c8daa75984f18db25631fc4ad63" + integrity sha512-MrV5puXBfuiy6wl6DLaq3BtIJQAJToAd5zt/ZKhRfGRAuFPALE7/4Y7jnxRQoEgK/pBgurGqLyAuRgZ2xOjr6w== mdast-util-find-and-replace@^3.0.0: version "3.0.2" @@ -4058,10 +4065,10 @@ ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@^3.3.12: - version "3.3.15" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.15.tgz#36c490fad8c6e86c824c940dfdde999b69ed4316" - integrity sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA== +nanoid@^3.3.16: + version "3.3.16" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.16.tgz#a04d8ec4b1f10009d2d533947aefe4293737816c" + integrity sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q== neo-async@^2.6.2: version "2.6.2" @@ -4080,10 +4087,10 @@ node-notifier@^9.0.0: uuid "^8.3.0" which "^2.0.2" -node-releases@^2.0.48: - version "2.0.50" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.50.tgz#597197a852071ce42fc2550e58e223242bcba969" - integrity sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg== +node-releases@^2.0.51: + version "2.0.51" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.51.tgz#cdc08433577f5b32ad01694481726e22eeb54aef" + integrity sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ== nth-check@^2.0.1: version "2.1.1" @@ -4182,9 +4189,9 @@ picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1: integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^4.0.0, picomatch@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" - integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== + version "4.0.5" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.5.tgz#51ea57a17d86f605f81039595fbc40ed06a55fab" + integrity sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A== pkg-dir@^4.2.0: version "4.2.0" @@ -4448,18 +4455,18 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.2.14, postcss@^8.4.40: - version "8.5.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.16.tgz#1230ce0b5df354c24c0ea45f99ce5f6a88279d28" - integrity sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg== + version "8.5.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.20.tgz#316a139da79484ce55969fa7bb6f2f1abcc14060" + integrity sha512-lW616l85ucIQL+FocMmL7pQFPqBmwejrCMg+iPxyImlrANNJG9NHq/RkyCZopDhd8C3LA03PHRJDjkbGu8vvug== dependencies: - nanoid "^3.3.12" + nanoid "^3.3.16" picocolors "^1.1.1" source-map-js "^1.2.1" preact@^10.13.2: - version "10.29.3" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.29.3.tgz#36f96b7a8edc2fccea76daa5e7545597dc15ab28" - integrity sha512-D9NL1GAnJZhc3RndVs4gDdxEeU9TcHgywMrhhOsnpdlvFjdbx0gAsLUnH6JEhlJH5giL7Tx5biWPUSEXE/HPzw== + version "10.29.7" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.29.7.tgz#b70df2eb06e982c7ac65b6df1541e5846ac0f6ba" + integrity sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q== pretty-error@^4.0.0: version "4.0.0" @@ -4723,9 +4730,9 @@ semver@^7.3.2, semver@^7.6.3: integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== serialize-javascript@^7.0.3: - version "7.0.6" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-7.0.6.tgz#f2f20c8af0757e4d8fa329d0210636da0682ddef" - integrity sha512-ATTK5Q4gFVg0YDp1my2vqygyvhcklD/UV5GIlYHooGTn/NogJqIzpetkD6E5kmuVULqz/S9inUL25XcAgDRJQg== + version "7.0.7" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-7.0.7.tgz#06ec40576d4cea96d68010a534520bff1f948a72" + integrity sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g== setimmediate@^1.0.5: version "1.0.5" @@ -4872,9 +4879,9 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svgo@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-4.0.1.tgz#c82dacd04ee9f1d55cd4e0b7f9a214c86670e3ee" - integrity sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w== + version "4.0.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-4.0.2.tgz#a62246f0a9d671c0314d04f3cc15f78b1bd0667f" + integrity sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng== dependencies: commander "^11.1.0" css-select "^5.1.0" @@ -4910,9 +4917,9 @@ terser-webpack-plugin@^5.3.0: terser "^5.31.1" terser@^5.31.1: - version "5.48.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.48.0.tgz#8b391171cfbb7ac4a88f9f04ba1cfabc54f643db" - integrity sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q== + version "5.49.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.49.0.tgz#30b341fdf70cfc98486965125ae660fda8403670" + integrity sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.15.0" @@ -4935,9 +4942,9 @@ tmp@^0.2.5: integrity sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw== tom-select@^2.1.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/tom-select/-/tom-select-2.6.1.tgz#54be5c4431d5d59c8c4897e6e051963bac11f44a" - integrity sha512-d/1kngVOQTGcI/2pVDfDLYjtjUgSSd3fSgkYUpi0y+yRtQQu2kzljj3aUdqMfqc45cjPvDEpfDt/hSX4awDFTg== + version "2.6.2" + resolved "https://registry.yarnpkg.com/tom-select/-/tom-select-2.6.2.tgz#07693442309eefa5b57c6beee6005195f3f956a4" + integrity sha512-eiXIkk82XzzUTOVQDFpy+ZGejuqdTvMukyUyeZBQaKnqW42UoTiTZnrod/eX0rkqJEc4rZY9DZ3zdjV07i29wQ== dependencies: "@orchidjs/sifter" "^1.1.0" "@orchidjs/unicode-variants" "^1.1.2" @@ -4976,10 +4983,10 @@ tslib@^2.8.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -type-fest@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.7.0.tgz#bae586d3b7c2596bd9c7e62195f33c7fcada1c91" - integrity sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg== +type-fest@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.8.0.tgz#6d517998257c33159db4d4da6f18efa33bd47df3" + integrity sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA== dependencies: tagged-tag "^1.0.0" @@ -5157,9 +5164,9 @@ web-namespaces@^2.0.0: integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== webpack-bundle-analyzer@^5.1.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-5.3.0.tgz#ca289e08f2f5e39964a9988c38ff3090559392bf" - integrity sha512-PEhAoqiJ+47d0uLMx/+zo5XOvaU+Vk6N2ZLht7H3n09QLy/fhyvqGNwjdRUHJDgMN8crBR2ZwVHkIswT3Xuawg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-5.3.1.tgz#cc966b30f3dd7e2c63b41df1633c0928dce4b77f" + integrity sha512-wP2EusncRGL1tZyMHC/umLkjPdYMkTL9nPEKh8G8dkYCJ9TyF6xnXFqjhdqmv5J900irN/g0P5jMvLT22krEXQ== dependencies: "@discoveryjs/json-ext" "^0.6.3" acorn "^8.0.4" @@ -5225,14 +5232,14 @@ webpack-sources@^2.2.0: source-map "^0.6.1" webpack-sources@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.0.tgz#87bf7f5801a4e985b1f1c92b64b9620a02f76d08" - integrity sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ== + version "3.5.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.1.tgz#76c2418486dcc02b2aa0694c104176c2858fe84a" + integrity sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw== webpack@^5.74.0: - version "5.108.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.108.1.tgz#cd5856f9a88e55f344d64a6623c09bf34446cc9d" - integrity sha512-UUCihHQK3O7483Woa0SulNLDeAiOhHI2PN2PAPU4fVWJqbzhv04EJ8FaWtB9WWh3i8fRt28543U7VfuJTOrpgQ== + version "5.108.4" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.108.4.tgz#141818a411662773a0bb32dc5536acc5409943b7" + integrity sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w== dependencies: "@types/estree" "^1.0.8" "@types/json-schema" "^7.0.15" @@ -5270,9 +5277,9 @@ wildcard@^2.0.1: integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== ws@^8.19.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" - integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== + version "8.21.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.1.tgz#045650cd4b1207809e7547146223c3814a9af586" + integrity sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw== xmldoc@^2.0.3: version "2.0.3" @@ -5301,10 +5308,10 @@ zwitch@^2.0.0, zwitch@^2.0.4: resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== -zxing-wasm@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/zxing-wasm/-/zxing-wasm-3.1.0.tgz#90f39a833abf7bef3be748ba50bb62459214aa38" - integrity sha512-5+3V1wPRx4gvbeLH2jB7n2cKrYJ1q4i3QgjnBUtrDPeqxJSi6BdzKJg4y6aF6bgW8zfntnYJyrkqFMevDhL2NA== +zxing-wasm@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/zxing-wasm/-/zxing-wasm-3.1.1.tgz#221644b5bcbc787c130837b5bbb5ce4683ae7800" + integrity sha512-g0sPJBIubO6zLcJh1jftLPIN6xziaqLsvLgtpGKwDrEhyXXqla3E3yjFrznlr78UHIOMzbJPi0HDWKs/KgaB7A== dependencies: "@types/emscripten" "^1.41.5" - type-fest "^5.7.0" + type-fest "^5.8.0"