diff --git a/.docker/nginx.conf b/.docker/nginx.conf new file mode 100644 index 00000000..492d9f96 --- /dev/null +++ b/.docker/nginx.conf @@ -0,0 +1,189 @@ +# mime types are covered in nginx.conf by: +# http { +# include mime.types; +# } + +upstream php-pimcore { + server datadefinitions-php-1:9000; +} + +upstream php-pimcore-debug { + server datadefinitions-php-debug-1:9000; +} + +server { + listen [::]:80 default_server; + listen 80 default_server; + + fastcgi_buffer_size 128k; + fastcgi_buffers 8 256k; + fastcgi_busy_buffers_size 256k; + #server_name pimcore.localhost; + + root /var/www/html/public; + index index.php; + + # Filesize depending on your data + client_max_body_size 100m; + + # It is recommended to seclude logs per virtual host + #access_log /var/log/access.log; + #error_log /var/log/error.log error; + + # Protected Assets + # + ### 1. Option - Restricting access to certain assets completely + # + # location ~ ^/protected/.* { + # return 403; + # } + # location ~ ^/var/.*/protected(.*) { + # return 403; + # } + # + # location ~ ^/cache-buster\-[\d]+/protected(.*) { + # return 403; + # } + # + ### 2. Option - Checking permissions before delivery + # + # rewrite ^(/protected/.*) /index.php$is_args$args last; + # + # location ~ ^/var/.*/protected(.*) { + # return 403; + # } + # + # location ~ ^/cache-buster\-[\d]+/protected(.*) { + # return 403; + # } + + # Mercure Hub Proxy for SSE (Server-Sent Events) + # /hub/.well-known/mercure -> http://mercure/.well-known/mercure + location /hub/ { + rewrite ^/hub/(.*)$ /$1 break; + proxy_pass http://mercure; + proxy_read_timeout 24h; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_buffering off; + proxy_cache off; + } + + # Pimcore Head-Link Cache-Busting + rewrite ^/cache-buster-(?:\d+)/(.*) /$1 last; + + # Stay secure + # + # a) don't allow PHP in folders allowing file uploads + location ~* /var/assets/.*\.php(/|$) { + return 404; + } + + # b) Prevent clients from accessing hidden files (starting with a dot) + # Access to `/.well-known/` is allowed. + # https://www.mnot.net/blog/2010/04/07/well-known + # https://tools.ietf.org/html/rfc5785 + location ~* /\.(?!well-known/) { + deny all; + log_not_found off; + access_log off; + } + + # c) Prevent clients from accessing to backup/config/source files + location ~* (?:\.(?:bak|conf(ig)?|dist|fla|in[ci]|log|psd|sh|sql|sw[op])|~)$ { + deny all; + } + + # Some Admin Modules need this: + # Database Admin, Server Info + location ~* ^/admin/(adminer|external) { + rewrite .* /index.php$is_args$args last; + } + + # Thumbnails + location ~* .*/(image|video)-thumb__\d+__.* { + try_files /var/tmp/thumbnails$uri /index.php; + expires 2w; + access_log off; + add_header Cache-Control "public"; + } + + # Assets + # Still use a whitelist approach to prevent each and every missing asset to go through the PHP Engine. + location ~* ^(?!/admin)(.+?)\.((?:css|js)(?:\.map)?|jpe?g|gif|png|svgz?|eps|exe|gz|zip|mp\d|ogg|ogv|webm|pdf|docx?|xlsx?|pptx?)$ { + try_files /var/assets$uri $uri =404; + expires 2w; + access_log off; + log_not_found off; + add_header Cache-Control "public"; + } + + location / { + error_page 404 /meta/404; + try_files $uri /index.php$is_args$args; + } + + # Use this location when the installer has to be run + # location ~ /(index|install)\.php(/|$) { + # + # Use this after initial install is done: + location ~ ^/index\.php(/|$) { + send_timeout 1800; + fastcgi_read_timeout 1800; + # regex to split $uri to $fastcgi_script_name and $fastcgi_path_info + fastcgi_split_path_info ^(.+\.php)(/.+)$; + # Check that the PHP script exists before passing it + #try_files $fastcgi_script_name =404; + # include fastcgi.conf if needed + include fastcgi_params; + # Bypass the fact that try_files resets $fastcgi_path_info + # see: http://trac.nginx.org/nginx/ticket/321 + set $path_info $fastcgi_path_info; + fastcgi_param PATH_INFO $path_info; + + # Activate these, if using Symlinks and opcache + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT $realpath_root; + + # Mitigate https://httpoxy.org/ vulnerabilities + fastcgi_param HTTP_PROXY ""; + + # If Xdebug session is requested, pass it to the Xdebug enabled container + if ($http_cookie ~* "XDEBUG_SESSION") { + fastcgi_pass php-pimcore-debug; + } + + fastcgi_pass php-pimcore; + # Prevents URIs that include the front controller. This will 404: + # http://domain.tld/index.php/some-path + # Remove the internal directive to allow URIs like this + internal; + } + + # PHP-FPM Status and Ping + location /fpm- { + access_log off; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + location /fpm-status { + allow 127.0.0.1; + # add additional IP's or Ranges + deny all; + fastcgi_pass php-pimcore; + } + location /fpm-ping { + fastcgi_pass php-pimcore; + } + } + # nginx Status + # see: https://nginx.org/en/docs/http/ngx_http_stub_status_module.html + location /nginx-status { + allow 127.0.0.1; + deny all; + access_log off; + stub_status; + } +} diff --git a/.docker/supervisord.conf b/.docker/supervisord.conf new file mode 100644 index 00000000..84cabeed --- /dev/null +++ b/.docker/supervisord.conf @@ -0,0 +1,20 @@ +# Important Notice: this configuration is not optimized for production use! + +[program:messenger-consume] +command=php /var/www/html/bin/console messenger:consume pimcore_core pimcore_maintenance pimcore_index_queues --memory-limit=250M --time-limit=3600 +numprocs=1 +startsecs=0 +autostart=true +autorestart=true +process_name=%(program_name)s_%(process_num)02d +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:maintenance] +command=bash -c 'sleep 3600 && exec php /var/www/html/bin/console pimcore:maintenance --async' +autostart=true +autorestart=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/.env b/.env index 6dc4027a..1692675c 100644 --- a/.env +++ b/.env @@ -1 +1,10 @@ PIMCORE_KERNEL_CLASS=Kernel +APP_DEBUG=1 + +# OpenSearch Configuration for Generic Data Index +PIMCORE_OPENSEARCH_HOST=opensearch:9200 + +# Mercure Configuration +MERCURE_JWT_SECRET=SECRET_MERCURE_KEY_SECRET_MERCURE_KEY +MERCURE_URL=http://mercure/.well-known/mercure +MERCURE_PUBLIC_URL=http://localhost/hub/.well-known/mercure diff --git a/.github/workflows/behat.yml b/.github/workflows/behat.yml index 02c718fb..381718ce 100644 --- a/.github/workflows/behat.yml +++ b/.github/workflows/behat.yml @@ -23,12 +23,9 @@ jobs: strategy: matrix: - php: [ 8.1, 8.2, 8.3 ] - pimcore: [ ^11.1, ^11.2, ^11.3 ] + php: [ 8.4 ] + pimcore: [ ^12.3 ] dependencies: [ highest ] - exclude: - - php: 8.1 - dependencies: lowest services: database: @@ -72,13 +69,13 @@ jobs: - if: matrix.dependencies == 'highest' name: Install dependencies highest run: | - composer req pimcore/pimcore:${{ matrix.pimcore }} coreshop/pimcore:4.0.x-dev --no-interaction --no-scripts --no-update + composer req pimcore/pimcore:${{ matrix.pimcore }} coreshop/pimcore:5.0.x-dev --no-interaction --no-scripts --no-update composer update --no-progress --prefer-dist --optimize-autoloader - if: matrix.dependencies == 'lowest' name: Install dependencies lowest run: | - composer req pimcore/pimcore:${{ matrix.pimcore }} coreshop/pimcore:4.0.x-dev --no-interaction --no-scripts --no-update + composer req pimcore/pimcore:${{ matrix.pimcore }} coreshop/pimcore:5.0.x-dev --no-interaction --no-scripts --no-update composer update --no-progress --prefer-dist --optimize-autoloader --prefer-lowest - name: Cache clear diff --git a/.github/workflows/codestyles.yml b/.github/workflows/codestyles.yml index efd2c942..a692f48a 100644 --- a/.github/workflows/codestyles.yml +++ b/.github/workflows/codestyles.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - branch: [ '4.0' ] + branch: [ '5.0' ] steps: - uses: actions/checkout@v4 @@ -25,7 +25,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.1 + php-version: 8.4 - name: Install PHP dependencies run: composer update --no-interaction --no-scripts diff --git a/.github/workflows/frontend-build.yaml b/.github/workflows/frontend-build.yaml new file mode 100644 index 00000000..11827908 --- /dev/null +++ b/.github/workflows/frontend-build.yaml @@ -0,0 +1,63 @@ +name: Data Definitions Studio Frontend Build + +on: + push: + branches: [ '5.0' ] + pull_request: + branches: [ '5.0' ] + +jobs: + frontend-build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Lint + run: npm run lint || true + + - name: Type check + run: npm run check-types + + - name: Build Studio bundle + run: npm run build + + - name: Force add built assets to git + run: | + git add -f src/DataDefinitionsBundle/Resources/public/studio/*/ + git status --porcelain + + - name: Check for changes + id: verify-changed-files + run: | + if [ -n "$(git status --porcelain)" ]; then + echo "changed=true" >> $GITHUB_OUTPUT + fi + + - name: Commit built assets + if: steps.verify-changed-files.outputs.changed == 'true' + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git commit -m "🚀 Build Data Definitions Studio bundle + + 🤖 Generated with [GitHub Actions](https://github.com/instride-ch/pimcore-data-definitions/actions) + + Co-Authored-By: GitHub Action " + + - name: Push changes + if: steps.verify-changed-files.outputs.changed == 'true' && github.event_name == 'push' + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: ${{ github.ref }} diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml new file mode 100644 index 00000000..6b085b2a --- /dev/null +++ b/.github/workflows/frontend.yml @@ -0,0 +1,28 @@ +name: Frontend Build + +on: + push: + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + name: "Build Frontend" + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Type check + run: npm run check-types + + - name: Build + run: npm run build diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 18ec6313..e381b23e 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -14,12 +14,9 @@ jobs: strategy: matrix: - php: [ 8.1, 8.2, 8.3 ] - pimcore: [ ^11.1, ^11.2, ^11.3 ] + php: [ 8.4 ] + pimcore: [ ^12.3 ] dependencies: [ highest ] - exclude: - - php: 8.1 - dependencies: lowest services: database: diff --git a/.gitignore b/.gitignore index 4a0facd3..2975975e 100644 --- a/.gitignore +++ b/.gitignore @@ -60,7 +60,6 @@ Icon\? *.sublime-project .idea/ composer.lock -docker-compose.yml config/local var/classes var/config @@ -69,6 +68,10 @@ web public docker-compose.yaml test-commands.txt -.docker cache -config/pimcore/data-definitions \ No newline at end of file +config/pimcore/data-definitions + +# Node modules +node_modules/ +.rsbuild/ +dist/ \ No newline at end of file diff --git a/.htaccess b/.htaccess new file mode 100644 index 00000000..14249c50 --- /dev/null +++ b/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/CLA.md b/CLA.md index 5832f10f..a9c5a415 100644 --- a/CLA.md +++ b/CLA.md @@ -1,42 +1,45 @@ -# Contributor License Agreement +# Data Definitions Contributor License Agreement (DCLA) +### Contributor License Agreement The following terms are used throughout this agreement: -**You** - the person or legal entity including its affiliates asked to accept this agreement. An affiliate is any entity -that controls or is controlled by the legal entity, or is under common control with it. +* **You** - the person or legal entity including its affiliates asked to accept this agreement. An affiliate is any +entity that controls or is controlled by the legal entity, or is under common control with it. -**Project** - is an umbrella term that refers to any and all CORS GmbH in combination with instride AG open source projects. +* **Project** - is an umbrella term that refers to any and all Data Definitions projects. -**Contribution** - any type of work that is submitted to a Project, including any modifications or additions to existing -work. +* **Contribution** - any type of work that is submitted to a Project, including any modifications or additions to +existing work. -Submitted - conveyed to a Project via a pull request, commit, issue, or any form of electronic, written, or verbal -communication with CORS GmbH and instride AG, contributors or maintainers. +* **Submitted** - conveyed to a Project via a pull request, commit, issue, or any form of electronic, written, or +verbal communication with CORS GmbH, instride AG, contributors or maintainers. -# 1. Grant of Copyright License. - -Subject to the terms and conditions of this agreement, You grant to the Projects’ maintainers, contributors, users and +#### 1. Grant of Copyright License. +Subject to the terms and conditions of this agreement, You grant to the Projects' maintainers, contributors, users and to CORS GmbH and instride AG a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your contributions and such derivative works. Except for this license, You reserve all rights, title, and interest in your contributions. -# 2. Grant of Patent License. - -Subject to the terms and conditions of this agreement, You grant to the Projects’ maintainers, contributors, users and -to CORS GmbH and instride AG a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this -section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your contributions, -where such license applies only to those patent claims licensable by you that are necessarily infringed by your -contribution or by combination of your contribution with the project to which this contribution was submitted. +#### 2. Grant of Patent License. +Subject to the terms and conditions of this agreement, You grant to the Projects' maintainers, contributors, users and +to CORS GmbH and instride AG a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your contributions, where +such license applies only to those patent claims licensable by you that are necessarily infringed by your contribution +or by combination of your contribution with the project to which this contribution was submitted. If any entity institutes patent litigation - including cross-claim or counterclaim in a lawsuit - against You alleging that your contribution or any project it was submitted to constitutes or is responsible for direct or contributory -patent infringement, then any patent licenses granted to that entity under this agreement shall terminate as of the date -such litigation is filed. - -# 3. Source of Contribution. +patent infringement, then any patent licenses granted to that entity under this agreement shall terminate as of the +date such litigation is filed. +#### 3. Source of Contribution. Your contribution is either your original creation, based upon previous work that, to the best of your knowledge, is covered under an appropriate open source license and you have the right under that license to submit that work with modifications, whether created in whole or in part by you, or you have clearly identified the source of the contribution and any license or other restriction (like related patents, trademarks, and license agreements) of which you are -personally aware. \ No newline at end of file +personally aware. + +#### 4. Contact Information +For questions about this Contributor License Agreement, please contact: +- CORS GmbH: office@cors.gmbh +- instride AG: hello@instride.ch diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..2fd8bfd6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM ghcr.io/cors-gmbh/pimcore-docker/php-fpm-debug:8.4-alpine3.22-7.0-latest AS dev +RUN set -eux; \ + apk update; \ + apk add $PHPIZE_DEPS libxslt-dev \ + libstdc++ \ + libx11 \ + libxrender \ + libxext \ + libssl3 \ + ca-certificates \ + fontconfig \ + freetype \ + ttf-dejavu \ + ttf-droid \ + ttf-freefont \ + ttf-liberation; \ + docker-php-ext-install xsl; \ + docker-php-ext-install sockets; \ + sync; \ + rm -rf /var/cache/apk/* /tmp/* /var/tmp/* /usr/share/doc/* + +RUN echo 'xdebug.idekey = PHPSTORM' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ + && echo 'xdebug.mode = debug' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + +FROM dev AS behat +RUN apk update && \ + apk add chromium chromium-chromedriver + +ENV PANTHER_NO_SANDBOX=1 +ENV PANTHER_CHROME_ARGUMENTS='--disable-dev-shm-usage' +ENV PIMCORE_SKIP_DB_SETUP=1 +ENV PANTHER_NO_HEADLESS=0 +ENV APP_ENV="test" diff --git a/LICENSE.md b/LICENSE.md index a4771e33..f4bd60b1 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,34 +1,152 @@ # License -Copyright (C) CORS GmbH in combination with instride AG +Copyright (C) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://www.instride.ch) -This software is available under two different licenses: -* GNU General Public License version 3 (GPLv3) as Pimcore Community Edition -* Data Definitions Commercial License (DDCL) +**IMPORTANT: Commercial use of this software requires a valid written license agreement with CORS GmbH or instride AG. For licensing inquiries, please contact office@cors.gmbh or hello@instride.ch.** -The default Data Definitions license, without a valid Data Definitions Commercial License agreement, is the Open-Source GPLv3 license. +This software is available under the terms of the +following Data Definitions Commercial License (DDCL) -## GNU General Public License version 3 (GPLv3) -If you decide to choose the GPLv3 license, you must comply with the following terms: -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +**DATA DEFINITIONS COMMERCIAL LICENSE AGREEMENT (DDCL)** -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +**Last Update: January 2026** -You should have received a copy of the GNU General Public License -along with this program. If not, see . +This Commercial License Agreement ("**Agreement**" or "**DDCL**"), effective as of the day of the first installation or use by Customer (the "**Effective Date**"), is by and between CORS GmbH, Zeileisstraße 6, 4600 Wels, Austria in combination with instride AG, Sandgruebestrasse 4, 6210 Sursee, Switzerland (hereinafter "**Licensor**" or "**Data Definitions**") and the user of the Software, as defined herein, (hereinafter "**Licensee**" or "**Customer**"). Licensor and Licensee may be referred to herein collectively as the "**Parties**" or individually as a "**Party**." -## Data Definitions Commercial License (DDCL) -Alternatively, commercial and supported versions of the program - also known as -Commercial Distributions - must be used in accordance with the terms and conditions -contained in a separate written agreement between you and CORS GmbH/instride AG. -For more information about the Data Definitions Commercial License (DDCL) please contact office@cors.gmbh. +**WHEREAS** Licensor desires to license out certain Data Definitions Software ("**Software**"). +**WHEREAS** (a) Software for which the source code is publicly available but which is not licensed out as open source software is "**Open Core Software**" and + (b) Software for which the source code is not publicly available is "**Proprietary Software**", + both covered by this Agreement. -Please see also (files in this directory): -[GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - gpl-3.0.txt](gpl-3.0.txt) \ No newline at end of file +**WHEREAS** the exact products that are available under this Agreement are defined in the additional contractual documents or by inclusion of, or referral to, this Agreement within the source code or within the source code repositories; if not provided for otherwise, a software element is Proprietary Software. + +**WHEREAS** the Software is protected by copyright world- wide; and + +**WHEREAS** Licensee desires to obtain a license to use the Software for its internal business purposes, subject to the terms and conditions of this Agreement. + +**NOW, THEREFORE**, in consideration of the mutual covenants, terms, and conditions set forth herein, and for other good and valuable consideration, the receipt and sufficiency of which are hereby acknowledged, the Parties agree as follows. + +### 1. LICENSE +1.1 PLEASE READ THIS DATA DEFINITIONS SOFTWARE LICENSE AGREEMENT CAREFULLY AS IT CONSTITUTES A LEGALLY BINDING AGREEMENT. BY INSTALLING OR USING THE SOFTWARE, YOU ACCEPT AND AGREE TO ALL TERMS AND CONDITIONS OF THIS AGREEMENT, AND CONFIRM THAT YOUR STATEMENT – IF APPLICABLE – ON THE RELEVANT GLOBAL REVENUE IS CORRECT AND COMPLETE. IF YOU REPRESENT A LEGAL ENTITY, YOU REPRESENT AND WARRANT THAT YOU HAVE FULL LEGAL AUTHORITY TO ENTER INTO THIS AGREEMENT TO BIND THAT LEGAL ENTITY. IF YOU DO NOT AGREE TO THESE TERMS AND CONDITIONS, YOU MAY NOT INSTALL OR USE THE SOFTWARE. + +1.2 Licensor grants the Customer a non-exclusive, non-transferable, non-sublicensable, geographically unlimited right, limited in time to the term of the Agreement, to use the Software and to customize, modify or adapt it for its own purposes. Unless if required by Licensor for compliance with applicable laws or any order of a governmental authority, the Customer is not obliged to share these modifications, adaptations, and customizations ("**Derivatives**") with Licensor or anyone else. + +1.2.1 Solution Development and Production Use + +"**Production Use**" means the usage of a software for development of solutions and productions within a business operation. + +a) An organization with total global revenue not exceeding €5 million (€5M) or equivalent amount in other currency annually ("**Threshold**") may qualify for a free license for Production Use of the Software, provided such organization is not a part, subsidiary, affiliate, or shell company to another organization, entity, or company group whose total combined revenue exceeds the Threshold. Eligibility must be self-certified by the Customer when starting the use of the Software and is subject to periodic review and audit by Licensor. If at any time the Customer's revenue exceeds the Threshold, a paid commercial license will be required for continued Production Use of the software. The Customer is obliged to inform Licensor about relevant changes in revenues. Licensor is entitled to charge license fees retroactively from the date on which Customer exceeded the Threshold. + +b) Non-profit and educational organizations are eligible for a free license for Production Use of the Software, subject to Licensor's non-profit criteria. For this purpose, "non-profit" refers to entities that are legally recognized as non-profit or tax-exempt under applicable law and operate exclusively for charitable, educational, or scientific purposes without profit distribution. Government bodies, municipalities, political parties, and public institutions are excluded unless explicitly approved by Licensor. + +Licensor shall decide at its own reasonable discretion whether (a) the Threshold is exceeded or (b) the requirements for non-profit or educational usage are met. Legal recourse is excluded with regard to such decision of Licensor. + +1.2.2 Non-Production Use and Transition to Production Use + +For non-production purposes—such as demonstrations, prototype design, proofs of concept, and sales presentations (collectively referred to as "**Non-Production Use**")—the use of DDCL-based software is free of charge. + +If the Customer or a Partner or any other third person acting on the Customer's behalf initiates development of a solution with the intention or foreseeable or actual effect of deploying it into production, such use from its beginning shall be deemed Production Use of the Software for which the Threshold applies from the outset. Individual transition periods to Production Use may be agreed between Licensor and Customer in writing. + +Licensor reserves the right to audit, verify and enforce compliance with these terms, including restricting or terminating access to the Software. + +1.2.3 Commercial License Required Above Threshold + +Organizations exceeding the Threshold defined in Sect. 1.2.1 require a valid written commercial license agreement with CORS GmbH or instride AG for any Production Use of the Software. + +1.3 Restrictions on Use + +1.3.1 The Customer may not offer the Software as a hosted or managed service by granting third parties access to a significant part of its features or functions. Additionally, the Customer may not fork, modify, or redistribute the Software, or any Derivative, in a manner that results in a competing or functionally comparable product that is offered as a free or commercial alternative to Licensor's official offerings. + +1.3.2 The Customer shall also refrain from incorporating the Software, or any Derivative, into a commercial product or service offering materially deriving its economic value from the Software, even if it is not directly exposed or obvious. + +1.3.3 The Customer is also prohibited from representing, implying, or otherwise suggesting that its use, distribution, or customization of the Software is endorsed, certified, or supported by Licensor, unless such authorization has been explicitly granted in writing. + +1.3.4 The Customer may only use the Software for its own enterprise. The Customer may not use the Software simultaneously in more instances than Customer has acquired usage licences for. The Customer is only permitted to copy the Software to the extent that this is necessary for the intended use, including the correction of errors. The creation of a backup copy is permitted if it is necessary to secure the contractual use. + +1.3.5 The Customer must not, at any time, (i) rent, lease, lend, sell, license, assign, distribute, publish, transfer, or otherwise make available the Software; (ii) reverse engineer, disassemble, decompile, decode, adapt, or otherwise attempt to derive or gain access to source code of the Proprietary Software, in whole or in part; (iii) use the Software in any manner or for any purpose that infringes, misappropriate, or otherwise wireless any intellectual property ride or other ride of any person, or that violates any applicable law. + +1.4 If the Customer violates any of the provisions Sect. 1.2 and 1.3, all rights of usage granted under the DDCL shall immediately become invalid and shall automatically revert to Licensor. In this case, the Customer must immediately and completely cease using the Software, delete all copies of the Software installed on its systems and delete any backup copies made or hand them over to Licensor. In addition, Licensor reserves the right to take all legal steps. + +1.5 Sect. 1.4 applies accordingly if a Derivative of the Customer infringe upon patents. + +1.6 The parties may agree on expanded usage rights, arrangements for enterprise customers, and special OEM provisions separately. + +1.7 Upon request, the Customer shall enable Licensor to verify the proper use of the Software, in particular whether the Customer is using the Software as agreed. For this purpose, the Customer shall provide Licensor with information, grant access to relevant documents and records and enable an audit of the hardware and software environment by Licensor or an auditing company named by Licensor and acceptable to the Customer. Licensor may carry out the audit on the Customer's premises during the Customer's regular business hours or have it carried out by third parties bound to secrecy. Licensor shall ensure that the Customer's business operations are disturbed as little as possible by the on-site audit. If the inspection reveals a licence violation by the Customer that is not merely minimal, the Customer shall bear the costs of the inspection, otherwise Licensor shall bear them. Licensor reserves all other rights. + +1.8 Licensee acknowledges that, as between Licensee and Licensor, Licensor owns all right, title, and interest, including all intellectual property rights, in and to the Software and, with respect to third-party products, the applicable third-party licensors own all right, title and interest, including all intellectual property rights, in and to the third-party products. + +1.9 Licensor reserves all rights not expressly granted to Licensee in this Agreement. Except for the limited rights and licenses expressly granted under this Agreement, nothing in this Agreement grants, by implication, waiver, estoppel, or otherwise, to Licensee or any third party any intellectual property rights or other right, title, or interest in or to the Software. + +### 2. CONTRIBUTIONS OF DERIVATIVES +2.1 If the Customer wishes to contribute to the Software or to distribute a Derivative, both must be made in accordance with the Data Definitions Contributors License Agreement ("DCLA"). The DCLA stipulates the terms under which intellectual contributions are managed, ensuring that all parties' rights are protected. Acceptance of the DCLA is mandatory for all contributors and can be reviewed on the source-code repository. Contributions without adherence to the DCLA will not be accepted. + +2.2 Any contribution to the Software by a Derivative must be clearly documented, in order to maintain transparency and integrity of the source code. + +2.3. Any Derivative distributed must prominently be specified as "Derivative", comply with the terms of the DDCL, include copyright notices, and be licensed as a whole under the terms of the DDCL, with the proviso that the recipient (licensee) of the out-licensed Derivative gets the role of the "Customer" regarding rights and obligations. Upon distribution of any Derivative, recipient must be provided with a copy of this DDCL. + +### 3. COLLATERAL OBLIGATIONS OF THE CUSTOMER + +3.1 The Customer shall not manipulate, in particular modify, move, remove, suppress, switch off or circumvent licence keys and technical protection mechanisms in the Software, e. g. directly, or through the use of intermediaries, white-labelling, or segmentation of services designed to avoid licensing obligations. + +3.2 The Customer shall not alter or obfuscate any of the Licensor's licensing, copyright, or other proprietary notices within the Software. Any use of Licensor's trademarks must comply with applicable laws. + +3.3 The Customer must ensure that the access data to the user accounts is not passed on to unauthorised third parties and is protected against unauthorised access by third parties. The authorised users shall be instructed accordingly. The Customer shall inform Licensor immediately if there is a suspicion of misuse of the Software. + +3.4 If Customer infringes upon one of the provisions set up by Sect. 3.1 through 3.3, Sect. 1.4 sentence 1 applies accordingly. + +### 4. CONFIDENTIALITY + +From time to time during the Term, either Party may disclose or make available to the other Party information about its business affairs, products, confidential intellectual property, trade secrets, third-party confidential information, and other sensitive or proprietary information, whether orally or in written, electronic, or other form or media, and whether or not marked, designated or otherwise identified as "confidential" (collectively, "**Confidential Information**"). Confidential Information does not include information that, at the time of disclosure is: (a) in the public domain; (b) known to the receiving Party at the time of disclosure; (c) rightfully obtained by the receiving Party on a non-confidential basis from a third party; or (d) independently developed by the receiving Party. The receiving Party shall not disclose the disclosing Party's Confidential Information to any person or entity, except to the receiving Party's employees who have a need to know the Confidential Information for the receiving Party to exercise its rights or perform its obligations hereunder. Notwithstanding the foregoing, each Party may disclose Confidential Information to the limited extent required (i) in order to comply with the order of a court or other governmental body, or as otherwise necessary to comply with applicable law, provided that the Party making the disclosure pursuant to the order shall first have given written notice to the other Party and made a reasonable effort to obtain a protective order; or (ii) to establish a Party's rights under this Agreement, including to make required court filings. On the expiration or termination of this Agreement, the receiving Party shall promptly return to the disclosing Party all copies, whether in written, electronic, or other form or media, of the disclosing Party's Confidential Information, or destroy all such copies and certify in writing to the disclosing Party that such Confidential Information has been destroyed. Each Party's obligations of non­disclosure with regard to Confidential Information are effective as of the Effective Date and will expire five years from the date first disclosed to the receiving Party; provided, however, with respect to any Confidential Information that constitutes a trade secret (as determined under applicable law), such obligations of non-disclosure will survive the termination or expiration of this Agreement for as long as such Confidential Information remains subject to trade secret protection under applicable law. + +### 5. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +Licensor warrants that, at the time of delivery, the Software does not contain any virus or other malicious code that would cause the Software to become inoperable or incapable of being used in accordance with its documentation. The warranties set forth herein do not apply and become null and void if Licensee breaches any material provision of this Agreement or any instrument related hereto, or if Licensee, or any person provided access to the Software by Licensee whether or not in violation of this Agreement: (i) installs or uses the Software on or in connection with any hardware or software not specified in the documentation or expressly authorized by Licensor in writing; (ii) illicitly modifies or damages the Software; or (iii) misuses the Software, including any use of the Software other than as specified in the documentation or expressly authorized by Licensor in writing. If any Software fails to comply with the warranty set forth hereinbefore, and such failure is not excluded from warranty pursuant to this provision, Licensor shall, subject to Licensee's promptly notifying Licensor in writing of such failure, at its sole option, either: (i) repair or replace the Software, provided that Licensee provides Licensor with all information Licensor reasonably requests to resolve the reported failure, including sufficient information to enable the Licensor to recreate such failure; or (ii) refund the fees paid for such Software, subject to Licensee's ceasing all use of and, if requested by Licensor, returning to Licensor all copies of the Software. If Licensor repairs or replaces the Software, the warranty will continue to run from the Effective Date and not from Licensee's receipt of the repair or replacement. The remedies set forth in this Section 5 are Licensee's sole remedies and Licensor's sole liability under the limited warranty set forth in this Section 5. + +EXCEPT FOR THE LIMITED WARRANTY SET FORTH IN THIS SECTION 5, THE SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" AND LICENSOR HEREBY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE. LICENSOR SPECIFICALLY DISCLAIMS ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, AND ALL WARRANTIES ARISING FROM COURSE OF DEALING, USAGE, OR TRADE PRACTICE. LICENSOR MAKES NO WARRANTY OF ANY KIND THAT THE SOFTWARE AND DOCUMENTATION, OR ANY PRODUCTS OR RESULTS OF THE USE THEREOF, WILL MEET LICENSEE'S OR ANY OTHER PERSON'S REQUIREMENTS, OPERATE WITHOUT INTERRUPTION, ACHIEVE ANY INTENDED RESULT, BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM OR OTHER SERVICES, OR BE SECURE, ACCURATE, COMPLETE, FREE OF HARMFUL CODE, OR ERROR FREE. + +### 6. DEFECTS + +6.1 The Customer is obliged to notify Licensor of any defect or error in the Software immediately after its occurrence. + +6.2 Before reporting any defect or error, the Customer must carry out an analysis of the system environment as far as possible to ensure that the defect or error is not due to system components that are not covered by this Agreement. + +6.3 The Customer shall immediately install or carry out updates or other troubleshooting measures provided by Licensor. + +6.4 Violations of the obligations to co-operate may result in additional costs for Licensor. The Customer must reimburse Licensor for such costs, unless it is not responsible for them. + +### 7. LIMITATION OF LIABILITY + +IN NO EVENT WILL LICENSOR BE LIABLE UNDER OR IN CONNECTION WITH THIS AGREEMENT UNDER ANY LEGAL OR EQUITABLE THEORY, INCLUDING BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, AND OTHERWISE, FOR ANY: (a) CONSEQUENTIAL, INCIDENTAL, INDIRECT, EXEMPLARY, SPECIAL, ENHANCED, OR PUNITIVE DAMAGES; (b) INCREASED COSTS, DIMINUTION IN VALUE OR LOST BUSINESS, PRODUCTION, REVENUES, OR PROFITS; (c) LOSS OF GOODWILL OR REPUTATION; (d) USE, INABILITY TO USE, LOSS, INTERRUPTION, DELAY OR RECOVERY OF ANY DATA, OR BREACH OF DATA OR SYSTEM SECURITY; OR (e) COST OF REPLACEMENT GOODS OR SERVICES, IN EACH CASE REGARDLESS OF WHETHER LICENSOR WAS ADVISED OF THE POSSIBILITY OF SUCH LOSSES OR DAMAGES OR SUCH LOSSES OR DAMAGES WERE OTHERWISE FORESEEABLE. + +IN NO EVENT WILL LICENSOR'S AGGREGATE LIABILITY ARISING OUT OF OR RELATED TO THIS AGREEMENT UNDER ANY LEGAL OR EQUITABLE THEORY, INCLUDING BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, AND OTHERWISE EXCEED THE TOTAL AMOUNTS PAID TO LICENSOR UNDER THIS AGREEMENT IN THE TWELVE (12) MONTH PERIOD PRECEDING THE EVENT GIVING RISE TO THE CLAIM. + +### 8. INDEMNIFICATION + +The Customer shall indemnify Licensor and its affiliates, officers, directors, employees, agents, and assigns, from and against all claims, losses, damages, liabilities, costs, and expenses (including reasonable attorney's fees and costs) against Licensor arising out of or relating to the Customer's use of the Software or Derivatives. + +### 9. TERMINATION + +Term and termination will be regulated separately. If Customer uses the Software in violation of this Agreement or otherwise violates the use rights or prohibitions contained in this Agreement, Customer's License shall automatically terminate. Upon termination of this Agreement, the Customer shall uninstall the Software, including all copies, and delete any remaining Software residues from its IT system. The Customer must destroy any backup copies made. At Licensor's request, the Customer must confirm that it has fulfilled these obligations. + +### 10. REMUNERATION + +The remuneration for the use of the software shall be agreed separately. + +### 11. MISCELLANEOUS + +11.1 Licensee may not assign or transfer any of its rights or delegate any of its obligations hereunder, in each case whether voluntarily, involuntarily, by operation of law or otherwise, without the prior written consent of Licensor. Any purported assignment, transfer, or delegation in violation of this Section is null and void. No assignment, transfer, or delegation will relieve the assigning or delegating Party of any of its obligations hereunder. This Agreement is binding upon and inures to the benefit of the Parties hereto and their respective permitted successors and assigns. + +11.2 Each Party acknowledges and agrees that a breach or threatened breach by such Party of any of its contractual obligations may cause the other Party irreparable harm for which monetary damages would not be an adequate remedy and agrees that, in the event of such breach or threatened breach, the other Party will be entitled to equitable relief, including a restraining order, an injunction, specific performance, and any other relief that may be available from any court, without any requirement to post a bond or other security, or to prove actual damages or that monetary damages are not an adequate remedy. Such remedies are not exclusive and are in addition to all other remedies that may be available at law, in equity, or otherwise. + +11.3 No amendment to or modification of this Agreement is effective unless it is in writing and signed by an authorized representative of each Party. No waiver by any Party of any of the provisions hereof will be effective unless explicitly set forth in writing and signed by the Party so waiving. Except as otherwise set forth in this Agreement, (i) no failure to exercise, or delay in exercising, any rights, remedy, power, or privilege arising from this Agreement will operate or be construed as a waiver thereof, and (ii) no single or partial exercise of any right, remedy, power, or privilege hereunder will preclude any other or further exercise thereof or the exercise of any other right, remedy, power, or privilege. + +11.4 If any provision of this Agreement is invalid, illegal, or unenforceable in any jurisdiction, such invalidity, illegality, or unenforceability will not affect any other term or provision of this Agreement or invalidate or render unenforceable such term or provision in any other jurisdiction. Upon such determination that any term or other provision is invalid, illegal, or unenforceable, the Parties hereto shall negotiate in good faith to modify this Agreement so as to effect the original intent of the Parties as closely as possible in a mutually acceptable manner in order that the transactions contemplated hereby be consummated as originally contemplated to the greatest extent possible. + +11.5 Specifications originating from the Customer regarding the service content and legal elements, such as GTC or contractual clauses, do not apply. + +11.6 Support, maintenance, and other services remain subject to separate agreements. + +11.7 For commercial licensing inquiries (organizations exceeding the €5M revenue threshold), please contact: +- CORS GmbH: office@cors.gmbh +- instride AG: hello@instride.ch diff --git a/README.md b/README.md index bad10a8c..91ac6378 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![DataDefinitions](docs/images/github_banner.png "Data Definitions") -[![Software License](https://img.shields.io/badge/license-GPLv3-brightgreen.svg?style=flat-square)](LICENSE.md) +[![Software License](https://img.shields.io/badge/license-DDCL-brightgreen.svg?style=flat-square)](LICENSE.md) [![Latest Stable Version](https://img.shields.io/packagist/v/instride/data-definitions.svg?style=flat-square)](https://packagist.org/packages/instride/data-definitions) Data Definitions allows you to define your DataObject Imports and Exports using a nice GUI and re-run the definitions @@ -9,7 +9,7 @@ as often you like. Everything within Data Definitions is extendable. ![Interface](docs/images/mapping.png) ## Requirements -* Pimcore 11 +* Pimcore 12 ## Getting started @@ -39,8 +39,12 @@ bin/console pimcore:bundle:install DataDefinitionsBundle - [Export Definitions](./docs/exports.md) ## License -**instride AG**, Sandgruebestrasse 4, 6210 Sursee, Switzerland -[instride.ch](https://instride.ch), connect@instride.ch -Copyright © 2024 instride AG. All rights reserved. +**CORS GmbH**, Zeileisstraße 6, 4600 Wels, Austria +[cors.gmbh](https://www.cors.gmbh), office@cors.gmbh + +**instride AG**, Sandgruebestrasse 4, 6210 Sursee, Switzerland +[instride.ch](https://instride.ch), hello@instride.ch + +Copyright © 2024 CORS GmbH and instride AG. All rights reserved. For licensing details please visit [LICENSE.md](LICENSE.md) diff --git a/behat-bootstrap.php b/behat-bootstrap.php index dc04b68c..11dc3cea 100755 --- a/behat-bootstrap.php +++ b/behat-bootstrap.php @@ -1,13 +1,13 @@ =8.1", + "php": "^8.4", "ext-json": "*", - "coreshop/pimcore-bundle": "^4.0", - "coreshop/resource-bundle": "^4.0", - "coreshop/rule-bundle": "^4.0", + "coreshop/core-shop": "dev-studiov2", "jms/serializer": "^3.17", "league/csv": "^9.7", "nyholm/psr7": "^1.5", "openspout/openspout": "^4.23", - "pimcore/admin-ui-classic-bundle": "^1.4", - "pimcore/pimcore": "^11.0", + "pimcore/pimcore": "^12.0", + "pimcore/studio-backend-bundle": "^0.13.20", + "pimcore/studio-ui-bundle": "^0.13.20", "psr/http-client-implementation": "^1.0", "psr/http-factory-implementation": "^1.0", "symfony/dotenv": "^6.3 | ^7.0", - "symfony/http-client": "^6.3 | ^7.0" + "symfony/framework-bundle": "^6.4", + "symfony/http-client": "^6.3 | ^7.0", + "symfony/http-kernel": "^6.4", + "symfony/runtime": "^6.4" }, "require-dev": { "behat/behat": "^3.8", @@ -89,5 +95,11 @@ } }, "minimum-stability": "dev", - "prefer-stable": true + "prefer-stable": true, + "repositories": { + "coreshop-pr": { + "type": "vcs", + "url": "https://github.com/dpfaffenbauer/CoreShop" + } + } } diff --git a/config/bundles.php b/config/bundles.php new file mode 100644 index 00000000..6aa1e811 --- /dev/null +++ b/config/bundles.php @@ -0,0 +1,11 @@ + ['all' => true], + Pimcore\Bundle\OpenSearchClientBundle\PimcoreOpenSearchClientBundle::class => ['all' => true], + Pimcore\Bundle\StudioUiBundle\PimcoreStudioUiBundle::class => ['all' => true], + Pimcore\Bundle\StudioBackendBundle\PimcoreStudioBackendBundle::class => ['all' => true], + Pimcore\Bundle\GenericDataIndexBundle\PimcoreGenericDataIndexBundle::class => ['all' => true], + Pimcore\Bundle\GenericExecutionEngineBundle\PimcoreGenericExecutionEngineBundle::class => ['all' => true], + Pimcore\Bundle\AdminBundle\PimcoreAdminBundle::class => ['all' => true] +]; diff --git a/config/packages/dev/config.yaml b/config/packages/dev/config.yaml index d77183c8..1cfb4a67 100644 --- a/config/packages/dev/config.yaml +++ b/config/packages/dev/config.yaml @@ -1,2 +1,8 @@ imports: - { resource: ../../config.yaml } + +framework: + trusted_proxies: '192.0.0.1/8,10.0.0.0/8,172.0.0.0/8' + trusted_headers: [ 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto', 'x-forwarded-port' ] + session: + cookie_samesite: 'lax' diff --git a/config/packages/pimcore_generic_data_index.yaml b/config/packages/pimcore_generic_data_index.yaml new file mode 100644 index 00000000..6941c0e0 --- /dev/null +++ b/config/packages/pimcore_generic_data_index.yaml @@ -0,0 +1,4 @@ +pimcore_open_search_client: + clients: + default: + hosts: ['opensearch'] \ No newline at end of file diff --git a/config/packages/pimcore_studio_backend.yaml b/config/packages/pimcore_studio_backend.yaml new file mode 100644 index 00000000..d18f1773 --- /dev/null +++ b/config/packages/pimcore_studio_backend.yaml @@ -0,0 +1,10 @@ +#pimcore_studio_backend: +# mercure_settings: +# # Server-side: Docker internal network +# hub_url_server: 'http://mercure/.well-known/mercure' +# # Client-side: Full URL including .well-known/mercure +# hub_url_client: 'https://datadefinitions.localhost/hub/.well-known/mercure' +# # Must match docker-compose.yaml +# jwt_key: 'SECRET_MERCURE_KEY_SECRET_MERCURE_KEY' +# # Cookie path must be /hub for all Mercure requests +# jwt_cookie_host: 'datadefinitions.localhost' diff --git a/config/packages/security.yaml b/config/packages/security.yaml index df3e2daf..a949aa0a 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -1,6 +1,4 @@ security: - enable_authenticator_manager: true - providers: pimcore_admin: id: Pimcore\Security\User\UserProvider @@ -16,20 +14,13 @@ security: provider: pimcore_admin http_basic: ~ - # Pimcore Admin Bundle firewall pimcore_admin: '%pimcore_admin_bundle.firewall_settings%' + pimcore_studio: '%pimcore_studio_backend.firewall_settings%' access_control: - # Pimcore admin ACl // DO NOT CHANGE! - - { path: ^/admin/settings/display-custom-logo, roles: PUBLIC_ACCESS } - - { path: ^/admin/login/2fa-verify, roles: IS_AUTHENTICATED_2FA_IN_PROGRESS } - - { path: ^/admin/login/2fa-setup, roles: ROLE_PIMCORE_USER } - - { path: ^/admin/login/2fa, roles: IS_AUTHENTICATED_2FA_IN_PROGRESS } - - { path: ^/admin/login$, roles: PUBLIC_ACCESS } - - { path: ^/admin/login/(login|lostpassword|deeplink|csrf-token)$, roles: PUBLIC_ACCESS } - - { path: ^/admin, roles: ROLE_PIMCORE_USER } - - { path: ^/asset/webdav, roles: ROLE_PIMCORE_USER } + - { path: ^/pimcore-studio/api/(docs|docs/json|translations)$, roles: PUBLIC_ACCESS } + - { path: ^/pimcore-studio/api, roles: ROLE_PIMCORE_USER } role_hierarchy: # Pimcore admin // DO NOT CHANGE! - ROLE_PIMCORE_ADMIN: [ROLE_PIMCORE_USER] \ No newline at end of file + ROLE_PIMCORE_ADMIN: [ROLE_PIMCORE_USER] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..ccd041d6 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,117 @@ +name: datadefinitions + +services: + db: + image: mysql:8.4 + working_dir: /application + volumes: + - datadefinitions-database:/var/lib/mysql + - .:/application:cached + environment: + - MYSQL_ROOT_PASSWORD=ROOT + - MYSQL_DATABASE=pimcore + - MYSQL_USER=pimcore + - MYSQL_PASSWORD=pimcore + networks: + - datadefinitions + + redis: + image: redis:alpine + networks: + - datadefinitions + + nginx: + image: nginx:stable-alpine + volumes: + - ./:/var/www/html:ro + - ./.docker/nginx.conf:/etc/nginx/conf.d/default.conf:ro + labels: + - traefik.enable=true + - traefik.http.routers.datadefinitions.rule=Host(`datadefinitions.localhost`) + - traefik.http.routers.datadefinitions.entrypoints=cors_dev + - traefik.http.routers.datadefinitions.tls=true + - traefik.http.services.datadefinitions.loadbalancer.server.port=80 + - traefik.docker.network=cors_dev + depends_on: + - php + - php-debug + networks: + - datadefinitions + + php: + image: ghcr.io/cors-gmbh/pimcore-docker/php-fpm:8.4-alpine3.22-7.0-latest + command: 'php-fpm' + entrypoint: docker-php-entrypoint + depends_on: + - db + - redis + volumes: + - ./:/var/www/html:cached + networks: + - datadefinitions + environment: + - PHP_IDE_CONFIG=serverName=localhost + + php-debug: + image: ghcr.io/cors-gmbh/pimcore-docker/php-fpm-debug:8.4-alpine3.22-7.0-latest + command: 'php-fpm' + entrypoint: xdebug-entrypoint + depends_on: + - db + - redis + volumes: + - ./:/var/www/html:cached + networks: + - datadefinitions + environment: + - PHP_IDE_CONFIG=serverName=localhost + + supervisord: + image: ghcr.io/cors-gmbh/pimcore-docker/php-supervisord:8.4-alpine3.22-7.0-latest + depends_on: + - db + - redis + volumes: + - ./:/var/www/html:cached + networks: + - datadefinitions + + opensearch: + image: opensearchproject/opensearch:${OPENSEARCH_VERSION:-2.11.1} + networks: + - datadefinitions + environment: + discovery.type: single-node + node.name: opensearch + OPENSEARCH_JAVA_OPTS: "-Xms512m -Xmx512m" + plugins.security.disabled: 'true' + action.auto_create_index: 'false' + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + volumes: + - opensearch-data:/usr/share/opensearch/data + + mercure: + image: dunglas/mercure + restart: unless-stopped + networks: + - datadefinitions + ports: + - "3000:80" + environment: + SERVER_NAME: ':80' + MERCURE_PUBLISHER_JWT_KEY: 'SECRET_MERCURE_KEY_SECRET_MERCURE_KEY' + MERCURE_SUBSCRIBER_JWT_KEY: 'SECRET_MERCURE_KEY_SECRET_MERCURE_KEY' + +volumes: + datadefinitions-database: + opensearch-data: + +networks: + datadefinitions: + driver: bridge diff --git a/ecs.php b/ecs.php index efd3792f..5579118b 100644 --- a/ecs.php +++ b/ecs.php @@ -254,14 +254,12 @@ $ecsConfig->ruleWithConfiguration(VisibilityRequiredFixer::class, ['elements' => ['const', 'property', 'method']]); $header = <<ruleWithConfiguration(HeaderCommentFixer::class, ['header' => $header]); diff --git a/gpl-3.0.txt b/gpl-3.0.txt deleted file mode 100644 index 20d40b6b..00000000 --- a/gpl-3.0.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..4d5e0d30 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9414 @@ +{ + "name": "@instride/data-definitions-studio", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@instride/data-definitions-studio", + "version": "1.0.0", + "license": "GPL-3.0-or-later", + "dependencies": { + "@pimcore/studio-ui-bundle": "1.0.0-canary.20251119-143005-1b35b01", + "@reduxjs/toolkit": "^2.0.1", + "antd": "^5.12.0", + "antd-style": "3.7.x", + "react": "18.3.x", + "react-dom": "18.3.x", + "react-redux": "^9.0.4" + }, + "devDependencies": { + "@module-federation/rsbuild-plugin": "^0.13.1", + "@rsbuild/core": "^1.3.16", + "@rsbuild/plugin-react": "^1.3.1", + "@rsbuild/plugin-svgr": "^1.2.2", + "@types/node": "^22.14.0", + "@types/react-dom": "18.3.x", + "concurrently": "^8.2.2", + "tsx": "^4.19.2", + "typescript": "^5.3.3", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@ant-design/charts": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/@ant-design/charts/-/charts-2.6.7.tgz", + "integrity": "sha512-XfmsnspUpfrMlRFGTwmHJ2TPKcosq5a5nSxAfIOpEXAvmJBT2N16oejGTZhUFTzba8W3XtBOziwRAXmDmLUqvA==", + "license": "MIT", + "dependencies": { + "@ant-design/graphs": "^2.1.1", + "@ant-design/plots": "^2.6.7", + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": ">=16.8.4", + "react-dom": ">=16.8.4" + } + }, + "node_modules/@ant-design/charts-util": { + "version": "0.0.1-alpha.7", + "resolved": "https://registry.npmjs.org/@ant-design/charts-util/-/charts-util-0.0.1-alpha.7.tgz", + "integrity": "sha512-Yh0o6EdO6SvdSnStFZMbnUzjyymkVzV+TQ9ymVW9hlVgO/fUkUII3JYSdV+UVcFnYwUF0YiDKuSTLCZNAzg2bQ==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": ">=16.8.4", + "react-dom": ">=16.8.4" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz", + "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/graphs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ant-design/graphs/-/graphs-2.1.1.tgz", + "integrity": "sha512-qT3Oo8BWeoAmZEy9gfR6uIk+rczbNJ3sWXKonoOD5koATWv7dY0kgvS1JnhdM1QW4FkfPPJTeQVSlRRUtvWDwA==", + "license": "MIT", + "dependencies": { + "@ant-design/charts-util": "0.0.1-alpha.7", + "@antv/g6": "^5.0.44", + "@antv/g6-extension-react": "^0.2.0", + "@antv/graphin": "^3.0.4", + "lodash": "^4.17.21", + "styled-components": "^6.1.15" + }, + "peerDependencies": { + "react": ">=16.8.4", + "react-dom": ">=16.8.4" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/plots": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/@ant-design/plots/-/plots-2.6.8.tgz", + "integrity": "sha512-QsunUs2d5rbq/1BwVhga/siA5H50OaG23YopMYwPD4sPsza6NQzPQ8FM3elNIsD/BIk298tihqX1cJ/MmvVJbQ==", + "license": "MIT", + "dependencies": { + "@ant-design/charts-util": "0.0.3", + "@antv/event-emitter": "^0.1.3", + "@antv/g": "^6.1.7", + "@antv/g2": "^5.2.7", + "@antv/g2-extension-plot": "^0.2.1", + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": ">=16.8.4", + "react-dom": ">=16.8.4" + } + }, + "node_modules/@ant-design/plots/node_modules/@ant-design/charts-util": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@ant-design/charts-util/-/charts-util-0.0.3.tgz", + "integrity": "sha512-x1H7UT6t4dXAyGRoHqlOnEsEqBSTANFGTZEAMI0CWYhYUpp13n0o9grl9oPtoL6FEQMjUBTY+zGJKlHkz8smMw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": ">=16.8.4", + "react-dom": ">=16.8.4" + } + }, + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/@antv/algorithm": { + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/@antv/algorithm/-/algorithm-0.1.26.tgz", + "integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==", + "license": "MIT", + "dependencies": { + "@antv/util": "^2.0.13", + "tslib": "^2.0.0" + } + }, + "node_modules/@antv/algorithm/node_modules/@antv/util": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz", + "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", + "license": "ISC", + "dependencies": { + "csstype": "^3.0.8", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/component": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@antv/component/-/component-2.1.11.tgz", + "integrity": "sha512-dTdz8VAd3rpjOaGEZTluz82mtzrP4XCtNlNQyrxY7VNRNcjtvpTLDn57bUL2lRu1T+iklKvgbE2llMriWkq9vQ==", + "license": "MIT", + "dependencies": { + "@antv/g": "^6.1.11", + "@antv/scale": "^0.4.16", + "@antv/util": "^3.3.10", + "svg-path-parser": "^1.1.0" + } + }, + "node_modules/@antv/component/node_modules/@antv/scale": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.4.16.tgz", + "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", + "license": "MIT", + "dependencies": { + "@antv/util": "^3.3.7", + "color-string": "^1.5.5", + "fecha": "^4.2.1" + } + }, + "node_modules/@antv/coord": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@antv/coord/-/coord-0.4.7.tgz", + "integrity": "sha512-UTbrMLhwJUkKzqJx5KFnSRpU3BqrdLORJbwUbHK2zHSCT3q3bjcFA//ZYLVfIlwqFDXp/hzfMyRtp0c77A9ZVA==", + "license": "MIT", + "dependencies": { + "@antv/scale": "^0.4.12", + "@antv/util": "^2.0.13", + "gl-matrix": "^3.4.3" + } + }, + "node_modules/@antv/coord/node_modules/@antv/scale": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.4.16.tgz", + "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", + "license": "MIT", + "dependencies": { + "@antv/util": "^3.3.7", + "color-string": "^1.5.5", + "fecha": "^4.2.1" + } + }, + "node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.11.tgz", + "integrity": "sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "gl-matrix": "^3.3.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@antv/coord/node_modules/@antv/util": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz", + "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", + "license": "ISC", + "dependencies": { + "csstype": "^3.0.8", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/event-emitter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz", + "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==", + "license": "MIT" + }, + "node_modules/@antv/expr": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@antv/expr/-/expr-1.0.2.tgz", + "integrity": "sha512-vrfdmPHkTuiS5voVutKl2l06w1ihBh9A8SFdQPEE+2KMVpkymzGOF1eWpfkbGZ7tiFE15GodVdhhHomD/hdIwg==", + "license": "MIT" + }, + "node_modules/@antv/g": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@antv/g/-/g-6.3.1.tgz", + "integrity": "sha512-WYEKqy86LHB2PzTmrZXrIsIe+3Epeds2f68zceQ+BJtRoGki7Sy4IhlC8LrUMztgfT1t3d/0L745NWZwITroKA==", + "license": "MIT", + "dependencies": { + "@antv/g-lite": "2.7.0", + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "gl-matrix": "^3.4.3", + "html2canvas": "^1.4.1" + } + }, + "node_modules/@antv/g-canvas": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-2.2.0.tgz", + "integrity": "sha512-h7zVBBo2aO64DuGKvq9sG+yTU3sCUb9DALCVm7nz8qGPs8hhLuFOkKPEzUDNfNYZGJUGzY8UDtJ3QRGRFcvEQg==", + "license": "MIT", + "dependencies": { + "@antv/g-lite": "2.7.0", + "@antv/g-math": "3.1.0", + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-lite": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@antv/g-lite/-/g-lite-2.7.0.tgz", + "integrity": "sha512-uSzgHYa5bwR5L2Au7/5tsOhFmXKZKLPBH90+Q9bP9teVs5VT4kOAi0isPSpDI8uhdDC2/VrfTWu5K9HhWI6FWw==", + "license": "MIT", + "dependencies": { + "@antv/g-math": "3.1.0", + "@antv/util": "^3.3.5", + "@antv/vendor": "^1.0.3", + "@babel/runtime": "^7.25.6", + "eventemitter3": "^5.0.1", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-3.1.0.tgz", + "integrity": "sha512-DtN1Gj/yI0UiK18nSBsZX8RK0LszGwqfb+cBYWgE+ddyTm8dZnW4tPUhV7QXePsS6/A5hHC+JFpAAK7OEGo5ZQ==", + "license": "MIT", + "dependencies": { + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-dragndrop": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.1.1.tgz", + "integrity": "sha512-+aesDUJVQDs6UJ2bOBbDlaGAPCfHmU0MbrMTlQlfpwNplWueqtgVAZ3L57oZ2ZGHRWUHiRwZGPjXMBM3O2LELw==", + "license": "MIT", + "dependencies": { + "@antv/g-lite": "2.7.0", + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-svg": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-2.1.1.tgz", + "integrity": "sha512-gVzBkjqA8FzDTbkuIxj6L0Omz/X/hFbYLzK6alWr0sHTfywqP6czcjDUJU8DF2MRIY1Twy55uZYW4dqqLXOXXg==", + "license": "MIT", + "dependencies": { + "@antv/g-lite": "2.7.0", + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g2": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/@antv/g2/-/g2-5.4.8.tgz", + "integrity": "sha512-IvgIpwmT4M5/QAd3Mn2WiHIDeBqFJ4WA2gcZhRRSZuZ2KmgCqZWZwwIT0hc+kIGxwYeDoCQqf//t6FMVu3ryBg==", + "license": "MIT", + "dependencies": { + "@antv/component": "^2.1.9", + "@antv/coord": "^0.4.7", + "@antv/event-emitter": "^0.1.3", + "@antv/expr": "^1.0.2", + "@antv/g": "^6.1.24", + "@antv/g-canvas": "^2.0.43", + "@antv/g-plugin-dragndrop": "^2.0.35", + "@antv/scale": "^0.5.1", + "@antv/util": "^3.3.10", + "@antv/vendor": "^1.0.11", + "flru": "^1.0.2", + "pdfast": "^0.2.0" + } + }, + "node_modules/@antv/g2-extension-plot": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@antv/g2-extension-plot/-/g2-extension-plot-0.2.2.tgz", + "integrity": "sha512-KJXCXO7as+h0hDqirGXf1omrNuYzQmY3VmBmp7lIvkepbQ7sz3pPwy895r1FWETGF3vTk5UeFcAF5yzzBHWgbw==", + "dependencies": { + "@antv/g2": "^5.1.8", + "@antv/util": "^3.3.5", + "@antv/vendor": "^1.0.10" + } + }, + "node_modules/@antv/g6": { + "version": "5.0.51", + "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-5.0.51.tgz", + "integrity": "sha512-/88LJDZ7FHKtpyJibXOnJWZ8gFRp32mLb8KzEFrMuiIC/dsZgTf/oYVw6L4tLKooPXfXqUtrJb2tWFMGR04EMg==", + "license": "MIT", + "dependencies": { + "@antv/algorithm": "^0.1.26", + "@antv/component": "^2.1.7", + "@antv/event-emitter": "^0.1.3", + "@antv/g": "^6.1.28", + "@antv/g-canvas": "^2.0.48", + "@antv/g-plugin-dragndrop": "^2.0.38", + "@antv/graphlib": "^2.0.4", + "@antv/hierarchy": "^0.7.1", + "@antv/layout": "1.2.14-beta.9", + "@antv/util": "^3.3.11", + "bubblesets-js": "^2.3.4" + } + }, + "node_modules/@antv/g6-extension-react": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@antv/g6-extension-react/-/g6-extension-react-0.2.6.tgz", + "integrity": "sha512-JWOiWMz/r4jG+Nn2Y28LfohpxfUaf9M/0brLdKBshSVa4DraQFfQvA9OTIbzahLLoxIXsKKG2KteQ9QcXL26Kw==", + "license": "MIT", + "dependencies": { + "@antv/g": "^6.1.24", + "@antv/g-svg": "^2.0.38" + }, + "peerDependencies": { + "@antv/g6": "^5.0.50", + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@antv/graphin": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@antv/graphin/-/graphin-3.0.5.tgz", + "integrity": "sha512-V/j8R8Ty44wUqxVIYLdpPuIO8WWCTIVq1eBJg5YRunL5t5o5qAFpC/qkQxslbBMWyKdIH0oWBnvHA74riGi7cw==", + "license": "MIT", + "dependencies": { + "@antv/g6": "^5.0.28" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.1.0", + "react-dom": "^18.0.0 || ^19.1.0" + } + }, + "node_modules/@antv/graphlib": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-2.0.4.tgz", + "integrity": "sha512-zc/5oQlsdk42Z0ib1mGklwzhJ5vczLFiPa1v7DgJkTbgJ2YxRh9xdarf86zI49sKVJmgbweRpJs7Nu5bIiwv4w==", + "license": "MIT", + "dependencies": { + "@antv/event-emitter": "^0.1.3" + } + }, + "node_modules/@antv/hierarchy": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.7.1.tgz", + "integrity": "sha512-7r22r+HxfcRZp79ZjGmsn97zgC1Iajrv0Mm9DIgx3lPfk+Kme2MG/+EKdZj1iEBsN0rJRzjWVPGL5YrBdVHchw==", + "license": "MIT" + }, + "node_modules/@antv/layout": { + "version": "1.2.14-beta.9", + "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-1.2.14-beta.9.tgz", + "integrity": "sha512-wPlwBFMtq2lWZFc89/7Lzb8fjHnyKVZZ9zBb2h+zZIP0YWmVmHRE8+dqCiPKOyOGUXEdDtn813f1g107dCHZlg==", + "license": "MIT", + "dependencies": { + "@antv/event-emitter": "^0.1.3", + "@antv/graphlib": "^2.0.0", + "@antv/util": "^3.3.2", + "@naoak/workerize-transferable": "^0.1.0", + "comlink": "^4.4.1", + "d3-force": "^3.0.0", + "d3-force-3d": "^3.0.5", + "d3-octree": "^1.0.2", + "d3-quadtree": "^3.0.1", + "dagre": "^0.8.5", + "ml-matrix": "^6.10.4", + "tslib": "^2.5.0" + } + }, + "node_modules/@antv/scale": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.5.2.tgz", + "integrity": "sha512-rTHRAwvpHWC5PGZF/mJ2ZuTDqwwvVBDRph0Uu5PV9BXwzV7K8+9lsqGJ+XHVLxe8c6bKog5nlzvV/dcYb0d5Ow==", + "license": "MIT", + "dependencies": { + "@antv/util": "^3.3.7", + "color-string": "^1.5.5", + "fecha": "^4.2.1" + } + }, + "node_modules/@antv/util": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.11.tgz", + "integrity": "sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "gl-matrix": "^3.3.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@antv/vendor": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@antv/vendor/-/vendor-1.0.11.tgz", + "integrity": "sha512-LmhPEQ+aapk3barntaiIxJ5VHno/Tyab2JnfdcPzp5xONh/8VSfed4bo/9xKo5HcUAEydko38vYLfj6lJliLiw==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.2.1", + "@types/d3-color": "^3.1.3", + "@types/d3-dispatch": "^3.0.6", + "@types/d3-dsv": "^3.0.7", + "@types/d3-ease": "^3.0.2", + "@types/d3-fetch": "^3.0.7", + "@types/d3-force": "^3.0.10", + "@types/d3-format": "^3.0.4", + "@types/d3-geo": "^3.1.0", + "@types/d3-hierarchy": "^3.1.7", + "@types/d3-interpolate": "^3.0.4", + "@types/d3-path": "^3.1.0", + "@types/d3-quadtree": "^3.0.6", + "@types/d3-random": "^3.0.3", + "@types/d3-scale": "^4.0.9", + "@types/d3-scale-chromatic": "^3.1.0", + "@types/d3-shape": "^3.1.7", + "@types/d3-time": "^3.0.4", + "@types/d3-timer": "^3.0.2", + "d3-array": "^3.2.4", + "d3-color": "^3.1.0", + "d3-dispatch": "^3.0.1", + "d3-dsv": "^3.0.1", + "d3-ease": "^3.0.1", + "d3-fetch": "^3.0.1", + "d3-force": "^3.0.0", + "d3-force-3d": "^3.0.5", + "d3-format": "^3.1.0", + "d3-geo": "^3.1.1", + "d3-geo-projection": "^4.0.0", + "d3-hierarchy": "^3.1.2", + "d3-interpolate": "^3.0.1", + "d3-path": "^3.1.0", + "d3-quadtree": "^3.0.1", + "d3-random": "^3.0.1", + "d3-regression": "^1.3.10", + "d3-scale": "^4.0.2", + "d3-scale-chromatic": "^3.1.0", + "d3-shape": "^3.2.0", + "d3-time": "^3.1.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", + "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", + "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", + "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", + "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.0.tgz", + "integrity": "sha512-bOwvTOIJcG5FVo5gUUupiwYh8MioPLQ4UcqbcRf7UQ98X90tCa9E1kZ3Z7tqwpZxYyOvh1YTYbmZE9RTfTp5hg==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.1.tgz", + "integrity": "sha512-uWDWFypNdQmz2y1LaNJzK7fL7TYKLeUAU0npEC685OKTF3KcQ2Vu3klIM78D7I6wGhktme0lh3CuQLv0ZCrD9Q==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.4.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-css": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.3.1.tgz", + "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.2", + "@lezer/css": "^1.1.7" + } + }, + "node_modules/@codemirror/lang-html": { + "version": "6.4.11", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.11.tgz", + "integrity": "sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-css": "^6.0.0", + "@codemirror/lang-javascript": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", + "@lezer/html": "^1.3.12" + } + }, + "node_modules/@codemirror/lang-javascript": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.4.tgz", + "integrity": "sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/javascript": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-json": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.2.tgz", + "integrity": "sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/json": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-markdown": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.5.0.tgz", + "integrity": "sha512-0K40bZ35jpHya6FriukbgaleaqzBLZfOh7HuzqbMxBXkbYMJDxfF39c23xOgxFezR+3G+tR2/Mup+Xk865OMvw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.7.1", + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.3.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.2.1", + "@lezer/markdown": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-sql": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.10.0.tgz", + "integrity": "sha512-6ayPkEd/yRw0XKBx5uAiToSgGECo/GY2NoJIHXIIQh1EVwLuKoU8BP/qK0qH5NLXAbtJRLuT73hx7P9X34iO4w==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-xml": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", + "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/xml": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-yaml": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-yaml/-/lang-yaml-6.1.2.tgz", + "integrity": "sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.2.0", + "@lezer/lr": "^1.0.0", + "@lezer/yaml": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.1.tgz", + "integrity": "sha512-Fa6xkSiuGKc8XC8Cn96T+TQHYj4ZZ7RdFmXA3i9xe/3hLHfwPZdM+dqfX0Cp0zQklBKhVD8Yzc8LS45rkqcwpQ==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.9.2", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.2.tgz", + "integrity": "sha512-sv3DylBiIyi+xKwRCJAAsBZZZWo82shJ/RTMymLabAdtbkV5cSKwWDeCgtUq3v8flTaXS2y1kKkICuRYtUswyQ==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.35.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/search": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.6.0.tgz", + "integrity": "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.37.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.4.tgz", + "integrity": "sha512-8y7xqG/hpB53l25CIoit9/ngxdfoG+fx+V3SHBrinnhOtLvKHRyAJJuHzkWrR4YXXLX8eXBsejgAAxHUOdW1yw==", + "license": "MIT", + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/theme-one-dark": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", + "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/highlight": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.39.11", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.39.11.tgz", + "integrity": "sha512-bWdeR8gWM87l4DB/kYSF9A+dVackzDb/V56Tq7QVrQ7rn86W0rgZFtlL3g3pem6AeGcb9NQNoy3ao4WpW4h5tQ==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", + "license": "MIT", + "dependencies": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-7.0.0.tgz", + "integrity": "sha512-BG/ETy3eBjFap7+zIti53f0PCLGDzNXyTmn6fSdrudORf+OH04MxrW4p5+mPu4mgMk9kM41iYONjc3DOUWTcfg==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.1.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/sortable": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-8.0.0.tgz", + "integrity": "sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.1.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/@emotion/css": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz", + "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==", + "license": "MIT", + "dependencies": { + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/serialize/node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@inversifyjs/common": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@inversifyjs/common/-/common-1.4.0.tgz", + "integrity": "sha512-qfRJ/3iOlCL/VfJq8+4o5X4oA14cZSBbpAmHsYj8EsIit1xDndoOl0xKOyglKtQD4u4gdNVxMHx4RWARk/I4QA==", + "license": "MIT" + }, + "node_modules/@inversifyjs/core": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@inversifyjs/core/-/core-1.3.5.tgz", + "integrity": "sha512-B4MFXabhNTAmrfgB+yeD6wd/GIvmvWC6IQ8Rh/j2C3Ix69kmqwz9pr8Jt3E+Nho9aEHOQCZaGmrALgtqRd+oEQ==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.4.0", + "@inversifyjs/reflect-metadata-utils": "0.2.4" + } + }, + "node_modules/@inversifyjs/reflect-metadata-utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-0.2.4.tgz", + "integrity": "sha512-u95rV3lKfG+NT2Uy/5vNzoDujos8vN8O18SSA5UyhxsGYd4GLQn/eUsGXfOsfa7m34eKrDelTKRUX1m/BcNX5w==", + "license": "MIT", + "peerDependencies": { + "reflect-metadata": "0.2.2" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.0.tgz", + "integrity": "sha512-PNGcolp9hr4PJdXR4ix7XtixDrClScvtSCYW3rQG106oVMOOI+jFb+0+J3mbeL/53g1Zd6s0kJzaw6Ri68GmAA==", + "license": "MIT" + }, + "node_modules/@lezer/css": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.3.0.tgz", + "integrity": "sha512-pBL7hup88KbI7hXnZV3PQsn43DHy6TWyzuyk2AO9UyoXcDltvIdqWKE1dLL/45JVZ+YZkHe1WVHqO6wugZZWcw==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", + "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.3.0" + } + }, + "node_modules/@lezer/html": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.13.tgz", + "integrity": "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/javascript": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.4.tgz", + "integrity": "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.1.3", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/json": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz", + "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.7.tgz", + "integrity": "sha512-wNIFWdSUfX9Jc6ePMzxSPVgTVB4EOfDIwLQLWASyiUdHKaMsiilj9bYiGkGQCKVodd0x6bgQCV207PILGFCF9Q==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/markdown": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.6.3.tgz", + "integrity": "sha512-jpGm5Ps+XErS+xA4urw7ogEGkeZOahVQF21Z6oECF0sj+2liwZopd2+I8uH5I/vZsRuuze3OxBREIANLf6KKUw==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0" + } + }, + "node_modules/@lezer/xml": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.6.tgz", + "integrity": "sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/yaml": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.3.tgz", + "integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.4.0" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "license": "MIT" + }, + "node_modules/@modern-js/node-bundle-require": { + "version": "2.65.1", + "resolved": "https://registry.npmjs.org/@modern-js/node-bundle-require/-/node-bundle-require-2.65.1.tgz", + "integrity": "sha512-XpEkciVEfDbkkLUI662ZFlI9tXsUQtLXk4NRJDBGosNnk9uL2XszmC8sKsdCSLK8AYuPW2w6MTVWuJsOR0EU8A==", + "license": "MIT", + "dependencies": { + "@modern-js/utils": "2.65.1", + "@swc/helpers": "0.5.13", + "esbuild": "0.17.19" + } + }, + "node_modules/@modern-js/utils": { + "version": "2.65.1", + "resolved": "https://registry.npmjs.org/@modern-js/utils/-/utils-2.65.1.tgz", + "integrity": "sha512-HrChf19F+6nALo5XPra8ycjhXGQfGi23+S7Y2FLfTKe8vaNnky8duT/XvRWpbS4pp3SQj8ryO8m/qWSsJ1Rogw==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "0.5.13", + "caniuse-lite": "^1.0.30001520", + "lodash": "^4.17.21", + "rslog": "^1.1.0" + } + }, + "node_modules/@module-federation/bridge-react-webpack-plugin": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.13.1.tgz", + "integrity": "sha512-3RgGd8KcRw5vibnxWa1NUWwfb0tKwn8OvHeQ4GFKzMvDLm+QpCgQd9LeTEBP38wZgGXVtIJR3y5FPnufWswFKw==", + "license": "MIT", + "dependencies": { + "@module-federation/sdk": "0.13.1", + "@types/semver": "7.5.8", + "semver": "7.6.3" + } + }, + "node_modules/@module-federation/cli": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/cli/-/cli-0.13.1.tgz", + "integrity": "sha512-ej7eZTVUiRMor37pkl2y3hbXwcaNvPgbZJVO+hb2c7cKBjWto7AndgR5qcKpcXXXlhbGwtnI+VrgldruKC+AqQ==", + "license": "MIT", + "dependencies": { + "@modern-js/node-bundle-require": "2.65.1", + "@module-federation/dts-plugin": "0.13.1", + "@module-federation/sdk": "0.13.1", + "chalk": "3.0.0", + "commander": "11.1.0" + }, + "bin": { + "mf": "bin/mf.js" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@module-federation/data-prefetch": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/data-prefetch/-/data-prefetch-0.13.1.tgz", + "integrity": "sha512-hj3R72rRyune4fb4V4OFmo1Rfa9T9u0so2Q4vt69frPc2NV2FPPJkIvHGs/geGTLOgt4nn7OH1/ukmR3wWvSuA==", + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.13.1", + "@module-federation/sdk": "0.13.1", + "fs-extra": "9.1.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@module-federation/dts-plugin": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.13.1.tgz", + "integrity": "sha512-PQMs57h9s5pCkLWZ0IyDGCcac4VZ+GgJE40pAWrOQ+/AgTC+WFyAT16M7PsRENS57Qed4wWQwgfOjS9zmfxKJA==", + "license": "MIT", + "dependencies": { + "@module-federation/error-codes": "0.13.1", + "@module-federation/managers": "0.13.1", + "@module-federation/sdk": "0.13.1", + "@module-federation/third-party-dts-extractor": "0.13.1", + "adm-zip": "^0.5.10", + "ansi-colors": "^4.1.3", + "axios": "^1.8.2", + "chalk": "3.0.0", + "fs-extra": "9.1.0", + "isomorphic-ws": "5.0.0", + "koa": "2.16.1", + "lodash.clonedeepwith": "4.5.0", + "log4js": "6.9.1", + "node-schedule": "2.1.1", + "rambda": "^9.1.0", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/@module-federation/enhanced": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.13.1.tgz", + "integrity": "sha512-jbbk68RnvNmusGGcXNXVDJAzJOFB/hV+RVV2wWNWmBOVkDZPiWj7aFb0cJAwc9EYZbPel3QzRitZJ73+SaH1IA==", + "license": "MIT", + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.13.1", + "@module-federation/cli": "0.13.1", + "@module-federation/data-prefetch": "0.13.1", + "@module-federation/dts-plugin": "0.13.1", + "@module-federation/error-codes": "0.13.1", + "@module-federation/inject-external-runtime-core-plugin": "0.13.1", + "@module-federation/managers": "0.13.1", + "@module-federation/manifest": "0.13.1", + "@module-federation/rspack": "0.13.1", + "@module-federation/runtime-tools": "0.13.1", + "@module-federation/sdk": "0.13.1", + "btoa": "^1.2.1", + "schema-utils": "^4.3.0", + "upath": "2.0.1" + }, + "bin": { + "mf": "bin/mf.js" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@module-federation/error-codes": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.13.1.tgz", + "integrity": "sha512-azgGDBnFRfqlivHOl96ZjlFUFlukESz2Rnnz/pINiSqoBBNjUE0fcAZP4X6jgrVITuEg90YkruZa7pW9I3m7Uw==", + "license": "MIT" + }, + "node_modules/@module-federation/inject-external-runtime-core-plugin": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/inject-external-runtime-core-plugin/-/inject-external-runtime-core-plugin-0.13.1.tgz", + "integrity": "sha512-K+ltl2AqVqlsvEds1PffCMLDMlC5lvdkyMXOfcZO6u0O4dZlaTtZbT32NchY7kIEvEsj0wyYhX1i2DnsbHpUBw==", + "license": "MIT", + "peerDependencies": { + "@module-federation/runtime-tools": "0.13.1" + } + }, + "node_modules/@module-federation/managers": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.13.1.tgz", + "integrity": "sha512-vQMrqSFQxjSuGgByC2wcY7zUTmVfhzCyDpnCCq0PtaozK8DcgwsEMzrAT3dbg8ifGUmse/xiRIbTmS5leKK+UQ==", + "license": "MIT", + "dependencies": { + "@module-federation/sdk": "0.13.1", + "find-pkg": "2.0.0", + "fs-extra": "9.1.0" + } + }, + "node_modules/@module-federation/manifest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.13.1.tgz", + "integrity": "sha512-XcuFtLycoR0jQj8op+w20V5n459blNBvGXe//AwkEppQERk8SM5kQgIPvOVbZ8zGx7tl/F2HGTDVZlhDiKzIew==", + "license": "MIT", + "dependencies": { + "@module-federation/dts-plugin": "0.13.1", + "@module-federation/managers": "0.13.1", + "@module-federation/sdk": "0.13.1", + "chalk": "3.0.0", + "find-pkg": "2.0.0" + } + }, + "node_modules/@module-federation/rsbuild-plugin": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/rsbuild-plugin/-/rsbuild-plugin-0.13.1.tgz", + "integrity": "sha512-O+FQSN77l64FMiF9TwNVMaxkwqjxIHjwohn9gnNA2bxLPA/wCeXEroLfl+4+8N4avOEIyQ1t6z3d5ituHbPl5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/enhanced": "0.13.1", + "@module-federation/sdk": "0.13.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@rsbuild/core": "1.x" + }, + "peerDependenciesMeta": { + "@rsbuild/core": { + "optional": true + } + } + }, + "node_modules/@module-federation/rspack": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.13.1.tgz", + "integrity": "sha512-+qz8sW99SYDULajjjn4rSNaI4rogEPVOZsBvT6y0PdfpMD/wZxvh5HlV0u7+5DgWEjgrdm0cJHBHChlIbV/CMQ==", + "license": "MIT", + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.13.1", + "@module-federation/dts-plugin": "0.13.1", + "@module-federation/inject-external-runtime-core-plugin": "0.13.1", + "@module-federation/managers": "0.13.1", + "@module-federation/manifest": "0.13.1", + "@module-federation/runtime-tools": "0.13.1", + "@module-federation/sdk": "0.13.1", + "btoa": "1.2.1" + }, + "peerDependencies": { + "@rspack/core": ">=0.7", + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/@module-federation/runtime": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.13.1.tgz", + "integrity": "sha512-ZHnYvBquDm49LiHfv6fgagMo/cVJneijNJzfPh6S0CJrPS2Tay1bnTXzy8VA5sdIrESagYPaskKMGIj7YfnPug==", + "license": "MIT", + "dependencies": { + "@module-federation/error-codes": "0.13.1", + "@module-federation/runtime-core": "0.13.1", + "@module-federation/sdk": "0.13.1" + } + }, + "node_modules/@module-federation/runtime-core": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.13.1.tgz", + "integrity": "sha512-TfyKfkSAentKeuvSsAItk8s5tqQSMfIRTPN2e1aoaq/kFhE+7blps719csyWSX5Lg5Es7WXKMsXHy40UgtBtuw==", + "license": "MIT", + "dependencies": { + "@module-federation/error-codes": "0.13.1", + "@module-federation/sdk": "0.13.1" + } + }, + "node_modules/@module-federation/runtime-tools": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.13.1.tgz", + "integrity": "sha512-GEF1pxqLc80osIMZmE8j9UKZSaTm2hX2lql8tgIH/O9yK4wnF06k6LL5Ah+wJt+oJv6Dj55ri/MoxMP4SXoPNA==", + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.13.1", + "@module-federation/webpack-bundler-runtime": "0.13.1" + } + }, + "node_modules/@module-federation/sdk": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.13.1.tgz", + "integrity": "sha512-bmf2FGQ0ymZuxYnw9bIUfhV3y6zDhaqgydEjbl4msObKMLGXZqhse2pTIIxBFpIxR1oONKX/y2FAolDCTlWKiw==", + "license": "MIT" + }, + "node_modules/@module-federation/third-party-dts-extractor": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.13.1.tgz", + "integrity": "sha512-0kWSupoC0aTxFjJZE5TVPNsoZ9kBsZhkvRxFnUW2vDYLgtvgs2dIrDlNlIXYiS/MaQCNHGyvdNepbchKQiwFaw==", + "license": "MIT", + "dependencies": { + "find-pkg": "2.0.0", + "fs-extra": "9.1.0", + "resolve": "1.22.8" + } + }, + "node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.13.1.tgz", + "integrity": "sha512-QSuSIGa09S8mthbB1L6xERqrz+AzPlHR6D7RwAzssAc+IHf40U6NiTLPzUqp9mmKDhC5Tm0EISU0ZHNeJpnpBQ==", + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.13.1", + "@module-federation/sdk": "0.13.1" + } + }, + "node_modules/@naoak/workerize-transferable": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@naoak/workerize-transferable/-/workerize-transferable-0.1.0.tgz", + "integrity": "sha512-fDLfuP71IPNP5+zSfxFb52OHgtjZvauRJWbVnpzQ7G7BjcbLjTny0OW1d3ZO806XKpLWNKmeeW3MhE0sy8iwYQ==", + "license": "MIT", + "peerDependencies": { + "workerize-loader": "*" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", + "integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@tybys/wasm-util": "^0.10.1" + } + }, + "node_modules/@pimcore/studio-ui-bundle": { + "version": "1.0.0-canary.20251119-143005-1b35b01", + "resolved": "https://registry.npmjs.org/@pimcore/studio-ui-bundle/-/studio-ui-bundle-1.0.0-canary.20251119-143005-1b35b01.tgz", + "integrity": "sha512-QF4ziZ3pDKmSnPfKJVzT9kRZY/rXsoHuDKndqw8q9M6rHMNNTh/rbgCncVS4TqPxn5xtJaQho8aZ9Hp91h4TDA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ant-design/charts": "^2.4.0", + "@ant-design/colors": "^7.2.1", + "@codemirror/lang-css": "^6.3.0", + "@codemirror/lang-html": "^6.4.9", + "@codemirror/lang-javascript": "^6.2.2", + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-markdown": "^6.3.1", + "@codemirror/lang-sql": "^6.8.0", + "@codemirror/lang-xml": "^6.1.0", + "@codemirror/lang-yaml": "^6.1.2", + "@dnd-kit/core": "^6.1.0", + "@dnd-kit/modifiers": "^7.0.0", + "@dnd-kit/sortable": "^8.0.0", + "@module-federation/enhanced": "^0.13.1", + "@reduxjs/toolkit": "^2.3.0", + "@rspack/plugin-react-refresh": "^1.5.1", + "@tanstack/react-table": "^8.20.5", + "@tanstack/react-virtual": "^3.13.12", + "@types/dompurify": "^3.2.0", + "@types/leaflet": "^1.9.14", + "@types/leaflet-draw": "^1.0.11", + "@types/lodash": "^4.17.13", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@uiw/react-codemirror": "^4.23.6", + "antd": "5.22.x", + "antd-style": "3.7.x", + "classnames": "^2.5.1", + "dompurify": "^3.2.1", + "flexlayout-react": "^0.7.15", + "framer-motion": "^11.11.17", + "i18next": "^23.16.8", + "immer": "^10.1.1", + "inversify": "6.1.x", + "leaflet": "^1.9.4", + "leaflet-draw": "^1.0.4", + "lodash": "^4.17.21", + "react": "18.3.x", + "react-compiler-runtime": "^19.1.0-rc.2", + "react-dom": "18.3.x", + "react-draggable": "^4.4.6", + "react-i18next": "^14.1.3", + "react-redux": "^9.1.2", + "react-refresh": "^0.18.0", + "react-router-dom": "^6.28.0", + "reflect-metadata": "0.2.x", + "ts-patch": "^3.3.0", + "uuid": "^10.0.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd": { + "version": "5.22.7", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.22.7.tgz", + "integrity": "sha512-koT5QMliDgXc21yNcs4Uyuq6TeB5AJbzGZ2qjNExzE7Tjr8yYIX6sJsQfunsEV80wC1mpF7m9ldKuNj+PafcFA==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.1.0", + "@ant-design/cssinjs": "^1.21.1", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/icons": "^5.5.2", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.25.7", + "@ctrl/tinycolor": "^3.6.1", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.2.6", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.30.0", + "rc-checkbox": "~3.3.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.2.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.11.0", + "rc-input": "~1.6.4", + "rc-input-number": "~9.3.0", + "rc-mentions": "~2.17.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.2", + "rc-pagination": "~5.0.0", + "rc-picker": "~4.8.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.0", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.5.0", + "rc-select": "~14.16.4", + "rc-slider": "~11.1.7", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.49.0", + "rc-tabs": "~15.4.0", + "rc-textarea": "~1.8.2", + "rc-tooltip": "~6.2.1", + "rc-tree": "~5.10.1", + "rc-tree-select": "~5.24.5", + "rc-upload": "~4.8.1", + "rc-util": "^5.44.3", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/@rc-component/qrcode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.1.tgz", + "integrity": "sha512-g8eeeaMyFXVlq8cZUeaxCDhfIYjpao0l9cvm5gFwKXy/Vm1yDWV7h2sjH5jHYzdFedlVKBpATFB1VKMrHzwaWQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-cascader": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.30.0.tgz", + "integrity": "sha512-rrzSbk1Bdqbu+pDwiLCLHu72+lwX9BZ28+JKzoi0DWZ4N29QYFeip8Gctl33QVd2Xg3Rf14D3yAOG76ElJw16w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.10.1", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-checkbox": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.3.0.tgz", + "integrity": "sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-drawer": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", + "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-image": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.11.1.tgz", + "integrity": "sha512-XuoWx4KUXg7hNy5mRTy1i8c8p3K8boWg6UajbHpDXS5AlRVucNfTi5YxTtPBTBzegxAZpvuLfh3emXFt6ybUdA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-input": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.6.4.tgz", + "integrity": "sha512-lBZhfRD4NSAUW0zOKLUeI6GJuXkxeZYi0hr8VcJgJpyTNOvHw1ysrKWAHcEOAAHj7guxgmWYSi6xWrEdfrSAsA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-input-number": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.3.0.tgz", + "integrity": "sha512-JQ363ywqRyxwgVxpg2z2kja3CehTpYdqR7emJ/6yJjRdbvo+RvfE83fcpBCIJRq3zLp8SakmEXq60qzWyZ7Usw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.6.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-mentions": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.17.0.tgz", + "integrity": "sha512-sfHy+qLvc+p8jx8GUsujZWXDOIlIimp6YQz7N5ONQ6bHsa2kyG+BLa5k2wuxgebBbH97is33wxiyq5UkiXRpHA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.6.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.8.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-pagination": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.0.0.tgz", + "integrity": "sha512-QjrPvbAQwps93iluvFM62AEYglGYhWW2q/nliQqmvkTi4PXP4HHoh00iC1Sa5LLVmtWQHmG73fBi2x6H6vFHRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-picker": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.8.3.tgz", + "integrity": "sha512-hJ45qoEs4mfxXPAJdp1n3sKwADul874Cd0/HwnsEOE60H+tgiJUGgbOD62As3EG/rFVNS5AWRfBCDJJfmRqOVQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-segmented": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.5.0.tgz", + "integrity": "sha512-B28Fe3J9iUFOhFJET3RoXAPFJ2u47QvLSYcZWC4tFYNGPEjug5LAxEasZlA/PpAxhdOPqGWsGbSj7ftneukJnw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-table": { + "version": "7.49.0", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.49.0.tgz", + "integrity": "sha512-/FoPLX94muAQOxVpi1jhnpKjOIqUbT81eELQPAzSXOke4ky4oCWYUXOcVpL31ZCO90xScwVSXRd7coqtgtB1Ng==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.41.0", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-tabs": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.4.0.tgz", + "integrity": "sha512-llKuyiAVqmXm2z7OrmhX5cNb2ueZaL8ZyA2P4R+6/72NYYcbEgOXibwHiQCFY2RiN3swXl53SIABi2CumUS02g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-textarea": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.8.2.tgz", + "integrity": "sha512-UFAezAqltyR00a8Lf0IPAyTd29Jj9ee8wt8DqXyDMal7r/Cg/nDt3e1OOv3Th4W6mKaZijjgwuPXhAfVNTN8sw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.6.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-tooltip": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.1.tgz", + "integrity": "sha512-rws0duD/3sHHsD905Nex7FvoUGy2UBQRhTkKxeEvr2FB+r21HsOxcDJI0TzyO8NHhnAA8ILr8pfbSBg5Jj5KBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-tree": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.10.1.tgz", + "integrity": "sha512-FPXb3tT/u39mgjr6JNlHaUTYfHkVGW56XaGDahDpEFLGsnPxGcVLNTjcqoQb/GNbSCycl7tD7EvIymwOTP0+Yw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-tree-select": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.24.5.tgz", + "integrity": "sha512-PnyR8LZJWaiEFw0SHRqo4MNQWyyZsyMs8eNmo68uXZWjxc7QqeWcjPPoONN0rc90c3HZqGF9z+Roz+GLzY5GXA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.10.1", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/antd/node_modules/rc-upload": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.8.1.tgz", + "integrity": "sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@pimcore/studio-ui-bundle/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.1.0.tgz", + "integrity": "sha512-n4HcR5siNUXRX23nDizbZBQPO0ZM/5oTtmKZ6/eqL0L2bo747cklFdZGRN2f+c9qWGICwDzrhW0H7tE9PptdcA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.1.tgz", + "integrity": "sha512-LfLGNymzKdUPjXUbRP+xOhIWY4jQ+YMj5MmWAcgcAq1Ij8XP7tRmAXqyuv96XvLUBE/5cA8hLFl9eO1JQMujrA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.3.tgz", + "integrity": "sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rsbuild/core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.7.2.tgz", + "integrity": "sha512-VAFO6cM+cyg2ntxNW6g3tB2Jc5J5mpLjLluvm7VtW2uceNzyUlVv41o66Yp1t1ikxd3ljtqegViXem62JqzveA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rspack/core": "~1.7.1", + "@rspack/lite-tapable": "~1.1.0", + "@swc/helpers": "^0.5.18", + "core-js": "~3.47.0", + "jiti": "^2.6.1" + }, + "bin": { + "rsbuild": "bin/rsbuild.js" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@rsbuild/core/node_modules/@swc/helpers": { + "version": "0.5.18", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz", + "integrity": "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@rsbuild/plugin-react": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@rsbuild/plugin-react/-/plugin-react-1.4.3.tgz", + "integrity": "sha512-Uf9FkKk2TqYDbsypXHgjdivPmEoYFvBTHJT5fPmjCf0Sc3lR2BHtlc0WMdZTCKUJ5jTxREygMs9LbnehX98L8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rspack/plugin-react-refresh": "^1.5.3", + "react-refresh": "^0.18.0" + }, + "peerDependencies": { + "@rsbuild/core": "^1.0.0 || ^2.0.0-0" + } + }, + "node_modules/@rsbuild/plugin-svgr": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rsbuild/plugin-svgr/-/plugin-svgr-1.2.4.tgz", + "integrity": "sha512-QkjwEaoJ4HrZP8TEW+7x7U9EJ1EhAuV8cmnZg3nQ0UwSJgEhQ7Dfbpv6fjnex5aKtZioh/xu0XXU+CE9DIH1xA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rsbuild/plugin-react": "^1.1.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0", + "deepmerge": "^4.3.1", + "loader-utils": "^3.3.1" + }, + "peerDependencies": { + "@rsbuild/core": "^1.0.0 || ^2.0.0-0" + } + }, + "node_modules/@rspack/binding": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.7.3.tgz", + "integrity": "sha512-N943pbPktJPymiYZWZMZMVX/PeSU42cWGpBly82N+ibNCX/Oo4yKWE0v+TyIJm5JaUFhtF2NpvzRbrjg/6skqw==", + "license": "MIT", + "optionalDependencies": { + "@rspack/binding-darwin-arm64": "1.7.3", + "@rspack/binding-darwin-x64": "1.7.3", + "@rspack/binding-linux-arm64-gnu": "1.7.3", + "@rspack/binding-linux-arm64-musl": "1.7.3", + "@rspack/binding-linux-x64-gnu": "1.7.3", + "@rspack/binding-linux-x64-musl": "1.7.3", + "@rspack/binding-wasm32-wasi": "1.7.3", + "@rspack/binding-win32-arm64-msvc": "1.7.3", + "@rspack/binding-win32-ia32-msvc": "1.7.3", + "@rspack/binding-win32-x64-msvc": "1.7.3" + } + }, + "node_modules/@rspack/binding-darwin-arm64": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.3.tgz", + "integrity": "sha512-sXha3xG2KDkXLVjrmnw5kGhBriH2gFd9KAyD2ZBq0sH/gNIvqEaWhAFoO1YtrKU6rCgiSBrs0frfGc6DEqWfTA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rspack/binding-darwin-x64": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.3.tgz", + "integrity": "sha512-AUWMBgaPo7NgpW7arlw9laj9ZQxg7EjC5pnSCRH4BVPV+8egdoPCn5DZk05M25m73crKnGl8c7CrwTRNZeaPrw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rspack/binding-linux-arm64-gnu": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.3.tgz", + "integrity": "sha512-SodEX3+1/GLz0LobX9cY1QdjJ1NftSEh4C2vGpr71iA3MS9HyXuw4giqSeRQ4DpCybqpdS/3RLjVqFQEfGpcnw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-linux-arm64-musl": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.3.tgz", + "integrity": "sha512-ydD2fNdEy+G7EYJ/a3FfdFZPfrLj/UnZocCNlZTTSHEhu+jURdQk0hwV11CvL+sjnKU5e/8IVMGUzhu3Gu8Ghg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-linux-x64-gnu": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.3.tgz", + "integrity": "sha512-adnDbUqafSAI6/N6vZ+iONSo1W3yUpnNtJqP3rVp7+YdABhUpbOhtaY37qpIJ3uFajXctYFyISPrb4MWl1M9Yg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-linux-x64-musl": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.3.tgz", + "integrity": "sha512-5jnjdODk5HCUFPN6rTaFukynDU4Fn9eCL+4TSp6mqo6YAnfnJEuzDjfetA8t3aQFcAs7WriQfNwvdcA4HvYtbA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-wasm32-wasi": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.3.tgz", + "integrity": "sha512-WLQK0ksUzMkVeGoHAMIxenmeEU5tMvFDK36Aip7VRj7T6vZTcAwvbMwc38QrIAvlG7dqWoxgPQi35ba1igNNDw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "1.0.7" + } + }, + "node_modules/@rspack/binding-win32-arm64-msvc": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.3.tgz", + "integrity": "sha512-RAetPeY45g2NW6fID46VTV7mwY4Lqyw/flLbvCG28yrVOSkekw1KMCr1k335O3VNeqD+5dZDi1n+mwiAx/KMmA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rspack/binding-win32-ia32-msvc": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.3.tgz", + "integrity": "sha512-X3c1B609DxzW++FdWf7kkoXWwsC/DUEJ1N1qots4T0P2G2V+pDQfjdTRSC0YQ75toAvwZqpwGzToQJ9IwQ4Ayw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rspack/binding-win32-x64-msvc": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.3.tgz", + "integrity": "sha512-f6AvZbJGIg+7NggHXv0+lyMzvIUfeCxcB5DNbo3H5AalIgwkoFpcBXLBqgMVIbqA0yNyP06eiK98rpzc9ulQQg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rspack/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.7.3.tgz", + "integrity": "sha512-GUiTRTz6+gbfM2g3ixXqrvPSeHmyAFu/qHEZZjbYFeDtZhpy1gVaVAHiZfaaIIm+vRlNi7JmULWFZQFKwpQB9Q==", + "license": "MIT", + "dependencies": { + "@module-federation/runtime-tools": "0.22.0", + "@rspack/binding": "1.7.3", + "@rspack/lite-tapable": "1.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.1" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@rspack/core/node_modules/@module-federation/error-codes": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.22.0.tgz", + "integrity": "sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==", + "license": "MIT" + }, + "node_modules/@rspack/core/node_modules/@module-federation/runtime": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.22.0.tgz", + "integrity": "sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==", + "license": "MIT", + "dependencies": { + "@module-federation/error-codes": "0.22.0", + "@module-federation/runtime-core": "0.22.0", + "@module-federation/sdk": "0.22.0" + } + }, + "node_modules/@rspack/core/node_modules/@module-federation/runtime-core": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz", + "integrity": "sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==", + "license": "MIT", + "dependencies": { + "@module-federation/error-codes": "0.22.0", + "@module-federation/sdk": "0.22.0" + } + }, + "node_modules/@rspack/core/node_modules/@module-federation/runtime-tools": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz", + "integrity": "sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==", + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.22.0", + "@module-federation/webpack-bundler-runtime": "0.22.0" + } + }, + "node_modules/@rspack/core/node_modules/@module-federation/sdk": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.22.0.tgz", + "integrity": "sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==", + "license": "MIT" + }, + "node_modules/@rspack/core/node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz", + "integrity": "sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==", + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.22.0", + "@module-federation/sdk": "0.22.0" + } + }, + "node_modules/@rspack/lite-tapable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz", + "integrity": "sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==", + "license": "MIT" + }, + "node_modules/@rspack/plugin-react-refresh": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@rspack/plugin-react-refresh/-/plugin-react-refresh-1.6.0.tgz", + "integrity": "sha512-OO53gkrte/Ty4iRXxxM6lkwPGxsSsupFKdrPFnjwFIYrPvFLjeolAl5cTx+FzO5hYygJiGnw7iEKTmD+ptxqDA==", + "license": "MIT", + "dependencies": { + "error-stack-parser": "^2.1.4", + "html-entities": "^2.6.0" + }, + "peerDependencies": { + "react-refresh": ">=0.10.0 <1.0.0", + "webpack-hot-middleware": "2.x" + }, + "peerDependenciesMeta": { + "webpack-hot-middleware": { + "optional": true + } + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tanstack/react-table": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.21.3.tgz", + "integrity": "sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==", + "license": "MIT", + "dependencies": { + "@tanstack/table-core": "8.21.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/react-virtual": { + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.18.tgz", + "integrity": "sha512-dZkhyfahpvlaV0rIKnvQiVoWPyURppl6w4m9IwMDpuIjcJ1sD9YGWrt0wISvgU7ewACXx2Ct46WPgI6qAD4v6A==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.13.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.21.3.tgz", + "integrity": "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.18.tgz", + "integrity": "sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT" + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/dompurify": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.2.0.tgz", + "integrity": "sha512-Fgg31wv9QbLDA0SpTOXO3MaxySc4DKGLi8sna4/Utjo4r3ZRPdCt4UQee8BWr+Q5z21yifghREPJGYaEOEIACg==", + "deprecated": "This is a stub types definition. dompurify provides its own type definitions, so you do not need this installed.", + "license": "MIT", + "dependencies": { + "dompurify": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/leaflet": { + "version": "1.9.21", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.21.tgz", + "integrity": "sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/leaflet-draw": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@types/leaflet-draw/-/leaflet-draw-1.0.13.tgz", + "integrity": "sha512-YU82kilOaU+wPNbqKCCDfHH3hqepN6XilrBwG/mSeZ/z4ewumaRCOah44s3FMxSu/Aa0SVa3PPJvhIZDUA09mw==", + "license": "MIT", + "dependencies": { + "@types/leaflet": "^1.9" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.19.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", + "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "license": "MIT" + }, + "node_modules/@types/stylis": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.7.tgz", + "integrity": "sha512-VgDNokpBoKF+wrdvhAAfS55OMQpL6QRglwTwNC3kIgBrzZxA4WsFj+2eLfEA/uMUDzBcEhYmjSbwQakn/i3ajA==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@uiw/codemirror-extensions-basic-setup": { + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.25.4.tgz", + "integrity": "sha512-YzNwkm0AbPv1EXhCHYR5v0nqfemG2jEB0Z3Att4rBYqKrlG7AA9Rhjc3IyBaOzsBu18wtrp9/+uhTyu7TXSRng==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/autocomplete": ">=6.0.0", + "@codemirror/commands": ">=6.0.0", + "@codemirror/language": ">=6.0.0", + "@codemirror/lint": ">=6.0.0", + "@codemirror/search": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" + } + }, + "node_modules/@uiw/react-codemirror": { + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.25.4.tgz", + "integrity": "sha512-ipO067oyfUw+DVaXhQCxkB0ZD9b7RnY+ByrprSYSKCHaULvJ3sqWYC/Zen6zVQ8/XC4o5EPBfatGiX20kC7XGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.6", + "@codemirror/commands": "^6.1.0", + "@codemirror/state": "^6.1.1", + "@codemirror/theme-one-dark": "^6.0.0", + "@uiw/codemirror-extensions-basic-setup": "4.25.4", + "codemirror": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.11.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/theme-one-dark": ">=6.0.0", + "@codemirror/view": ">=6.0.0", + "codemirror": ">=6.0.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antd": { + "version": "5.29.3", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz", + "integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.2.1", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.1.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.3.0", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.3.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.1", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.9", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.54.0", + "rc-tabs": "~15.7.0", + "rc-textarea": "~1.10.2", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.11.0", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/antd-style": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/antd-style/-/antd-style-3.7.1.tgz", + "integrity": "sha512-CQOfddVp4aOvBfCepa+Kj2e7ap+2XBINg1Kn2osdE3oQvrD7KJu/K0sfnLcFLkgCJygbxmuazYdWLKb+drPDYA==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.1", + "@babel/runtime": "^7.24.1", + "@emotion/cache": "^11.11.0", + "@emotion/css": "^11.11.2", + "@emotion/react": "^11.11.4", + "@emotion/serialize": "^1.1.3", + "@emotion/utils": "^1.2.1", + "use-merge-value": "^1.2.0" + }, + "peerDependencies": { + "antd": ">=5.8.1", + "react": ">=18" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.17", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.17.tgz", + "integrity": "sha512-agD0MgJFUP/4nvjqzIB29zRPUuCF7Ge6mEv9s8dHrtYD7QWXRcx75rOADE/d5ah1NI+0vkDl0yorDd5U852IQQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/bubblesets-js": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/bubblesets-js/-/bubblesets-js-2.3.4.tgz", + "integrity": "sha512-DyMjHmpkS2+xcFNtyN00apJYL3ESdp9fTrkDr5+9Qg/GPqFmcWgGsK1akZnttE1XFxJ/VMy4DNNGMGYtmFp1Sg==", + "license": "MIT" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT", + "peer": true + }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "license": "MIT", + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001766", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", + "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/codemirror": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", + "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comlink": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/comlink/-/comlink-4.4.2.tgz", + "integrity": "sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==", + "license": "Apache-2.0" + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, + "node_modules/cron-parser": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "license": "MIT", + "dependencies": { + "luxon": "^3.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-binarytree": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz", + "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==", + "license": "MIT" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force-3d": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz", + "integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==", + "license": "MIT", + "dependencies": { + "d3-binarytree": "1", + "d3-dispatch": "1 - 3", + "d3-octree": "1", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo-projection": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", + "license": "ISC", + "dependencies": { + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" + }, + "bin": { + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo-projection/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-octree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz", + "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==", + "license": "MIT" + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-regression": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/d3-regression/-/d3-regression-1.3.10.tgz", + "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "license": "MIT", + "dependencies": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.278", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.278.tgz", + "integrity": "sha512-dQ0tM1svDRQOwxnXxm+twlGTjr9Upvt8UFWAgmLsxEzFQxhbti4VwxmMjsDxVC51Zo84swW7FVCXEV+VAkhuPw==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT", + "peer": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/find-file-up": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-2.0.1.tgz", + "integrity": "sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==", + "license": "MIT", + "dependencies": { + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-2.0.0.tgz", + "integrity": "sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==", + "license": "MIT", + "dependencies": { + "find-file-up": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "license": "ISC" + }, + "node_modules/flexlayout-react": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/flexlayout-react/-/flexlayout-react-0.7.15.tgz", + "integrity": "sha512-ydTMdEoQO5BniylxVkSxa59rEY0+96lqqRII+QK+yq6028eHywPuxZawt4g45y5pMb9ptP4N9HPAQXAFsxwowQ==", + "license": "ISC", + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/flru": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flru/-/flru-1.0.2.tgz", + "integrity": "sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/framer-motion": { + "version": "11.18.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", + "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", + "license": "MIT", + "dependencies": { + "motion-dom": "^11.18.1", + "motion-utils": "^11.18.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "license": "MIT", + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/i18next": { + "version": "23.16.8", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.8.tgz", + "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/inversify": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.1.6.tgz", + "integrity": "sha512-qQLOINPTMoe0U4lGUuCkNr/MQ9+8xVlht1MBKm67wPzD5N9mwjgCgBXtJlSwibTnwc3OkTlLx/MpIR6pP6djUA==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.4.0", + "@inversifyjs/core": "1.3.5" + }, + "peerDependencies": { + "reflect-metadata": "~0.2.2" + } + }, + "node_modules/is-any-array": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", + "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==", + "license": "MIT" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/koa": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.1.tgz", + "integrity": "sha512-umfX9d3iuSxTQP4pnzLOz0HKnPg0FaUUIKcye2lOiz3KPu1Y3M3xlz76dISdFPQs37P9eJz1wUpcTS6KDPn9fA==", + "license": "MIT", + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.9.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "license": "MIT" + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "license": "MIT", + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "node_modules/leaflet-draw": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz", + "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ==", + "license": "MIT" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lodash.clonedeepwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", + "integrity": "sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==", + "license": "MIT" + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "license": "Apache-2.0", + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/long-timeout": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", + "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT", + "peer": true + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ml-array-max": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz", + "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-min": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz", + "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-rescale": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", + "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0", + "ml-array-max": "^1.2.4", + "ml-array-min": "^1.2.3" + } + }, + "node_modules/ml-matrix": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.1.tgz", + "integrity": "sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.1", + "ml-array-rescale": "^1.3.7" + } + }, + "node_modules/motion-dom": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", + "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", + "license": "MIT", + "dependencies": { + "motion-utils": "^11.18.1" + } + }, + "node_modules/motion-utils": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", + "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT", + "peer": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" + }, + "node_modules/node-schedule": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.1.tgz", + "integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==", + "license": "MIT", + "dependencies": { + "cron-parser": "^4.2.0", + "long-timeout": "0.1.1", + "sorted-array-functions": "^1.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pdfast": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pdfast/-/pdfast-0.2.0.tgz", + "integrity": "sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/rambda": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.4.2.tgz", + "integrity": "sha512-++euMfxnl7OgaEKwXh9QqThOjMeta2HH001N1v4mYQzBjJBnmXBh2BCK6dZAbICFVXOFUVD3xFG0R3ZPU0mxXw==", + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rc-cascader": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz", + "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.1.tgz", + "integrity": "sha512-vKeSifSJ6HoLaAB+B8aq/Qgm8a3dyxROzCtKNCsBQgiverpc4kWDQihoUwzUj+zNWJOykwSY4dNX3QrGwtVb9A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.8.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.8.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.10.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.5.0.tgz", + "integrity": "sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.1.tgz", + "integrity": "sha512-izj1Nw/Dw2Vb7EVr+D/E9lUTkBe+kKC+SAFSU9zqr7WV2W5Ktaa9Gc7cB2jTqgk8GROJayltaec+DBlYKc6d+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.8", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.9", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.9.tgz", + "integrity": "sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.54.0", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.54.0.tgz", + "integrity": "sha512-/wDTkki6wBTjwylwAGjpLKYklKo9YgjZwAU77+7ME5mBoS32Q4nAwoqhA2lSge6fobLW3Tap6uc5xfwaL2p0Sw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz", + "integrity": "sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz", + "integrity": "sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.8.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.11.0.tgz", + "integrity": "sha512-ZUyT//2JAehfHzjWowqROcwYJKnZkIUGWaTE/VogVrepSl7AFNbQf4+zGfX4zl9Vrj/Jm8scLO0R6UlPDKK4wA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/rc-virtual-list": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz", + "integrity": "sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-compiler-runtime": { + "version": "19.1.0-rc.3", + "resolved": "https://registry.npmjs.org/react-compiler-runtime/-/react-compiler-runtime-19.1.0-rc.3.tgz", + "integrity": "sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-draggable": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.5.0.tgz", + "integrity": "sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-i18next": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.3.tgz", + "integrity": "sha512-wZnpfunU6UIAiJ+bxwOiTmBOAaB14ha97MjOEnLGac2RJ+h/maIYXZuTHlmyqQVX1UVHmU1YDTQ5vxLmwfXTjw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 23.2.3", + "react": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "react-router": "6.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rslog": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rslog/-/rslog-1.3.2.tgz", + "integrity": "sha512-1YyYXBvN0a2b1MSIDLwDTqqgjDzRKxUg/S/+KO6EAgbtZW1B3fdLHAMhEEtvk1patJYMqcRvlp3HQwnxj7AdGQ==", + "license": "MIT" + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sorted-array-functions": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", + "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "license": "MIT", + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/style-mod": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", + "license": "MIT" + }, + "node_modules/styled-components": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.3.8.tgz", + "integrity": "sha512-Kq/W41AKQloOqKM39zfaMdJ4BcYDw/N5CIq4/GTI0YjU6pKcZ1KKhk6b4du0a+6RA9pIfOP/eu94Ge7cu+PDCA==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.4.0", + "@emotion/unitless": "0.10.0", + "@types/stylis": "4.2.7", + "css-to-react-native": "3.2.0", + "csstype": "3.2.3", + "postcss": "8.4.49", + "shallowequal": "1.1.0", + "stylis": "4.3.6", + "tslib": "2.8.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/styled-components/node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/svg-path-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/svg-path-parser/-/svg-path-parser-1.1.0.tgz", + "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT", + "peer": true + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-patch": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-3.3.0.tgz", + "integrity": "sha512-zAOzDnd5qsfEnjd9IGy1IRuvA7ygyyxxdxesbhMdutt8AHFjD8Vw8hU2rMF89HX1BKRWFYqKHrO8Q6lw0NeUZg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "global-prefix": "^4.0.0", + "minimist": "^1.2.8", + "resolve": "^1.22.2", + "semver": "^7.6.3", + "strip-ansi": "^6.0.1" + }, + "bin": { + "ts-patch": "bin/ts-patch.js", + "tspc": "bin/tspc.js" + } + }, + "node_modules/ts-patch/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-patch/node_modules/global-prefix": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", + "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==", + "license": "MIT", + "dependencies": { + "ini": "^4.1.3", + "kind-of": "^6.0.3", + "which": "^4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/ts-patch/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ts-patch/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/ts-patch/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-merge-value": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-merge-value/-/use-merge-value-1.2.0.tgz", + "integrity": "sha512-DXgG0kkgJN45TcyoXL49vJnn55LehnrmoHc7MbKi+QDBvr8dsesqws8UlyIWGHMR+JXgxc1nvY+jDGMlycsUcw==", + "license": "MIT", + "peerDependencies": { + "react": ">= 16.x" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "license": "MIT", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.104.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", + "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.4", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/workerize-loader": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/workerize-loader/-/workerize-loader-2.0.2.tgz", + "integrity": "sha512-HoZ6XY4sHWxA2w0WpzgBwUiR3dv1oo7bS+oCwIpb6n54MclQ/7KXdXsVIChTCygyuHtVuGBO1+i3HzTt699UJQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "*" + } + }, + "node_modules/workerize-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "peer": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "vendor/coreshop/core-shop/src/CoreShop/Bundle/ResourceBundle/Resources/assets/pimcore-studio": { + "name": "@coreshop/resource", + "version": "1.0.0", + "extraneous": true, + "license": "CCL", + "dependencies": { + "@pimcore/studio-ui-bundle": "1.0.0-canary.20251119-143005-1b35b01", + "@reduxjs/toolkit": "^2.0.1", + "antd": "^5.12.0", + "immer": "^10.1.1", + "react": "18.3.x", + "react-dom": "18.3.x", + "react-redux": "^9.0.4", + "zustand": "^5.0.7" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..727bed23 --- /dev/null +++ b/package.json @@ -0,0 +1,52 @@ +{ + "name": "@instride/data-definitions-studio", + "version": "1.0.0", + "description": "Data Definitions - Pimcore Studio Plugin", + "main": "src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/index.ts", + "exports": { + ".": "./src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/index.ts" + }, + "scripts": { + "build": "rsbuild build", + "dev": "rsbuild dev", + "lint": "eslint --ext .js,.jsx,.ts,.tsx ./src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src", + "lint-fix": "eslint --ext .js,.jsx,.ts,.tsx ./src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src --fix", + "check-types": "tsc --noEmit", + "check-types-watch": "tsc --noEmit --watch", + "clean": "rm -rf node_modules/.cache dist" + }, + "license": "SEE LICENSE IN LICENSE.md", + "private": true, + "devDependencies": { + "@module-federation/rsbuild-plugin": "^0.13.1", + "@rsbuild/core": "^1.3.16", + "@rsbuild/plugin-react": "^1.3.1", + "@rsbuild/plugin-svgr": "^1.2.2", + "@types/node": "^22.14.0", + "@types/react-dom": "18.3.x", + "concurrently": "^8.2.2", + "tsx": "^4.19.2", + "typescript": "^5.3.3", + "uuid": "^9.0.0" + }, + "dependencies": { + "@pimcore/studio-ui-bundle": "1.0.0-canary.20251119-143005-1b35b01", + "@reduxjs/toolkit": "^2.0.1", + "antd": "^5.12.0", + "antd-style": "3.7.x", + "react": "18.3.x", + "react-dom": "18.3.x", + "react-redux": "^9.0.4" + }, + "engines": { + "node": ">=18.0.0" + }, + "keywords": [ + "data-definitions", + "pimcore", + "studio", + "plugins", + "react", + "typescript" + ] +} diff --git a/rsbuild.config.ts b/rsbuild.config.ts new file mode 100644 index 00000000..de115a09 --- /dev/null +++ b/rsbuild.config.ts @@ -0,0 +1,233 @@ +/** + * RSBuild Configuration for Data Definitions Studio Plugin + */ + +import { defineConfig } from '@rsbuild/core' +import { pluginReact } from '@rsbuild/plugin-react' +import { pluginSvgr } from '@rsbuild/plugin-svgr' +import { pluginModuleFederation } from '@module-federation/rsbuild-plugin' +import { pluginGenerateEntrypoints } from '@pimcore/studio-ui-bundle/rsbuild/plugins' +import path from 'path' +import fs from 'fs' +import { v4 } from 'uuid' + +const buildId = v4() +const bundlePrefix = 'datadefinitions' +const studioAssetsPath = path.resolve(__dirname, 'src/DataDefinitionsBundle/Resources/assets/pimcore-studio') +const buildPath = path.resolve(__dirname, 'src/DataDefinitionsBundle/Resources/public/studio', buildId) +const entryFile = path.resolve(studioAssetsPath, 'src/main.ts') + +// Clean old build directories +const studioPath = path.resolve(__dirname, 'src/DataDefinitionsBundle/Resources/public/studio') +if (fs.existsSync(studioPath)) { + fs.readdirSync(studioPath).forEach((file) => { + const filePath = path.resolve(studioPath, file) + if (fs.statSync(filePath).isDirectory()) { + fs.rmSync(filePath, { recursive: true, force: true }) + } + }) +} + +// Ensure build directory exists +if (!fs.existsSync(buildPath)) { + fs.mkdirSync(buildPath, { recursive: true }) +} + +let nodeEnv = process.env.NODE_ENV +let env: 'development' | 'production' = 'production' + +const isDevServer = nodeEnv === 'dev-server' +if (nodeEnv !== 'production') { + env = 'development' +} + +const devPort = 3050 + +export default defineConfig({ + mode: env, + root: studioAssetsPath, + server: { + port: devPort, + publicDir: { + copyOnBuild: false + } + }, + dev: { + ...(!isDevServer ? { assetPrefix: `/bundles/${bundlePrefix}/studio/${buildId}` } : {}), + client: { + host: 'localhost', + port: devPort, + protocol: 'ws' + }, + hmr: true, + }, + source: { + entry: { + main: entryFile + }, + decorators: { + version: 'legacy' + } + }, + resolve: { + alias: { + '@DataDefinitions': path.resolve(studioAssetsPath, 'src'), + '@DataDefinitions/assets': path.resolve(studioAssetsPath, 'src/assets'), + '@coreshop/resource': path.resolve(__dirname, 'vendor/coreshop/core-shop/src/CoreShop/Bundle/ResourceBundle/Resources/assets/pimcore-studio') + } + }, + output: { + manifest: true, + assetPrefix: `/bundles/${bundlePrefix}/studio/${buildId}`, + distPath: { + root: buildPath + } + }, + tools: { + bundlerChain: (chain, { env }) => { + chain.output.uniqueName(bundlePrefix) + } + }, + plugins: [ + pluginGenerateEntrypoints(), + pluginReact(), + pluginSvgr({ + svgrOptions: { + icon: true, + typescript: true + } + }), + pluginModuleFederation({ + name: bundlePrefix, + filename: 'static/js/remoteEntry.js', + exposes: { + '.': entryFile + }, + dts: false, + remotes: { + '@pimcore/studio-ui-bundle': `promise new Promise(resolve => { + const studioUIBundleRemoteUrl = window.StudioUIBundleRemoteUrl + const script = document.createElement('script') + + let hasScript = false; + + document.querySelectorAll('script').forEach((el) => { + const elPathname = el.src.replace(/https?:\\/\\/[^/]+/, '') + const studioUIBundleRemoteUrlPathname = studioUIBundleRemoteUrl.replace(/https?:\\/\\/[^/]+/, '') + + if (elPathname === studioUIBundleRemoteUrlPathname) { + hasScript = true; + return; + } + }) + + if (hasScript) { + resolve({ + get: (request) => window['pimcore_studio_ui_bundle'].get(request), + init: (...arg) => { + try { + return window['pimcore_studio_ui_bundle'].init(...arg) + } catch(e) { + console.log('remote container already initialized') + } + } + }) + return + } + + script.src = studioUIBundleRemoteUrl + script.onload = () => { + const proxy = { + get: (request) => window['pimcore_studio_ui_bundle'].get(request), + init: (...arg) => { + try { + return window['pimcore_studio_ui_bundle'].init(...arg) + } catch(e) { + console.log('remote container already initialized') + } + } + } + resolve(proxy) + } + document.head.appendChild(script); + }) + ` + }, + shared: { + react: { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + 'react-dom': { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + 'react/jsx-runtime': { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + 'react/jsx-dev-runtime': { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + 'react-i18next': { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + 'i18next': { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + '@emotion/react': { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + '@emotion/styled': { + singleton: true, + eager: false, + requiredVersion: false, + strictVersion: false + }, + antd: { + singleton: true, + eager: false, + requiredVersion: false + }, + '@reduxjs/toolkit': { + singleton: true, + eager: false, + requiredVersion: false + }, + 'react-redux': { + singleton: true, + eager: false, + requiredVersion: false + }, + immer: { + singleton: true, + eager: false, + requiredVersion: false + }, + zustand: { + singleton: true, + eager: false, + requiredVersion: false + } + } + }) + ] +}) diff --git a/src/BehatKernel.php b/src/BehatKernel.php index 8611258a..153a36d2 100644 --- a/src/BehatKernel.php +++ b/src/BehatKernel.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ use Pimcore\HttpKernel\BundleCollection\BundleCollection; diff --git a/src/DataDefinitionsBundle/Cleaner/AbstractCleaner.php b/src/DataDefinitionsBundle/Cleaner/AbstractCleaner.php index 9ee8f39b..7ccf60fa 100644 --- a/src/DataDefinitionsBundle/Cleaner/AbstractCleaner.php +++ b/src/DataDefinitionsBundle/Cleaner/AbstractCleaner.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Cleaner; diff --git a/src/DataDefinitionsBundle/Cleaner/CleanerInterface.php b/src/DataDefinitionsBundle/Cleaner/CleanerInterface.php index 6f888cad..5d5e9b2c 100644 --- a/src/DataDefinitionsBundle/Cleaner/CleanerInterface.php +++ b/src/DataDefinitionsBundle/Cleaner/CleanerInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Cleaner; diff --git a/src/DataDefinitionsBundle/Cleaner/Deleter.php b/src/DataDefinitionsBundle/Cleaner/Deleter.php index 4325b4fc..f2f11714 100644 --- a/src/DataDefinitionsBundle/Cleaner/Deleter.php +++ b/src/DataDefinitionsBundle/Cleaner/Deleter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Cleaner; diff --git a/src/DataDefinitionsBundle/Cleaner/None.php b/src/DataDefinitionsBundle/Cleaner/None.php index 7dbe96d5..7957cb84 100644 --- a/src/DataDefinitionsBundle/Cleaner/None.php +++ b/src/DataDefinitionsBundle/Cleaner/None.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Cleaner; diff --git a/src/DataDefinitionsBundle/Cleaner/ReferenceCleaner.php b/src/DataDefinitionsBundle/Cleaner/ReferenceCleaner.php index c9573e3d..a74ece05 100644 --- a/src/DataDefinitionsBundle/Cleaner/ReferenceCleaner.php +++ b/src/DataDefinitionsBundle/Cleaner/ReferenceCleaner.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Cleaner; diff --git a/src/DataDefinitionsBundle/Cleaner/Unpublisher.php b/src/DataDefinitionsBundle/Cleaner/Unpublisher.php index a9a29466..7840edcf 100644 --- a/src/DataDefinitionsBundle/Cleaner/Unpublisher.php +++ b/src/DataDefinitionsBundle/Cleaner/Unpublisher.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Cleaner; diff --git a/src/DataDefinitionsBundle/Command/AbstractImportDefinitionCommand.php b/src/DataDefinitionsBundle/Command/AbstractImportDefinitionCommand.php index 8e38ff81..256ca4a5 100644 --- a/src/DataDefinitionsBundle/Command/AbstractImportDefinitionCommand.php +++ b/src/DataDefinitionsBundle/Command/AbstractImportDefinitionCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; @@ -64,7 +62,7 @@ protected function configure(): void ; } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $path = $this->getPath(); diff --git a/src/DataDefinitionsBundle/Command/ConvertExportDefinitionsToYaml.php b/src/DataDefinitionsBundle/Command/ConvertExportDefinitionsToYaml.php index cc025a6b..bbf1be4d 100644 --- a/src/DataDefinitionsBundle/Command/ConvertExportDefinitionsToYaml.php +++ b/src/DataDefinitionsBundle/Command/ConvertExportDefinitionsToYaml.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; diff --git a/src/DataDefinitionsBundle/Command/ConvertImportDefinitionsToYaml.php b/src/DataDefinitionsBundle/Command/ConvertImportDefinitionsToYaml.php index d7996d3a..82f7cc85 100644 --- a/src/DataDefinitionsBundle/Command/ConvertImportDefinitionsToYaml.php +++ b/src/DataDefinitionsBundle/Command/ConvertImportDefinitionsToYaml.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; diff --git a/src/DataDefinitionsBundle/Command/ExportCommand.php b/src/DataDefinitionsBundle/Command/ExportCommand.php index d147cd20..8ed24df1 100644 --- a/src/DataDefinitionsBundle/Command/ExportCommand.php +++ b/src/DataDefinitionsBundle/Command/ExportCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; @@ -73,7 +71,7 @@ protected function configure(): void ; } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $eventDispatcher = $this->eventDispatcher; diff --git a/src/DataDefinitionsBundle/Command/ImportAsyncCommand.php b/src/DataDefinitionsBundle/Command/ImportAsyncCommand.php index f2ce553d..7b0ac06e 100644 --- a/src/DataDefinitionsBundle/Command/ImportAsyncCommand.php +++ b/src/DataDefinitionsBundle/Command/ImportAsyncCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; @@ -56,7 +54,7 @@ protected function configure(): void ; } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $params = json_decode($input->getOption('params'), true); $definitionId = $input->getOption('definition'); diff --git a/src/DataDefinitionsBundle/Command/ImportCommand.php b/src/DataDefinitionsBundle/Command/ImportCommand.php index 4d80818d..73a60fa9 100644 --- a/src/DataDefinitionsBundle/Command/ImportCommand.php +++ b/src/DataDefinitionsBundle/Command/ImportCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; @@ -74,7 +72,7 @@ protected function configure(): void ; } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $eventDispatcher = $this->eventDispatcher; diff --git a/src/DataDefinitionsBundle/Command/ImportExportDefinitionCommand.php b/src/DataDefinitionsBundle/Command/ImportExportDefinitionCommand.php index 0a56c386..70583c3a 100644 --- a/src/DataDefinitionsBundle/Command/ImportExportDefinitionCommand.php +++ b/src/DataDefinitionsBundle/Command/ImportExportDefinitionCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; diff --git a/src/DataDefinitionsBundle/Command/ImportImportDefinitionCommand.php b/src/DataDefinitionsBundle/Command/ImportImportDefinitionCommand.php index fd640885..c88713cd 100644 --- a/src/DataDefinitionsBundle/Command/ImportImportDefinitionCommand.php +++ b/src/DataDefinitionsBundle/Command/ImportImportDefinitionCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; diff --git a/src/DataDefinitionsBundle/Command/ListExportDefinitionsCommand.php b/src/DataDefinitionsBundle/Command/ListExportDefinitionsCommand.php index 1ce5183f..741b17cc 100644 --- a/src/DataDefinitionsBundle/Command/ListExportDefinitionsCommand.php +++ b/src/DataDefinitionsBundle/Command/ListExportDefinitionsCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; @@ -47,7 +45,7 @@ protected function configure(): void ; } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $exportDefinitions = $this->repository->findAll(); diff --git a/src/DataDefinitionsBundle/Command/ListImportDefinitionsCommand.php b/src/DataDefinitionsBundle/Command/ListImportDefinitionsCommand.php index d0b9af19..4180e608 100644 --- a/src/DataDefinitionsBundle/Command/ListImportDefinitionsCommand.php +++ b/src/DataDefinitionsBundle/Command/ListImportDefinitionsCommand.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Command; @@ -47,7 +45,7 @@ protected function configure(): void ; } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $importDefinitions = $this->repository->findAll(); diff --git a/src/DataDefinitionsBundle/Context/Context.php b/src/DataDefinitionsBundle/Context/Context.php index 1c79cd6f..4101c91b 100644 --- a/src/DataDefinitionsBundle/Context/Context.php +++ b/src/DataDefinitionsBundle/Context/Context.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/ContextFactory.php b/src/DataDefinitionsBundle/Context/ContextFactory.php index f7c0855f..00f0ca91 100644 --- a/src/DataDefinitionsBundle/Context/ContextFactory.php +++ b/src/DataDefinitionsBundle/Context/ContextFactory.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/ContextFactoryInterface.php b/src/DataDefinitionsBundle/Context/ContextFactoryInterface.php index 06d0276a..39f39870 100644 --- a/src/DataDefinitionsBundle/Context/ContextFactoryInterface.php +++ b/src/DataDefinitionsBundle/Context/ContextFactoryInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/ContextInterface.php b/src/DataDefinitionsBundle/Context/ContextInterface.php index ef9f2a35..75d501a7 100644 --- a/src/DataDefinitionsBundle/Context/ContextInterface.php +++ b/src/DataDefinitionsBundle/Context/ContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/FetcherContext.php b/src/DataDefinitionsBundle/Context/FetcherContext.php index a46df127..4aa0257e 100644 --- a/src/DataDefinitionsBundle/Context/FetcherContext.php +++ b/src/DataDefinitionsBundle/Context/FetcherContext.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/FetcherContextInterface.php b/src/DataDefinitionsBundle/Context/FetcherContextInterface.php index 2ccaa17a..02358977 100644 --- a/src/DataDefinitionsBundle/Context/FetcherContextInterface.php +++ b/src/DataDefinitionsBundle/Context/FetcherContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/FilterContext.php b/src/DataDefinitionsBundle/Context/FilterContext.php index eca74e3d..4fc53a76 100644 --- a/src/DataDefinitionsBundle/Context/FilterContext.php +++ b/src/DataDefinitionsBundle/Context/FilterContext.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/FilterContextInterface.php b/src/DataDefinitionsBundle/Context/FilterContextInterface.php index 96b28f8e..8e6deefe 100644 --- a/src/DataDefinitionsBundle/Context/FilterContextInterface.php +++ b/src/DataDefinitionsBundle/Context/FilterContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/GetterContext.php b/src/DataDefinitionsBundle/Context/GetterContext.php index e5db28af..7785bee5 100644 --- a/src/DataDefinitionsBundle/Context/GetterContext.php +++ b/src/DataDefinitionsBundle/Context/GetterContext.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/GetterContextInterface.php b/src/DataDefinitionsBundle/Context/GetterContextInterface.php index 210d2be3..fb299ae1 100644 --- a/src/DataDefinitionsBundle/Context/GetterContextInterface.php +++ b/src/DataDefinitionsBundle/Context/GetterContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/InterpreterContext.php b/src/DataDefinitionsBundle/Context/InterpreterContext.php index 5c651d75..6e06411e 100644 --- a/src/DataDefinitionsBundle/Context/InterpreterContext.php +++ b/src/DataDefinitionsBundle/Context/InterpreterContext.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/InterpreterContextInterface.php b/src/DataDefinitionsBundle/Context/InterpreterContextInterface.php index 70e13f23..8e38515e 100644 --- a/src/DataDefinitionsBundle/Context/InterpreterContextInterface.php +++ b/src/DataDefinitionsBundle/Context/InterpreterContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/LoaderContext.php b/src/DataDefinitionsBundle/Context/LoaderContext.php index 47dc1172..4e514096 100644 --- a/src/DataDefinitionsBundle/Context/LoaderContext.php +++ b/src/DataDefinitionsBundle/Context/LoaderContext.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/LoaderContextInterface.php b/src/DataDefinitionsBundle/Context/LoaderContextInterface.php index f5c78abd..bc5518e8 100644 --- a/src/DataDefinitionsBundle/Context/LoaderContextInterface.php +++ b/src/DataDefinitionsBundle/Context/LoaderContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/RunnerContext.php b/src/DataDefinitionsBundle/Context/RunnerContext.php index 4dce37c0..1f872e3d 100644 --- a/src/DataDefinitionsBundle/Context/RunnerContext.php +++ b/src/DataDefinitionsBundle/Context/RunnerContext.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/RunnerContextInterface.php b/src/DataDefinitionsBundle/Context/RunnerContextInterface.php index 3bf03841..861d750d 100644 --- a/src/DataDefinitionsBundle/Context/RunnerContextInterface.php +++ b/src/DataDefinitionsBundle/Context/RunnerContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/SetterContext.php b/src/DataDefinitionsBundle/Context/SetterContext.php index 7c4af764..ff35fb98 100644 --- a/src/DataDefinitionsBundle/Context/SetterContext.php +++ b/src/DataDefinitionsBundle/Context/SetterContext.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Context/SetterContextInterface.php b/src/DataDefinitionsBundle/Context/SetterContextInterface.php index 7f3158e4..5eef2f03 100644 --- a/src/DataDefinitionsBundle/Context/SetterContextInterface.php +++ b/src/DataDefinitionsBundle/Context/SetterContextInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Context; diff --git a/src/DataDefinitionsBundle/Controller/AbstractDefinitionController.php b/src/DataDefinitionsBundle/Controller/AbstractDefinitionController.php index 84ad75af..48a02e92 100644 --- a/src/DataDefinitionsBundle/Controller/AbstractDefinitionController.php +++ b/src/DataDefinitionsBundle/Controller/AbstractDefinitionController.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Controller; diff --git a/src/DataDefinitionsBundle/Controller/ExportDefinitionController.php b/src/DataDefinitionsBundle/Controller/ExportDefinitionController.php index e554ad87..3c28961a 100644 --- a/src/DataDefinitionsBundle/Controller/ExportDefinitionController.php +++ b/src/DataDefinitionsBundle/Controller/ExportDefinitionController.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Controller; diff --git a/src/DataDefinitionsBundle/Controller/ImportDefinitionController.php b/src/DataDefinitionsBundle/Controller/ImportDefinitionController.php index 24f9d0f2..ed58c597 100644 --- a/src/DataDefinitionsBundle/Controller/ImportDefinitionController.php +++ b/src/DataDefinitionsBundle/Controller/ImportDefinitionController.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Controller; diff --git a/src/DataDefinitionsBundle/Controller/ImportRuleController.php b/src/DataDefinitionsBundle/Controller/ImportRuleController.php index f2c4fcee..84ee4f8f 100644 --- a/src/DataDefinitionsBundle/Controller/ImportRuleController.php +++ b/src/DataDefinitionsBundle/Controller/ImportRuleController.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Controller; diff --git a/src/DataDefinitionsBundle/DataDefinitionsBundle.php b/src/DataDefinitionsBundle/DataDefinitionsBundle.php index e133f46b..0dfb5e01 100644 --- a/src/DataDefinitionsBundle/DataDefinitionsBundle.php +++ b/src/DataDefinitionsBundle/DataDefinitionsBundle.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/CleanerRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/CleanerRegistryCompilerPass.php index 0326ddf5..22063e7d 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/CleanerRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/CleanerRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportProviderRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportProviderRegistryCompilerPass.php index eb03dda8..f947eda8 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportProviderRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportProviderRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportRunnerRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportRunnerRegistryCompilerPass.php index ba7a0415..3c180900 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportRunnerRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ExportRunnerRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/FetcherRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/FetcherRegistryCompilerPass.php index 4793da63..83491c11 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/FetcherRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/FetcherRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/FilterRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/FilterRegistryCompilerPass.php index e4a5246a..6147dbf5 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/FilterRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/FilterRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/GetterRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/GetterRegistryCompilerPass.php index 401a2de0..390d03fa 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/GetterRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/GetterRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleActionPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleActionPass.php index fe1d8b0d..652b5da0 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleActionPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleActionPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleConditionPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleConditionPass.php index e5ed8e50..69c8dbcf 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleConditionPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ImportRuleConditionPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/InterpreterRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/InterpreterRegistryCompilerPass.php index 508fba2f..3216a963 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/InterpreterRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/InterpreterRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/LoaderRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/LoaderRegistryCompilerPass.php index df88ef91..ebf94e70 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/LoaderRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/LoaderRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/PersisterRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/PersisterRegistryCompilerPass.php index 2773be07..2b2b4d1b 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/PersisterRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/PersisterRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ProviderRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ProviderRegistryCompilerPass.php index c4eeaa73..70dfa275 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/ProviderRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/ProviderRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/RunnerRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/RunnerRegistryCompilerPass.php index 695894fd..246656f8 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/RunnerRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/RunnerRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Compiler/SetterRegistryCompilerPass.php b/src/DataDefinitionsBundle/DependencyInjection/Compiler/SetterRegistryCompilerPass.php index 863514fb..6ef94ae0 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Compiler/SetterRegistryCompilerPass.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Compiler/SetterRegistryCompilerPass.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection\Compiler; diff --git a/src/DataDefinitionsBundle/DependencyInjection/Configuration.php b/src/DataDefinitionsBundle/DependencyInjection/Configuration.php index 1d7009da..09cd4a46 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/Configuration.php +++ b/src/DataDefinitionsBundle/DependencyInjection/Configuration.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection; diff --git a/src/DataDefinitionsBundle/DependencyInjection/DataDefinitionsExtension.php b/src/DataDefinitionsBundle/DependencyInjection/DataDefinitionsExtension.php index b8a14040..c2300f40 100644 --- a/src/DataDefinitionsBundle/DependencyInjection/DataDefinitionsExtension.php +++ b/src/DataDefinitionsBundle/DependencyInjection/DataDefinitionsExtension.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\DependencyInjection; @@ -133,6 +131,11 @@ public function load(array $configs, ContainerBuilder $container) $container->setParameter('data_definitions.import_definitions', $config['import_definitions']); $container->setParameter('data_definitions.export_definitions', $config['export_definitions']); + + // Load Studio UI integration if available + if (interface_exists(\Pimcore\Bundle\StudioUiBundle\Webpack\WebpackEntryPointProviderInterface::class)) { + $loader->load('services/studio.yaml'); + } } public function prepend(ContainerBuilder $container): void diff --git a/src/DataDefinitionsBundle/Event/DefinitionEventInterface.php b/src/DataDefinitionsBundle/Event/DefinitionEventInterface.php index 489ff52b..28634fe1 100644 --- a/src/DataDefinitionsBundle/Event/DefinitionEventInterface.php +++ b/src/DataDefinitionsBundle/Event/DefinitionEventInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Event; diff --git a/src/DataDefinitionsBundle/Event/EventDispatcher.php b/src/DataDefinitionsBundle/Event/EventDispatcher.php index 7a367fd9..6627fc65 100644 --- a/src/DataDefinitionsBundle/Event/EventDispatcher.php +++ b/src/DataDefinitionsBundle/Event/EventDispatcher.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Event; diff --git a/src/DataDefinitionsBundle/Event/EventDispatcherInterface.php b/src/DataDefinitionsBundle/Event/EventDispatcherInterface.php index 52cb8990..12c4bfe5 100644 --- a/src/DataDefinitionsBundle/Event/EventDispatcherInterface.php +++ b/src/DataDefinitionsBundle/Event/EventDispatcherInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Event; diff --git a/src/DataDefinitionsBundle/Event/ExportDefinitionEvent.php b/src/DataDefinitionsBundle/Event/ExportDefinitionEvent.php index e54acc0c..80b036ce 100644 --- a/src/DataDefinitionsBundle/Event/ExportDefinitionEvent.php +++ b/src/DataDefinitionsBundle/Event/ExportDefinitionEvent.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Event; diff --git a/src/DataDefinitionsBundle/Event/ImportDefinitionEvent.php b/src/DataDefinitionsBundle/Event/ImportDefinitionEvent.php index 92d885d2..92565726 100644 --- a/src/DataDefinitionsBundle/Event/ImportDefinitionEvent.php +++ b/src/DataDefinitionsBundle/Event/ImportDefinitionEvent.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Event; diff --git a/src/DataDefinitionsBundle/EventListener/ObjectDeleteListener.php b/src/DataDefinitionsBundle/EventListener/ObjectDeleteListener.php index 2ab3f24e..11df5fbc 100644 --- a/src/DataDefinitionsBundle/EventListener/ObjectDeleteListener.php +++ b/src/DataDefinitionsBundle/EventListener/ObjectDeleteListener.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\EventListener; diff --git a/src/DataDefinitionsBundle/EventListener/PimcoreSettingsListener.php b/src/DataDefinitionsBundle/EventListener/PimcoreSettingsListener.php index b7d10131..a2cd8302 100644 --- a/src/DataDefinitionsBundle/EventListener/PimcoreSettingsListener.php +++ b/src/DataDefinitionsBundle/EventListener/PimcoreSettingsListener.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\EventListener; diff --git a/src/DataDefinitionsBundle/EventListener/WriteableListener.php b/src/DataDefinitionsBundle/EventListener/WriteableListener.php index 23a74b79..c2ac6213 100644 --- a/src/DataDefinitionsBundle/EventListener/WriteableListener.php +++ b/src/DataDefinitionsBundle/EventListener/WriteableListener.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\EventListener; diff --git a/src/DataDefinitionsBundle/Exception/DoNotSetException.php b/src/DataDefinitionsBundle/Exception/DoNotSetException.php index 9da8049b..88a4d515 100644 --- a/src/DataDefinitionsBundle/Exception/DoNotSetException.php +++ b/src/DataDefinitionsBundle/Exception/DoNotSetException.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Exception; diff --git a/src/DataDefinitionsBundle/Exception/InterpreterException.php b/src/DataDefinitionsBundle/Exception/InterpreterException.php index 3c3826a7..c5e6153a 100644 --- a/src/DataDefinitionsBundle/Exception/InterpreterException.php +++ b/src/DataDefinitionsBundle/Exception/InterpreterException.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Exception; diff --git a/src/DataDefinitionsBundle/Exception/SpoutException.php b/src/DataDefinitionsBundle/Exception/SpoutException.php index 49456746..f2ab21cc 100644 --- a/src/DataDefinitionsBundle/Exception/SpoutException.php +++ b/src/DataDefinitionsBundle/Exception/SpoutException.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Exception; diff --git a/src/DataDefinitionsBundle/Exception/UnexpectedValueException.php b/src/DataDefinitionsBundle/Exception/UnexpectedValueException.php index be371479..797c35c7 100644 --- a/src/DataDefinitionsBundle/Exception/UnexpectedValueException.php +++ b/src/DataDefinitionsBundle/Exception/UnexpectedValueException.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Exception; diff --git a/src/DataDefinitionsBundle/Exporter/Exporter.php b/src/DataDefinitionsBundle/Exporter/Exporter.php index d914a85b..d17bd6dd 100644 --- a/src/DataDefinitionsBundle/Exporter/Exporter.php +++ b/src/DataDefinitionsBundle/Exporter/Exporter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Exporter; diff --git a/src/DataDefinitionsBundle/Exporter/ExporterInterface.php b/src/DataDefinitionsBundle/Exporter/ExporterInterface.php index 955ef5ba..2a035cd5 100644 --- a/src/DataDefinitionsBundle/Exporter/ExporterInterface.php +++ b/src/DataDefinitionsBundle/Exporter/ExporterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Exporter; diff --git a/src/DataDefinitionsBundle/Fetcher/FetcherInterface.php b/src/DataDefinitionsBundle/Fetcher/FetcherInterface.php index a35b9620..c6e0e9cb 100644 --- a/src/DataDefinitionsBundle/Fetcher/FetcherInterface.php +++ b/src/DataDefinitionsBundle/Fetcher/FetcherInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Fetcher; diff --git a/src/DataDefinitionsBundle/Fetcher/ObjectsFetcher.php b/src/DataDefinitionsBundle/Fetcher/ObjectsFetcher.php index a5971730..1c86e2f5 100644 --- a/src/DataDefinitionsBundle/Fetcher/ObjectsFetcher.php +++ b/src/DataDefinitionsBundle/Fetcher/ObjectsFetcher.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Fetcher; diff --git a/src/DataDefinitionsBundle/Filter/FilterInterface.php b/src/DataDefinitionsBundle/Filter/FilterInterface.php index ef667a0b..b76e1064 100644 --- a/src/DataDefinitionsBundle/Filter/FilterInterface.php +++ b/src/DataDefinitionsBundle/Filter/FilterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Filter; diff --git a/src/DataDefinitionsBundle/Form/DataMapper/DefinitionMappingDataMapper.php b/src/DataDefinitionsBundle/Form/DataMapper/DefinitionMappingDataMapper.php index b1e09889..70e2f634 100644 --- a/src/DataDefinitionsBundle/Form/DataMapper/DefinitionMappingDataMapper.php +++ b/src/DataDefinitionsBundle/Form/DataMapper/DefinitionMappingDataMapper.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\DataMapper; diff --git a/src/DataDefinitionsBundle/Form/Type/ClassChoiceType.php b/src/DataDefinitionsBundle/Form/Type/ClassChoiceType.php index 0b3031ab..55ea70ab 100644 --- a/src/DataDefinitionsBundle/Form/Type/ClassChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/ClassChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/CleanerChoiceType.php b/src/DataDefinitionsBundle/Form/Type/CleanerChoiceType.php index 4164e49a..f4a49d4e 100644 --- a/src/DataDefinitionsBundle/Form/Type/CleanerChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/CleanerChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/DefinitionChoiceType.php b/src/DataDefinitionsBundle/Form/Type/DefinitionChoiceType.php index 8129c855..dd356929 100644 --- a/src/DataDefinitionsBundle/Form/Type/DefinitionChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/DefinitionChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ExportDefinitionType.php b/src/DataDefinitionsBundle/Form/Type/ExportDefinitionType.php index aaf96055..ab852807 100644 --- a/src/DataDefinitionsBundle/Form/Type/ExportDefinitionType.php +++ b/src/DataDefinitionsBundle/Form/Type/ExportDefinitionType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ExportMappingCollectionType.php b/src/DataDefinitionsBundle/Form/Type/ExportMappingCollectionType.php index 478eda0d..cfa11e94 100644 --- a/src/DataDefinitionsBundle/Form/Type/ExportMappingCollectionType.php +++ b/src/DataDefinitionsBundle/Form/Type/ExportMappingCollectionType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ExportMappingType.php b/src/DataDefinitionsBundle/Form/Type/ExportMappingType.php index 0f46d623..c82236ac 100644 --- a/src/DataDefinitionsBundle/Form/Type/ExportMappingType.php +++ b/src/DataDefinitionsBundle/Form/Type/ExportMappingType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ExportProvider/CsvProviderType.php b/src/DataDefinitionsBundle/Form/Type/ExportProvider/CsvProviderType.php index cfbad0d0..918d5b7a 100644 --- a/src/DataDefinitionsBundle/Form/Type/ExportProvider/CsvProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ExportProvider/CsvProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ExportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ExportProvider/XmlProviderType.php b/src/DataDefinitionsBundle/Form/Type/ExportProvider/XmlProviderType.php index d982b2fc..91ec4d2f 100644 --- a/src/DataDefinitionsBundle/Form/Type/ExportProvider/XmlProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ExportProvider/XmlProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ExportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ExportProviderChoiceType.php b/src/DataDefinitionsBundle/Form/Type/ExportProviderChoiceType.php index 3f2a6add..cf539248 100644 --- a/src/DataDefinitionsBundle/Form/Type/ExportProviderChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/ExportProviderChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ExportRunnerChoiceType.php b/src/DataDefinitionsBundle/Form/Type/ExportRunnerChoiceType.php index 4b164738..d77752e6 100644 --- a/src/DataDefinitionsBundle/Form/Type/ExportRunnerChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/ExportRunnerChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/Fetcher/ObjectsFetcherType.php b/src/DataDefinitionsBundle/Form/Type/Fetcher/ObjectsFetcherType.php index 939e8e40..2ee083f3 100644 --- a/src/DataDefinitionsBundle/Form/Type/Fetcher/ObjectsFetcherType.php +++ b/src/DataDefinitionsBundle/Form/Type/Fetcher/ObjectsFetcherType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Fetcher; diff --git a/src/DataDefinitionsBundle/Form/Type/FetcherChoiceType.php b/src/DataDefinitionsBundle/Form/Type/FetcherChoiceType.php index 461368ec..83cbc3df 100644 --- a/src/DataDefinitionsBundle/Form/Type/FetcherChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/FetcherChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/FilterChoiceType.php b/src/DataDefinitionsBundle/Form/Type/FilterChoiceType.php index 916fb427..c6760ea6 100644 --- a/src/DataDefinitionsBundle/Form/Type/FilterChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/FilterChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportDefinitionType.php b/src/DataDefinitionsBundle/Form/Type/ImportDefinitionType.php index 3a390d69..9fd7d954 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportDefinitionType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportDefinitionType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportMappingCollectionType.php b/src/DataDefinitionsBundle/Form/Type/ImportMappingCollectionType.php index c5fd1795..c1c5ac4c 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportMappingCollectionType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportMappingCollectionType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportMappingType.php b/src/DataDefinitionsBundle/Form/Type/ImportMappingType.php index f31b3449..4c2304c7 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportMappingType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportMappingType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProvider/CsvProviderType.php b/src/DataDefinitionsBundle/Form/Type/ImportProvider/CsvProviderType.php index 32583dfd..b9275a9a 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProvider/CsvProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProvider/CsvProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ImportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExcelProviderType.php b/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExcelProviderType.php index 42efba8c..8f2a5e7c 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExcelProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExcelProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ImportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExternalSqlProviderType.php b/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExternalSqlProviderType.php index 208e5fe3..abfcd248 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExternalSqlProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProvider/ExternalSqlProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ImportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProvider/JsonProviderType.php b/src/DataDefinitionsBundle/Form/Type/ImportProvider/JsonProviderType.php index bfd3b25c..2870537a 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProvider/JsonProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProvider/JsonProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ImportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProvider/RawProviderType.php b/src/DataDefinitionsBundle/Form/Type/ImportProvider/RawProviderType.php index b0070012..87a3eae3 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProvider/RawProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProvider/RawProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ImportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProvider/SqlProviderType.php b/src/DataDefinitionsBundle/Form/Type/ImportProvider/SqlProviderType.php index 9747acb7..011a105c 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProvider/SqlProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProvider/SqlProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ImportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProvider/XmlProviderType.php b/src/DataDefinitionsBundle/Form/Type/ImportProvider/XmlProviderType.php index 4326dce4..86888760 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProvider/XmlProviderType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProvider/XmlProviderType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\ImportProvider; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportProviderChoiceType.php b/src/DataDefinitionsBundle/Form/Type/ImportProviderChoiceType.php index 374fe42d..5a90449a 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportProviderChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportProviderChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/ImportRulesImportType.php b/src/DataDefinitionsBundle/Form/Type/ImportRulesImportType.php index 18641feb..6f158710 100644 --- a/src/DataDefinitionsBundle/Form/Type/ImportRulesImportType.php +++ b/src/DataDefinitionsBundle/Form/Type/ImportRulesImportType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetByPathInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetByPathInterpreterType.php index a9a5e38d..56e78895 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetByPathInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetByPathInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetUrlInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetUrlInterpreterType.php index 688a7a73..61fb5be3 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetUrlInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetUrlInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetsUrlInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetsUrlInterpreterType.php index bdc2ee79..4fa06c3b 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetsUrlInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/AssetsUrlInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/CarbonInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/CarbonInterpreterType.php index 404ec6d1..f2b8a9c5 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/CarbonInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/CarbonInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/ConditionalInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/ConditionalInterpreterType.php index cb286109..a2cf1e94 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/ConditionalInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/ConditionalInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/MoneyInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/MoneyInterpreterType.php index c09adec2..3faedbd4 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/MoneyInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/MoneyInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter\CoreShop; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/PriceInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/PriceInterpreterType.php index 0d1d5832..06e28905 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/PriceInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/PriceInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter\CoreShop; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/StoresInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/StoresInterpreterType.php index dc397da1..f0aa55ed 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/StoresInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/CoreShop/StoresInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter\CoreShop; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/DefaultValueInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/DefaultValueInterpreterType.php index dfaa6888..86a2d19f 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/DefaultValueInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/DefaultValueInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/DefinitionType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/DefinitionType.php index 8f8aea89..b3d8aff7 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/DefinitionType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/DefinitionType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/ExpressionInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/ExpressionInterpreterType.php index 38aeaa45..e7f21833 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/ExpressionInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/ExpressionInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/HrefInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/HrefInterpreterType.php index c3c2e648..7ac63c6d 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/HrefInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/HrefInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterCollectionType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterCollectionType.php index 786867e9..79a93cd7 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterCollectionType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterCollectionType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterType.php index 304c9a85..292de740 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/InterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/IteratorInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/IteratorInterpreterType.php index fddc91fd..5f52b86f 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/IteratorInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/IteratorInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingInterpreterType.php index cf2eed49..b41879d6 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingType.php index fe2f12c9..b61247fc 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/MappingType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/MetadataInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/MetadataInterpreterType.php index 8ce262bd..d200eaf5 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/MetadataInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/MetadataInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/MultiHrefInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/MultiHrefInterpreterType.php index 38110d44..836bffae 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/MultiHrefInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/MultiHrefInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/NestedInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/NestedInterpreterType.php index c901327e..a9659338 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/NestedInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/NestedInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/ObjectResolverType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/ObjectResolverType.php index 2a0c134b..24c28c67 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/ObjectResolverType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/ObjectResolverType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/QuantityValueInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/QuantityValueInterpreterType.php index 7ebefda3..8ff1328e 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/QuantityValueInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/QuantityValueInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/SpecificObjectInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/SpecificObjectInterpreterType.php index 252475df..8d54175e 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/SpecificObjectInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/SpecificObjectInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/TwigInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/TwigInterpreterType.php index 7acf6994..61a2c49b 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/TwigInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/TwigInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/Interpreter/TypeCastingInterpreterType.php b/src/DataDefinitionsBundle/Form/Type/Interpreter/TypeCastingInterpreterType.php index 57113589..a94f18a7 100644 --- a/src/DataDefinitionsBundle/Form/Type/Interpreter/TypeCastingInterpreterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Interpreter/TypeCastingInterpreterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Interpreter; diff --git a/src/DataDefinitionsBundle/Form/Type/InterpreterChoiceType.php b/src/DataDefinitionsBundle/Form/Type/InterpreterChoiceType.php index f95cefcf..38ffca90 100644 --- a/src/DataDefinitionsBundle/Form/Type/InterpreterChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/InterpreterChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/LoaderChoiceType.php b/src/DataDefinitionsBundle/Form/Type/LoaderChoiceType.php index 1d725571..b7896328 100644 --- a/src/DataDefinitionsBundle/Form/Type/LoaderChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/LoaderChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/NoConfigurationType.php b/src/DataDefinitionsBundle/Form/Type/NoConfigurationType.php index cc100580..ab750609 100644 --- a/src/DataDefinitionsBundle/Form/Type/NoConfigurationType.php +++ b/src/DataDefinitionsBundle/Form/Type/NoConfigurationType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/PersisterChoiceType.php b/src/DataDefinitionsBundle/Form/Type/PersisterChoiceType.php index 6652cbe3..78cd5401 100644 --- a/src/DataDefinitionsBundle/Form/Type/PersisterChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/PersisterChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/RunnerChoiceType.php b/src/DataDefinitionsBundle/Form/Type/RunnerChoiceType.php index e673b336..fc94e9f2 100644 --- a/src/DataDefinitionsBundle/Form/Type/RunnerChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/RunnerChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Form/Type/Setter/ClassificationStoreSetterType.php b/src/DataDefinitionsBundle/Form/Type/Setter/ClassificationStoreSetterType.php index fd042c00..ab9bd3a6 100644 --- a/src/DataDefinitionsBundle/Form/Type/Setter/ClassificationStoreSetterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Setter/ClassificationStoreSetterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Setter; diff --git a/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StorePriceSetterType.php b/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StorePriceSetterType.php index deab04ac..b9bb44db 100644 --- a/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StorePriceSetterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StorePriceSetterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Setter\CoreShop; diff --git a/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StoreValuesSetterType.php b/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StoreValuesSetterType.php index 9ddd6466..97a9960f 100644 --- a/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StoreValuesSetterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Setter/CoreShop/StoreValuesSetterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Setter\CoreShop; diff --git a/src/DataDefinitionsBundle/Form/Type/Setter/FieldCollectionSetterType.php b/src/DataDefinitionsBundle/Form/Type/Setter/FieldCollectionSetterType.php index 0e954577..5164d471 100644 --- a/src/DataDefinitionsBundle/Form/Type/Setter/FieldCollectionSetterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Setter/FieldCollectionSetterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Setter; diff --git a/src/DataDefinitionsBundle/Form/Type/Setter/LocalizedFieldSetterType.php b/src/DataDefinitionsBundle/Form/Type/Setter/LocalizedFieldSetterType.php index 6ca66b56..9a12fbe8 100644 --- a/src/DataDefinitionsBundle/Form/Type/Setter/LocalizedFieldSetterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Setter/LocalizedFieldSetterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Setter; diff --git a/src/DataDefinitionsBundle/Form/Type/Setter/ObjectBrickSetterType.php b/src/DataDefinitionsBundle/Form/Type/Setter/ObjectBrickSetterType.php index e50f2ea5..1fcd33fb 100644 --- a/src/DataDefinitionsBundle/Form/Type/Setter/ObjectBrickSetterType.php +++ b/src/DataDefinitionsBundle/Form/Type/Setter/ObjectBrickSetterType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type\Setter; diff --git a/src/DataDefinitionsBundle/Form/Type/SetterChoiceType.php b/src/DataDefinitionsBundle/Form/Type/SetterChoiceType.php index 3025682d..b8c12412 100644 --- a/src/DataDefinitionsBundle/Form/Type/SetterChoiceType.php +++ b/src/DataDefinitionsBundle/Form/Type/SetterChoiceType.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Form\Type; diff --git a/src/DataDefinitionsBundle/Getter/DynamicColumnGetterInterface.php b/src/DataDefinitionsBundle/Getter/DynamicColumnGetterInterface.php index 5c9aa809..1f7208a2 100644 --- a/src/DataDefinitionsBundle/Getter/DynamicColumnGetterInterface.php +++ b/src/DataDefinitionsBundle/Getter/DynamicColumnGetterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Getter; diff --git a/src/DataDefinitionsBundle/Getter/GetterInterface.php b/src/DataDefinitionsBundle/Getter/GetterInterface.php index d54c6766..e75ce1c9 100644 --- a/src/DataDefinitionsBundle/Getter/GetterInterface.php +++ b/src/DataDefinitionsBundle/Getter/GetterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Getter; diff --git a/src/DataDefinitionsBundle/Importer/AsyncImporterInterface.php b/src/DataDefinitionsBundle/Importer/AsyncImporterInterface.php index 03c4539b..ff825a8d 100644 --- a/src/DataDefinitionsBundle/Importer/AsyncImporterInterface.php +++ b/src/DataDefinitionsBundle/Importer/AsyncImporterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Importer; diff --git a/src/DataDefinitionsBundle/Importer/Importer.php b/src/DataDefinitionsBundle/Importer/Importer.php index dfc10a56..414c691c 100644 --- a/src/DataDefinitionsBundle/Importer/Importer.php +++ b/src/DataDefinitionsBundle/Importer/Importer.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Importer; diff --git a/src/DataDefinitionsBundle/Importer/ImporterInterface.php b/src/DataDefinitionsBundle/Importer/ImporterInterface.php index bc14b2a4..b88fcb45 100644 --- a/src/DataDefinitionsBundle/Importer/ImporterInterface.php +++ b/src/DataDefinitionsBundle/Importer/ImporterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Importer; diff --git a/src/DataDefinitionsBundle/Installer.php b/src/DataDefinitionsBundle/Installer.php index 1b5cb22e..0b6d08e6 100644 --- a/src/DataDefinitionsBundle/Installer.php +++ b/src/DataDefinitionsBundle/Installer.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle; diff --git a/src/DataDefinitionsBundle/Interpreter/AssetByPathInterpreter.php b/src/DataDefinitionsBundle/Interpreter/AssetByPathInterpreter.php index f93529fa..b318dc54 100644 --- a/src/DataDefinitionsBundle/Interpreter/AssetByPathInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/AssetByPathInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/AssetUrlInterpreter.php b/src/DataDefinitionsBundle/Interpreter/AssetUrlInterpreter.php index 807060bf..33c44f07 100644 --- a/src/DataDefinitionsBundle/Interpreter/AssetUrlInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/AssetUrlInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/AssetsUrlInterpreter.php b/src/DataDefinitionsBundle/Interpreter/AssetsUrlInterpreter.php index 0461cdd7..29c2328e 100644 --- a/src/DataDefinitionsBundle/Interpreter/AssetsUrlInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/AssetsUrlInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/CarbonInterpreter.php b/src/DataDefinitionsBundle/Interpreter/CarbonInterpreter.php index 7eb597ac..8ccc3871 100644 --- a/src/DataDefinitionsBundle/Interpreter/CarbonInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/CarbonInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/CheckboxInterpreter.php b/src/DataDefinitionsBundle/Interpreter/CheckboxInterpreter.php index 12b1f4b0..7173d323 100644 --- a/src/DataDefinitionsBundle/Interpreter/CheckboxInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/CheckboxInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/ConditionalInterpreter.php b/src/DataDefinitionsBundle/Interpreter/ConditionalInterpreter.php index d889b1bc..8acbb763 100644 --- a/src/DataDefinitionsBundle/Interpreter/ConditionalInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/ConditionalInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/CoreShop/CurrencyInterpreter.php b/src/DataDefinitionsBundle/Interpreter/CoreShop/CurrencyInterpreter.php index bab8de7d..71690b07 100644 --- a/src/DataDefinitionsBundle/Interpreter/CoreShop/CurrencyInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/CoreShop/CurrencyInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter\CoreShop; diff --git a/src/DataDefinitionsBundle/Interpreter/CoreShop/MoneyInterpreter.php b/src/DataDefinitionsBundle/Interpreter/CoreShop/MoneyInterpreter.php index 8ee70725..ed589c12 100644 --- a/src/DataDefinitionsBundle/Interpreter/CoreShop/MoneyInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/CoreShop/MoneyInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter\CoreShop; diff --git a/src/DataDefinitionsBundle/Interpreter/CoreShop/PriceInterpreter.php b/src/DataDefinitionsBundle/Interpreter/CoreShop/PriceInterpreter.php index 633f3df5..1ff1a02d 100644 --- a/src/DataDefinitionsBundle/Interpreter/CoreShop/PriceInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/CoreShop/PriceInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter\CoreShop; diff --git a/src/DataDefinitionsBundle/Interpreter/CoreShop/StoresInterpreter.php b/src/DataDefinitionsBundle/Interpreter/CoreShop/StoresInterpreter.php index cb875960..0bf2d0a2 100644 --- a/src/DataDefinitionsBundle/Interpreter/CoreShop/StoresInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/CoreShop/StoresInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter\CoreShop; diff --git a/src/DataDefinitionsBundle/Interpreter/DefaultValueInterpreter.php b/src/DataDefinitionsBundle/Interpreter/DefaultValueInterpreter.php index f919c1d8..f201844b 100644 --- a/src/DataDefinitionsBundle/Interpreter/DefaultValueInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/DefaultValueInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/DefinitionInterpreter.php b/src/DataDefinitionsBundle/Interpreter/DefinitionInterpreter.php index d0731b67..3cc72e56 100644 --- a/src/DataDefinitionsBundle/Interpreter/DefinitionInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/DefinitionInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/DoNotSetOnEmptyInterpreter.php b/src/DataDefinitionsBundle/Interpreter/DoNotSetOnEmptyInterpreter.php index c9c76367..34ec11bc 100644 --- a/src/DataDefinitionsBundle/Interpreter/DoNotSetOnEmptyInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/DoNotSetOnEmptyInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/ExpressionInterpreter.php b/src/DataDefinitionsBundle/Interpreter/ExpressionInterpreter.php index 14296c48..1f222ac5 100644 --- a/src/DataDefinitionsBundle/Interpreter/ExpressionInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/ExpressionInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/ExternalImageInterpreter.php b/src/DataDefinitionsBundle/Interpreter/ExternalImageInterpreter.php index 11f299d2..5385ce4d 100644 --- a/src/DataDefinitionsBundle/Interpreter/ExternalImageInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/ExternalImageInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/HrefInterpreter.php b/src/DataDefinitionsBundle/Interpreter/HrefInterpreter.php index 72f97571..d968e5c2 100644 --- a/src/DataDefinitionsBundle/Interpreter/HrefInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/HrefInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/ImportRuleInterpreter.php b/src/DataDefinitionsBundle/Interpreter/ImportRuleInterpreter.php index 0a3165ff..7f531cf8 100644 --- a/src/DataDefinitionsBundle/Interpreter/ImportRuleInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/ImportRuleInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/InterpreterInterface.php b/src/DataDefinitionsBundle/Interpreter/InterpreterInterface.php index b14c3d86..3acd9d1b 100644 --- a/src/DataDefinitionsBundle/Interpreter/InterpreterInterface.php +++ b/src/DataDefinitionsBundle/Interpreter/InterpreterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/IteratorInterpreter.php b/src/DataDefinitionsBundle/Interpreter/IteratorInterpreter.php index eb3ef966..5437dad5 100644 --- a/src/DataDefinitionsBundle/Interpreter/IteratorInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/IteratorInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/LinkInterpreter.php b/src/DataDefinitionsBundle/Interpreter/LinkInterpreter.php index ac78bb05..fea70209 100644 --- a/src/DataDefinitionsBundle/Interpreter/LinkInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/LinkInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/MappingInterpreter.php b/src/DataDefinitionsBundle/Interpreter/MappingInterpreter.php index 54ef1fef..8b3a89fd 100644 --- a/src/DataDefinitionsBundle/Interpreter/MappingInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/MappingInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/MetadataInterpreter.php b/src/DataDefinitionsBundle/Interpreter/MetadataInterpreter.php index a31f482c..f2b23847 100644 --- a/src/DataDefinitionsBundle/Interpreter/MetadataInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/MetadataInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/MultiHrefInterpreter.php b/src/DataDefinitionsBundle/Interpreter/MultiHrefInterpreter.php index 72bc1529..f0200f26 100644 --- a/src/DataDefinitionsBundle/Interpreter/MultiHrefInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/MultiHrefInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/NestedInterpreter.php b/src/DataDefinitionsBundle/Interpreter/NestedInterpreter.php index 245f741a..1bb23b25 100644 --- a/src/DataDefinitionsBundle/Interpreter/NestedInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/NestedInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/ObjectResolverInterpreter.php b/src/DataDefinitionsBundle/Interpreter/ObjectResolverInterpreter.php index 9e7be71c..1ca0fcba 100644 --- a/src/DataDefinitionsBundle/Interpreter/ObjectResolverInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/ObjectResolverInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/QuantityValueInterpreter.php b/src/DataDefinitionsBundle/Interpreter/QuantityValueInterpreter.php index 689277e9..ddd80f81 100644 --- a/src/DataDefinitionsBundle/Interpreter/QuantityValueInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/QuantityValueInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/SpecificObjectInterpreter.php b/src/DataDefinitionsBundle/Interpreter/SpecificObjectInterpreter.php index c32c45e3..8a9478f5 100644 --- a/src/DataDefinitionsBundle/Interpreter/SpecificObjectInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/SpecificObjectInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/TwigInterpreter.php b/src/DataDefinitionsBundle/Interpreter/TwigInterpreter.php index a49902b1..a8b29518 100644 --- a/src/DataDefinitionsBundle/Interpreter/TwigInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/TwigInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Interpreter/TypeCastingInterpreter.php b/src/DataDefinitionsBundle/Interpreter/TypeCastingInterpreter.php index fd14b6fb..2586fc6d 100644 --- a/src/DataDefinitionsBundle/Interpreter/TypeCastingInterpreter.php +++ b/src/DataDefinitionsBundle/Interpreter/TypeCastingInterpreter.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Interpreter; diff --git a/src/DataDefinitionsBundle/Loader/LoaderInterface.php b/src/DataDefinitionsBundle/Loader/LoaderInterface.php index d5c0c292..eff05dce 100644 --- a/src/DataDefinitionsBundle/Loader/LoaderInterface.php +++ b/src/DataDefinitionsBundle/Loader/LoaderInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Loader; diff --git a/src/DataDefinitionsBundle/Loader/PrimaryKeyLoader.php b/src/DataDefinitionsBundle/Loader/PrimaryKeyLoader.php index 53786e45..d1d50c7e 100644 --- a/src/DataDefinitionsBundle/Loader/PrimaryKeyLoader.php +++ b/src/DataDefinitionsBundle/Loader/PrimaryKeyLoader.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Loader; diff --git a/src/DataDefinitionsBundle/Messenger/ImportRowMessage.php b/src/DataDefinitionsBundle/Messenger/ImportRowMessage.php index 77b3a516..2e384592 100644 --- a/src/DataDefinitionsBundle/Messenger/ImportRowMessage.php +++ b/src/DataDefinitionsBundle/Messenger/ImportRowMessage.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Messenger; diff --git a/src/DataDefinitionsBundle/Messenger/ImportRowMessageHandler.php b/src/DataDefinitionsBundle/Messenger/ImportRowMessageHandler.php index 6d52a930..bc9bfbe6 100644 --- a/src/DataDefinitionsBundle/Messenger/ImportRowMessageHandler.php +++ b/src/DataDefinitionsBundle/Messenger/ImportRowMessageHandler.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Messenger; diff --git a/src/DataDefinitionsBundle/Model/AbstractColumn.php b/src/DataDefinitionsBundle/Model/AbstractColumn.php index 7a279ae8..0140856e 100644 --- a/src/DataDefinitionsBundle/Model/AbstractColumn.php +++ b/src/DataDefinitionsBundle/Model/AbstractColumn.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/AbstractDataDefinition.php b/src/DataDefinitionsBundle/Model/AbstractDataDefinition.php index a0652494..d38670f7 100644 --- a/src/DataDefinitionsBundle/Model/AbstractDataDefinition.php +++ b/src/DataDefinitionsBundle/Model/AbstractDataDefinition.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/AbstractMapping.php b/src/DataDefinitionsBundle/Model/AbstractMapping.php index 66ab21ce..0cf37669 100644 --- a/src/DataDefinitionsBundle/Model/AbstractMapping.php +++ b/src/DataDefinitionsBundle/Model/AbstractMapping.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/DataDefinitionInterface.php b/src/DataDefinitionsBundle/Model/DataDefinitionInterface.php index 0691a978..02ea80a3 100644 --- a/src/DataDefinitionsBundle/Model/DataDefinitionInterface.php +++ b/src/DataDefinitionsBundle/Model/DataDefinitionInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/DataSetAwareTrait.php b/src/DataDefinitionsBundle/Model/DataSetAwareTrait.php index 77a63974..75399f45 100644 --- a/src/DataDefinitionsBundle/Model/DataSetAwareTrait.php +++ b/src/DataDefinitionsBundle/Model/DataSetAwareTrait.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ExportDefinition.php b/src/DataDefinitionsBundle/Model/ExportDefinition.php index 775f63d1..715f4f05 100644 --- a/src/DataDefinitionsBundle/Model/ExportDefinition.php +++ b/src/DataDefinitionsBundle/Model/ExportDefinition.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ExportDefinition/Dao.php b/src/DataDefinitionsBundle/Model/ExportDefinition/Dao.php index 5fd148b8..89e893d3 100644 --- a/src/DataDefinitionsBundle/Model/ExportDefinition/Dao.php +++ b/src/DataDefinitionsBundle/Model/ExportDefinition/Dao.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ExportDefinition; diff --git a/src/DataDefinitionsBundle/Model/ExportDefinition/Listing.php b/src/DataDefinitionsBundle/Model/ExportDefinition/Listing.php index 6a382206..577e58cb 100644 --- a/src/DataDefinitionsBundle/Model/ExportDefinition/Listing.php +++ b/src/DataDefinitionsBundle/Model/ExportDefinition/Listing.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ExportDefinition; diff --git a/src/DataDefinitionsBundle/Model/ExportDefinition/Listing/Dao.php b/src/DataDefinitionsBundle/Model/ExportDefinition/Listing/Dao.php index 0c2f1c70..29411b65 100644 --- a/src/DataDefinitionsBundle/Model/ExportDefinition/Listing/Dao.php +++ b/src/DataDefinitionsBundle/Model/ExportDefinition/Listing/Dao.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ExportDefinition\Listing; diff --git a/src/DataDefinitionsBundle/Model/ExportDefinitionInterface.php b/src/DataDefinitionsBundle/Model/ExportDefinitionInterface.php index bc0d8682..32a96629 100644 --- a/src/DataDefinitionsBundle/Model/ExportDefinitionInterface.php +++ b/src/DataDefinitionsBundle/Model/ExportDefinitionInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ExportMapping.php b/src/DataDefinitionsBundle/Model/ExportMapping.php index 8963e531..990f305c 100644 --- a/src/DataDefinitionsBundle/Model/ExportMapping.php +++ b/src/DataDefinitionsBundle/Model/ExportMapping.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ExportMapping/FromColumn.php b/src/DataDefinitionsBundle/Model/ExportMapping/FromColumn.php index 41e67168..04229c17 100644 --- a/src/DataDefinitionsBundle/Model/ExportMapping/FromColumn.php +++ b/src/DataDefinitionsBundle/Model/ExportMapping/FromColumn.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ExportMapping; diff --git a/src/DataDefinitionsBundle/Model/ExportMapping/ToColumn.php b/src/DataDefinitionsBundle/Model/ExportMapping/ToColumn.php index ef907f73..957d7218 100644 --- a/src/DataDefinitionsBundle/Model/ExportMapping/ToColumn.php +++ b/src/DataDefinitionsBundle/Model/ExportMapping/ToColumn.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ExportMapping; diff --git a/src/DataDefinitionsBundle/Model/IdGenerator.php b/src/DataDefinitionsBundle/Model/IdGenerator.php index 682caf86..2d0b2c34 100644 --- a/src/DataDefinitionsBundle/Model/IdGenerator.php +++ b/src/DataDefinitionsBundle/Model/IdGenerator.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ImportDefinition.php b/src/DataDefinitionsBundle/Model/ImportDefinition.php index 9e5668fb..dd87a31e 100644 --- a/src/DataDefinitionsBundle/Model/ImportDefinition.php +++ b/src/DataDefinitionsBundle/Model/ImportDefinition.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ImportDefinition/Dao.php b/src/DataDefinitionsBundle/Model/ImportDefinition/Dao.php index 12fc212b..64505d7b 100644 --- a/src/DataDefinitionsBundle/Model/ImportDefinition/Dao.php +++ b/src/DataDefinitionsBundle/Model/ImportDefinition/Dao.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ImportDefinition; diff --git a/src/DataDefinitionsBundle/Model/ImportDefinition/Listing.php b/src/DataDefinitionsBundle/Model/ImportDefinition/Listing.php index b8835ea5..a417b0cc 100644 --- a/src/DataDefinitionsBundle/Model/ImportDefinition/Listing.php +++ b/src/DataDefinitionsBundle/Model/ImportDefinition/Listing.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ImportDefinition; diff --git a/src/DataDefinitionsBundle/Model/ImportDefinition/Listing/Dao.php b/src/DataDefinitionsBundle/Model/ImportDefinition/Listing/Dao.php index e38d2deb..3ed1ba9b 100644 --- a/src/DataDefinitionsBundle/Model/ImportDefinition/Listing/Dao.php +++ b/src/DataDefinitionsBundle/Model/ImportDefinition/Listing/Dao.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ImportDefinition\Listing; diff --git a/src/DataDefinitionsBundle/Model/ImportDefinitionInterface.php b/src/DataDefinitionsBundle/Model/ImportDefinitionInterface.php index fbd71aef..38c43d23 100644 --- a/src/DataDefinitionsBundle/Model/ImportDefinitionInterface.php +++ b/src/DataDefinitionsBundle/Model/ImportDefinitionInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ImportMapping.php b/src/DataDefinitionsBundle/Model/ImportMapping.php index 3ea83c38..d8618027 100644 --- a/src/DataDefinitionsBundle/Model/ImportMapping.php +++ b/src/DataDefinitionsBundle/Model/ImportMapping.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ImportMapping/FromColumn.php b/src/DataDefinitionsBundle/Model/ImportMapping/FromColumn.php index 59bee11b..6e8c1a56 100644 --- a/src/DataDefinitionsBundle/Model/ImportMapping/FromColumn.php +++ b/src/DataDefinitionsBundle/Model/ImportMapping/FromColumn.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ImportMapping; diff --git a/src/DataDefinitionsBundle/Model/ImportMapping/ToColumn.php b/src/DataDefinitionsBundle/Model/ImportMapping/ToColumn.php index 2fd6c5fe..89932124 100644 --- a/src/DataDefinitionsBundle/Model/ImportMapping/ToColumn.php +++ b/src/DataDefinitionsBundle/Model/ImportMapping/ToColumn.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\ImportMapping; diff --git a/src/DataDefinitionsBundle/Model/Log.php b/src/DataDefinitionsBundle/Model/Log.php index 1e11bbc1..04e2a953 100644 --- a/src/DataDefinitionsBundle/Model/Log.php +++ b/src/DataDefinitionsBundle/Model/Log.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/Log/Dao.php b/src/DataDefinitionsBundle/Model/Log/Dao.php index 54876c86..1c25e01d 100644 --- a/src/DataDefinitionsBundle/Model/Log/Dao.php +++ b/src/DataDefinitionsBundle/Model/Log/Dao.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\Log; diff --git a/src/DataDefinitionsBundle/Model/Log/Listing.php b/src/DataDefinitionsBundle/Model/Log/Listing.php index c5dfbff3..c5044348 100644 --- a/src/DataDefinitionsBundle/Model/Log/Listing.php +++ b/src/DataDefinitionsBundle/Model/Log/Listing.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\Log; diff --git a/src/DataDefinitionsBundle/Model/Log/Listing/Dao.php b/src/DataDefinitionsBundle/Model/Log/Listing/Dao.php index 7d3d57ce..d1d64c0d 100644 --- a/src/DataDefinitionsBundle/Model/Log/Listing/Dao.php +++ b/src/DataDefinitionsBundle/Model/Log/Listing/Dao.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model\Log\Listing; @@ -66,7 +64,7 @@ public function load(): array return $objects; } - public function getQueryBuilder(...$columns): DoctrineQueryBuilder + public function getQueryBuilder(array $columns): DoctrineQueryBuilder { $queryBuilder = $this->db->createQueryBuilder(); $queryBuilder->select(...$columns)->from($this->getTableName()); diff --git a/src/DataDefinitionsBundle/Model/MappingInterface.php b/src/DataDefinitionsBundle/Model/MappingInterface.php index e434e195..bf35e77e 100644 --- a/src/DataDefinitionsBundle/Model/MappingInterface.php +++ b/src/DataDefinitionsBundle/Model/MappingInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ParamsAwareInterface.php b/src/DataDefinitionsBundle/Model/ParamsAwareInterface.php index a4ecf38d..42ceb93d 100644 --- a/src/DataDefinitionsBundle/Model/ParamsAwareInterface.php +++ b/src/DataDefinitionsBundle/Model/ParamsAwareInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Model/ParamsAwareTrait.php b/src/DataDefinitionsBundle/Model/ParamsAwareTrait.php index d1005907..1cc0a5ea 100644 --- a/src/DataDefinitionsBundle/Model/ParamsAwareTrait.php +++ b/src/DataDefinitionsBundle/Model/ParamsAwareTrait.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Model; diff --git a/src/DataDefinitionsBundle/Persister/Persister.php b/src/DataDefinitionsBundle/Persister/Persister.php index 7cf82fce..e53ac8c2 100644 --- a/src/DataDefinitionsBundle/Persister/Persister.php +++ b/src/DataDefinitionsBundle/Persister/Persister.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Persister; diff --git a/src/DataDefinitionsBundle/Persister/PersisterInterface.php b/src/DataDefinitionsBundle/Persister/PersisterInterface.php index 4bc043a9..65e47ef7 100644 --- a/src/DataDefinitionsBundle/Persister/PersisterInterface.php +++ b/src/DataDefinitionsBundle/Persister/PersisterInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Persister; diff --git a/src/DataDefinitionsBundle/Provider/AbstractFileProvider.php b/src/DataDefinitionsBundle/Provider/AbstractFileProvider.php index edeee501..24b47258 100644 --- a/src/DataDefinitionsBundle/Provider/AbstractFileProvider.php +++ b/src/DataDefinitionsBundle/Provider/AbstractFileProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/AbstractSqlProvider.php b/src/DataDefinitionsBundle/Provider/AbstractSqlProvider.php index fa118a0d..ddc6fda6 100644 --- a/src/DataDefinitionsBundle/Provider/AbstractSqlProvider.php +++ b/src/DataDefinitionsBundle/Provider/AbstractSqlProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/ArrayImportDataSet.php b/src/DataDefinitionsBundle/Provider/ArrayImportDataSet.php index 2bc8545c..b6535371 100644 --- a/src/DataDefinitionsBundle/Provider/ArrayImportDataSet.php +++ b/src/DataDefinitionsBundle/Provider/ArrayImportDataSet.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/CsvProvider.php b/src/DataDefinitionsBundle/Provider/CsvProvider.php index e0939185..3fb3a932 100644 --- a/src/DataDefinitionsBundle/Provider/CsvProvider.php +++ b/src/DataDefinitionsBundle/Provider/CsvProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/ExcelProvider.php b/src/DataDefinitionsBundle/Provider/ExcelProvider.php index b20a32fa..72109639 100644 --- a/src/DataDefinitionsBundle/Provider/ExcelProvider.php +++ b/src/DataDefinitionsBundle/Provider/ExcelProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/ExportProviderInterface.php b/src/DataDefinitionsBundle/Provider/ExportProviderInterface.php index 822d337c..ffab7b9d 100644 --- a/src/DataDefinitionsBundle/Provider/ExportProviderInterface.php +++ b/src/DataDefinitionsBundle/Provider/ExportProviderInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/ExternalSqlProvider.php b/src/DataDefinitionsBundle/Provider/ExternalSqlProvider.php index 5430f17b..7b391422 100644 --- a/src/DataDefinitionsBundle/Provider/ExternalSqlProvider.php +++ b/src/DataDefinitionsBundle/Provider/ExternalSqlProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/ImportDataSet.php b/src/DataDefinitionsBundle/Provider/ImportDataSet.php index 730e5f6d..0b81211a 100644 --- a/src/DataDefinitionsBundle/Provider/ImportDataSet.php +++ b/src/DataDefinitionsBundle/Provider/ImportDataSet.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/ImportDataSetInterface.php b/src/DataDefinitionsBundle/Provider/ImportDataSetInterface.php index 8ebe9e65..fb8a3c02 100644 --- a/src/DataDefinitionsBundle/Provider/ImportDataSetInterface.php +++ b/src/DataDefinitionsBundle/Provider/ImportDataSetInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/ImportProviderInterface.php b/src/DataDefinitionsBundle/Provider/ImportProviderInterface.php index 003aeb07..13bfb871 100644 --- a/src/DataDefinitionsBundle/Provider/ImportProviderInterface.php +++ b/src/DataDefinitionsBundle/Provider/ImportProviderInterface.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/JsonProvider.php b/src/DataDefinitionsBundle/Provider/JsonProvider.php index 88dcd36a..c82751f2 100644 --- a/src/DataDefinitionsBundle/Provider/JsonProvider.php +++ b/src/DataDefinitionsBundle/Provider/JsonProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/RawProvider.php b/src/DataDefinitionsBundle/Provider/RawProvider.php index 0cf8548d..8507e39a 100644 --- a/src/DataDefinitionsBundle/Provider/RawProvider.php +++ b/src/DataDefinitionsBundle/Provider/RawProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/SqlProvider.php b/src/DataDefinitionsBundle/Provider/SqlProvider.php index 09268e96..fa61a3db 100644 --- a/src/DataDefinitionsBundle/Provider/SqlProvider.php +++ b/src/DataDefinitionsBundle/Provider/SqlProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/TraversableImportDataSet.php b/src/DataDefinitionsBundle/Provider/TraversableImportDataSet.php index 60e82940..cd21bdcd 100644 --- a/src/DataDefinitionsBundle/Provider/TraversableImportDataSet.php +++ b/src/DataDefinitionsBundle/Provider/TraversableImportDataSet.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Provider/XmlProvider.php b/src/DataDefinitionsBundle/Provider/XmlProvider.php index b5813e3d..1223cd23 100755 --- a/src/DataDefinitionsBundle/Provider/XmlProvider.php +++ b/src/DataDefinitionsBundle/Provider/XmlProvider.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Provider; diff --git a/src/DataDefinitionsBundle/Repository/DefinitionRepository.php b/src/DataDefinitionsBundle/Repository/DefinitionRepository.php index 4145f799..d9e6f717 100644 --- a/src/DataDefinitionsBundle/Repository/DefinitionRepository.php +++ b/src/DataDefinitionsBundle/Repository/DefinitionRepository.php @@ -3,14 +3,12 @@ declare(strict_types=1); /* - * This source file is available under two different licenses: - * - GNU General Public License version 3 (GPLv3) - * - Data Definitions Commercial License (DDCL) + * This source file is available under the Data Definitions Commercial License (DDCL). * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://instride.ch) - * @license GPLv3 and DDCL + * @license DDCL */ namespace Instride\Bundle\DataDefinitionsBundle\Repository; diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/cleaners/index.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/cleaners/index.tsx new file mode 100644 index 00000000..221910d5 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/cleaners/index.tsx @@ -0,0 +1,33 @@ +/** + * Cleaner Configuration Components + * + * Dynamically renders the appropriate config panel based on cleaner type. + * Uses the registry system to allow external plugins to register their own components. + * + * Note: Built-in cleaners (deleter, none, reference_cleaner, unpublisher) don't require + * configuration. This registry exists for external plugins that may add configurable cleaners. + */ + +import React from 'react' +import { container } from '@pimcore/studio-ui-bundle' +import { dataDefinitionsServiceIds } from '../../registry/service-ids' +import type { ConfigRegistry } from '../../registry/base-config-registry' + +export interface CleanerConfigProps { + type: string + config: Record + onChange: (config: Record) => void +} + +export const CleanerConfig: React.FC = (props) => { + const registry = container.get>( + dataDefinitionsServiceIds.cleanerConfigRegistry + ) + const Component = registry.get(props.type) + + if (!Component) { + return null + } + + return +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionDetail.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionDetail.styles.ts new file mode 100644 index 00000000..2b1c3651 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionDetail.styles.ts @@ -0,0 +1,55 @@ +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ css, token }) => ({ + root: css` + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + + .ant-tabs { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + } + + .ant-tabs-content-holder { + flex: 1; + overflow: hidden; + } + + .ant-tabs-content { + height: 100%; + } + + .ant-tabs-tabpane { + height: 100%; + overflow: auto; + } + `, + header: css` + display: flex; + align-items: center; + justify-content: space-between; + padding: 12px 24px; + border-bottom: 1px solid ${token.colorBorderSecondary}; + background: ${token.colorBgContainer}; + flex-shrink: 0; + `, + title: css` + font-size: 16px; + font-weight: 600; + color: ${token.colorText}; + `, + tabContent: css` + padding: 24px; + height: 100%; + overflow: auto; + `, + emptyState: css` + color: ${token.colorTextSecondary}; + text-align: center; + padding: 48px; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionDetail.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionDetail.tsx new file mode 100644 index 00000000..190a7f00 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionDetail.tsx @@ -0,0 +1,92 @@ +/** + * Export Definition Detail Component + * Shows Settings, Provider Settings, and Mapping tabs + */ + +import React from 'react' +import { Tabs } from 'antd' +import { useTranslation } from 'react-i18next' +import type { ExportDefinition, DefinitionConfig } from '../../types/definitions' +import { ExportSettingsForm } from './components/ExportSettingsForm' +import { ExportMappingPanel } from './components/ExportMappingPanel' +import { ProviderConfig } from '../providers' +import { useStyles } from './ExportDefinitionDetail.styles' + +interface ExportDefinitionDetailProps { + definition: ExportDefinition + config: DefinitionConfig + onChange: (definition: ExportDefinition) => void +} + +export const ExportDefinitionDetail: React.FC = ({ + definition, + config, + onChange +}) => { + const { t } = useTranslation() + const { styles } = useStyles() + + const handleProviderConfigChange = (providerConfig: Record) => { + onChange({ + ...definition, + configuration: providerConfig + }) + } + + const tabs = [ + { + key: 'settings', + label: t('data_definitions.settings'), + children: ( +
+ +
+ ) + }, + { + key: 'provider', + label: t('data_definitions.provider_settings'), + children: ( +
+ {definition.provider ? ( + + ) : ( +
+ {t('data_definitions.select_provider_first')} +
+ )} +
+ ) + }, + { + key: 'mapping', + label: t('data_definitions.mapping'), + children: ( + + ) + } + ] + + return ( +
+ +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionEditor.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionEditor.styles.ts new file mode 100644 index 00000000..69bd6439 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionEditor.styles.ts @@ -0,0 +1,47 @@ +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ css, token }) => ({ + container: css` + display: flex; + flex-direction: column; + height: 100%; + `, + tabs: css` + flex: 1; + display: flex; + flex-direction: column; + `, + tabContent: css` + padding: ${token.padding}px; + overflow: auto; + height: calc(100vh - 200px); + `, + form: css` + max-width: 650px; + `, + toolbar: css` + border-top: 1px solid ${token.colorBorderSecondary}; + padding: ${token.paddingSM}px; + background: ${token.colorBgLayout}; + display: flex; + justify-content: flex-end; + gap: ${token.paddingSM}px; + `, + mappingHeader: css` + margin-bottom: ${token.margin}px; + `, + mappingRowFromColumn: css` + width: 150px; + `, + emptyProvider: css` + color: ${token.colorTextSecondary}; + padding: ${token.paddingXL}px; + text-align: center; + `, + loadingContainer: css` + display: flex; + justify-content: center; + align-items: center; + height: 300px; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionEditor.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionEditor.tsx new file mode 100644 index 00000000..fc8ff751 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionEditor.tsx @@ -0,0 +1,361 @@ +/** + * Export Definition Editor Component + */ + +import React, { useState, useEffect } from 'react' +import { + Form, + Input, + Select, + Switch, + Button, + Space, + Tabs, + Table, + message, + Spin, + Modal +} from 'antd' +import { + SaveOutlined, + PlusOutlined, + DeleteOutlined, + SettingOutlined, + DownloadOutlined, + UploadOutlined, + CopyOutlined, + ApiOutlined, + NodeIndexOutlined +} from '@ant-design/icons' +import type { ExportDefinition, ExportMapping, DefinitionConfig } from '../../types/definitions' +import { exportDefinitionApi } from '../../services/api' +import { MappingConfigDialog } from '../shared/MappingConfigDialog' +import { ProviderConfig } from '../providers' +import { useStyles } from './ExportDefinitionEditor.styles' + +interface ExportDefinitionEditorProps { + definition: ExportDefinition + onSave: (definition: ExportDefinition) => void + onCancel: () => void +} + +export const ExportDefinitionEditor: React.FC = ({ + definition, + onSave, + onCancel +}) => { + const { styles } = useStyles() + const [form] = Form.useForm() + const [config, setConfig] = useState(null) + const [loading, setLoading] = useState(true) + const [mappings, setMappings] = useState(definition.mapping || []) + const [configDialogVisible, setConfigDialogVisible] = useState(false) + const [selectedMappingIndex, setSelectedMappingIndex] = useState(null) + const [providerConfig, setProviderConfig] = useState>(definition.configuration || {}) + const [selectedProvider, setSelectedProvider] = useState(definition.provider) + const [availableClasses, setAvailableClasses] = useState([]) + + useEffect(() => { + loadConfig() + loadAvailableClasses() + }, []) + + useEffect(() => { + form.setFieldsValue(definition) + }, [definition, form]) + + const loadConfig = async () => { + try { + const configData = await exportDefinitionApi.getConfig() + setConfig(configData) + } catch (error) { + console.error('Failed to load config:', error) + message.error('Failed to load configuration') + } finally { + setLoading(false) + } + } + + const loadAvailableClasses = async () => { + try { + const response = await fetch('/pimcore-studio/api/class/collection') + const data = await response.json() + if (data.items && Array.isArray(data.items)) { + setAvailableClasses(data.items.map((c: any) => c.name || c.id)) + } else if (Array.isArray(data)) { + setAvailableClasses(data.map((c: any) => c.name || c.text || c.id)) + } + } catch (error) { + console.error('Failed to load classes:', error) + } + } + + const handleSave = () => { + form.validateFields().then(values => { + onSave({ + ...definition, + ...values, + mapping: mappings, + configuration: providerConfig + }) + }) + } + + const handleProviderChange = (value: string) => { + setSelectedProvider(value) + setProviderConfig({}) + } + + const addMapping = () => { + setMappings([...mappings, { fromColumn: '', toColumn: '' }]) + } + + const removeMapping = (index: number) => { + setMappings(mappings.filter((_, i) => i !== index)) + } + + const updateMapping = (index: number, field: keyof ExportMapping, value: any) => { + const newMappings = [...mappings] + newMappings[index] = { ...newMappings[index], [field]: value } + setMappings(newMappings) + } + + const openConfigDialog = (index: number) => { + setSelectedMappingIndex(index) + setConfigDialogVisible(true) + } + + const handleConfigSave = (updatedMapping: ExportMapping) => { + if (selectedMappingIndex !== null) { + const newMappings = [...mappings] + newMappings[selectedMappingIndex] = updatedMapping + setMappings(newMappings) + } + setConfigDialogVisible(false) + setSelectedMappingIndex(null) + } + + const handleExportDefinition = async () => { + if (!definition.id) return + try { + const blob = await exportDefinitionApi.export(definition.id) + const url = window.URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = url + a.download = `export-definition-${definition.name}.json` + document.body.appendChild(a) + a.click() + window.URL.revokeObjectURL(url) + document.body.removeChild(a) + } catch (error) { + message.error('Failed to export definition') + } + } + + const handleDuplicate = () => { + if (!definition.id) return + const defId = definition.id + Modal.confirm({ + title: 'Duplicate Definition', + content: , + onOk: async () => { + const nameInput = document.getElementById('duplicate-name') as HTMLInputElement + try { + await exportDefinitionApi.duplicate(defId, nameInput?.value || `${definition.name} (Copy)`) + message.success('Definition duplicated') + } catch (error) { + message.error('Failed to duplicate') + } + } + }) + } + + if (loading) { + return
+ } + + const mappingColumns = [ + { + title: 'From Column', + dataIndex: 'fromColumn', + key: 'fromColumn', + render: (_: any, record: ExportMapping, index: number) => ( + updateMapping(index, 'fromColumn', e.target.value)} + placeholder="Source field" + /> + ) + }, + { + title: 'To Column', + dataIndex: 'toColumn', + key: 'toColumn', + render: (_: any, record: ExportMapping, index: number) => ( + updateMapping(index, 'toColumn', e.target.value)} + placeholder="Target column" + /> + ) + }, + { + title: 'Interpreter', + dataIndex: 'interpreter', + key: 'interpreter', + render: (_: any, record: ExportMapping, index: number) => ( + + ) + }, + { + title: 'Getter', + dataIndex: 'getter', + key: 'getter', + render: (_: any, record: ExportMapping, index: number) => ( + + ) + }, + { + title: '', + key: 'actions', + width: 80, + render: (_: any, _record: ExportMapping, index: number) => ( + + + + index?.toString() || '0'} + pagination={false} + size="small" + /> + + ) + } + ]} + /> + +
+ + + + +
+ + {config && selectedMappingIndex !== null && ( + { setConfigDialogVisible(false); setSelectedMappingIndex(null) }} + /> + )} + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionManager.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionManager.styles.ts new file mode 100644 index 00000000..f50fc545 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionManager.styles.ts @@ -0,0 +1,67 @@ +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ css, token }) => ({ + container: css` + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + `, + listPanel: css` + height: 100%; + min-height: 0; + display: flex; + flex-direction: column; + overflow: hidden; + background: ${token.colorBgContainer}; + `, + listHeader: css` + padding: 12px 16px; + background: ${token.colorBgContainer}; + border-bottom: 1px solid ${token.colorBorderSecondary}; + display: flex; + align-items: center; + justify-content: space-between; + `, + listTitle: css` + margin: 0 !important; + font-size: 12px; + font-weight: 600; + color: ${token.colorTextSecondary}; + text-transform: uppercase; + letter-spacing: 0.5px; + `, + listBody: css` + flex: 1 1 auto; + min-height: 0; + overflow: auto; + padding: 8px; + `, + listFooter: css` + padding: 8px 16px; + border-top: 1px solid ${token.colorBorderSecondary}; + font-size: ${token.fontSizeSM}px; + color: ${token.colorTextSecondary}; + background: ${token.colorBgContainer}; + `, + editorPanel: css` + height: 100%; + min-height: 0; + display: flex; + flex-direction: column; + overflow: hidden; + background: ${token.colorBgElevated}; + `, + emptyState: css` + flex: 1; + display: flex; + align-items: center; + justify-content: center; + color: ${token.colorTextSecondary}; + background: ${token.colorBgElevated}; + `, + loadingContainer: css` + padding: ${token.paddingLG}px; + text-align: center; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionManager.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionManager.tsx new file mode 100644 index 00000000..1ce20241 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/ExportDefinitionManager.tsx @@ -0,0 +1,92 @@ +/** + * Export Definition Manager Component + */ + +import React from 'react' +import { Modal, Input, message } from 'antd' +import { useTranslation } from 'react-i18next' +import { TabbedEntityManager } from '../shared/TabbedEntityManager' +import { exportDefinitionApi } from '../../services/api' +import type { ExportDefinition, DefinitionConfig } from '../../types/definitions' +import { ExportDefinitionDetail } from './ExportDefinitionDetail' + +export const ExportDefinitionManager: React.FC = () => { + const { t } = useTranslation() + const [config, setConfig] = React.useState(null) + + // Load config on mount + React.useEffect(() => { + const loadConfig = async () => { + try { + const configData = await exportDefinitionApi.getConfig() + setConfig(configData) + } catch (error) { + console.error('Failed to load config:', error) + } + } + void loadConfig() + }, []) + + const handleAdd = async (): Promise => { + return new Promise((resolve, reject) => { + let inputValue = '' + Modal.confirm({ + title: t('data_definitions.add'), + content: ( + { inputValue = e.target.value }} + autoFocus + /> + ), + onOk: async () => { + const name = inputValue.trim() + if (!name) { + message.warning(t('data_definitions.name') + ' required') + reject(new Error('Name required')) + return + } + try { + const res = await exportDefinitionApi.add({ name }) + resolve(res.id!) + } catch (error) { + message.error('Failed to create definition') + reject(error) + } + }, + onCancel: () => reject(new Error('Cancelled')) + }) + }) + } + + const buildSavePayload = (data: ExportDefinition): Record => { + // Filter out mappings without toColumn + const filteredMappings = (data.mapping || []).filter( + m => m.toColumn != null && m.toColumn !== '' + ) + return { + ...data, + mapping: filteredMappings + } + } + + return ( + + api={exportDefinitionApi} + title={t('data_definitions.menu.export')} + onAdd={handleAdd} + buildSavePayload={buildSavePayload} + getTabTitle={(item) => item.name || `#${item.id}`} + renderDetail={(data, setData) => { + if (!config) return null + return ( + + ) + }} + /> + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportMappingPanel.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportMappingPanel.styles.ts new file mode 100644 index 00000000..61067f93 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportMappingPanel.styles.ts @@ -0,0 +1,166 @@ +/** + * ExportMappingPanel Styles - Grid-based layout with groupings + */ + +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ token, css }) => ({ + container: css` + height: 100%; + overflow: auto; + background: ${token.colorBgContainer}; + `, + + loadingContainer: css` + display: flex; + justify-content: center; + align-items: center; + height: 200px; + `, + + mappingTable: css` + .ant-table-thead > tr > th { + background: ${token.colorFillAlter}; + font-weight: 600; + padding: 8px 12px; + border-bottom: 1px solid ${token.colorBorderSecondary}; + } + + .ant-table-tbody > tr > td { + padding: 4px 12px; + vertical-align: middle; + } + + .ant-table-tbody > tr:hover > td { + background: ${token.colorFillTertiary}; + } + `, + + groupHeaderRow: css` + background: ${token.colorFillSecondary} !important; + + td { + background: ${token.colorFillSecondary} !important; + font-weight: 500; + } + + &:hover td { + background: ${token.colorFillTertiary} !important; + } + `, + + mappingRow: css` + &:hover { + background: ${token.colorFillTertiary}; + } + `, + + groupRow: css` + display: flex; + align-items: center; + user-select: none; + padding: 4px 0; + `, + + groupName: css` + font-weight: 500; + margin-right: 8px; + `, + + groupCount: css` + color: ${token.colorTextSecondary}; + font-size: 12px; + `, + + fieldRow: css` + display: flex; + align-items: center; + `, + + actionButtons: css` + display: flex; + gap: 4px; + justify-content: flex-end; + `, + + // Keep old styles for backwards compatibility + panel: css` + height: 100%; + display: flex; + flex-direction: column; + background: ${token.colorBgContainer}; + `, + + panelHeader: css` + padding: 8px 12px; + border-bottom: 1px solid ${token.colorBorderSecondary}; + background: ${token.colorFillAlter}; + `, + + panelTitle: css` + margin: 0 !important; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; + `, + + panelBody: css` + flex: 1; + overflow: auto; + padding: 8px; + `, + + loading: css` + padding: 20px; + text-align: center; + color: ${token.colorTextSecondary}; + `, + + groupTitle: css` + font-weight: 500; + color: ${token.colorText}; + `, + + fieldItem: css` + display: flex; + align-items: center; + gap: 8px; + `, + + fieldName: css` + color: ${token.colorText}; + `, + + fieldType: css` + color: ${token.colorTextSecondary}; + font-size: 11px; + text-transform: uppercase; + `, + + mappingItem: css` + display: flex; + align-items: center; + gap: 8px; + `, + + mappingName: css` + color: ${token.colorText}; + font-weight: 500; + `, + + mappingTo: css` + color: ${token.colorTextSecondary}; + font-size: 12px; + `, + + mappingType: css` + color: ${token.colorTextTertiary}; + font-size: 11px; + `, + + mappingActions: css` + display: flex; + gap: 4px; + margin-left: auto; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportMappingPanel.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportMappingPanel.tsx new file mode 100644 index 00000000..1c0e7eea --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportMappingPanel.tsx @@ -0,0 +1,394 @@ +/** + * Export Definition Mapping Panel + * Grid-based display with groupings like the old ExtJS UI + */ + +import React from 'react' +import { Table, Input, Button, Empty, Spin } from 'antd' +import { + FolderOutlined, + FolderOpenOutlined, + FieldBinaryOutlined, + FontSizeOutlined, + NumberOutlined, + CheckSquareOutlined, + CalendarOutlined, + LinkOutlined, + FileImageOutlined, + EditOutlined, + DeleteOutlined, + GlobalOutlined, + AppstoreOutlined, + DatabaseOutlined, + OrderedListOutlined, + PlusOutlined, + MinusOutlined +} from '@ant-design/icons' +import { useTranslation } from 'react-i18next' +import type { ExportDefinition, ExportMapping, DefinitionConfig, ColumnDefinition } from '../../../types/definitions' +import { exportDefinitionApi } from '../../../services/api' +import { MappingConfigDialog } from '../../shared/MappingConfigDialog' +import { useStyles } from './ExportMappingPanel.styles' + +interface ExportMappingPanelProps { + definition: ExportDefinition + config: DefinitionConfig + onChange: (definition: ExportDefinition) => void +} + +interface GroupedMapping { + key: string + isGroup: boolean + groupName?: string + groupPath?: string + childCount?: number + mapping?: ExportMapping + mappingIndex?: number + fromColumn?: string + toColumn?: string + fieldtype?: string + hasInterpreter?: boolean + hasGetter?: boolean +} + +// Icon mapping for field types +const getFieldIcon = (fieldtype?: string, style?: React.CSSProperties) => { + const iconStyle = { ...style, marginRight: 6 } + switch (fieldtype) { + case 'input': + case 'textarea': + case 'wysiwyg': + return + case 'numeric': + case 'slider': + case 'quantityValue': + return + case 'checkbox': + case 'booleanSelect': + return + case 'date': + case 'datetime': + return + case 'manyToOneRelation': + case 'manyToManyRelation': + case 'manyToManyObjectRelation': + case 'advancedManyToManyRelation': + case 'advancedManyToManyObjectRelation': + return + case 'image': + case 'hotspotimage': + case 'imageGallery': + return + case 'localizedfields': + return + case 'classificationstore': + return + case 'objectbricks': + return + case 'fieldcollections': + return + default: + return + } +} + +export const ExportMappingPanel: React.FC = ({ + definition, + config, + onChange +}) => { + const { t } = useTranslation() + const { styles } = useStyles() + const [classFields, setClassFields] = React.useState([]) + const [loading, setLoading] = React.useState(false) + const [expandedGroups, setExpandedGroups] = React.useState>(new Set(['fields', 'systemColumn'])) + const [configDialogVisible, setConfigDialogVisible] = React.useState(false) + const [selectedMappingIndex, setSelectedMappingIndex] = React.useState(null) + + // Load columns when definition changes + React.useEffect(() => { + if (definition.id && definition.class) { + setLoading(true) + exportDefinitionApi.getColumns(definition.id) + .then(data => { + setClassFields(data.toColumns || []) + // Initialize mappings from API response + if (data.mapping && data.mapping.length > 0) { + onChange({ + ...definition, + mapping: data.mapping as ExportMapping[] + }) + } + }) + .catch(err => console.error('Failed to load columns:', err)) + .finally(() => setLoading(false)) + } + }, [definition.id, definition.class]) + + const mappings = definition.mapping || [] + + // Group mappings by their path/type + const getGroupKey = (fromColumn: string | undefined): string => { + if (!fromColumn) return 'fields' + // Check for localized fields + if (fromColumn.includes('~')) { + const parts = fromColumn.split('~') + return parts[0] + } + // Check for classification store + if (fromColumn.startsWith('classificationstore~')) { + const match = fromColumn.match(/classificationstore~([^~]+)/) + if (match) return `classificationstore - ${match[1]}` + } + // Check for object bricks + if (fromColumn.startsWith('objectbrick~')) { + const match = fromColumn.match(/objectbrick~([^~]+)/) + if (match) return `objectbrick - ${match[1]}` + } + // Check for field collections + if (fromColumn.startsWith('fieldcollection~')) { + const match = fromColumn.match(/fieldcollection~([^~]+)/) + if (match) return `fieldcollection - ${match[1]}` + } + // System columns + const systemFields = ['id', 'key', 'parentId', 'parent', 'type', 'published', 'o_id', 'o_key', 'o_parentId', 'o_parent', 'o_type', 'o_published', 'o_path', 'o_className'] + if (systemFields.includes(fromColumn) || fromColumn.startsWith('o_')) { + return 'systemColumn' + } + return 'fields' + } + + const getFieldName = (fromColumn: string): string => { + if (fromColumn.includes('~')) { + const parts = fromColumn.split('~') + return parts[parts.length - 1] + } + return fromColumn + } + + // Build grouped data for the table + const buildGroupedData = (): GroupedMapping[] => { + const groups: Record }> = {} + + mappings.forEach((mapping, index) => { + const groupKey = getGroupKey(mapping.fromColumn) + if (!groups[groupKey]) { + groups[groupKey] = { mappings: [] } + } + groups[groupKey].mappings.push({ mapping, index }) + }) + + // Define group order + const groupOrder = ['fields', 'systemColumn'] + const sortedGroups = Object.keys(groups).sort((a, b) => { + const aIdx = groupOrder.indexOf(a) + const bIdx = groupOrder.indexOf(b) + if (aIdx !== -1 && bIdx !== -1) return aIdx - bIdx + if (aIdx !== -1) return -1 + if (bIdx !== -1) return 1 + return a.localeCompare(b) + }) + + const result: GroupedMapping[] = [] + + sortedGroups.forEach(groupKey => { + const group = groups[groupKey] + // Add group header + result.push({ + key: `group-${groupKey}`, + isGroup: true, + groupName: groupKey, + groupPath: groupKey, + childCount: group.mappings.length + }) + + // Add children if expanded + if (expandedGroups.has(groupKey)) { + group.mappings.forEach(({ mapping, index }) => { + const colDef = classFields.find(c => c.identifier === mapping.fromColumn) + result.push({ + key: `mapping-${index}`, + isGroup: false, + mapping, + mappingIndex: index, + fromColumn: mapping.fromColumn, + toColumn: mapping.toColumn, + fieldtype: colDef?.fieldtype, + hasInterpreter: !!mapping.interpreter, + hasGetter: !!mapping.getter + }) + }) + } + }) + + return result + } + + const toggleGroup = (groupKey: string) => { + setExpandedGroups(prev => { + const newSet = new Set(prev) + if (newSet.has(groupKey)) { + newSet.delete(groupKey) + } else { + newSet.add(groupKey) + } + return newSet + }) + } + + const handleToColumnChange = (index: number, value: string) => { + const newMappings = [...mappings] + newMappings[index] = { ...newMappings[index], toColumn: value } + onChange({ ...definition, mapping: newMappings }) + } + + const handleOpenConfig = (index: number) => { + setSelectedMappingIndex(index) + setConfigDialogVisible(true) + } + + const handleSaveConfig = (updatedMapping: ExportMapping) => { + if (selectedMappingIndex !== null) { + const newMappings = [...mappings] + newMappings[selectedMappingIndex] = updatedMapping as ExportMapping + onChange({ ...definition, mapping: newMappings }) + } + setConfigDialogVisible(false) + setSelectedMappingIndex(null) + } + + const handleRemoveMapping = (index: number) => { + const newMappings = mappings.filter((_, i) => i !== index) + onChange({ ...definition, mapping: newMappings }) + } + + const columns = [ + { + title: t('data_definitions.from_column'), + dataIndex: 'fromColumn', + key: 'fromColumn', + width: '40%', + render: (_: any, record: GroupedMapping) => { + if (record.isGroup) { + const isExpanded = expandedGroups.has(record.groupPath!) + return ( +
toggleGroup(record.groupPath!)} + style={{ cursor: 'pointer' }} + > + {isExpanded ? : } + {isExpanded ? : } + {record.groupName} + ({record.childCount}) +
+ ) + } + return ( +
+ + {getFieldIcon(record.fieldtype)} + {getFieldName(record.fromColumn!)} + +
+ ) + } + }, + { + title: t('data_definitions.to_column'), + dataIndex: 'toColumn', + key: 'toColumn', + width: '40%', + render: (_: any, record: GroupedMapping) => { + if (record.isGroup) return null + return ( + handleToColumnChange(record.mappingIndex!, e.target.value)} + placeholder={record.fromColumn} + /> + ) + } + }, + { + title: '', + key: 'actions', + width: '20%', + align: 'right' as const, + render: (_: any, record: GroupedMapping) => { + if (record.isGroup) return null + const hasConfig = record.hasInterpreter || record.hasGetter + return ( +
+
+ ) + } + } + ] + + if (!definition.class) { + return ( +
+ +
+ ) + } + + if (loading) { + return ( +
+
+ +
+
+ ) + } + + const groupedData = buildGroupedData() + + return ( +
+
record.isGroup ? styles.groupHeaderRow : styles.mappingRow} + showHeader={true} + className={styles.mappingTable} + /> + + {config && selectedMappingIndex !== null && ( + { setConfigDialogVisible(false); setSelectedMappingIndex(null) }} + /> + )} + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportSettingsForm.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportSettingsForm.tsx new file mode 100644 index 00000000..230270b1 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/ExportSettingsForm.tsx @@ -0,0 +1,176 @@ +/** + * Export Definition Settings Form + */ + +import React from 'react' +import { Form, Input, Select, Checkbox } from 'antd' +import { useTranslation } from 'react-i18next' +import type { ExportDefinition, DefinitionConfig } from '../../../types/definitions' + +interface ExportSettingsFormProps { + definition: ExportDefinition + config: DefinitionConfig + onChange: (definition: ExportDefinition) => void +} + +// Module-level cache for classes +let cachedClasses: string[] | null = null +let loadPromise: Promise | null = null + +const loadClasses = async (): Promise => { + if (cachedClasses) return cachedClasses + if (loadPromise) return loadPromise + + loadPromise = (async (): Promise => { + try { + const response = await fetch('/pimcore-studio/api/class/collection') + const data = await response.json() + let result: string[] = [] + if (data.items && Array.isArray(data.items)) { + result = data.items.map((c: any) => c.name || c.id) + } else if (Array.isArray(data)) { + result = data.map((c: any) => c.name || c.text || c.id) + } + cachedClasses = result + return result + } catch (err) { + console.error('Failed to load classes:', err) + return [] + } finally { + loadPromise = null + } + })() + + return loadPromise +} + +export const ExportSettingsForm: React.FC = ({ + definition, + config, + onChange +}) => { + const { t } = useTranslation() + const [availableClasses, setAvailableClasses] = React.useState(cachedClasses || []) + + React.useEffect(() => { + void (async () => { + const classes = await loadClasses() + setAvailableClasses(classes) + })() + }, []) + + const handleFieldChange = (field: keyof ExportDefinition, value: any) => { + onChange({ ...definition, [field]: value }) + } + + return ( +
+ + handleFieldChange('name', e.target.value)} + /> + + + + + + + + + + + + + + + + + + + + + + + + handleFieldChange('enableInheritance', e.target.checked)} + /> + + + + handleFieldChange('fetchUnpublished', e.target.checked)} + /> + + + + handleFieldChange('stopOnException', e.target.checked)} + /> + + + + handleFieldChange('failureNotificationDocument', e.target.value)} + /> + + + + handleFieldChange('successNotificationDocument', e.target.value)} + /> + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/index.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/index.ts new file mode 100644 index 00000000..ae70c891 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/components/index.ts @@ -0,0 +1,2 @@ +export { ExportSettingsForm } from './ExportSettingsForm' +export { ExportMappingPanel } from './ExportMappingPanel' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/index.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/index.ts new file mode 100644 index 00000000..b3befd8b --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/export/index.ts @@ -0,0 +1,6 @@ +/** + * Export Components Export + */ + +export { ExportDefinitionManager } from './ExportDefinitionManager' +export { ExportDefinitionDetail } from './ExportDefinitionDetail' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/fetchers/ObjectsFetcherConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/fetchers/ObjectsFetcherConfig.tsx new file mode 100644 index 00000000..37fd70d6 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/fetchers/ObjectsFetcherConfig.tsx @@ -0,0 +1,33 @@ +/** + * Data Definitions Bundle - Pimcore Studio Plugin + * + * This source file is available under the Data Definitions Commercial License (DDCL). + * Full copyright and license information is available in + * LICENSE.md which is distributed with this source code. + * + * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://www.instride.ch) + * @license DDCL + */ + +import React from 'react' +import { Form, Checkbox } from 'antd' +import type { FetcherConfigProps } from './index' + +export const ObjectsFetcherConfig: React.FC = ({ config, onChange }) => { + const handleChange = (field: string, value: any): void => { + onChange({ ...config, [field]: value }) + } + + return ( +
+ + handleChange('unpublished', e.target.checked)} + > + Fetch unpublished objects + + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/fetchers/index.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/fetchers/index.tsx new file mode 100644 index 00000000..306f61f8 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/fetchers/index.tsx @@ -0,0 +1,33 @@ +/** + * Fetcher Configuration Components + * + * Dynamically renders the appropriate config panel based on fetcher type. + * Uses the registry system to allow external plugins to register their own components. + */ + +import React from 'react' +import { container } from '@pimcore/studio-ui-bundle' +import { dataDefinitionsServiceIds } from '../../registry/service-ids' +import type { ConfigRegistry } from '../../registry/base-config-registry' + +export interface FetcherConfigProps { + type: string + config: Record + onChange: (config: Record) => void +} + +export const FetcherConfig: React.FC = (props) => { + const registry = container.get>( + dataDefinitionsServiceIds.fetcherConfigRegistry + ) + const Component = registry.get(props.type) + + if (!Component) { + return null + } + + return +} + +// Re-export individual configs +export * from './ObjectsFetcherConfig' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/ClassificationStoreConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/ClassificationStoreConfig.tsx new file mode 100644 index 00000000..36e421bc --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/ClassificationStoreConfig.tsx @@ -0,0 +1,62 @@ +/** + * Classification Store Getter Configuration + */ + +import React from 'react' +import { Form, Typography } from 'antd' +import type { GetterConfigProps } from './index' + +const { Text } = Typography + +export const ClassificationStoreGetterConfig: React.FC = ({ + config, + fromColumnConfig, + onChange +}) => { + // Classification store config is typically derived from the column + // No additional user input needed, just display the values + + const keyId = fromColumnConfig?.config?.keyId + const groupId = fromColumnConfig?.config?.groupId + const field = fromColumnConfig?.config?.field + + // Update config with column values when they change + React.useEffect(() => { + if (keyId !== undefined || groupId !== undefined || field !== undefined) { + onChange({ + ...config, + keyConfig: keyId, + groupConfig: groupId, + field: field + }) + } + }, [keyId, groupId, field]) + + return ( +
+ + + Classification store configuration is derived from the source column. + + + + {keyId !== undefined && ( + + {keyId} + + )} + + {groupId !== undefined && ( + + {groupId} + + )} + + {field && ( + + {field} + + )} +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/FieldCollectionConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/FieldCollectionConfig.tsx new file mode 100644 index 00000000..41107067 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/FieldCollectionConfig.tsx @@ -0,0 +1,36 @@ +/** + * Field Collection Getter Configuration + */ + +import React from 'react' +import { Form, Input, Typography } from 'antd' +import type { GetterConfigProps } from './index' + +const { Text } = Typography + +export const FieldCollectionGetterConfig: React.FC = ({ + config, + fromColumnConfig, + onChange +}) => { + // Extract class from column config + const collectionClass = fromColumnConfig?.config?.class + + return ( +
+ {collectionClass && ( + + {collectionClass} + + )} + + + onChange({ ...config, field: e.target.value, class: collectionClass })} + placeholder="fieldName" + /> + +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/LocalizedFieldConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/LocalizedFieldConfig.tsx new file mode 100644 index 00000000..1a292760 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/LocalizedFieldConfig.tsx @@ -0,0 +1,22 @@ +/** + * Localized Field Getter Configuration + */ + +import React from 'react' +import { Form, Input } from 'antd' +import type { GetterConfigProps } from './index' + +export const LocalizedFieldGetterConfig: React.FC = ({ + config, + onChange +}) => { + return ( + + onChange({ ...config, language: e.target.value })} + placeholder="en" + /> + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/ObjectBrickConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/ObjectBrickConfig.tsx new file mode 100644 index 00000000..7dcf370b --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/ObjectBrickConfig.tsx @@ -0,0 +1,62 @@ +/** + * Object Brick Getter Configuration + */ + +import React, { useState, useEffect } from 'react' +import { Form, Select, Typography } from 'antd' +import type { GetterConfigProps } from './index' + +const { Text } = Typography + +export const ObjectBrickGetterConfig: React.FC = ({ + config, + definitionConfig, + fromColumnConfig, + onChange +}) => { + const [possibleFields, setPossibleFields] = useState([]) + + useEffect(() => { + // Get the brick class from the source column config + const fieldClass = fromColumnConfig?.config?.class + + if (fieldClass && (definitionConfig as any).bricks) { + const bricks = (definitionConfig as any).bricks + const fields: string[] = [] + + Object.entries(bricks).forEach(([key, value]) => { + if (Array.isArray(value) && value.includes(fieldClass)) { + fields.push(key) + } + }) + + setPossibleFields(fields) + } + }, [fromColumnConfig, definitionConfig]) + + // Extract class from column config + const brickClass = fromColumnConfig?.config?.class + + return ( +
+ {brickClass && ( + + {brickClass} + + )} + + + + +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/coreshop/CoreShopStorePriceConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/coreshop/CoreShopStorePriceConfig.tsx new file mode 100644 index 00000000..5b96052d --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/coreshop/CoreShopStorePriceConfig.tsx @@ -0,0 +1,41 @@ +/** + * Data Definitions Bundle - Pimcore Studio Plugin + * + * This source file is available under the Data Definitions Commercial License (DDCL). + * Full copyright and license information is available in + * LICENSE.md which is distributed with this source code. + * + * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://www.instride.ch) + * @license DDCL + */ + +import React from 'react' +import { Form, Select } from 'antd' +import type { GetterConfigProps } from '../index' + +/** + * Configuration for CoreShop Store Price Getter + * Gets prices from specific CoreShop stores + */ +export const CoreShopStorePriceGetterConfig: React.FC = ({ config, onChange }) => { + const handleChange = (field: string, value: any): void => { + onChange({ ...config, [field]: value }) + } + + const storeIds = Array.isArray(config.stores) ? config.stores : [] + + return ( +
+ + handleChange('stores', values.map(Number))} + tokenSeparators={[',']} + /> + + + handleChange('type', e.target.value)} + /> + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/coreshop/index.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/coreshop/index.ts new file mode 100644 index 00000000..0a94811c --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/coreshop/index.ts @@ -0,0 +1,13 @@ +/** + * Data Definitions Bundle - Pimcore Studio Plugin + * + * This source file is available under the Data Definitions Commercial License (DDCL). + * Full copyright and license information is available in + * LICENSE.md which is distributed with this source code. + * + * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://www.instride.ch) + * @license DDCL + */ + +export * from './CoreShopStorePriceConfig' +export * from './CoreShopStoreValuesConfig' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/index.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/index.tsx new file mode 100644 index 00000000..63c3ab99 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/getters/index.tsx @@ -0,0 +1,39 @@ +/** + * Getter Configuration Components + * + * Dynamically renders the appropriate config panel based on getter type. + * Uses the registry system to allow external plugins to register their own components. + */ + +import React from 'react' +import { container } from '@pimcore/studio-ui-bundle' +import type { DefinitionConfig } from '../../types/definitions' +import { dataDefinitionsServiceIds } from '../../registry/service-ids' +import type { ConfigRegistry } from '../../registry/base-config-registry' + +export interface GetterConfigProps { + type: string + config: Record + definitionConfig?: DefinitionConfig + fromColumnConfig?: Record + onChange: (config: Record) => void +} + +export const GetterConfig: React.FC = (props) => { + const registry = container.get>( + dataDefinitionsServiceIds.getterConfigRegistry + ) + const Component = registry.get(props.type) + + if (!Component) { + return null + } + + return +} + +// Re-export all individual configs +export * from './LocalizedFieldConfig' +export * from './ObjectBrickConfig' +export * from './FieldCollectionConfig' +export * from './ClassificationStoreConfig' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionDetail.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionDetail.styles.ts new file mode 100644 index 00000000..2b1c3651 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionDetail.styles.ts @@ -0,0 +1,55 @@ +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ css, token }) => ({ + root: css` + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + + .ant-tabs { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + } + + .ant-tabs-content-holder { + flex: 1; + overflow: hidden; + } + + .ant-tabs-content { + height: 100%; + } + + .ant-tabs-tabpane { + height: 100%; + overflow: auto; + } + `, + header: css` + display: flex; + align-items: center; + justify-content: space-between; + padding: 12px 24px; + border-bottom: 1px solid ${token.colorBorderSecondary}; + background: ${token.colorBgContainer}; + flex-shrink: 0; + `, + title: css` + font-size: 16px; + font-weight: 600; + color: ${token.colorText}; + `, + tabContent: css` + padding: 24px; + height: 100%; + overflow: auto; + `, + emptyState: css` + color: ${token.colorTextSecondary}; + text-align: center; + padding: 48px; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionDetail.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionDetail.tsx new file mode 100644 index 00000000..0ca1033b --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionDetail.tsx @@ -0,0 +1,92 @@ +/** + * Import Definition Detail Component + * Shows Settings, Provider Settings, and Mapping tabs + */ + +import React from 'react' +import { Tabs } from 'antd' +import { useTranslation } from 'react-i18next' +import type { ImportDefinition, DefinitionConfig } from '../../types/definitions' +import { SettingsForm } from './components/SettingsForm' +import { MappingPanel } from './components/MappingPanel' +import { ProviderConfig } from '../providers' +import { useStyles } from './ImportDefinitionDetail.styles' + +interface ImportDefinitionDetailProps { + definition: ImportDefinition + config: DefinitionConfig + onChange: (definition: ImportDefinition) => void +} + +export const ImportDefinitionDetail: React.FC = ({ + definition, + config, + onChange +}) => { + const { t } = useTranslation() + const { styles } = useStyles() + + const handleProviderConfigChange = (providerConfig: Record) => { + onChange({ + ...definition, + configuration: providerConfig + }) + } + + const tabs = [ + { + key: 'settings', + label: t('data_definitions.settings'), + children: ( +
+ +
+ ) + }, + { + key: 'provider', + label: t('data_definitions.provider_settings'), + children: ( +
+ {definition.provider ? ( + + ) : ( +
+ {t('data_definitions.select_provider_first')} +
+ )} +
+ ) + }, + { + key: 'mapping', + label: t('data_definitions.mapping'), + children: ( + + ) + } + ] + + return ( +
+ +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionEditor.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionEditor.styles.ts new file mode 100644 index 00000000..303d0fb9 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionEditor.styles.ts @@ -0,0 +1,117 @@ +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ css, token }) => ({ + container: css` + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + `, + header: css` + padding: 12px 24px; + background: ${token.colorBgContainer}; + border-bottom: 1px solid ${token.colorBorderSecondary}; + display: flex; + align-items: center; + justify-content: space-between; + flex-shrink: 0; + `, + headerTitle: css` + margin: 0 !important; + font-size: 14px; + font-weight: 600; + `, + tabs: css` + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; + + .ant-tabs-nav { + padding: 0 24px; + margin-bottom: 0; + background: ${token.colorBgContainer}; + } + + .ant-tabs-content-holder { + flex: 1; + min-height: 0; + overflow: hidden; + } + + .ant-tabs-content { + height: 100%; + } + + .ant-tabs-tabpane { + height: 100%; + overflow: auto; + } + `, + tabContent: css` + padding: 24px; + height: 100%; + overflow: auto; + `, + form: css` + max-width: 800px; + `, + toolbar: css` + border-top: 1px solid ${token.colorBorderSecondary}; + padding: 12px 24px; + background: ${token.colorBgContainer}; + display: flex; + justify-content: flex-end; + gap: ${token.marginSM}px; + flex-shrink: 0; + `, + mappingHeader: css` + display: flex; + background: ${token.colorBgLayout}; + border-bottom: 1px solid ${token.colorBorderSecondary}; + padding: ${token.paddingSM}px ${token.paddingSM}px ${token.paddingSM}px 48px; + font-weight: 600; + font-size: ${token.fontSizeSM}px; + color: ${token.colorTextSecondary}; + `, + mappingHeaderCol: css` + width: 120px; + `, + mappingHeaderColFrom: css` + width: 150px; + margin-left: ${token.marginSM}px; + `, + mappingHeaderColPrimary: css` + margin-left: ${token.marginSM}px; + `, + mappingRow: css` + display: inline-flex; + align-items: center; + gap: ${token.marginSM}px; + min-width: 600px; + `, + mappingRowToColumn: css` + width: 120px; + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + `, + mappingRowFromColumn: css` + width: 150px; + `, + emptyProvider: css` + color: ${token.colorTextSecondary}; + padding: ${token.paddingXL}px; + text-align: center; + `, + loadingContainer: css` + display: flex; + justify-content: center; + align-items: center; + height: 100%; + min-height: 300px; + `, + groupTitle: css` + font-weight: 500; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionEditor.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionEditor.tsx new file mode 100644 index 00000000..712ba152 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionEditor.tsx @@ -0,0 +1,417 @@ +/** + * Import Definition Editor Component + */ + +import React, { useState, useEffect } from 'react' +import { Form, Input, Select, Checkbox, Button, Tabs, Tree, message, Spin, Modal, Space, Typography } from 'antd' +import type { DataNode } from 'antd/es/tree' +import { + SaveOutlined, + DownloadOutlined, + UploadOutlined, + CopyOutlined, + EditOutlined, + DeleteOutlined, + FolderOutlined, + FieldBinaryOutlined, + SettingOutlined, + ApiOutlined, + NodeIndexOutlined +} from '@ant-design/icons' +import type { ImportDefinition, ImportMapping, DefinitionConfig } from '../../types/definitions' +import { importDefinitionApi } from '../../services/api' +import { MappingConfigDialog } from '../shared/MappingConfigDialog' +import { ProviderConfig } from '../providers' +import { useStyles } from './ImportDefinitionEditor.styles' + +const { Title } = Typography + +interface ImportDefinitionEditorProps { + definition: ImportDefinition + onSave: (definition: ImportDefinition) => void + onCancel: () => void +} + +interface GroupedMapping { + group: string + mappings: Array +} + +export const ImportDefinitionEditor: React.FC = ({ + definition, + onSave, + onCancel +}) => { + const { styles } = useStyles() + const [form] = Form.useForm() + const [config, setConfig] = useState(null) + const [loading, setLoading] = useState(true) + const [mappings, setMappings] = useState(definition.mapping || []) + const [configDialogVisible, setConfigDialogVisible] = useState(false) + const [selectedMappingIndex, setSelectedMappingIndex] = useState(null) + const [providerConfig, setProviderConfig] = useState>(definition.configuration || {}) + const [selectedProvider, setSelectedProvider] = useState(definition.provider) + const [fromColumns, setFromColumns] = useState>([]) + const [toColumns, setToColumns] = useState>([]) + const [availableClasses, setAvailableClasses] = useState([]) + const [expandedKeys, setExpandedKeys] = useState(['fields', 'systemColumn']) + + useEffect(() => { + loadConfig() + loadAvailableClasses() + if (definition.id && definition.class) { + loadColumns() + } + }, []) + + useEffect(() => { + form.setFieldsValue(definition) + }, [definition, form]) + + const loadConfig = async () => { + try { + const configData = await importDefinitionApi.getConfig() + setConfig(configData) + } catch (error) { + console.error('Failed to load config:', error) + message.error('Failed to load configuration') + } finally { + setLoading(false) + } + } + + const loadAvailableClasses = async () => { + try { + const response = await fetch('/pimcore-studio/api/class/collection') + const data = await response.json() + if (data.items && Array.isArray(data.items)) { + setAvailableClasses(data.items.map((c: any) => c.name || c.id)) + } else if (Array.isArray(data)) { + setAvailableClasses(data.map((c: any) => c.name || c.text || c.id)) + } + } catch (error) { + console.error('Failed to load classes:', error) + } + } + + const loadColumns = async () => { + if (!definition.id) return + try { + const columns = await importDefinitionApi.getColumns(definition.id) + setFromColumns(columns.fromColumns) + setToColumns(columns.toColumns) + if (mappings.length === 0 && columns.mapping.length > 0) { + setMappings(columns.mapping) + } + } catch (error) { + console.error('Failed to load columns:', error) + } + } + + const handleSave = () => { + form.validateFields().then(values => { + // Only save mappings that have a fromColumn configured (not null, undefined, or empty string) + const filteredMappings = mappings.filter(m => m.fromColumn != null && m.fromColumn !== '') + onSave({ + ...definition, + ...values, + mapping: filteredMappings, + configuration: providerConfig + }) + }) + } + + const handleProviderChange = (value: string) => { + setSelectedProvider(value) + setProviderConfig({}) + } + + const updateMapping = (index: number, field: keyof ImportMapping, value: any) => { + const newMappings = [...mappings] + newMappings[index] = { ...newMappings[index], [field]: value } + setMappings(newMappings) + } + + const removeMapping = (index: number) => { + setMappings(mappings.filter((_, i) => i !== index)) + } + + const openConfigDialog = (index: number) => { + setSelectedMappingIndex(index) + setConfigDialogVisible(true) + } + + const handleConfigSave = (updatedMapping: ImportMapping) => { + if (selectedMappingIndex !== null) { + const newMappings = [...mappings] + newMappings[selectedMappingIndex] = updatedMapping + setMappings(newMappings) + } + setConfigDialogVisible(false) + setSelectedMappingIndex(null) + } + + const handleExportDefinition = async () => { + if (!definition.id) return + try { + const blob = await importDefinitionApi.export(definition.id) + const url = window.URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = url + a.download = `import-definition-${definition.name}.json` + document.body.appendChild(a) + a.click() + window.URL.revokeObjectURL(url) + document.body.removeChild(a) + } catch (error) { + message.error('Failed to export definition') + } + } + + const handleDuplicate = () => { + if (!definition.id) return + const defId = definition.id + Modal.confirm({ + title: 'Duplicate Definition', + content: , + onOk: async () => { + const nameInput = document.getElementById('duplicate-name') as HTMLInputElement + try { + await importDefinitionApi.duplicate(defId, nameInput?.value || `${definition.name} (Copy)`) + message.success('Definition duplicated') + } catch (error) { + message.error('Failed to duplicate') + } + } + }) + } + + const getGroupedMappings = (): GroupedMapping[] => { + const groups: Record> = { + fields: [], + systemColumn: [] + } + + mappings.forEach((mapping, index) => { + const isSystem = mapping.toColumn?.startsWith('o_') || + ['id', 'key', 'parentId', 'parent', 'type', 'published'].includes(mapping.toColumn || '') + const group = isSystem ? 'systemColumn' : 'fields' + groups[group].push({ ...mapping, originalIndex: index }) + }) + + return Object.entries(groups) + .filter(([_, items]) => items.length > 0) + .map(([group, items]) => ({ group, mappings: items })) + } + + const buildTreeData = (): DataNode[] => { + return getGroupedMappings().map(group => ({ + key: group.group, + title: {group.group}, + icon: , + children: group.mappings.map(mapping => ({ + key: `mapping-${mapping.originalIndex}`, + icon: , + title: ( +
+ {mapping.toColumn} + + updateMapping(mapping.originalIndex, 'primaryIdentifier', e.target.checked)} + > + Primary + +
+ ) + })) + })) + } + + if (loading) { + return
+ } + + return ( +
+
+ + {definition.name} (ID: {definition.id}) + + + + + +
+ + Settings, + children: ( +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ) + }, + { + key: 'provider', + label: Provider Settings, + children: ( +
+ {selectedProvider ? ( + + ) : ( +
+ Please select a provider first in the Settings tab. +
+ )} +
+ ) + }, + { + key: 'mapping', + label: Mapping, + children: ( +
+
+ To Column + From Column + Primary +
+ setExpandedKeys(keys as string[])} + treeData={buildTreeData()} + /> +
+ ) + } + ]} + /> + +
+ +
+ + {config && selectedMappingIndex !== null && ( + { setConfigDialogVisible(false); setSelectedMappingIndex(null) }} + /> + )} +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionManager.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionManager.styles.ts new file mode 100644 index 00000000..f50fc545 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionManager.styles.ts @@ -0,0 +1,67 @@ +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ css, token }) => ({ + container: css` + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + `, + listPanel: css` + height: 100%; + min-height: 0; + display: flex; + flex-direction: column; + overflow: hidden; + background: ${token.colorBgContainer}; + `, + listHeader: css` + padding: 12px 16px; + background: ${token.colorBgContainer}; + border-bottom: 1px solid ${token.colorBorderSecondary}; + display: flex; + align-items: center; + justify-content: space-between; + `, + listTitle: css` + margin: 0 !important; + font-size: 12px; + font-weight: 600; + color: ${token.colorTextSecondary}; + text-transform: uppercase; + letter-spacing: 0.5px; + `, + listBody: css` + flex: 1 1 auto; + min-height: 0; + overflow: auto; + padding: 8px; + `, + listFooter: css` + padding: 8px 16px; + border-top: 1px solid ${token.colorBorderSecondary}; + font-size: ${token.fontSizeSM}px; + color: ${token.colorTextSecondary}; + background: ${token.colorBgContainer}; + `, + editorPanel: css` + height: 100%; + min-height: 0; + display: flex; + flex-direction: column; + overflow: hidden; + background: ${token.colorBgElevated}; + `, + emptyState: css` + flex: 1; + display: flex; + align-items: center; + justify-content: center; + color: ${token.colorTextSecondary}; + background: ${token.colorBgElevated}; + `, + loadingContainer: css` + padding: ${token.paddingLG}px; + text-align: center; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionManager.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionManager.tsx new file mode 100644 index 00000000..f0d4f4c5 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/ImportDefinitionManager.tsx @@ -0,0 +1,92 @@ +/** + * Import Definition Manager Component + */ + +import React from 'react' +import { Modal, Input, message } from 'antd' +import { useTranslation } from 'react-i18next' +import { TabbedEntityManager } from '../shared/TabbedEntityManager' +import { importDefinitionApi } from '../../services/api' +import type { ImportDefinition, DefinitionConfig } from '../../types/definitions' +import { ImportDefinitionDetail } from './ImportDefinitionDetail' + +export const ImportDefinitionManager: React.FC = () => { + const { t } = useTranslation() + const [config, setConfig] = React.useState(null) + + // Load config on mount + React.useEffect(() => { + const loadConfig = async () => { + try { + const configData = await importDefinitionApi.getConfig() + setConfig(configData) + } catch (error) { + console.error('Failed to load config:', error) + } + } + void loadConfig() + }, []) + + const handleAdd = async (): Promise => { + return new Promise((resolve, reject) => { + let inputValue = '' + Modal.confirm({ + title: t('data_definitions.add'), + content: ( + { inputValue = e.target.value }} + autoFocus + /> + ), + onOk: async () => { + const name = inputValue.trim() + if (!name) { + message.warning(t('data_definitions.name') + ' required') + reject(new Error('Name required')) + return + } + try { + const res = await importDefinitionApi.add({ name }) + resolve(res.id!) + } catch (error) { + message.error('Failed to create definition') + reject(error) + } + }, + onCancel: () => reject(new Error('Cancelled')) + }) + }) + } + + const buildSavePayload = (data: ImportDefinition): Record => { + // Filter out mappings without fromColumn + const filteredMappings = (data.mapping || []).filter( + m => m.fromColumn != null && m.fromColumn !== '' + ) + return { + ...data, + mapping: filteredMappings + } + } + + return ( + + api={importDefinitionApi} + title={t('data_definitions.menu.import')} + onAdd={handleAdd} + buildSavePayload={buildSavePayload} + getTabTitle={(item) => item.name || `#${item.id}`} + renderDetail={(data, setData) => { + if (!config) return null + return ( + + ) + }} + /> + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/MappingPanel.styles.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/MappingPanel.styles.ts new file mode 100644 index 00000000..acc5c9ca --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/MappingPanel.styles.ts @@ -0,0 +1,166 @@ +/** + * MappingPanel Styles - Grid-based layout with groupings + */ + +import { createStyles } from 'antd-style' + +export const useStyles = createStyles(({ token, css }) => ({ + container: css` + height: 100%; + overflow: auto; + background: ${token.colorBgContainer}; + `, + + loadingContainer: css` + display: flex; + justify-content: center; + align-items: center; + height: 200px; + `, + + mappingTable: css` + .ant-table-thead > tr > th { + background: ${token.colorFillAlter}; + font-weight: 600; + padding: 8px 12px; + border-bottom: 1px solid ${token.colorBorderSecondary}; + } + + .ant-table-tbody > tr > td { + padding: 4px 12px; + vertical-align: middle; + } + + .ant-table-tbody > tr:hover > td { + background: ${token.colorFillTertiary}; + } + `, + + groupHeaderRow: css` + background: ${token.colorFillSecondary} !important; + + td { + background: ${token.colorFillSecondary} !important; + font-weight: 500; + } + + &:hover td { + background: ${token.colorFillTertiary} !important; + } + `, + + mappingRow: css` + &:hover { + background: ${token.colorFillTertiary}; + } + `, + + groupRow: css` + display: flex; + align-items: center; + user-select: none; + padding: 4px 0; + `, + + groupName: css` + font-weight: 500; + margin-right: 8px; + `, + + groupCount: css` + color: ${token.colorTextSecondary}; + font-size: 12px; + `, + + fieldRow: css` + display: flex; + align-items: center; + `, + + actionButtons: css` + display: flex; + gap: 4px; + justify-content: flex-end; + `, + + // Keep old styles for backwards compatibility + panel: css` + height: 100%; + display: flex; + flex-direction: column; + background: ${token.colorBgContainer}; + `, + + panelHeader: css` + padding: 8px 12px; + border-bottom: 1px solid ${token.colorBorderSecondary}; + background: ${token.colorFillAlter}; + `, + + panelTitle: css` + margin: 0 !important; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; + `, + + panelBody: css` + flex: 1; + overflow: auto; + padding: 8px; + `, + + loading: css` + padding: 20px; + text-align: center; + color: ${token.colorTextSecondary}; + `, + + groupTitle: css` + font-weight: 500; + color: ${token.colorText}; + `, + + fieldItem: css` + display: flex; + align-items: center; + gap: 8px; + `, + + fieldName: css` + color: ${token.colorText}; + `, + + fieldType: css` + color: ${token.colorTextSecondary}; + font-size: 11px; + text-transform: uppercase; + `, + + mappingItem: css` + display: flex; + align-items: center; + gap: 8px; + `, + + mappingName: css` + color: ${token.colorText}; + font-weight: 500; + `, + + mappingFrom: css` + color: ${token.colorTextSecondary}; + font-size: 12px; + `, + + mappingType: css` + color: ${token.colorTextTertiary}; + font-size: 11px; + `, + + mappingActions: css` + display: flex; + gap: 4px; + margin-left: auto; + ` +})) diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/MappingPanel.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/MappingPanel.tsx new file mode 100644 index 00000000..facee6cc --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/MappingPanel.tsx @@ -0,0 +1,437 @@ +/** + * Import Definition Mapping Panel + * Grid-based display with groupings like the old ExtJS UI + */ + +import React from 'react' +import { Table, Select, Checkbox, Button, Empty, Spin } from 'antd' +import { + FolderOutlined, + FolderOpenOutlined, + FieldBinaryOutlined, + FontSizeOutlined, + NumberOutlined, + CheckSquareOutlined, + CalendarOutlined, + LinkOutlined, + FileImageOutlined, + EditOutlined, + DeleteOutlined, + GlobalOutlined, + AppstoreOutlined, + DatabaseOutlined, + OrderedListOutlined, + PlusOutlined, + MinusOutlined +} from '@ant-design/icons' +import { useTranslation } from 'react-i18next' +import type { ImportDefinition, ImportMapping, DefinitionConfig, ColumnDefinition } from '../../../types/definitions' +import { importDefinitionApi } from '../../../services/api' +import { MappingConfigDialog } from '../../shared/MappingConfigDialog' +import { useStyles } from './MappingPanel.styles' + +interface MappingPanelProps { + definition: ImportDefinition + config: DefinitionConfig + onChange: (definition: ImportDefinition) => void +} + +interface GroupedMapping { + key: string + isGroup: boolean + groupName?: string + groupPath?: string + childCount?: number + mapping?: ImportMapping + mappingIndex?: number + toColumn?: string + fromColumn?: string + primaryIdentifier?: boolean + fieldtype?: string + hasInterpreter?: boolean + hasSetter?: boolean +} + +// Icon mapping for field types +const getFieldIcon = (fieldtype?: string, style?: React.CSSProperties) => { + const iconStyle = { ...style, marginRight: 6 } + switch (fieldtype) { + case 'input': + case 'textarea': + case 'wysiwyg': + return + case 'numeric': + case 'slider': + case 'quantityValue': + return + case 'checkbox': + case 'booleanSelect': + return + case 'date': + case 'datetime': + return + case 'manyToOneRelation': + case 'manyToManyRelation': + case 'manyToManyObjectRelation': + case 'advancedManyToManyRelation': + case 'advancedManyToManyObjectRelation': + return + case 'image': + case 'hotspotimage': + case 'imageGallery': + return + case 'localizedfields': + return + case 'classificationstore': + return + case 'objectbricks': + return + case 'fieldcollections': + return + default: + return + } +} + +export const MappingPanel: React.FC = ({ + definition, + config, + onChange +}) => { + const { t } = useTranslation() + const { styles } = useStyles() + const [toColumns, setToColumns] = React.useState([]) + const [fromColumns, setFromColumns] = React.useState([]) + const [loading, setLoading] = React.useState(false) + const [expandedGroups, setExpandedGroups] = React.useState>(new Set(['fields', 'systemColumn'])) + const [configDialogVisible, setConfigDialogVisible] = React.useState(false) + const [selectedMappingIndex, setSelectedMappingIndex] = React.useState(null) + + // Load columns when definition changes + React.useEffect(() => { + if (definition.id && definition.class) { + setLoading(true) + importDefinitionApi.getColumns(definition.id) + .then(data => { + setFromColumns(data.fromColumns || []) + setToColumns(data.toColumns || []) + // Initialize mappings from API response + if (data.mapping && data.mapping.length > 0) { + onChange({ + ...definition, + mapping: data.mapping as ImportMapping[] + }) + } + }) + .catch(err => console.error('Failed to load columns:', err)) + .finally(() => setLoading(false)) + } + }, [definition.id, definition.class]) + + const mappings = definition.mapping || [] + + // Group mappings by their path/type + const getGroupKey = (toColumn: string | undefined): string => { + if (!toColumn) return 'fields' + // Check for localized fields (e.g., localizedfield.en) + if (toColumn.includes('~')) { + const parts = toColumn.split('~') + return parts[0] // e.g., "localizedfield.en" + } + // Check for classification store + if (toColumn.startsWith('classificationstore~')) { + const match = toColumn.match(/classificationstore~([^~]+)/) + if (match) return `classificationstore - ${match[1]}` + } + // Check for object bricks + if (toColumn.startsWith('objectbrick~')) { + const match = toColumn.match(/objectbrick~([^~]+)/) + if (match) return `objectbrick - ${match[1]}` + } + // Check for field collections + if (toColumn.startsWith('fieldcollection~')) { + const match = toColumn.match(/fieldcollection~([^~]+)/) + if (match) return `fieldcollection - ${match[1]}` + } + // System columns + const systemFields = ['id', 'key', 'parentId', 'parent', 'type', 'published', 'o_id', 'o_key', 'o_parentId', 'o_parent', 'o_type', 'o_published', 'o_path', 'o_className'] + if (systemFields.includes(toColumn) || toColumn.startsWith('o_')) { + return 'systemColumn' + } + return 'fields' + } + + const getFieldName = (toColumn: string): string => { + // Extract just the field name from complex paths + if (toColumn.includes('~')) { + const parts = toColumn.split('~') + return parts[parts.length - 1] + } + return toColumn + } + + // Build grouped data for the table + const buildGroupedData = (): GroupedMapping[] => { + const groups: Record }> = {} + + mappings.forEach((mapping, index) => { + const groupKey = getGroupKey(mapping.toColumn) + if (!groups[groupKey]) { + groups[groupKey] = { mappings: [] } + } + groups[groupKey].mappings.push({ mapping, index }) + }) + + // Define group order + const groupOrder = ['fields', 'systemColumn'] + const sortedGroups = Object.keys(groups).sort((a, b) => { + const aIdx = groupOrder.indexOf(a) + const bIdx = groupOrder.indexOf(b) + if (aIdx !== -1 && bIdx !== -1) return aIdx - bIdx + if (aIdx !== -1) return -1 + if (bIdx !== -1) return 1 + return a.localeCompare(b) + }) + + const result: GroupedMapping[] = [] + + sortedGroups.forEach(groupKey => { + const group = groups[groupKey] + // Add group header + result.push({ + key: `group-${groupKey}`, + isGroup: true, + groupName: groupKey, + groupPath: groupKey, + childCount: group.mappings.length + }) + + // Add children if expanded + if (expandedGroups.has(groupKey)) { + group.mappings.forEach(({ mapping, index }) => { + const colDef = toColumns.find(c => c.identifier === mapping.toColumn) + result.push({ + key: `mapping-${index}`, + isGroup: false, + mapping, + mappingIndex: index, + toColumn: mapping.toColumn, + fromColumn: mapping.fromColumn, + primaryIdentifier: mapping.primaryIdentifier, + fieldtype: colDef?.fieldtype, + hasInterpreter: !!mapping.interpreter, + hasSetter: !!mapping.setter + }) + }) + } + }) + + return result + } + + const toggleGroup = (groupKey: string) => { + setExpandedGroups(prev => { + const newSet = new Set(prev) + if (newSet.has(groupKey)) { + newSet.delete(groupKey) + } else { + newSet.add(groupKey) + } + return newSet + }) + } + + const handleFromColumnChange = (index: number, value: string | undefined) => { + const newMappings = [...mappings] + newMappings[index] = { ...newMappings[index], fromColumn: value } + onChange({ ...definition, mapping: newMappings }) + } + + const handlePrimaryChange = (index: number, checked: boolean) => { + const newMappings = [...mappings] + newMappings[index] = { ...newMappings[index], primaryIdentifier: checked } + onChange({ ...definition, mapping: newMappings }) + } + + const handleOpenConfig = (index: number) => { + setSelectedMappingIndex(index) + setConfigDialogVisible(true) + } + + const handleSaveConfig = (updatedMapping: ImportMapping) => { + if (selectedMappingIndex !== null) { + const newMappings = [...mappings] + newMappings[selectedMappingIndex] = updatedMapping + onChange({ ...definition, mapping: newMappings }) + } + setConfigDialogVisible(false) + setSelectedMappingIndex(null) + } + + const handleRemoveMapping = (index: number) => { + const newMappings = mappings.filter((_, i) => i !== index) + onChange({ ...definition, mapping: newMappings }) + } + + // From column options for dropdown + const fromColumnOptions = [ + { value: '', label: '-- None --' }, + { value: 'custom', label: 'Custom' }, + ...fromColumns.map(col => ({ + value: col.identifier, + label: col.label || col.identifier + })) + ] + + const columns = [ + { + title: t('data_definitions.to_column'), + dataIndex: 'toColumn', + key: 'toColumn', + width: '40%', + render: (_: any, record: GroupedMapping) => { + if (record.isGroup) { + const isExpanded = expandedGroups.has(record.groupPath!) + return ( +
toggleGroup(record.groupPath!)} + style={{ cursor: 'pointer' }} + > + {isExpanded ? : } + {isExpanded ? : } + {record.groupName} + ({record.childCount}) +
+ ) + } + return ( +
+ + {getFieldIcon(record.fieldtype)} + {getFieldName(record.toColumn!)} + +
+ ) + } + }, + { + title: t('data_definitions.from_column'), + dataIndex: 'fromColumn', + key: 'fromColumn', + width: '35%', + render: (_: any, record: GroupedMapping) => { + if (record.isGroup) return null + return ( +
record.isGroup ? styles.groupHeaderRow : styles.mappingRow} + showHeader={true} + className={styles.mappingTable} + /> + + {config && selectedMappingIndex !== null && ( + { setConfigDialogVisible(false); setSelectedMappingIndex(null) }} + /> + )} + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/SettingsForm.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/SettingsForm.tsx new file mode 100644 index 00000000..fe3d0c1a --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/SettingsForm.tsx @@ -0,0 +1,250 @@ +/** + * Import Definition Settings Form + */ + +import React from 'react' +import { Form, Input, Select, Checkbox } from 'antd' +import { useTranslation } from 'react-i18next' +import type { ImportDefinition, DefinitionConfig } from '../../../types/definitions' + +interface SettingsFormProps { + definition: ImportDefinition + config: DefinitionConfig + onChange: (definition: ImportDefinition) => void +} + +// Module-level cache for classes +let cachedClasses: string[] | null = null +let loadPromise: Promise | null = null + +const loadClasses = async (): Promise => { + if (cachedClasses) return cachedClasses + if (loadPromise) return loadPromise + + loadPromise = (async (): Promise => { + try { + const response = await fetch('/pimcore-studio/api/class/collection') + const data = await response.json() + let result: string[] = [] + if (data.items && Array.isArray(data.items)) { + result = data.items.map((c: any) => c.name || c.id) + } else if (Array.isArray(data)) { + result = data.map((c: any) => c.name || c.text || c.id) + } + cachedClasses = result + return result + } catch (err) { + console.error('Failed to load classes:', err) + return [] + } finally { + loadPromise = null + } + })() + + return loadPromise +} + +export const SettingsForm: React.FC = ({ + definition, + config, + onChange +}) => { + const { t } = useTranslation() + const [availableClasses, setAvailableClasses] = React.useState(cachedClasses || []) + + React.useEffect(() => { + void (async () => { + const classes = await loadClasses() + setAvailableClasses(classes) + })() + }, []) + + const handleFieldChange = (field: keyof ImportDefinition, value: any) => { + onChange({ ...definition, [field]: value }) + } + + return ( +
+ + handleFieldChange('name', e.target.value)} + /> + + + + + + + + + + + + + + + + handleFieldChange('objectPath', e.target.value)} + placeholder="/path/to/objects" + /> + + + + handleFieldChange('key', e.target.value)} + /> + + + + + + + + + + + + + + + + + + + + handleFieldChange('relocateExistingObjects', e.target.checked)} + /> + + + + handleFieldChange('renameExistingObjects', e.target.checked)} + /> + + + + handleFieldChange('skipExistingObjects', e.target.checked)} + /> + + + + handleFieldChange('skipNewObjects', e.target.checked)} + /> + + + + handleFieldChange('createVersion', e.target.checked)} + /> + + + + handleFieldChange('stopOnException', e.target.checked)} + /> + + + + handleFieldChange('omitMandatoryCheck', e.target.checked)} + /> + + + + handleFieldChange('forceLoadObject', e.target.checked)} + /> + + + + handleFieldChange('failureNotificationDocument', e.target.value)} + /> + + + + handleFieldChange('successNotificationDocument', e.target.value)} + /> + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/index.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/index.ts new file mode 100644 index 00000000..879b945a --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/components/index.ts @@ -0,0 +1,2 @@ +export { SettingsForm } from './SettingsForm' +export { MappingPanel } from './MappingPanel' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/index.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/index.ts new file mode 100644 index 00000000..366eeb67 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/import/index.ts @@ -0,0 +1,6 @@ +/** + * Import Components Export + */ + +export { ImportDefinitionManager } from './ImportDefinitionManager' +export { ImportDefinitionDetail } from './ImportDefinitionDetail' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/index.ts b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/index.ts new file mode 100644 index 00000000..ff75b4ae --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/index.ts @@ -0,0 +1,6 @@ +/** + * Data Definitions Components Export + */ + +export * from './import' +export * from './export' diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/AssetByPathConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/AssetByPathConfig.tsx new file mode 100644 index 00000000..56d1af66 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/AssetByPathConfig.tsx @@ -0,0 +1,25 @@ +/** + * Asset By Path Interpreter Configuration + */ + +import React from 'react' +import { Form, Input } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +export const AssetByPathConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + + return ( + + onChange({ ...config, path: e.target.value })} + placeholder="/path/to/asset" + /> + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/AssetUrlConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/AssetUrlConfig.tsx new file mode 100644 index 00000000..4997ac2b --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/AssetUrlConfig.tsx @@ -0,0 +1,59 @@ +/** + * Asset URL / Assets URL Interpreter Configuration + */ + +import React from 'react' +import { Form, Input, Switch } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +export const AssetUrlConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + const deduplicateEnabled = config.deduplicate_by_url || config.deduplicate_by_hash + + return ( +
+ + onChange({ ...config, path: e.target.value })} + placeholder="/path/to/assets" + /> + + + + onChange({ ...config, deduplicate_by_url: checked })} + /> + + + + onChange({ ...config, asset_folder: e.target.value })} + placeholder="/assets" + /> + + + + onChange({ ...config, relocate_existing_objects: checked })} + disabled={!deduplicateEnabled} + /> + + + + onChange({ ...config, rename_existing_objects: checked })} + disabled={!deduplicateEnabled} + /> + +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/CarbonConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/CarbonConfig.tsx new file mode 100644 index 00000000..eda05e5b --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/CarbonConfig.tsx @@ -0,0 +1,28 @@ +/** + * Carbon (Date) Interpreter Configuration + */ + +import React from 'react' +import { Form, Input } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +export const CarbonConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + + return ( + + onChange({ ...config, date_format: e.target.value })} + placeholder="Y-m-d H:i:s" + /> + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/ConditionalConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/ConditionalConfig.tsx new file mode 100644 index 00000000..38075b31 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/ConditionalConfig.tsx @@ -0,0 +1,90 @@ +/** + * Conditional Interpreter Configuration + * + * Executes different interpreters based on a condition + */ + +import React, { useState } from 'react' +import { Form, Input, Select, Card } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +interface NestedInterpreterConfig { + type?: string + interpreterConfig?: Record +} + +export const ConditionalConfig: React.FC = ({ + config, + definitionConfig, + onChange +}) => { + const { t } = useTranslation() + const [trueInterpreter, setTrueInterpreter] = useState( + config.true_interpreter || {} + ) + const [falseInterpreter, setFalseInterpreter] = useState( + config.false_interpreter || {} + ) + + const updateTrueInterpreter = (type: string) => { + const newConfig = { type, interpreterConfig: {} } + setTrueInterpreter(newConfig) + onChange({ + ...config, + true_interpreter: newConfig + }) + } + + const updateFalseInterpreter = (type: string) => { + const newConfig = { type, interpreterConfig: {} } + setFalseInterpreter(newConfig) + onChange({ + ...config, + false_interpreter: newConfig + }) + } + + return ( +
+ + onChange({ ...config, condition: e.target.value })} + placeholder="e.g., value > 0" + rows={2} + /> + + + + + + + + + + + + + +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/DefaultValueConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/DefaultValueConfig.tsx new file mode 100644 index 00000000..dfbc689b --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/DefaultValueConfig.tsx @@ -0,0 +1,24 @@ +/** + * Default Value Interpreter Configuration + */ + +import React from 'react' +import { Form, Input } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +export const DefaultValueConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + + return ( + + onChange({ ...config, value: e.target.value })} + /> + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/DefinitionConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/DefinitionConfig.tsx new file mode 100644 index 00000000..a690a4cc --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/DefinitionConfig.tsx @@ -0,0 +1,59 @@ +/** + * Definition Interpreter Configuration + * + * References another import definition to use as sub-import + */ + +import React, { useState, useEffect } from 'react' +import { Form, Select, Spin } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' +import { importDefinitionApi } from '../../services/api' + +interface ImportDefinitionOption { + id: number + name: string +} + +export const DefinitionConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + const [definitions, setDefinitions] = useState([]) + const [loading, setLoading] = useState(false) + + useEffect(() => { + loadDefinitions() + }, []) + + const loadDefinitions = async () => { + setLoading(true) + try { + const data = await importDefinitionApi.list() + setDefinitions(data.map((d: any) => ({ id: d.id, name: d.name }))) + } catch (error) { + console.error('Failed to load definitions:', error) + } finally { + setLoading(false) + } + } + + return ( + + + onChange({ ...config, type: value, class: undefined })} + options={typeOptions} + /> + + + {hrefType === 'object' && ( + + + updateRule(rule.id, { name: e.target.value })} + /> + + + updateRule(rule.id, { active: checked })} + /> + + + ) + }, + { + key: 'conditions', + label: ( + + {t('data_definitions.import_rule.conditions')} + + ), + children: ( +
+
+ {renderConditionDropdown(rule.id)} +
+ {rule.conditions.length === 0 ? ( + + ) : ( + + {rule.conditions.map((condition, index) => ( + + + {condition.type} + + } + extra={ + +
+ ) + }, + { + key: 'actions', + label: ( + + {t('data_definitions.import_rule.actions')} + + ), + children: ( +
+
+ {renderActionDropdown(rule.id)} +
+ {rule.actions.length === 0 ? ( + + ) : ( + + {rule.actions.map((action, index) => ( + + + {action.type} + + } + extra={ + +
+ ) + } + ] + + return ( + + ) + } + + return ( + <> + + + +
+ {/* Left panel - Rule list */} +
+
+ +
+
+ ( + setSelectedRuleId(rule.id)} + style={{ + padding: '8px 12px', + cursor: 'pointer', + background: selectedRuleId === rule.id ? '#e6f7ff' : 'transparent', + borderLeft: selectedRuleId === rule.id ? '3px solid #1890ff' : '3px solid transparent' + }} + actions={[ +
+
+ + {/* Right panel - Rule detail */} +
+ {selectedRule ? ( + renderRuleDetail(selectedRule) + ) : ( + + )} +
+
+
+ + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/IteratorConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/IteratorConfig.tsx new file mode 100644 index 00000000..4bee3abf --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/IteratorConfig.tsx @@ -0,0 +1,52 @@ +/** + * Iterator Interpreter Configuration + * + * Applies an interpreter to each item in an array + */ + +import React, { useState } from 'react' +import { Form, Select, Card } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +interface NestedInterpreterConfig { + type?: string + interpreterConfig?: Record +} + +export const IteratorConfig: React.FC = ({ + config, + definitionConfig, + onChange +}) => { + const { t } = useTranslation() + const [interpreter, setInterpreter] = useState( + config.interpreter || {} + ) + + const updateInterpreter = (type: string) => { + const newConfig = { type, interpreterConfig: {} } + setInterpreter(newConfig) + onChange({ + ...config, + interpreter: newConfig + }) + } + + return ( + + + + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/MappingConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/MappingConfig.tsx new file mode 100644 index 00000000..7f0fab1e --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/MappingConfig.tsx @@ -0,0 +1,105 @@ +/** + * Mapping Interpreter Configuration + */ + +import React from 'react' +import { Form, Switch, Table, Input, Button, Space } from 'antd' +import { PlusOutlined, DeleteOutlined } from '@ant-design/icons' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +interface MappingRow { + from: string + to: string +} + +export const MappingConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + const mappings: MappingRow[] = config.mapping || [] + const returnNullWhenNotFound = config.return_null_when_not_found !== false + + const updateMappings = (newMappings: MappingRow[]) => { + onChange({ ...config, mapping: newMappings }) + } + + const addRow = () => { + updateMappings([...mappings, { from: '', to: '' }]) + } + + const removeRow = (index: number) => { + updateMappings(mappings.filter((_, i) => i !== index)) + } + + const updateRow = (index: number, field: 'from' | 'to', value: string) => { + const newMappings = [...mappings] + newMappings[index] = { ...newMappings[index], [field]: value } + updateMappings(newMappings) + } + + const columns = [ + { + title: t('data_definitions.from_column'), + dataIndex: 'from', + key: 'from', + render: (_: any, record: MappingRow, index: number) => ( + updateRow(index, 'from', e.target.value)} + /> + ) + }, + { + title: t('data_definitions.to_column'), + dataIndex: 'to', + key: 'to', + render: (_: any, record: MappingRow, index: number) => ( + updateRow(index, 'to', e.target.value)} + /> + ) + }, + { + title: '', + key: 'actions', + width: 50, + render: (_: any, __: MappingRow, index: number) => ( + +
index?.toString() || '0'} + pagination={false} + size="small" + /> + + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/MetadataConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/MetadataConfig.tsx new file mode 100644 index 00000000..b7ba8471 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/MetadataConfig.tsx @@ -0,0 +1,39 @@ +/** + * Metadata Interpreter Configuration + */ + +import React from 'react' +import { Form, Select, Input } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +const classOptions = [ + { value: 'ElementMetadata', label: 'Element Metadata' }, + { value: 'ObjectMetadata', label: 'Object Metadata' } +] + +export const MetadataConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + + return ( +
+ + onChange({ ...config, metadata: e.target.value })} + /> + +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/NestedConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/NestedConfig.tsx new file mode 100644 index 00000000..5dcda7e5 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/NestedConfig.tsx @@ -0,0 +1,123 @@ +/** + * Nested Interpreter Configuration + * + * Chains multiple interpreters in sequence + */ + +import React, { useState } from 'react' +import { Form, Select, Button, Card, Space } from 'antd' +import { DeleteOutlined, ArrowUpOutlined, ArrowDownOutlined } from '@ant-design/icons' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +interface NestedInterpreterItem { + type: string + interpreterConfig: Record +} + +export const NestedConfig: React.FC = ({ + config, + definitionConfig, + onChange +}) => { + const { t } = useTranslation() + const [interpreters, setInterpreters] = useState( + config.interpreters || [] + ) + + const updateInterpreters = (newInterpreters: NestedInterpreterItem[]) => { + setInterpreters(newInterpreters) + onChange({ ...config, interpreters: newInterpreters }) + } + + const addInterpreter = (type: string) => { + updateInterpreters([...interpreters, { type, interpreterConfig: {} }]) + } + + const removeInterpreter = (index: number) => { + updateInterpreters(interpreters.filter((_, i) => i !== index)) + } + + const moveInterpreter = (index: number, direction: 'up' | 'down') => { + const newIndex = direction === 'up' ? index - 1 : index + 1 + if (newIndex < 0 || newIndex >= interpreters.length) return + + const newInterpreters = [...interpreters] + const [removed] = newInterpreters.splice(index, 1) + newInterpreters.splice(newIndex, 0, removed) + updateInterpreters(newInterpreters) + } + + const updateInterpreterType = (index: number, type: string) => { + const newInterpreters = [...interpreters] + newInterpreters[index] = { type, interpreterConfig: {} } + updateInterpreters(newInterpreters) + } + + return ( +
+ + + + + + {interpreters.map((interpreter, index) => ( + +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/ObjectResolverConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/ObjectResolverConfig.tsx new file mode 100644 index 00000000..4e54f1bf --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/ObjectResolverConfig.tsx @@ -0,0 +1,69 @@ +/** + * Object Resolver Interpreter Configuration + */ + +import React, { useState, useEffect } from 'react' +import { Form, Select, Input, Switch, Spin } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +export const ObjectResolverConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + const [classes, setClasses] = useState([]) + const [loading, setLoading] = useState(false) + + useEffect(() => { + loadClasses() + }, []) + + const loadClasses = async () => { + setLoading(true) + try { + const response = await fetch('/pimcore-studio/api/class') + const data = await response.json() + if (data.items && Array.isArray(data.items)) { + setClasses(data.items.map((c: any) => c.name || c.id)) + } else if (Array.isArray(data)) { + setClasses(data.map((c: any) => c.name || c.text || c.id)) + } + } catch (error) { + console.error('Failed to load classes:', error) + } finally { + setLoading(false) + } + } + + return ( +
+ + + onChange({ ...config, field: e.target.value })} + placeholder="e.g., sku" + /> + + + + onChange({ ...config, match_unpublished: checked })} + /> + +
+ ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/QuantityValueConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/QuantityValueConfig.tsx new file mode 100644 index 00000000..6da3ed04 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/QuantityValueConfig.tsx @@ -0,0 +1,60 @@ +/** + * Quantity Value Interpreter Configuration + */ + +import React, { useState, useEffect } from 'react' +import { Form, Select, Spin } from 'antd' +import { useTranslation } from 'react-i18next' +import type { InterpreterConfigProps } from './index' + +interface QuantityUnit { + id: string + abbreviation: string +} + +export const QuantityValueConfig: React.FC = ({ + config, + onChange +}) => { + const { t } = useTranslation() + const [units, setUnits] = useState([]) + const [loading, setLoading] = useState(false) + + useEffect(() => { + loadUnits() + }, []) + + const loadUnits = async () => { + setLoading(true) + try { + const response = await fetch('/pimcore-studio/api/quantity-value/unit') + const data = await response.json() + if (data.items && Array.isArray(data.items)) { + setUnits(data.items) + } else if (data.data && Array.isArray(data.data)) { + setUnits(data.data) + } + } catch (error) { + console.error('Failed to load units:', error) + } finally { + setLoading(false) + } + } + + return ( + + + onChange({ ...config, toType: value })} + options={typeOptions} + /> + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopMoneyConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopMoneyConfig.tsx new file mode 100644 index 00000000..9ad33302 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopMoneyConfig.tsx @@ -0,0 +1,45 @@ +/** + * Data Definitions Bundle - Pimcore Studio Plugin + * + * This source file is available under the Data Definitions Commercial License (DDCL). + * Full copyright and license information is available in + * LICENSE.md which is distributed with this source code. + * + * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://www.instride.ch) + * @license DDCL + */ + +import React from 'react' +import { Form, Checkbox, InputNumber } from 'antd' +import type { InterpreterConfigProps } from '../index' + +/** + * Configuration for CoreShop Money Interpreter + * Converts values to CoreShop Money objects with currency + */ +export const CoreShopMoneyConfig: React.FC = ({ config, onChange }) => { + const handleChange = (field: string, value: any): void => { + onChange({ ...config, [field]: value }) + } + + return ( +
+ + handleChange('currency', value)} + /> + + + handleChange('isFloat', e.target.checked)} + > + Value is Float (not integer cents) + + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopPriceConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopPriceConfig.tsx new file mode 100644 index 00000000..ec0ee6c8 --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopPriceConfig.tsx @@ -0,0 +1,37 @@ +/** + * Data Definitions Bundle - Pimcore Studio Plugin + * + * This source file is available under the Data Definitions Commercial License (DDCL). + * Full copyright and license information is available in + * LICENSE.md which is distributed with this source code. + * + * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://www.instride.ch) + * @license DDCL + */ + +import React from 'react' +import { Form, Checkbox } from 'antd' +import type { InterpreterConfigProps } from '../index' + +/** + * Configuration for CoreShop Price Interpreter + * Converts values to CoreShop price format + */ +export const CoreShopPriceConfig: React.FC = ({ config, onChange }) => { + const handleChange = (field: string, value: any): void => { + onChange({ ...config, [field]: value }) + } + + return ( +
+ + handleChange('isFloat', e.target.checked)} + > + Value is Float (not integer cents) + + + + ) +} diff --git a/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopStoresConfig.tsx b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopStoresConfig.tsx new file mode 100644 index 00000000..cf22ecef --- /dev/null +++ b/src/DataDefinitionsBundle/Resources/assets/pimcore-studio/src/components/interpreters/coreshop/CoreShopStoresConfig.tsx @@ -0,0 +1,42 @@ +/** + * Data Definitions Bundle - Pimcore Studio Plugin + * + * This source file is available under the Data Definitions Commercial License (DDCL). + * Full copyright and license information is available in + * LICENSE.md which is distributed with this source code. + * + * @copyright Copyright (c) CORS GmbH (https://www.cors.gmbh) in combination with instride AG (https://www.instride.ch) + * @license DDCL + */ + +import React from 'react' +import { Form, Select } from 'antd' +import type { InterpreterConfigProps } from '../index' + +/** + * Configuration for CoreShop Stores Interpreter + * Maps values to specific CoreShop stores + */ +export const CoreShopStoresConfig: React.FC = ({ config, onChange }) => { + const handleChange = (field: string, value: any): void => { + onChange({ ...config, [field]: value }) + } + + // Store IDs as comma-separated or array + const storeIds = Array.isArray(config.stores) ? config.stores : [] + + return ( +
+ + onChange({ ...config, delimiter: e.target.value })} + placeholder="," + maxLength={1} + /> +
{t('data_definitions.csv.delimiter_help')}
+ + +
+ + onChange({ ...config, enclosure: e.target.value })} + placeholder='"' + maxLength={1} + /> +
{t('data_definitions.csv.enclosure_help')}
+
+ +
+ + onChange({ ...config, escape: e.target.value })} + placeholder="\" + maxLength={1} + /> +
{t('data_definitions.csv.escape_help')}
+
+ + +
+
+ onChange({ ...config, skipFirstRow: e.target.checked })} + > + {t('data_definitions.csv.skip_first_row')} + +
+
+ + + {/* Data Source */} +
+
+ + {t('data_definitions.csv.data')} +
+ +
+ +