diff --git a/.env b/.env
deleted file mode 100644
index 4bdf3e6..0000000
--- a/.env
+++ /dev/null
@@ -1,8 +0,0 @@
-ENABLE_NEW_JSX_TRANSFORM="true"
-FAST_REFRESH="true"
-
-CLOUD_IDENTIFIER=gcp-us
-APPLICATION_ID=cldoqtyfj009nzk01wfj8r99o
-APPLICATION_URL=https://custom-objects-editor.pages.dev
-INITIAL_PROJECT_KEY=aries_dev-1
-ENTRY_POINT_URI_PATH=custom-objs
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 8deca72..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,65 +0,0 @@
-process.env.ENABLE_NEW_JSX_TRANSFORM = 'true';
-
-/**
- * @type {import("eslint").Linter.Config}
- */
-module.exports = {
- extends: [
- '@commercetools-frontend/eslint-config-mc-app',
- 'eslint:recommended',
- // "plugin:react/recommended",
- 'plugin:@typescript-eslint/eslint-recommended',
- 'plugin:@typescript-eslint/recommended',
- 'plugin:import/typescript',
- ],
- plugins: ['graphql', 'unused-imports'],
- overrides: [
- {
- files: ['**/*.ctp.graphql'],
- rules: {
- 'graphql/template-strings': [
- 'error',
- {
- env: 'literal',
- schemaJson: require('./schemas/ctp.json'),
- },
- ],
- },
- },
- ],
- ignorePatterns: [
- 'public/',
- 'node_nodules/',
- '*.config.js',
- '.eslintrc.js',
- '*.d.ts',
- ],
- rules: {
- quotes: ['error', 'single'],
- // we want to force semicolons
- semi: ['error', 'always'],
- // we use 2 spaces to indent our code
- indent: ['error', 2, { SwitchCase: 1 }],
-
- // we want to avoid extraneous spaces
- 'no-multi-spaces': ['error'],
- 'react/jsx-uses-react': ['error'],
- 'react/jsx-uses-vars': ['error'],
- 'import/order': ['error'],
- 'import/newline-after-import': ['error'],
- 'react/prop-types': 'off',
- '@typescript-eslint/no-explicit-any': 'off',
- '@typescript-eslint/explicit-module-boundary-types': 'off', //disable for CI
- 'no-unused-vars': 'off', // or "@typescript-eslint/no-unused-vars": "off",
- 'unused-imports/no-unused-imports': 'error',
- 'unused-imports/no-unused-vars': [
- 'warn',
- {
- vars: 'all',
- varsIgnorePattern: '^_',
- args: 'after-used',
- argsIgnorePattern: '^_',
- },
- ],
- },
-};
diff --git a/.github/.DS_Store b/.github/.DS_Store
deleted file mode 100644
index 3a7bee0..0000000
Binary files a/.github/.DS_Store and /dev/null differ
diff --git a/.gitignore b/.gitignore
index 1b51f32..2dd5e2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,13 +1,13 @@
-node_modules/
-dist/
-coverage/
-public/
-csp.json
-env.json
+node_modules
+coverage
+.terraform
+*.tfvars
+
+!.env
.env.local
-.firebase/
-.firebaserc
-firebase.json
-lambda.js
-_site/
-.sass-cache/
+
+.DS_Store
+.vscode
+.idea
+build/
+public/
\ No newline at end of file
diff --git a/README.md b/README.md
index 92ca40b..679bec5 100644
--- a/README.md
+++ b/README.md
@@ -1,38 +1,152 @@
-
-
-
+# Custom object editor
+This repo is a [Connect](https://docs.commercetools.com/connect) repository that allows you to manage custom objects in commercetools platform. There are two connect-apps in this repo:
-# Custom Object Editor
+- `mc-app`: A React application for managing custom objects in commercetools platform.
+- `validation-service`: A Node.js service for validating custom objects in commercetools platform.
-## Overview
-This project is a commercetools custom application that allows the end user to create, view, and manage custom objects directly from the Merchant Center. Custom objects are an extremely powerful feature of the Composable Commerce offering and is useful for storing all sorts of diverse data. This application adds to that power by exposing this data to a business user without the need to go through APIs.
+## Instalation
+Refer to [documentation](https://docs.commercetools.com/merchant-center/connect) for more information
-### Key Features
-- **User Interface:** Professional user interface that seemlessly matches the Merchant Center design.
-- **Easy Deploy:** The application can easily be deployed into multiple projects or organizations directly through the Merchant Center.
+## Development
+### Prerequisites
-## Getting Started
+- Node.js (version 18 or higher)
+- Yarn (version 1.22 or higher)
+### Local development
+1. Clone the repository
+2. Run `yarn install` in `mc-app` and `validation-service` directories to install all dependencies
+3. Run `yarn start` in `mc-app` and `validation-service` directories to start the application
+4. Refer to [documentation](https://docs.commercetools.com/connect/steps-locally-test-service) for more information
-## Contributing
-Contributions are welcome! Please feel free to submit pull requests or open issues to discuss proposed changes or report bugs.
+### Configuration
+- [mc-app](./mc-app/README.md)
+- [validation-service](./validation-service/README.md)
-For major changes, please open an issue first to discuss what you would like to change. Ensure to update tests as appropriate.
-## License
+### TODO
-This source code is provided under the [GNU AGPLv3 license](https://www.gnu.org/licenses/agpl-3.0.en.html).
+- Add more references types:
-All work product released in this repository is provided “AS IS”. We makes no other warranties, express or implied, and hereby disclaims all implied warranties, including any warranty of merchantability and warranty of fitness for a particular purpose. The demo provided is for testing purposes only, does not include any form of SLA, and should not be used in a production environment.
+ [ ] approval-flow
+ References an ApprovalFlow.
-If you would like to discuss alternative licensing or leveraging this application in your composable stack, please [reach out to Aries Solutions](https://www.ariessolutions.io/contact-aries/) to discuss options.
+ [ ] approval-rule
+ References an ApprovalRule.
-----
+ [ ] associate-role
+ References an AssociateRole.
+ [ ] attribute-group
+ References an AttributeGroup.
-# [Aries Labs](https://www.ariessolutions.io/)
+ [ ] business-unit
+ References a BusinessUnit.
-This project is part of the Aries Labs initiative. To learn more about Aries Solutions and other projects including the MACH Booster please visit our website. [ariessolutions.io](https://www.ariessolutions.io)
\ No newline at end of file
+ [x] cart
+ References a Cart.
+
+ [x] cart-discount
+ References a CartDiscount.
+
+ [x] category
+ References a Category.
+
+ [x] channel
+ References a Channel.
+
+ [x] customer
+ References a Customer.
+
+ [ ] customer-email-token
+ References a CustomerToken for email verification.
+
+ [x] customer-group
+ References a CustomerGroup.
+
+ [ ] customer-password-token
+ References a CustomerToken for password reset.
+
+ [ ] direct-discount
+ References a DirectDiscount.
+
+ [x] discount-code
+ References a DiscountCode.
+
+ [ ] extension
+ References an Extension.
+
+ [ ] inventory-entry
+ References an InventoryEntry.
+
+ [x] key-value-document
+ References a CustomObject.
+
+ [x] order
+ References an Order.
+
+ [x] order-edit
+ References an Order Edit.
+
+ [x] payment
+ References a Payment.
+
+ [x] product
+ References a Product.
+
+ [x] product-discount
+ References a ProductDiscount.
+
+ [x] product-price
+ References an Embedded Price.
+
+ [ ] product-selection
+ References a ProductSelection.
+
+ [ ] product-tailoring
+ References a ProductTailoring.
+
+ [x] product-type
+ References a ProductType.
+
+ [ ] quote
+ References a Quote.
+
+ quote-request
+ References a QuoteRequest.
+
+ [ ] review
+ References a Review.
+
+ [x] shipping-method
+ References a ShippingMethod.
+
+ [x] shopping-list
+ References a ShoppingList.
+
+ [ ] staged-quote
+ References a StagedQuote.
+
+ [ ] standalone-price
+ References a StandalonePrice.
+
+ [x] state
+ References a State.
+
+ [x] store
+ References a Store.
+
+ [ ] subscription
+ References a Subscription.
+
+ [ ] tax-category
+ References a TaxCategory.
+
+ [x] type
+ References a Type.
+
+ [x] zone
+ References a Zone.
diff --git a/connect.yaml b/connect.yaml
new file mode 100644
index 0000000..5dc78ee
--- /dev/null
+++ b/connect.yaml
@@ -0,0 +1,22 @@
+deployAs:
+ - name: mc-app
+ applicationType: merchant-center-custom-application
+ configuration:
+ standardConfiguration:
+ - key: CUSTOM_APPLICATION_ID
+ description: The Custom Application ID
+ required: true
+ - key: APPLICATION_URL
+ description: The Custom Application URL
+ required: true
+ - key: ENTRY_POINT_URI_PATH
+ description: The Application entry point URI path
+ required: true
+ default: 'custom-object-editor'
+ - key: INITIAL_PROJECT_KEY
+ description: development project key
+ required: true
+ - key: CLOUD_IDENTIFIER
+ description: one of the following gcp-us, gcp-eu, aws-us, aws-eu
+ required: false
+ default: 'gcp-us'
\ No newline at end of file
diff --git a/docs/Gemfile b/docs/Gemfile
deleted file mode 100644
index a6e3065..0000000
--- a/docs/Gemfile
+++ /dev/null
@@ -1,6 +0,0 @@
-source 'https://rubygems.org'
-gem 'jekyll-remote-theme'
-gem 'github-pages'
-gem 'jekyll-include-cache'
-gem 'rake'
-gem 'webrick'
\ No newline at end of file
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
deleted file mode 100644
index 228e618..0000000
--- a/docs/Gemfile.lock
+++ /dev/null
@@ -1,278 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- activesupport (7.1.3.2)
- base64
- bigdecimal
- concurrent-ruby (~> 1.0, >= 1.0.2)
- connection_pool (>= 2.2.5)
- drb
- i18n (>= 1.6, < 2)
- minitest (>= 5.1)
- mutex_m
- tzinfo (~> 2.0)
- addressable (2.8.6)
- public_suffix (>= 2.0.2, < 6.0)
- base64 (0.2.0)
- bigdecimal (3.1.6)
- coffee-script (2.4.1)
- coffee-script-source
- execjs
- coffee-script-source (1.12.2)
- colorator (1.1.0)
- commonmarker (0.23.10)
- concurrent-ruby (1.2.3)
- connection_pool (2.4.1)
- dnsruby (1.70.0)
- simpleidn (~> 0.2.1)
- drb (2.2.0)
- ruby2_keywords
- em-websocket (0.5.3)
- eventmachine (>= 0.12.9)
- http_parser.rb (~> 0)
- ethon (0.16.0)
- ffi (>= 1.15.0)
- eventmachine (1.2.7)
- execjs (2.9.1)
- faraday (2.9.0)
- faraday-net_http (>= 2.0, < 3.2)
- faraday-net_http (3.1.0)
- net-http
- ffi (1.16.3)
- forwardable-extended (2.6.0)
- gemoji (4.1.0)
- github-pages (231)
- github-pages-health-check (= 1.18.2)
- jekyll (= 3.9.5)
- jekyll-avatar (= 0.8.0)
- jekyll-coffeescript (= 1.2.2)
- jekyll-commonmark-ghpages (= 0.4.0)
- jekyll-default-layout (= 0.1.5)
- jekyll-feed (= 0.17.0)
- jekyll-gist (= 1.5.0)
- jekyll-github-metadata (= 2.16.1)
- jekyll-include-cache (= 0.2.1)
- jekyll-mentions (= 1.6.0)
- jekyll-optional-front-matter (= 0.3.2)
- jekyll-paginate (= 1.1.0)
- jekyll-readme-index (= 0.3.0)
- jekyll-redirect-from (= 0.16.0)
- jekyll-relative-links (= 0.6.1)
- jekyll-remote-theme (= 0.4.3)
- jekyll-sass-converter (= 1.5.2)
- jekyll-seo-tag (= 2.8.0)
- jekyll-sitemap (= 1.4.0)
- jekyll-swiss (= 1.0.0)
- jekyll-theme-architect (= 0.2.0)
- jekyll-theme-cayman (= 0.2.0)
- jekyll-theme-dinky (= 0.2.0)
- jekyll-theme-hacker (= 0.2.0)
- jekyll-theme-leap-day (= 0.2.0)
- jekyll-theme-merlot (= 0.2.0)
- jekyll-theme-midnight (= 0.2.0)
- jekyll-theme-minimal (= 0.2.0)
- jekyll-theme-modernist (= 0.2.0)
- jekyll-theme-primer (= 0.6.0)
- jekyll-theme-slate (= 0.2.0)
- jekyll-theme-tactile (= 0.2.0)
- jekyll-theme-time-machine (= 0.2.0)
- jekyll-titles-from-headings (= 0.5.3)
- jemoji (= 0.13.0)
- kramdown (= 2.4.0)
- kramdown-parser-gfm (= 1.1.0)
- liquid (= 4.0.4)
- mercenary (~> 0.3)
- minima (= 2.5.1)
- nokogiri (>= 1.13.6, < 2.0)
- rouge (= 3.30.0)
- terminal-table (~> 1.4)
- github-pages-health-check (1.18.2)
- addressable (~> 2.3)
- dnsruby (~> 1.60)
- octokit (>= 4, < 8)
- public_suffix (>= 3.0, < 6.0)
- typhoeus (~> 1.3)
- html-pipeline (2.14.3)
- activesupport (>= 2)
- nokogiri (>= 1.4)
- http_parser.rb (0.8.0)
- i18n (1.14.1)
- concurrent-ruby (~> 1.0)
- jekyll (3.9.5)
- addressable (~> 2.4)
- colorator (~> 1.0)
- em-websocket (~> 0.5)
- i18n (>= 0.7, < 2)
- jekyll-sass-converter (~> 1.0)
- jekyll-watch (~> 2.0)
- kramdown (>= 1.17, < 3)
- liquid (~> 4.0)
- mercenary (~> 0.3.3)
- pathutil (~> 0.9)
- rouge (>= 1.7, < 4)
- safe_yaml (~> 1.0)
- jekyll-avatar (0.8.0)
- jekyll (>= 3.0, < 5.0)
- jekyll-coffeescript (1.2.2)
- coffee-script (~> 2.2)
- coffee-script-source (~> 1.12)
- jekyll-commonmark (1.4.0)
- commonmarker (~> 0.22)
- jekyll-commonmark-ghpages (0.4.0)
- commonmarker (~> 0.23.7)
- jekyll (~> 3.9.0)
- jekyll-commonmark (~> 1.4.0)
- rouge (>= 2.0, < 5.0)
- jekyll-default-layout (0.1.5)
- jekyll (>= 3.0, < 5.0)
- jekyll-feed (0.17.0)
- jekyll (>= 3.7, < 5.0)
- jekyll-gist (1.5.0)
- octokit (~> 4.2)
- jekyll-github-metadata (2.16.1)
- jekyll (>= 3.4, < 5.0)
- octokit (>= 4, < 7, != 4.4.0)
- jekyll-include-cache (0.2.1)
- jekyll (>= 3.7, < 5.0)
- jekyll-mentions (1.6.0)
- html-pipeline (~> 2.3)
- jekyll (>= 3.7, < 5.0)
- jekyll-optional-front-matter (0.3.2)
- jekyll (>= 3.0, < 5.0)
- jekyll-paginate (1.1.0)
- jekyll-readme-index (0.3.0)
- jekyll (>= 3.0, < 5.0)
- jekyll-redirect-from (0.16.0)
- jekyll (>= 3.3, < 5.0)
- jekyll-relative-links (0.6.1)
- jekyll (>= 3.3, < 5.0)
- jekyll-remote-theme (0.4.3)
- addressable (~> 2.0)
- jekyll (>= 3.5, < 5.0)
- jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
- rubyzip (>= 1.3.0, < 3.0)
- jekyll-sass-converter (1.5.2)
- sass (~> 3.4)
- jekyll-seo-tag (2.8.0)
- jekyll (>= 3.8, < 5.0)
- jekyll-sitemap (1.4.0)
- jekyll (>= 3.7, < 5.0)
- jekyll-swiss (1.0.0)
- jekyll-theme-architect (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-cayman (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-dinky (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-hacker (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-leap-day (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-merlot (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-midnight (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-minimal (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-modernist (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-primer (0.6.0)
- jekyll (> 3.5, < 5.0)
- jekyll-github-metadata (~> 2.9)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-slate (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-tactile (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-time-machine (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-titles-from-headings (0.5.3)
- jekyll (>= 3.3, < 5.0)
- jekyll-watch (2.2.1)
- listen (~> 3.0)
- jemoji (0.13.0)
- gemoji (>= 3, < 5)
- html-pipeline (~> 2.2)
- jekyll (>= 3.0, < 5.0)
- kramdown (2.4.0)
- rexml
- kramdown-parser-gfm (1.1.0)
- kramdown (~> 2.0)
- liquid (4.0.4)
- listen (3.8.0)
- rb-fsevent (~> 0.10, >= 0.10.3)
- rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.3.6)
- minima (2.5.1)
- jekyll (>= 3.5, < 5.0)
- jekyll-feed (~> 0.9)
- jekyll-seo-tag (~> 2.1)
- minitest (5.22.2)
- mutex_m (0.2.0)
- net-http (0.4.1)
- uri
- nokogiri (1.16.2-x86_64-linux)
- racc (~> 1.4)
- octokit (4.25.1)
- faraday (>= 1, < 3)
- sawyer (~> 0.9)
- pathutil (0.16.2)
- forwardable-extended (~> 2.6)
- public_suffix (5.0.4)
- racc (1.7.3)
- rake (13.1.0)
- rb-fsevent (0.11.2)
- rb-inotify (0.10.1)
- ffi (~> 1.0)
- rexml (3.2.6)
- rouge (3.30.0)
- ruby2_keywords (0.0.5)
- rubyzip (2.3.2)
- safe_yaml (1.0.5)
- sass (3.7.4)
- sass-listen (~> 4.0.0)
- sass-listen (4.0.0)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
- sawyer (0.9.2)
- addressable (>= 2.3.5)
- faraday (>= 0.17.3, < 3)
- simpleidn (0.2.1)
- unf (~> 0.1.4)
- terminal-table (1.8.0)
- unicode-display_width (~> 1.1, >= 1.1.1)
- typhoeus (1.4.1)
- ethon (>= 0.9.0)
- tzinfo (2.0.6)
- concurrent-ruby (~> 1.0)
- unf (0.1.4)
- unf_ext
- unf_ext (0.0.9.1)
- unicode-display_width (1.8.0)
- uri (0.13.0)
- webrick (1.8.1)
-
-PLATFORMS
- x86_64-linux
-
-DEPENDENCIES
- github-pages
- jekyll-include-cache
- jekyll-remote-theme
- rake
- webrick
-
-BUNDLED WITH
- 2.3.5
diff --git a/docs/_config.yml b/docs/_config.yml
deleted file mode 100644
index 5042f5e..0000000
--- a/docs/_config.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-title: Custom Objects Editor
-description: Create and manage custom objects on the commercetools platform.
-remote_theme: pmarsceill/just-the-docs
-aux_links:
- 'View on GitHub':
- - '//github.com/ariessolutionsio/custom-objects-editor/'
-footer_content: ''
-logo: 'assets/Labs-For-Dk_BG.svg'
-color_scheme: aries
-plugins:
- - jekyll-remote-theme
- - jekyll-include-cache
diff --git a/docs/_includes/footer_custom.html b/docs/_includes/footer_custom.html
deleted file mode 100644
index 6cced25..0000000
--- a/docs/_includes/footer_custom.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/_includes/nav_footer_custom.html b/docs/_includes/nav_footer_custom.html
deleted file mode 100644
index 434dfe2..0000000
--- a/docs/_includes/nav_footer_custom.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/_sass/color_schemes/aries.scss b/docs/_sass/color_schemes/aries.scss
deleted file mode 100644
index 7005af7..0000000
--- a/docs/_sass/color_schemes/aries.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-@import "./color_schemes/dark";
-
-$white: #fff !default;
-$black: #000000;
-$light-grey: #d9d9d9;
-$extra-light-grey: #d9d9d9;
-$dark-grey: #a5a5a5;
-$text: #1a1a1a;
-$magenta: #b42573;
-$purple: #6868cf;
-$red: #670a3a;
-
-$link-color: $magenta;
-$btn-primary-color: $magenta;
-$base-button-color: $purple !default;
diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss
deleted file mode 100644
index c458882..0000000
--- a/docs/_sass/custom/custom.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-footer {
- text-align: center;
-}
-.site-footer-logo {
- display:block;
- margin: 0 auto;
- text-align: center;
-}
-.site-footer-logo img {
- max-width: 100%;
- width: 100px;
- height: auto;
-}
-
-@media (min-width: 50rem) {
- .site-header {
- max-height: 12rem;
- height: 10rem;
- }
-}
\ No newline at end of file
diff --git a/docs/assets/Labs-For-Dk_BG.svg b/docs/assets/Labs-For-Dk_BG.svg
deleted file mode 100644
index f502356..0000000
--- a/docs/assets/Labs-For-Dk_BG.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/assets/aries-logo-dark.png b/docs/assets/aries-logo-dark.png
deleted file mode 100644
index ca0a4b6..0000000
Binary files a/docs/assets/aries-logo-dark.png and /dev/null differ
diff --git a/docs/assets/custom-application-registration-main.png b/docs/assets/custom-application-registration-main.png
deleted file mode 100644
index 98c37fe..0000000
Binary files a/docs/assets/custom-application-registration-main.png and /dev/null differ
diff --git a/docs/assets/custom-application-registration-sub.png b/docs/assets/custom-application-registration-sub.png
deleted file mode 100644
index 6e970c4..0000000
Binary files a/docs/assets/custom-application-registration-sub.png and /dev/null differ
diff --git a/docs/assets/custom-object-data-model.png b/docs/assets/custom-object-data-model.png
deleted file mode 100644
index 984249f..0000000
Binary files a/docs/assets/custom-object-data-model.png and /dev/null differ
diff --git a/docs/assets/custom-object-management.gif b/docs/assets/custom-object-management.gif
deleted file mode 100644
index 4c37ac9..0000000
Binary files a/docs/assets/custom-object-management.gif and /dev/null differ
diff --git a/docs/assets/custom-objects-list.gif b/docs/assets/custom-objects-list.gif
deleted file mode 100644
index 82980ab..0000000
Binary files a/docs/assets/custom-objects-list.gif and /dev/null differ
diff --git a/docs/assets/schema-data-model.png b/docs/assets/schema-data-model.png
deleted file mode 100644
index eda5b88..0000000
Binary files a/docs/assets/schema-data-model.png and /dev/null differ
diff --git a/docs/assets/schema-management.gif b/docs/assets/schema-management.gif
deleted file mode 100644
index 8ae07d7..0000000
Binary files a/docs/assets/schema-management.gif and /dev/null differ
diff --git a/docs/assets/schemas-list.gif b/docs/assets/schemas-list.gif
deleted file mode 100644
index 4ca274e..0000000
Binary files a/docs/assets/schemas-list.gif and /dev/null differ
diff --git a/docs/datamodel.md b/docs/datamodel.md
deleted file mode 100644
index f6cbe20..0000000
--- a/docs/datamodel.md
+++ /dev/null
@@ -1,212 +0,0 @@
----
-layout: default
-title: Data Model
-nav_order: 3
----
-
-
-## Data Model
-{: .no_toc }
-
-1. TOC
-{:toc}
-
-
-
-### Container Schema
-
-Container schemas are
-[Custom Objects](https://docs.commercetools.com/api/projects/custom-objects).
-
-- **container** - `mc-custom-object-schema`
-- **key** - String, matching the pattern `[-_~.a-zA-Z0-9]+` - Required
-- **value** - Object
- - **attributes** - Array of [Attribute](#attribute) - Required
-
-
-#### Attribute
-{: .no_toc }
-
-
-- **name** - String - Required\
- Displayed in [start case](https://lodash.com/docs/4.17.15#startCase) in the Custom
- Object form as form field titles. Saved in schema as [kebab case](https://lodash.com/docs/4.17.15#kebabCase).
-- **type** - [Type](#type) - Required\
- The type of the attribute. Determines the Custom Object form field input type.
-- **set** - Boolean\
- Flag indicating if the attribute is an array/set.
-- **required** - Boolean\
- Flag indicating if the attribute is required.
-- **display** - Boolean\
- Flag indicating if the attribute should be displayed in the [Custom Object List](#custom-object-list)
- Value column
-- **attributes** - Array of [Attribute](#attribute) - Required when `type` is
- Object
-- **reference** - [Reference](#reference) - Required when `type` is Reference
-- **enum** - Array of [Enum](#enum) - Required when `type` is List (enum)
-- **lenum** - Array of [LocalizedEnum](#localizedenum) - Required when `type` is
- Localized List (enum)
-
-
-#### Type
-{: .no_toc }
-
-
-List of available types.
-
-- Text
-- [Localized Text](https://docs.commercetools.com/api/types#localizedstring)
-- Number
-- Boolean
-- [Money](https://docs.commercetools.com/api/types#moneys)
-- [Date](https://docs.commercetools.com/api/types#date)
-- [Time](https://docs.commercetools.com/api/types#time)
-- [Date and time](https://docs.commercetools.com/api/types#datetime)
-- List (enum)
-- Localized List (enum)
-- [Reference](https://docs.commercetools.com/api/types#reference)
- by ID or key
-- Object
-
-
-#### Reference
-{: .no_toc }
-
-
-- **by** - Enum (id, key)
-- **type** -
- [ReferenceType](https://docs.commercetools.com/api/types#reference)
-
-
-#### Enum
-{: .no_toc }
-
-
-- **value** - String - Required
-- **label** - String - Required\
- The display text.
-
-
-#### LocalizedEnum
-{: .no_toc }
-
-
-- **value** - String - Required
-- **label** -
- [LocalizedString](https://docs.commercetools.com/api/types#localizedstring) -
- Required
-
-
-
-
-#### Example Data
-{: .no_toc }
-
-
-```json
-{
- "id": "a372c000-9f4c-4b8a-9e13-8d2e64f51bcd",
- "version": 1,
- "container": "mc-custom-object-schema",
- "key": "example-schema",
- "value": {
- "attributes": [
- {
- "attributes": [
- {
- "display": true,
- "reference": { "type": "product", "by": "id" },
- "required": true,
- "set": false,
- "type": "Reference",
- "name": "product"
- },
- { "required": false, "set": true, "type": "String", "name": "text" }
- ],
- "display": false,
- "required": false,
- "set": false,
- "type": "Object",
- "name": "object"
- },
- {
- "display": true,
- "enum": [
- { "label": "one", "value": "1" },
- { "label": "two", "value": "2" }
- ],
- "required": false,
- "set": false,
- "type": "Enum",
- "name": "list"
- },
- {
- "lenum": [
- { "label": { "de": "one (de)", "en": "one" }, "value": "1" },
- { "label": { "de": "two (de)", "en": "two" }, "value": "2" }
- ],
- "required": false,
- "set": false,
- "type": "LocalizedEnum",
- "name": "localized list"
- }
- ]
- },
- "createdAt": "2024-01-02T15:25:52.545Z",
- "lastModifiedAt": "2024-01-02T15:25:52.545Z",
- "lastModifiedBy": {
- "isPlatformClient": true,
- "user": { "typeId": "user", "id": "a372c000-9f4c-4b8a-9e13-8d2e64f51bcd" }
- },
- "createdBy": {
- "isPlatformClient": true,
- "user": { "typeId": "user", "id": "a372c000-9f4c-4b8a-9e13-8d2e64f51bcd" }
- }
-}
-```
-
-### Custom Object
-
-- **container** - String\
- The key of a [container schema](#container-schema).
-- **key** - String, matching the pattern `[-_~.a-zA-Z0-9]+` - Required
-- **value** - Object\
- Dynamically determined based on the schema's attributes. The object's keys are
- the [attribute's](#attribute) name in [kebab case](https://lodash.com/docs/4.17.15#kebabCase).
-
-
-
-
-#### Example Data
-{: .no_toc }
-
-
-```json
-{
- "id": "a372c000-9f4c-4b8a-9e13-8d2e64f51bcd",
- "version": 1,
- "container": "example-schema",
- "key": "example-custom-object",
- "value": {
- "localizedList": "1",
- "list": "2",
- "object": {
- "text": ["hello", "world"],
- "product": {
- "id": "a372c000-9f4c-4b8a-9e13-8d2e64f51bcd",
- "typeId": "product"
- }
- }
- },
- "createdAt": "2024-01-02T15:28:57.702Z",
- "lastModifiedAt": "2024-01-02T15:28:57.702Z",
- "lastModifiedBy": {
- "isPlatformClient": true,
- "user": { "typeId": "user", "id": "a372c000-9f4c-4b8a-9e13-8d2e64f51bcd" }
- },
- "createdBy": {
- "isPlatformClient": true,
- "user": { "typeId": "user", "id": "a372c000-9f4c-4b8a-9e13-8d2e64f51bcd" }
- }
-}
-```
diff --git a/docs/development.md b/docs/development.md
deleted file mode 100644
index 67d6263..0000000
--- a/docs/development.md
+++ /dev/null
@@ -1,139 +0,0 @@
----
-layout: default
-title: Development
-nav_order: 3
----
-
-
-## Development
-{: .no_toc }
-
-1. TOC
-{:toc}
-
-
-
-### Technology
-
-- [ReactJS](https://reactjs.org/)
-- [Apollo](https://www.apollographql.com/docs/react/) &
- [GraphQL](https://graphql.org/learn/)
-- [Merchant Center Application Kit](https://docs.commercetools.com/custom-applications/)
-- [UI Kit](https://uikit.commercetools.com/?path=/story/introduction--getting-started) -
- Merchant Center component library
-- [Yarn](https://classic.yarnpkg.com/en/docs/getting-started) - Package manager
-- [Jest](https://jestjs.io/docs/en/getting-started) - Test runner
-- [Enzyme](https://enzymejs.github.io/enzyme/) - React testing utility
-- [Prettier](https://prettier.io/docs/en/index.html) - Code formatter
-- [ESLint](https://eslint.org/docs/user-guide/getting-started) - JS, CSS, and
- GraphQL linter
-
-
-### Installation
-
-Clone the repository.
-
-Simply run `yarn` or `yarn install` from the repository root to install the
-application's dependencies.
-
-```bash
-yarn
-```
-If this is the first time running the application locally, create an `env.json`
-file at the root directory using `env.local.json` as an example. Based on your
-[region](https://docs.commercetools.com/api/general-concepts#regions), you may find it
-necessary to modify the values of `frontendHost`, `mcApiUrl`, and `location`.
-
-Run the following command to start the development server and launch the
-application:
-
-```bash
-yarn start
-```
-
-### Build
-
-Run the following command to build the
-[production bundles](https://docs.commercetools.com/custom-applications/development/going-to-production#building-production-bundles)
-with webpack:
-
-```bash
-yarn build
-```
-
-### Linting & Formatting
-
-#### Formatting code
-
-Run the following command to format JS, CSS, JSON and GraphQL files
-
-```shell
-yarn format
-```
-
-#### Linting code
-
-Run the following command to lint JS, CSS, and GraphQL files
-
-```shell
-yarn lint
-```
-
-
-##### Linting GraphQL Queries
-{: .no_toc }
-
-
-A prerequisite for linting GraphQL queries is generating a `schema.graphql`
-file, which contains the Types exposed by CTP API. Every time the API introduces
-new Types, Queries or Mutations, the local `schema.graphql` must be updated.
-
-
-##### Generating CTP GraphQL schema
-{: .no_toc }
-
-
-1. If you haven't done so already, create an API client under
- `Settings -> Developer Settings` in Merchant Center for your project
-2. Generate an access token using the
- [Client Credentials flow](https://docs.commercetools.com/tutorials/mobile-spa#creating-a-regular-token-with-the-client-credentials-flow)
-3. Export both your Merchant Center project key and generated access token as
- environment variables
-4. Retrieve schema with `graphql-cli`
-
-```shell
-export PROJECT_KEY={project_key}
-export AUTH_TOKEN={access_token}
-npx graphql-cli get-schema
-```
-
-### Git Hooks
-
-Git hooks are configured using
-[Husky](https://github.com/typicode/husky/blob/master/DOCS.md).
-
-- **Pre-commit**: JS, CSS, and GraphQL files are linted (ESLint/Stylelint) and
- formatted (Prettier). Fixes are automatically added to Git.
-- **Commit Message**: Commit messages are linted against the
- [conventional commit format](https://www.conventionalcommits.org) using
- commitlint
-
-## Tests
-
-Run the following command to run the tests:
-
-```shell
-yarn test
-```
-
-To run the tests in watch mode:
-
-```shell
-yarn test:watch
-```
-
-To run the tests with coverage:
-
-```shell
-yarn test:coverage
-```
diff --git a/docs/favicon.ico b/docs/favicon.ico
deleted file mode 100644
index 79b8f33..0000000
Binary files a/docs/favicon.ico and /dev/null differ
diff --git a/docs/features.md b/docs/features.md
deleted file mode 100644
index 3226646..0000000
--- a/docs/features.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-layout: default
-title: Features
-nav_order: 2
----
-
-
-## Features
-{: .no_toc }
-
-1. TOC
-{:toc}
-
-
-
-### Container Schema List
-
-A grid displaying the container schemas within the commercetools project.
-
-
-
-- Pagination
- - Default page size of 15
- - Enabled when the number of schemas exceeds the page size
-- Sorting
- - Sortable values are schema key, last modified date, and created date
- - Initial sort is key in ascending order (alphabetical)
-
-### Container Schema Management
-
-By default, Custom Objects have no defined schema with their value consisting of
-a JSON string. This application introduces a schema definition where the user
-defines the fields and requirements for building a new custom object. Each
-namespace has its own schema definition.
-
-
-
-- Create and edit container schemas
-- Allows for primitive data as well as sets/arrays
-- Attribute types
- - Text
- - Localized Text
- - Number
- - Boolean
- - Money
- - Date
- - Time
- - Date and time
- - List (enum)
- - Localized List (enum)
- - Reference by ID or key
- - Object
-- Choose which attributes(s) are displayed in the Value column of the
- [Custom Object List](#custom-object-list) by selecting "Display in List"
-- Schemas can be modified to add or delete attributes
-
-### Custom Object List
-
-The landing page for the Custom Objects custom application is a list displaying
-the managed Custom Objects within the commercetools project and ignores API
-managed namespaces.
-
-
-
-- Pagination
- - Default page size of 20,
- - Displayed when the number of Custom Objects exceeds the page size
-- Sorting
- - Sortable columns are Container, Key, and Last Modified
- - Initial sort is Last Modified in descending order (most recently modified first)
-- Filter by Custom Object container and key (exact match)
-- Attributes displayed in the Value column are managed by the Custom Object's
- schema. If no attributes have been flagged for display, the entire Custom
- Object value is displayed.
-
-### Custom Object Management
-
-
-
-- Create and edit Custom Objects with managed schemas
-- Field level validation for types and required fields
-- Localized fields default to locales defined in the project settings
-
-### Limitations
-
-This application only displays Custom Objects created with a schema managed by
-this application. Custom Objects created through the API without a schema are
-not displayed.
diff --git a/docs/index.md b/docs/index.md
deleted file mode 100644
index 84d63df..0000000
--- a/docs/index.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-layout: default
-title: Home
-nav_order: 1
-permalink: /
----
-
-
-# Custom Objects Editor
-
-Manage your custom objects directly from the Merchant Center.
-{: .fs-6 .fw-300 }
-
-commercetools offers unparalleled data configuration; however, there are
-situations where a company needs to store information that does not fit neatly
-into an existing endpoint. In these situations, commercetools offers a generic
-endpoint - [Custom Objects](https://docs.commercetools.com/api/projects/custom-objects).
-Custom Objects are a great way to store your JSON data. Some example use-cases may include
-brand data, company profiles, shared product data, and feature flags.
-
-This application extends the commercetools Merchant Center to allow an end-user to define
-a JSON data schema and Create, Read, Update, and Delete objects tied to that schema.
-
-_NOTE: Data modeling is an important aspect of any project and can have a big impact on your
-project's success and application performance. We recommend getting advice from an experience
-professional. Please feel free to [reach out](https://www.ariessolutions.io/contact-aries/) with any questions._
-
-[Get started now](#getting-started){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } [View it on GitHub](https://github.com/ariessolutionsio/custom-objects-editor){: .btn .fs-5 .mb-4 .mb-md-0 }
-
----
-
-
-## Getting started
-
-### Configure Custom Application with Merchant Center
-
-
-
-In order to use this custom application, you'll need to register it inside of the Merchant Center.
-You can **demo** the application with our hosted version. For use in production please deploy the
-application to your own cloud environment or contact us for help.
-
- - [TBD](LINK)
-
-To register your Custom Application with a Merchant Center project:
-
-1. In the main navigation of the Merchant Center, navigate to **User Icon > Manage Organization and Teams**. Click on the organizaiton where you want to install the application.
-
-2. From your organization page, navigate to the tab **Custom Applications** and clck the **Configure Custom Applications** button. Then click the **Add a Custom Application** button.
-
-3. Fill in the fields as follows:
-
-- **Application Name**: Custom Objects
-- **Application Url**: Your hosting location
-- **Application entry point URI path**: `custom-objects`
-- **Permissions**: Manage Products, Manage Orders, Manage Customers
-- **Sub Navigation** _(Optional)_
- - Custom Object List
- - **Link To**: `/`
- - **Link Permissions**: Manage Products, Manage Orders, Manage Customers
- - Container Schema List
- - **Link To**: `containers`
- - **Link Permissions**: Manage Products, Manage Orders, Manage Customers
-
-4. Click **Register Custom Application**.
-
-5. Install the application in your desired projects. From the organization's Custom Applications screen click on the **Install Custom Applications** button. Choose the application. Install in all or selected projects for that organization.
-
----
-
-## License
-
-Aries code and modifications licensed under the [GNU AGPLv3 license](https://www.gnu.org/licenses/agpl-3.0.en.html).
-Libraries, dependencies, and code pulled into this project will retain their existing license.
-
-If you would like to discuss alternative licensing or leveraging this application in your composable stack, please [reach out to Aries Solutions](https://www.ariessolutions.io/contact-aries/) to discuss options.
-
-#### Disclaimer
-
-Please note: all tools / scripts in this repository are released for use "AS IS"
-without any warranties of any kind, including, but not limited to their
-installation, use, or performance. We disclaim any and all warranties, either
-express or implied, including but not limited to any warranty of
-noninfringement, merchantability, and/ or fitness for a particular purpose. We
-do not warrant that the technology will meet your requirements, that the
-operation thereof will be uninterrupted or error-free, or that any errors will
-be corrected.
-
-Any use of these scripts and tools is at your own risk. There is no guarantee
-that they have been through thorough testing in a comparable environment and we
-are not responsible for any damage or data loss incurred with their use.
-
-You are responsible for reviewing and testing any scripts you run _thoroughly_
-before use in any non-testing environment.
-
-## Support
-
-Need help with your project? Contact the Aries Solutions team for
-assistance.
diff --git a/jest-runner-eslint.config.js b/jest-runner-eslint.config.js
deleted file mode 100644
index 0c5ad6a..0000000
--- a/jest-runner-eslint.config.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- cliOptions: {
- format: require.resolve('eslint-formatter-pretty'),
- rules: {
- 'import/no-unresolved': 2
- },
- fix: true,
- },
-};
diff --git a/jest.eslint-graphql.config.js b/jest.eslint-graphql.config.js
deleted file mode 100644
index b5dbc82..0000000
--- a/jest.eslint-graphql.config.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- runner: 'jest-runner-eslint',
- displayName: 'eslint',
- modulePathIgnorePatterns: ['dist', 'coverage'],
- testPathIgnorePatterns: ['schema.graphql'],
- moduleFileExtensions: ['graphql'],
- testMatch: ['/**/*.graphql'],
- watchPlugins: ['jest-plugin-filename'],
-};
diff --git a/jest.eslint.config.js b/jest.eslint.config.js
deleted file mode 100644
index 631bcf4..0000000
--- a/jest.eslint.config.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * @type {import('@jest/types').Config.ProjectConfig}
- */
-module.exports = {
- runner: 'jest-runner-eslint',
- displayName: 'eslint',
- moduleFileExtensions: ['js', 'ts', 'tsx'],
- modulePathIgnorePatterns: [
- '.yarn',
- '.cache',
- 'build/',
- 'dist/',
- 'public/',
- 'generated',
- ],
- testMatch: ['/**/*.js', '/**/*.ts', '/**/*.tsx'],
- watchPlugins: [
- 'jest-watch-typeahead/filename',
- 'jest-runner-eslint/watch-fix',
- ],
-};
diff --git a/jest.stylelint.config.js b/jest.stylelint.config.js
deleted file mode 100644
index 9dfb67f..0000000
--- a/jest.stylelint.config.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
- runner: 'jest-runner-stylelint',
- displayName: 'stylelint',
- moduleFileExtensions: ['css'],
- modulePathIgnorePatterns: ['dist', 'coverage', 'public'],
- testMatch: ['/**/*.css'],
- watchPlugins: ['jest-plugin-filename'],
-};
diff --git a/jest.test.config.js b/jest.test.config.js
deleted file mode 100644
index 406dd5b..0000000
--- a/jest.test.config.js
+++ /dev/null
@@ -1,9 +0,0 @@
-process.env.ENABLE_NEW_JSX_TRANSFORM = 'true';
-
-/**
- * @type {import('@jest/types').Config.ProjectConfig}
- */
-module.exports = {
- preset: '@commercetools-frontend/jest-preset-mc-app/typescript',
- setupFiles: ['./jest.setup.js'],
-};
diff --git a/lint-staged.config.js b/lint-staged.config.js
deleted file mode 100644
index fe0cea4..0000000
--- a/lint-staged.config.js
+++ /dev/null
@@ -1,14 +0,0 @@
-module.exports = {
- '*.js': [
- 'yarn lint:js --reporters=jest-silent-reporter --onlyChanged',
- 'yarn format:js',
- ],
- '*.css': [
- 'yarn lint:css -- --reporters=jest-silent-reporter --onlyChanged',
- 'yarn format:css',
- ],
- '*.graphql': [
- 'yarn lint:graphql --reporters=jest-silent-reporter --onlyChanged',
- 'yarn format:graphql',
- ]
-};
diff --git a/mc-app/.env b/mc-app/.env
new file mode 100644
index 0000000..a9e1ae9
--- /dev/null
+++ b/mc-app/.env
@@ -0,0 +1,7 @@
+ENABLE_NEW_JSX_TRANSFORM="true"
+FAST_REFRESH="true"
+CLOUD_IDENTIFIER="gcp-us"
+CUSTOM_APPLICATION_ID=
+APPLICATION_URL="https://todo.com"
+INITIAL_PROJECT_KEY=us-store
+ENTRY_POINT_URI_PATH="custom-object-editor"
\ No newline at end of file
diff --git a/.eslintignore b/mc-app/.eslintignore
similarity index 100%
rename from .eslintignore
rename to mc-app/.eslintignore
diff --git a/mc-app/.eslintrc.js b/mc-app/.eslintrc.js
new file mode 100644
index 0000000..29969a2
--- /dev/null
+++ b/mc-app/.eslintrc.js
@@ -0,0 +1,65 @@
+process.env.ENABLE_NEW_JSX_TRANSFORM = "true";
+
+/**
+ * @type {import("eslint").Linter.Config}
+ */
+module.exports = {
+ extends: [
+ "@commercetools-frontend/eslint-config-mc-app",
+ "eslint:recommended",
+ // "plugin:react/recommended",
+ "plugin:@typescript-eslint/eslint-recommended",
+ "plugin:@typescript-eslint/recommended",
+ "plugin:import/typescript",
+ ],
+ plugins: ["graphql", "unused-imports"],
+ overrides: [
+ {
+ files: ["**/*.ctp.graphql"],
+ rules: {
+ "graphql/template-strings": [
+ "error",
+ {
+ env: "literal",
+ schemaJson: require("./schemas/ctp.json"),
+ },
+ ],
+ },
+ },
+ ],
+ ignorePatterns: [
+ "public/",
+ "node_nodules/",
+ "*.config.js",
+ ".eslintrc.js",
+ "*.d.ts",
+ ],
+ rules: {
+ quotes: ["error", "single"],
+ // we want to force semicolons
+ semi: ["error", "always"],
+ // we use 2 spaces to indent our code
+ indent: ["error", 2, { SwitchCase: 1 }],
+
+ // we want to avoid extraneous spaces
+ "no-multi-spaces": ["error"],
+ "react/jsx-uses-react": ["error"],
+ "react/jsx-uses-vars": ["error"],
+ "import/order": ["error"],
+ "import/newline-after-import": ["error"],
+ "react/prop-types": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/explicit-module-boundary-types": "off", //disable for CI
+ "no-unused-vars": "off", // or "@typescript-eslint/no-unused-vars": "off",
+ "unused-imports/no-unused-imports": "error",
+ "unused-imports/no-unused-vars": [
+ "warn",
+ {
+ vars: "all",
+ varsIgnorePattern: "^_",
+ args: "after-used",
+ argsIgnorePattern: "^_",
+ },
+ ],
+ },
+};
diff --git a/.github/ISSUE_TEMPLATE/BUG-REPORT.yml b/mc-app/.github/ISSUE_TEMPLATE/BUG-REPORT.yml
similarity index 100%
rename from .github/ISSUE_TEMPLATE/BUG-REPORT.yml
rename to mc-app/.github/ISSUE_TEMPLATE/BUG-REPORT.yml
diff --git a/.github/ISSUE_TEMPLATE/CONTRIBUTING.md b/mc-app/.github/ISSUE_TEMPLATE/CONTRIBUTING.md
similarity index 100%
rename from .github/ISSUE_TEMPLATE/CONTRIBUTING.md
rename to mc-app/.github/ISSUE_TEMPLATE/CONTRIBUTING.md
diff --git a/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml b/mc-app/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
similarity index 100%
rename from .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
rename to mc-app/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/mc-app/.github/ISSUE_TEMPLATE/config.yml
similarity index 100%
rename from .github/ISSUE_TEMPLATE/config.yml
rename to mc-app/.github/ISSUE_TEMPLATE/config.yml
diff --git a/.github/workflows/build.yml b/mc-app/.github/workflows/build.yml
similarity index 100%
rename from .github/workflows/build.yml
rename to mc-app/.github/workflows/build.yml
diff --git a/mc-app/.gitignore b/mc-app/.gitignore
new file mode 100644
index 0000000..1b51f32
--- /dev/null
+++ b/mc-app/.gitignore
@@ -0,0 +1,13 @@
+node_modules/
+dist/
+coverage/
+public/
+csp.json
+env.json
+.env.local
+.firebase/
+.firebaserc
+firebase.json
+lambda.js
+_site/
+.sass-cache/
diff --git a/mc-app/.prettierignore b/mc-app/.prettierignore
new file mode 100644
index 0000000..ecef4c4
--- /dev/null
+++ b/mc-app/.prettierignore
@@ -0,0 +1,4 @@
+i18n/data/*.json
+public
+.cache
+.yarn
diff --git a/mc-app/.prettierrc b/mc-app/.prettierrc
new file mode 100644
index 0000000..ca5f8dc
--- /dev/null
+++ b/mc-app/.prettierrc
@@ -0,0 +1,19 @@
+{
+ "trailingComma": "es5",
+ "singleQuote": true,
+ "parser": "typescript",
+ "overrides": [
+ {
+ "files": "*.json",
+ "options": {
+ "parser": "json"
+ }
+ },
+ {
+ "files": "*.graphql",
+ "options": {
+ "parser": "graphql"
+ }
+ }
+ ]
+}
diff --git a/@types-extensions/graphql-ctp/index.d.ts b/mc-app/@types-extensions/graphql-ctp/index.d.ts
similarity index 61%
rename from @types-extensions/graphql-ctp/index.d.ts
rename to mc-app/@types-extensions/graphql-ctp/index.d.ts
index 72340cf..6d72c38 100644
--- a/@types-extensions/graphql-ctp/index.d.ts
+++ b/mc-app/@types-extensions/graphql-ctp/index.d.ts
@@ -1,24 +1,24 @@
/* THIS IS A GENERATED FILE */
/* eslint-disable import/no-duplicates */
-declare module '*/fetch-channel-details.ctp.graphql' {
- import { DocumentNode } from 'graphql';
+declare module "*/fetch-channel-details.ctp.graphql" {
+ import { DocumentNode } from "graphql";
const defaultDocument: DocumentNode;
export const FetchChannelDetails: DocumentNode;
export default defaultDocument;
}
-declare module '*/fetch-channels.ctp.graphql' {
- import { DocumentNode } from 'graphql';
+declare module "*/fetch-channels.ctp.graphql" {
+ import { DocumentNode } from "graphql";
const defaultDocument: DocumentNode;
export const FetchChannels: DocumentNode;
export default defaultDocument;
}
-declare module '*/update-channel-details.ctp.graphql' {
- import { DocumentNode } from 'graphql';
+declare module "*/update-channel-details.ctp.graphql" {
+ import { DocumentNode } from "graphql";
const defaultDocument: DocumentNode;
export const UpdateChannelDetails: DocumentNode;
diff --git a/@types/commercetools__sync-actions/index.d.ts b/mc-app/@types/commercetools__sync-actions/index.d.ts
similarity index 87%
rename from @types/commercetools__sync-actions/index.d.ts
rename to mc-app/@types/commercetools__sync-actions/index.d.ts
index ef4e014..14da4a5 100644
--- a/@types/commercetools__sync-actions/index.d.ts
+++ b/mc-app/@types/commercetools__sync-actions/index.d.ts
@@ -1,4 +1,4 @@
-declare module '@commercetools/sync-actions' {
+declare module "@commercetools/sync-actions" {
export type SyncAction = { action: string; [x: string]: unknown };
function buildActions(
nextDraft: NextDraft,
diff --git a/LICENSE b/mc-app/LICENSE
similarity index 100%
rename from LICENSE
rename to mc-app/LICENSE
diff --git a/mc-app/README.md b/mc-app/README.md
new file mode 100644
index 0000000..f2db4eb
--- /dev/null
+++ b/mc-app/README.md
@@ -0,0 +1,36 @@
+
+# Custom Object Editor
+
+## Overview
+This project is a commercetools custom application that allows the end user to create, view, and manage custom objects directly from the Merchant Center. Custom objects are an extremely powerful feature of the Composable Commerce offering and is useful for storing all sorts of diverse data. This application adds to that power by exposing this data to a business user without the need to go through APIs.
+
+### Key Features
+- **User Interface:** Professional user interface that seemlessly matches the Merchant Center design.
+- **Easy Deploy:** The application can easily be deployed into multiple projects or organizations directly through the Merchant Center.
+
+
+## Getting Started
+
+### Prerequisites
+.env file
+```
+ENABLE_NEW_JSX_TRANSFORM="true"
+FAST_REFRESH="true"
+CLOUD_IDENTIFIER="gcp-us"
+CUSTOM_APPLICATION_ID=
+APPLICATION_URL="https://todo.com"
+INITIAL_PROJECT_KEY=todo
+ENTRY_POINT_URI_PATH="custom-object-editor"
+```
+
+
+## Contributing
+Contributions are welcome! Please feel free to submit pull requests or open issues to discuss proposed changes or report bugs.
+
+For major changes, please open an issue first to discuss what you would like to change. Ensure to update tests as appropriate.
+
+## License
+
+This source code is provided under the [GNU AGPLv3 license](https://www.gnu.org/licenses/agpl-3.0.en.html).
+
+All work product released in this repository is provided “AS IS”. We makes no other warranties, express or implied, and hereby disclaims all implied warranties, including any warranty of merchantability and warranty of fitness for a particular purpose. The demo provided is for testing purposes only, does not include any form of SLA, and should not be used in a production environment.
diff --git a/config/S3-CloudFront-template.json b/mc-app/config/S3-CloudFront-template.json
similarity index 100%
rename from config/S3-CloudFront-template.json
rename to mc-app/config/S3-CloudFront-template.json
diff --git a/config/transformer-aws.js b/mc-app/config/transformer-aws.js
similarity index 100%
rename from config/transformer-aws.js
rename to mc-app/config/transformer-aws.js
diff --git a/config/transformer-firebase.js b/mc-app/config/transformer-firebase.js
similarity index 100%
rename from config/transformer-firebase.js
rename to mc-app/config/transformer-firebase.js
diff --git a/custom-application-config.mjs b/mc-app/custom-application-config.mjs
similarity index 61%
rename from custom-application-config.mjs
rename to mc-app/custom-application-config.mjs
index af7c291..cad46af 100644
--- a/custom-application-config.mjs
+++ b/mc-app/custom-application-config.mjs
@@ -1,15 +1,15 @@
-import { PERMISSIONS, entryPointUriPath } from './src/constants';
+import { PERMISSIONS } from './src/constants';
/**
* @type {import('@commercetools-frontend/application-config').ConfigOptions}
*/
const config = {
name: 'Custom Objects Editor',
- entryPointUriPath,
+ entryPointUriPath: '${env:ENTRY_POINT_URI_PATH}',
cloudIdentifier: '${env:CLOUD_IDENTIFIER}',
env: {
production: {
- applicationId: '${env:APPLICATION_ID}',
+ applicationId: '${env:CUSTOM_APPLICATION_ID}',
url: '${env:APPLICATION_URL}',
},
development: {
@@ -18,15 +18,24 @@ const config = {
},
oAuthScopes: {
view: [
- 'view_products',
- 'view_orders',
+ 'view_categories',
+ 'view_cart_discounts',
+ 'view_customer_groups',
'view_customers',
+ 'view_discount_codes',
'view_key_value_documents',
+ 'view_orders',
+ 'view_payments',
+ 'view_products',
+ 'view_shipping_methods',
+ 'view_shopping_lists',
+ 'view_standalone_prices',
+ 'view_states',
+ 'view_stores',
+ 'view_tax_categories',
+ 'view_types',
],
manage: [
- 'manage_products',
- 'manage_orders',
- 'manage_customers',
'manage_key_value_documents',
],
},
@@ -37,10 +46,10 @@ const config = {
permissions: [PERMISSIONS.View],
},
submenuLinks: [
- // {
- // defaultLabel: 'Custom Objects Editor List',
- // uriPath: 'custom-objects',
- // },
+ {
+ defaultLabel: 'Custom Objects Editor',
+ uriPath: '/',
+ },
{
defaultLabel: 'Container Schema Manager',
uriPath: 'containers',
diff --git a/mc-app/graphql-ctp/index.d.ts b/mc-app/graphql-ctp/index.d.ts
new file mode 100644
index 0000000..6d72c38
--- /dev/null
+++ b/mc-app/graphql-ctp/index.d.ts
@@ -0,0 +1,26 @@
+/* THIS IS A GENERATED FILE */
+/* eslint-disable import/no-duplicates */
+
+declare module "*/fetch-channel-details.ctp.graphql" {
+ import { DocumentNode } from "graphql";
+ const defaultDocument: DocumentNode;
+ export const FetchChannelDetails: DocumentNode;
+
+ export default defaultDocument;
+}
+
+declare module "*/fetch-channels.ctp.graphql" {
+ import { DocumentNode } from "graphql";
+ const defaultDocument: DocumentNode;
+ export const FetchChannels: DocumentNode;
+
+ export default defaultDocument;
+}
+
+declare module "*/update-channel-details.ctp.graphql" {
+ import { DocumentNode } from "graphql";
+ const defaultDocument: DocumentNode;
+ export const UpdateChannelDetails: DocumentNode;
+
+ export default defaultDocument;
+}
diff --git a/intl-formatter.js b/mc-app/intl-formatter.js
similarity index 100%
rename from intl-formatter.js
rename to mc-app/intl-formatter.js
diff --git a/mc-app/jest-runner-eslint.config.js b/mc-app/jest-runner-eslint.config.js
new file mode 100644
index 0000000..9047025
--- /dev/null
+++ b/mc-app/jest-runner-eslint.config.js
@@ -0,0 +1,9 @@
+module.exports = {
+ cliOptions: {
+ format: require.resolve("eslint-formatter-pretty"),
+ rules: {
+ "import/no-unresolved": 2,
+ },
+ fix: true,
+ },
+};
diff --git a/jest.d.ts b/mc-app/jest.d.ts
similarity index 100%
rename from jest.d.ts
rename to mc-app/jest.d.ts
diff --git a/mc-app/jest.eslint-graphql.config.js b/mc-app/jest.eslint-graphql.config.js
new file mode 100644
index 0000000..761995c
--- /dev/null
+++ b/mc-app/jest.eslint-graphql.config.js
@@ -0,0 +1,9 @@
+module.exports = {
+ runner: "jest-runner-eslint",
+ displayName: "eslint",
+ modulePathIgnorePatterns: ["dist", "coverage"],
+ testPathIgnorePatterns: ["schema.graphql"],
+ moduleFileExtensions: ["graphql"],
+ testMatch: ["/**/*.graphql"],
+ watchPlugins: ["jest-plugin-filename"],
+};
diff --git a/mc-app/jest.eslint.config.js b/mc-app/jest.eslint.config.js
new file mode 100644
index 0000000..62baf22
--- /dev/null
+++ b/mc-app/jest.eslint.config.js
@@ -0,0 +1,21 @@
+/**
+ * @type {import('@jest/types').Config.ProjectConfig}
+ */
+module.exports = {
+ runner: "jest-runner-eslint",
+ displayName: "eslint",
+ moduleFileExtensions: ["js", "ts", "tsx"],
+ modulePathIgnorePatterns: [
+ ".yarn",
+ ".cache",
+ "build/",
+ "dist/",
+ "public/",
+ "generated",
+ ],
+ testMatch: ["/**/*.js", "/**/*.ts", "/**/*.tsx"],
+ watchPlugins: [
+ "jest-watch-typeahead/filename",
+ "jest-runner-eslint/watch-fix",
+ ],
+};
diff --git a/jest.setup.js b/mc-app/jest.setup.js
similarity index 72%
rename from jest.setup.js
rename to mc-app/jest.setup.js
index be8d017..1cfdff2 100644
--- a/jest.setup.js
+++ b/mc-app/jest.setup.js
@@ -1,4 +1,4 @@
import { ReadableStream } from 'node:stream/web';
// Polyfill `ReadableStream` in the Jest environment
-global.ReadableStream = ReadableStream;
\ No newline at end of file
+global.ReadableStream = ReadableStream;
diff --git a/mc-app/jest.stylelint.config.js b/mc-app/jest.stylelint.config.js
new file mode 100644
index 0000000..bfdafb4
--- /dev/null
+++ b/mc-app/jest.stylelint.config.js
@@ -0,0 +1,8 @@
+module.exports = {
+ runner: "jest-runner-stylelint",
+ displayName: "stylelint",
+ moduleFileExtensions: ["css"],
+ modulePathIgnorePatterns: ["dist", "coverage", "public"],
+ testMatch: ["/**/*.css"],
+ watchPlugins: ["jest-plugin-filename"],
+};
diff --git a/mc-app/jest.test.config.js b/mc-app/jest.test.config.js
new file mode 100644
index 0000000..da9d4d0
--- /dev/null
+++ b/mc-app/jest.test.config.js
@@ -0,0 +1,9 @@
+process.env.ENABLE_NEW_JSX_TRANSFORM = "true";
+
+/**
+ * @type {import('@jest/types').Config.ProjectConfig}
+ */
+module.exports = {
+ preset: "@commercetools-frontend/jest-preset-mc-app/typescript",
+ setupFiles: ["./jest.setup.js"],
+};
diff --git a/mc-app/lint-staged.config.js b/mc-app/lint-staged.config.js
new file mode 100644
index 0000000..99d001c
--- /dev/null
+++ b/mc-app/lint-staged.config.js
@@ -0,0 +1,14 @@
+module.exports = {
+ "*.js": [
+ "yarn lint:js --reporters=jest-silent-reporter --onlyChanged",
+ "yarn format:js",
+ ],
+ "*.css": [
+ "yarn lint:css -- --reporters=jest-silent-reporter --onlyChanged",
+ "yarn format:css",
+ ],
+ "*.graphql": [
+ "yarn lint:graphql --reporters=jest-silent-reporter --onlyChanged",
+ "yarn format:graphql",
+ ],
+};
diff --git a/mc-app/netlify.toml b/mc-app/netlify.toml
new file mode 100644
index 0000000..152ca04
--- /dev/null
+++ b/mc-app/netlify.toml
@@ -0,0 +1,4 @@
+[[redirects]]
+ from = "/*"
+ to = "/index.html"
+ status = 200
\ No newline at end of file
diff --git a/package.json b/mc-app/package.json
similarity index 53%
rename from package.json
rename to mc-app/package.json
index 9636a22..9f6e530 100644
--- a/package.json
+++ b/mc-app/package.json
@@ -13,53 +13,54 @@
"test": "jest --config jest.test.config.js",
"test:watch": "jest --config jest.test.config.js --watch",
"lint": "jest --config jest.eslint.config.js",
+ "format": "prettier --write 'src/**/*.{js,ts,tsx}'",
"typecheck": "tsc --noEmit",
"versions:appkit": "manypkg upgrade @commercetools-frontend",
"versions:uikit": "manypkg upgrade @commercetools-uikit"
},
"dependencies": {
"@apollo/client": "^3.9.7",
- "@commercetools-frontend/actions-global": "^22.20.0",
- "@commercetools-frontend/application-components": "^22.20.0",
- "@commercetools-frontend/application-config": "^22.20.0",
- "@commercetools-frontend/application-shell": "^22.20.0",
- "@commercetools-frontend/application-shell-connectors": "^22.20.0",
- "@commercetools-frontend/assets": "^22.20.0",
- "@commercetools-frontend/constants": "^22.20.0",
- "@commercetools-frontend/eslint-config-mc-app": "^22.20.0",
- "@commercetools-frontend/i18n": "^22.20.0",
- "@commercetools-frontend/jest-preset-mc-app": "^22.20.0",
- "@commercetools-frontend/mc-dev-authentication": "^22.20.0",
- "@commercetools-frontend/mc-scripts": "^22.20.0",
- "@commercetools-frontend/permissions": "^22.20.0",
+ "@commercetools-frontend/actions-global": "^22.35.1",
+ "@commercetools-frontend/application-components": "^22.35.1",
+ "@commercetools-frontend/application-config": "^22.35.1",
+ "@commercetools-frontend/application-shell": "^22.35.1",
+ "@commercetools-frontend/application-shell-connectors": "^22.35.1",
+ "@commercetools-frontend/assets": "^22.35.1",
+ "@commercetools-frontend/constants": "^22.35.1",
+ "@commercetools-frontend/eslint-config-mc-app": "^22.35.1",
+ "@commercetools-frontend/i18n": "^22.35.1",
+ "@commercetools-frontend/jest-preset-mc-app": "^22.35.1",
+ "@commercetools-frontend/mc-dev-authentication": "^22.35.1",
+ "@commercetools-frontend/mc-scripts": "^22.35.1",
+ "@commercetools-frontend/permissions": "^22.35.1",
"@commercetools-test-data/channel": "^7.3.0",
"@commercetools-test-data/commons": "^7.3.0",
"@commercetools-test-data/core": "^7.3.0",
- "@commercetools-uikit/checkbox-input": "^18.4.0",
- "@commercetools-uikit/collapsible-panel": "^18.4.0",
- "@commercetools-uikit/constraints": "^18.4.0",
- "@commercetools-uikit/data-table": "^18.4.0",
- "@commercetools-uikit/date-input": "^18.4.0",
- "@commercetools-uikit/date-time-input": "^18.4.0",
- "@commercetools-uikit/flat-button": "^18.4.0",
- "@commercetools-uikit/grid": "^18.4.0",
- "@commercetools-uikit/hooks": "^18.4.0",
- "@commercetools-uikit/icons": "^18.4.0",
- "@commercetools-uikit/link": "^18.4.0",
- "@commercetools-uikit/link-button": "^18.4.0",
- "@commercetools-uikit/loading-spinner": "^18.4.0",
- "@commercetools-uikit/localized-text-field": "^18.4.0",
- "@commercetools-uikit/localized-text-input": "^18.4.0",
- "@commercetools-uikit/money-input": "^18.4.0",
- "@commercetools-uikit/notifications": "^18.4.0",
- "@commercetools-uikit/pagination": "^18.4.0",
- "@commercetools-uikit/select-field": "^18.4.0",
- "@commercetools-uikit/spacings": "^18.4.0",
- "@commercetools-uikit/text": "^18.4.0",
- "@commercetools-uikit/text-field": "^18.4.0",
- "@commercetools-uikit/text-input": "^18.4.0",
- "@commercetools-uikit/time-input": "^18.4.0",
- "@commercetools/sync-actions": "^5.15.0",
+ "@commercetools-uikit/checkbox-input": "^19.16.0",
+ "@commercetools-uikit/collapsible-panel": "^19.16.0",
+ "@commercetools-uikit/constraints": "^19.16.0",
+ "@commercetools-uikit/data-table": "^19.16.0",
+ "@commercetools-uikit/date-input": "^19.16.0",
+ "@commercetools-uikit/date-time-input": "^19.16.0",
+ "@commercetools-uikit/flat-button": "^19.16.0",
+ "@commercetools-uikit/grid": "^19.16.0",
+ "@commercetools-uikit/hooks": "^19.16.0",
+ "@commercetools-uikit/icons": "^19.16.0",
+ "@commercetools-uikit/link": "^19.16.0",
+ "@commercetools-uikit/link-button": "^19.16.0",
+ "@commercetools-uikit/loading-spinner": "^19.16.0",
+ "@commercetools-uikit/localized-text-field": "^19.16.0",
+ "@commercetools-uikit/localized-text-input": "^19.16.0",
+ "@commercetools-uikit/money-input": "^19.16.0",
+ "@commercetools-uikit/notifications": "^19.16.0",
+ "@commercetools-uikit/pagination": "^19.16.0",
+ "@commercetools-uikit/select-field": "^19.16.0",
+ "@commercetools-uikit/spacings": "^19.16.0",
+ "@commercetools-uikit/text": "^19.16.0",
+ "@commercetools-uikit/text-field": "^19.16.0",
+ "@commercetools-uikit/text-input": "^19.16.0",
+ "@commercetools-uikit/time-input": "^19.16.0",
+ "@commercetools/sync-actions": "^5.19.2",
"@formatjs/cli": "^6.2.7",
"@jest/types": "27.5.1",
"@manypkg/cli": "^0.21.3",
@@ -68,6 +69,7 @@
"@testing-library/react-hooks": "8.0.1",
"@types/eslint": "<9",
"@types/react": "<18",
+ "axios": "^1.7.7",
"eslint": "^8.57.0",
"eslint-formatter-pretty": "^6.0.1",
"eslint-import-resolver-typescript": "^3.6.1",
@@ -99,6 +101,7 @@
"cheerio": "=1.0.0-rc.3"
},
"devDependencies": {
+ "@types/axios": "^0.14.4",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.8",
"eslint-react": "0.0.4"
diff --git a/schemas/ctp.json b/mc-app/schemas/ctp.json
similarity index 100%
rename from schemas/ctp.json
rename to mc-app/schemas/ctp.json
diff --git a/setup-jest.js b/mc-app/setup-jest.js
similarity index 100%
rename from setup-jest.js
rename to mc-app/setup-jest.js
diff --git a/src/assets/aries-labs-logo.svg b/mc-app/src/assets/aries-labs-logo.svg
similarity index 100%
rename from src/assets/aries-labs-logo.svg
rename to mc-app/src/assets/aries-labs-logo.svg
diff --git a/src/components/container-details/container-details.module.css b/mc-app/src/components/container-details/container-details.module.css
similarity index 100%
rename from src/components/container-details/container-details.module.css
rename to mc-app/src/components/container-details/container-details.module.css
diff --git a/src/components/container-details/container-details.spec.toBeMigrated.js b/mc-app/src/components/container-details/container-details.spec.toBeMigrated.js
similarity index 100%
rename from src/components/container-details/container-details.spec.toBeMigrated.js
rename to mc-app/src/components/container-details/container-details.spec.toBeMigrated.js
diff --git a/src/components/container-details/container-details.tsx b/mc-app/src/components/container-details/container-details.tsx
similarity index 100%
rename from src/components/container-details/container-details.tsx
rename to mc-app/src/components/container-details/container-details.tsx
diff --git a/src/components/container-details/index.ts b/mc-app/src/components/container-details/index.ts
similarity index 100%
rename from src/components/container-details/index.ts
rename to mc-app/src/components/container-details/index.ts
diff --git a/src/components/container-details/messages.ts b/mc-app/src/components/container-details/messages.ts
similarity index 100%
rename from src/components/container-details/messages.ts
rename to mc-app/src/components/container-details/messages.ts
diff --git a/src/components/container-form/attribute-group.spec.js b/mc-app/src/components/container-form/attribute-group.spec.js
similarity index 99%
rename from src/components/container-form/attribute-group.spec.js
rename to mc-app/src/components/container-form/attribute-group.spec.js
index 45fc06c..9b514f8 100644
--- a/src/components/container-form/attribute-group.spec.js
+++ b/mc-app/src/components/container-form/attribute-group.spec.js
@@ -32,7 +32,7 @@ const mocks = {
remove: jest.fn(),
removeDisabled: faker.random.boolean(),
};
-configure({adapter: new Adapter()});
+configure({ adapter: new Adapter() });
const loadAttributeGroup = (value = mockValue) =>
shallow();
diff --git a/src/components/container-form/attribute-group.tsx b/mc-app/src/components/container-form/attribute-group.tsx
similarity index 98%
rename from src/components/container-form/attribute-group.tsx
rename to mc-app/src/components/container-form/attribute-group.tsx
index 9f8d54f..7f78ddc 100644
--- a/src/components/container-form/attribute-group.tsx
+++ b/mc-app/src/components/container-form/attribute-group.tsx
@@ -5,7 +5,12 @@ import LocalizedTextInput from '@commercetools-uikit/localized-text-input';
import Spacings from '@commercetools-uikit/spacings';
import { useFormik } from 'formik';
import { get } from 'lodash';
-import { ATTRIBUTES, AttributeValue, REFERENCE_BY, TYPES } from '../../constants';
+import {
+ ATTRIBUTES,
+ AttributeValue,
+ REFERENCE_BY,
+ TYPES,
+} from '../../constants';
import Attribute from './attribute';
import EnumAttributes from './enum-attributes';
import LocalizedEnumAttributes from './localized-enum-attributes';
diff --git a/src/components/container-form/attribute.mod.css b/mc-app/src/components/container-form/attribute.mod.css
similarity index 100%
rename from src/components/container-form/attribute.mod.css
rename to mc-app/src/components/container-form/attribute.mod.css
diff --git a/src/components/container-form/attribute.spec.toBeMigrated.js b/mc-app/src/components/container-form/attribute.spec.toBeMigrated.js
similarity index 100%
rename from src/components/container-form/attribute.spec.toBeMigrated.js
rename to mc-app/src/components/container-form/attribute.spec.toBeMigrated.js
diff --git a/src/components/container-form/attribute.tsx b/mc-app/src/components/container-form/attribute.tsx
similarity index 99%
rename from src/components/container-form/attribute.tsx
rename to mc-app/src/components/container-form/attribute.tsx
index 4fedb04..f9fe3fd 100644
--- a/src/components/container-form/attribute.tsx
+++ b/mc-app/src/components/container-form/attribute.tsx
@@ -102,7 +102,6 @@ const Attribute: FC = ({
// }
// }, [value.type]);
-
return (
diff --git a/src/components/container-form/container-form.tsx b/mc-app/src/components/container-form/container-form.tsx
similarity index 76%
rename from src/components/container-form/container-form.tsx
rename to mc-app/src/components/container-form/container-form.tsx
index 24e18a3..8ce9b9e 100644
--- a/src/components/container-form/container-form.tsx
+++ b/mc-app/src/components/container-form/container-form.tsx
@@ -43,40 +43,42 @@ const ContainerForm: FC
= ({ onSubmit, initialValues, children }) => {
required: bool(),
display: bool(),
attributes: array(lazy(() => object(attributeSchema))),
- reference: object()
- .when('type', {
- is: (val: any) => val === TYPES.Reference,
- then: (schema) => object({
+ reference: object().when('type', {
+ is: (val: any) => val === TYPES.Reference,
+ then: (schema) =>
+ object({
by: stringSchema,
type: stringSchema,
- })
- }),
+ }),
+ }),
enum: array().when('type', {
is: (val: any) => val === TYPES.Enum,
- then: (schema) => array(
- object({
- value: string().required(requiredFieldMessage),
- label: string().required(requiredFieldMessage),
- })
- ),
+ then: (schema) =>
+ array(
+ object({
+ value: string().required(requiredFieldMessage),
+ label: string().required(requiredFieldMessage),
+ })
+ ),
}),
lenum: array().when('type', {
is: (val: any) => val === TYPES.LocalizedEnum,
- then: (schema) => array(
- object({
- value: string().required(requiredFieldMessage),
- label: object(
- reduce(
- projectLanguages,
- (name, lang) => ({
- ...name,
- [lang]: string().required(requiredFieldMessage),
- }),
- {}
- )
- ),
- })
- ),
+ then: (schema) =>
+ array(
+ object({
+ value: string().required(requiredFieldMessage),
+ label: object(
+ reduce(
+ projectLanguages,
+ (name, lang) => ({
+ ...name,
+ [lang]: string().required(requiredFieldMessage),
+ }),
+ {}
+ )
+ ),
+ })
+ ),
}),
};
const validationSchema = object({
diff --git a/src/components/container-form/enum-attributes.module.css b/mc-app/src/components/container-form/enum-attributes.module.css
similarity index 100%
rename from src/components/container-form/enum-attributes.module.css
rename to mc-app/src/components/container-form/enum-attributes.module.css
diff --git a/src/components/container-form/enum-attributes.spec.toBeMigrated.js b/mc-app/src/components/container-form/enum-attributes.spec.toBeMigrated.js
similarity index 100%
rename from src/components/container-form/enum-attributes.spec.toBeMigrated.js
rename to mc-app/src/components/container-form/enum-attributes.spec.toBeMigrated.js
diff --git a/src/components/container-form/enum-attributes.tsx b/mc-app/src/components/container-form/enum-attributes.tsx
similarity index 100%
rename from src/components/container-form/enum-attributes.tsx
rename to mc-app/src/components/container-form/enum-attributes.tsx
diff --git a/src/components/container-form/form.module.css b/mc-app/src/components/container-form/form.module.css
similarity index 100%
rename from src/components/container-form/form.module.css
rename to mc-app/src/components/container-form/form.module.css
diff --git a/src/components/container-form/form.tsx b/mc-app/src/components/container-form/form.tsx
similarity index 100%
rename from src/components/container-form/form.tsx
rename to mc-app/src/components/container-form/form.tsx
diff --git a/src/components/container-form/index.ts b/mc-app/src/components/container-form/index.ts
similarity index 100%
rename from src/components/container-form/index.ts
rename to mc-app/src/components/container-form/index.ts
diff --git a/src/components/container-form/localized-enum-attributes.spec.toBeMigrated.js b/mc-app/src/components/container-form/localized-enum-attributes.spec.toBeMigrated.js
similarity index 100%
rename from src/components/container-form/localized-enum-attributes.spec.toBeMigrated.js
rename to mc-app/src/components/container-form/localized-enum-attributes.spec.toBeMigrated.js
diff --git a/src/components/container-form/localized-enum-attributes.tsx b/mc-app/src/components/container-form/localized-enum-attributes.tsx
similarity index 100%
rename from src/components/container-form/localized-enum-attributes.tsx
rename to mc-app/src/components/container-form/localized-enum-attributes.tsx
diff --git a/src/components/container-form/messages.ts b/mc-app/src/components/container-form/messages.ts
similarity index 100%
rename from src/components/container-form/messages.ts
rename to mc-app/src/components/container-form/messages.ts
diff --git a/src/components/container-form/nested-attributes.module.css b/mc-app/src/components/container-form/nested-attributes.module.css
similarity index 100%
rename from src/components/container-form/nested-attributes.module.css
rename to mc-app/src/components/container-form/nested-attributes.module.css
diff --git a/src/components/container-form/object-attributes.spec.toBeMigrated.js b/mc-app/src/components/container-form/object-attributes.spec.toBeMigrated.js
similarity index 100%
rename from src/components/container-form/object-attributes.spec.toBeMigrated.js
rename to mc-app/src/components/container-form/object-attributes.spec.toBeMigrated.js
diff --git a/src/components/container-form/object-attributes.tsx b/mc-app/src/components/container-form/object-attributes.tsx
similarity index 100%
rename from src/components/container-form/object-attributes.tsx
rename to mc-app/src/components/container-form/object-attributes.tsx
diff --git a/src/components/container-form/reference-attribute.tsx b/mc-app/src/components/container-form/reference-attribute.tsx
similarity index 100%
rename from src/components/container-form/reference-attribute.tsx
rename to mc-app/src/components/container-form/reference-attribute.tsx
diff --git a/src/components/container-list/constants.ts b/mc-app/src/components/container-list/constants.ts
similarity index 100%
rename from src/components/container-list/constants.ts
rename to mc-app/src/components/container-list/constants.ts
diff --git a/src/components/container-list/container-list.spec.toBeMigrated.js b/mc-app/src/components/container-list/container-list.spec.toBeMigrated.js
similarity index 100%
rename from src/components/container-list/container-list.spec.toBeMigrated.js
rename to mc-app/src/components/container-list/container-list.spec.toBeMigrated.js
diff --git a/src/components/container-list/container-list.tsx b/mc-app/src/components/container-list/container-list.tsx
similarity index 100%
rename from src/components/container-list/container-list.tsx
rename to mc-app/src/components/container-list/container-list.tsx
diff --git a/src/components/container-list/index.ts b/mc-app/src/components/container-list/index.ts
similarity index 100%
rename from src/components/container-list/index.ts
rename to mc-app/src/components/container-list/index.ts
diff --git a/src/components/container-list/messages.ts b/mc-app/src/components/container-list/messages.ts
similarity index 100%
rename from src/components/container-list/messages.ts
rename to mc-app/src/components/container-list/messages.ts
diff --git a/src/components/create-container/create-container.spec.toBeMigrated.js b/mc-app/src/components/create-container/create-container.spec.toBeMigrated.js
similarity index 100%
rename from src/components/create-container/create-container.spec.toBeMigrated.js
rename to mc-app/src/components/create-container/create-container.spec.toBeMigrated.js
diff --git a/src/components/create-container/create-container.tsx b/mc-app/src/components/create-container/create-container.tsx
similarity index 100%
rename from src/components/create-container/create-container.tsx
rename to mc-app/src/components/create-container/create-container.tsx
diff --git a/src/components/create-container/index.ts b/mc-app/src/components/create-container/index.ts
similarity index 100%
rename from src/components/create-container/index.ts
rename to mc-app/src/components/create-container/index.ts
diff --git a/src/components/create-container/messages.ts b/mc-app/src/components/create-container/messages.ts
similarity index 100%
rename from src/components/create-container/messages.ts
rename to mc-app/src/components/create-container/messages.ts
diff --git a/src/components/create-custom-object/create-custom-object.spec.toBeMigrated.js b/mc-app/src/components/create-custom-object/create-custom-object.spec.toBeMigrated.js
similarity index 100%
rename from src/components/create-custom-object/create-custom-object.spec.toBeMigrated.js
rename to mc-app/src/components/create-custom-object/create-custom-object.spec.toBeMigrated.js
diff --git a/src/components/create-custom-object/create-custom-object.tsx b/mc-app/src/components/create-custom-object/create-custom-object.tsx
similarity index 97%
rename from src/components/create-custom-object/create-custom-object.tsx
rename to mc-app/src/components/create-custom-object/create-custom-object.tsx
index 46cf114..8d1f8c2 100644
--- a/src/components/create-custom-object/create-custom-object.tsx
+++ b/mc-app/src/components/create-custom-object/create-custom-object.tsx
@@ -44,7 +44,7 @@ const CreateCustomObject: FC = ({ onClose }) => {
showNotification({
kind: NOTIFICATION_KINDS_SIDE.error,
domain: DOMAINS.SIDE,
- text: intl.formatMessage(messages.createSuccess),
+ text: message,
});
},
});
diff --git a/src/components/create-custom-object/index.ts b/mc-app/src/components/create-custom-object/index.ts
similarity index 100%
rename from src/components/create-custom-object/index.ts
rename to mc-app/src/components/create-custom-object/index.ts
diff --git a/src/components/create-custom-object/messages.ts b/mc-app/src/components/create-custom-object/messages.ts
similarity index 100%
rename from src/components/create-custom-object/messages.ts
rename to mc-app/src/components/create-custom-object/messages.ts
diff --git a/src/components/custom-object-details/custom-object-details.module.css b/mc-app/src/components/custom-object-details/custom-object-details.module.css
similarity index 100%
rename from src/components/custom-object-details/custom-object-details.module.css
rename to mc-app/src/components/custom-object-details/custom-object-details.module.css
diff --git a/src/components/custom-object-details/custom-object-details.spec.toBeMigrated.js b/mc-app/src/components/custom-object-details/custom-object-details.spec.toBeMigrated.js
similarity index 100%
rename from src/components/custom-object-details/custom-object-details.spec.toBeMigrated.js
rename to mc-app/src/components/custom-object-details/custom-object-details.spec.toBeMigrated.js
diff --git a/src/components/custom-object-details/custom-object-details.tsx b/mc-app/src/components/custom-object-details/custom-object-details.tsx
similarity index 99%
rename from src/components/custom-object-details/custom-object-details.tsx
rename to mc-app/src/components/custom-object-details/custom-object-details.tsx
index 9519a7c..21e6f85 100644
--- a/src/components/custom-object-details/custom-object-details.tsx
+++ b/mc-app/src/components/custom-object-details/custom-object-details.tsx
@@ -164,7 +164,7 @@ const CustomObjectDetails: FC = ({ onClose }) => {
showNotification({
kind: NOTIFICATION_KINDS_SIDE.error,
domain: DOMAINS.SIDE,
- text: intl.formatMessage(messages.editError),
+ text: message,
});
},
});
diff --git a/src/components/custom-object-details/index.ts b/mc-app/src/components/custom-object-details/index.ts
similarity index 100%
rename from src/components/custom-object-details/index.ts
rename to mc-app/src/components/custom-object-details/index.ts
diff --git a/src/components/custom-object-details/messages.ts b/mc-app/src/components/custom-object-details/messages.ts
similarity index 100%
rename from src/components/custom-object-details/messages.ts
rename to mc-app/src/components/custom-object-details/messages.ts
diff --git a/src/components/custom-object-form/attribute-field.module.css b/mc-app/src/components/custom-object-form/attribute-field.module.css
similarity index 100%
rename from src/components/custom-object-form/attribute-field.module.css
rename to mc-app/src/components/custom-object-form/attribute-field.module.css
diff --git a/src/components/custom-object-form/attribute-field.spec.toBeMigrated.js b/mc-app/src/components/custom-object-form/attribute-field.spec.toBeMigrated.js
similarity index 97%
rename from src/components/custom-object-form/attribute-field.spec.toBeMigrated.js
rename to mc-app/src/components/custom-object-form/attribute-field.spec.toBeMigrated.js
index a83a159..e26a2b7 100644
--- a/src/components/custom-object-form/attribute-field.spec.toBeMigrated.js
+++ b/mc-app/src/components/custom-object-form/attribute-field.spec.toBeMigrated.js
@@ -9,17 +9,13 @@ import times from 'lodash/times';
import { FieldArray } from 'formik';
import * as ApplicationContext from '@commercetools-frontend/application-shell-connectors';
import Card from '@commercetools-uikit/card';
-import {
- REFERENCE_BY,
- REFERENCE_TYPES,
- TYPES,
-} from '../../constants';
+import { REFERENCE_BY, REFERENCE_TYPES, TYPES } from '../../constants';
import { generateContainer } from '../../test-utils';
import { getValueByType } from '../../helpers';
import AttributeField from './attribute-field';
import AttributeInput from './attribute-input';
-configure({adapter: new Adapter()});
+configure({ adapter: new Adapter() });
const project = {
currencies: times(2, () => faker.finance.currencyCode()),
diff --git a/src/components/custom-object-form/attribute-field.tsx b/mc-app/src/components/custom-object-form/attribute-field.tsx
similarity index 97%
rename from src/components/custom-object-form/attribute-field.tsx
rename to mc-app/src/components/custom-object-form/attribute-field.tsx
index cb601c6..f8f696d 100644
--- a/src/components/custom-object-form/attribute-field.tsx
+++ b/mc-app/src/components/custom-object-form/attribute-field.tsx
@@ -67,11 +67,11 @@ const AttributeField: FC = ({
const selectOptions =
type === TYPES.LocalizedEnum
? options?.map((option) => {
- return {
- value: option.value,
- label: option.label[dataLocale],
- };
- })
+ return {
+ value: option.value,
+ label: option.label[dataLocale],
+ };
+ })
: options;
return (
diff --git a/src/components/custom-object-form/attribute-input.spec.toBeMigrated.js b/mc-app/src/components/custom-object-form/attribute-input.spec.toBeMigrated.js
similarity index 99%
rename from src/components/custom-object-form/attribute-input.spec.toBeMigrated.js
rename to mc-app/src/components/custom-object-form/attribute-input.spec.toBeMigrated.js
index 5687445..1f15104 100644
--- a/src/components/custom-object-form/attribute-input.spec.toBeMigrated.js
+++ b/mc-app/src/components/custom-object-form/attribute-input.spec.toBeMigrated.js
@@ -7,11 +7,7 @@ import { FormattedMessage } from 'react-intl';
import moment from 'moment';
import momentTZ from 'moment-timezone';
import * as ApplicationContext from '@commercetools-frontend/application-shell-connectors';
-import {
- REFERENCE_BY,
- REFERENCE_TYPES,
- TYPES,
-} from '../../constants';
+import { REFERENCE_BY, REFERENCE_TYPES, TYPES } from '../../constants';
import { generateContainer } from '../../test-utils';
import { getValueByType } from '../../helpers';
import AttributeInput from './attribute-input';
diff --git a/src/components/custom-object-form/attribute-input.tsx b/mc-app/src/components/custom-object-form/attribute-input.tsx
similarity index 94%
rename from src/components/custom-object-form/attribute-input.tsx
rename to mc-app/src/components/custom-object-form/attribute-input.tsx
index 9c0b6ca..db0ebb3 100644
--- a/src/components/custom-object-form/attribute-input.tsx
+++ b/mc-app/src/components/custom-object-form/attribute-input.tsx
@@ -1,9 +1,7 @@
import React, { FC } from 'react';
-import camelCase from 'lodash/camelCase';
import get from 'lodash/get';
import map from 'lodash/map';
import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
-
import CheckboxInput from '@commercetools-uikit/checkbox-input';
import DateInput from '@commercetools-uikit/date-input';
import TimeInput from '@commercetools-uikit/time-input';
@@ -17,6 +15,7 @@ import { ErrorMessage } from '@commercetools-uikit/messages';
import Spacings from '@commercetools-uikit/spacings';
import { TYPES } from '../../constants';
import nestedStyles from '../container-form/nested-attributes.module.css';
+import ReferenceInput from '../reference-input';
import AttributeField from './attribute-field'; // eslint-disable-line import/no-cycle
type Props = {
@@ -96,8 +95,10 @@ const AttributeInput: FC = ({
onChange={onChange}
onBlur={onBlur}
/>
- {LocalizedTextInput.isTouched(touched) && errors && (
- {errors}
+ {LocalizedTextInput.isTouched(touched) && errors?.defaultMessage && (
+
+ {errors.defaultMessage}
+
)}
);
@@ -233,19 +234,20 @@ const AttributeInput: FC = ({
case TYPES.Reference: {
const referenceBy: any = get(reference, 'by');
- const refValue = get(value, referenceBy, '');
+ // const refValue = get(value, referenceBy, "");
const refTouched = get(touched, referenceBy);
const refErrors = get(errors, referenceBy);
const hasError = !!(refTouched && refErrors);
return (
-
{hasError && (
{refErrors}
@@ -259,7 +261,7 @@ const AttributeInput: FC = ({
{map(attributes, (attribute: any, index) => {
- const attributeName = camelCase(attribute.name);
+ const attributeName = attribute.name;
return (
= ({ type, title, isRequired, reference }) => {
hint={
reference
? `${startCase(reference.type)} ${capitalize(
- reference.by
- )} ${intl.formatMessage(messages.referenceLabel)}`
+ reference.by
+ )} ${intl.formatMessage(messages.referenceLabel)}`
: ''
}
/>
diff --git a/src/components/custom-object-form/constants.ts b/mc-app/src/components/custom-object-form/constants.ts
similarity index 100%
rename from src/components/custom-object-form/constants.ts
rename to mc-app/src/components/custom-object-form/constants.ts
diff --git a/src/components/custom-object-form/custom-object-form.spec.toBeMigrated.js b/mc-app/src/components/custom-object-form/custom-object-form.spec.toBeMigrated.js
similarity index 100%
rename from src/components/custom-object-form/custom-object-form.spec.toBeMigrated.js
rename to mc-app/src/components/custom-object-form/custom-object-form.spec.toBeMigrated.js
diff --git a/src/components/custom-object-form/custom-object-form.tsx b/mc-app/src/components/custom-object-form/custom-object-form.tsx
similarity index 100%
rename from src/components/custom-object-form/custom-object-form.tsx
rename to mc-app/src/components/custom-object-form/custom-object-form.tsx
diff --git a/src/components/custom-object-form/form.module.css b/mc-app/src/components/custom-object-form/form.module.css
similarity index 100%
rename from src/components/custom-object-form/form.module.css
rename to mc-app/src/components/custom-object-form/form.module.css
diff --git a/src/components/custom-object-form/form.spec.toBeMigrated.js b/mc-app/src/components/custom-object-form/form.spec.toBeMigrated.js
similarity index 100%
rename from src/components/custom-object-form/form.spec.toBeMigrated.js
rename to mc-app/src/components/custom-object-form/form.spec.toBeMigrated.js
diff --git a/src/components/custom-object-form/form.tsx b/mc-app/src/components/custom-object-form/form.tsx
similarity index 89%
rename from src/components/custom-object-form/form.tsx
rename to mc-app/src/components/custom-object-form/form.tsx
index 91e57d6..9a23faf 100644
--- a/src/components/custom-object-form/form.tsx
+++ b/mc-app/src/components/custom-object-form/form.tsx
@@ -1,5 +1,4 @@
import React, { FC } from 'react';
-import camelCase from 'lodash/camelCase';
import get from 'lodash/get';
import map from 'lodash/map';
import { FormattedMessage, useIntl } from 'react-intl';
@@ -52,19 +51,22 @@ const Form: FC = ({
value: JSON.stringify(container),
}));
- const onAttributesChange = React.useCallback((attributes: any) => {
- if (attributes) {
- const valueSchema = getAttributeValidation(
- attributes,
- languages,
- {
- required: messages.requiredFieldError,
- },
- intl
- );
- updateSchemaValidation(valueSchema);
- }
- }, [intl, languages, updateSchemaValidation]);
+ const onAttributesChange = React.useCallback(
+ (attributes: any) => {
+ if (attributes) {
+ const valueSchema = getAttributeValidation(
+ attributes,
+ languages,
+ {
+ required: messages.requiredFieldError,
+ },
+ intl
+ );
+ updateSchemaValidation(valueSchema);
+ }
+ },
+ [intl, languages, updateSchemaValidation]
+ );
React.useEffect(() => {
if (values.container) {
@@ -78,7 +80,14 @@ const Form: FC = ({
setFieldValue('value', value);
setFieldValue('attributes', attributes);
}
- }, [currencies, initialValues.container, initialValues.value, languages, setFieldValue, values.container]);
+ }, [
+ currencies,
+ initialValues.container,
+ initialValues.value,
+ languages,
+ setFieldValue,
+ values.container,
+ ]);
React.useEffect(() => {
onAttributesChange(values.attributes);
@@ -130,7 +139,7 @@ const Form: FC = ({
}
>
{values.attributes.map((attribute, index) => {
- const name = `value.${camelCase(attribute.name)}`;
+ const name = `value.${attribute.name}`;
return (
{
): Array {
return attributes.reduce>((display, attribute) => {
if (attribute.display) {
- return [...display, camelCase(attribute.name)];
+ return [...display, attribute.name];
}
if (attribute.attributes) {
const nested = getDisplayAttributes(attribute.attributes);
diff --git a/src/components/custom-objects-list/index.ts b/mc-app/src/components/custom-objects-list/index.ts
similarity index 100%
rename from src/components/custom-objects-list/index.ts
rename to mc-app/src/components/custom-objects-list/index.ts
diff --git a/src/components/custom-objects-list/messages.ts b/mc-app/src/components/custom-objects-list/messages.ts
similarity index 100%
rename from src/components/custom-objects-list/messages.ts
rename to mc-app/src/components/custom-objects-list/messages.ts
diff --git a/src/components/custom-objects-list/text-filter.module.css b/mc-app/src/components/custom-objects-list/text-filter.module.css
similarity index 100%
rename from src/components/custom-objects-list/text-filter.module.css
rename to mc-app/src/components/custom-objects-list/text-filter.module.css
diff --git a/src/components/custom-objects-list/text-filter.spec.tsx b/mc-app/src/components/custom-objects-list/text-filter.spec.tsx
similarity index 100%
rename from src/components/custom-objects-list/text-filter.spec.tsx
rename to mc-app/src/components/custom-objects-list/text-filter.spec.tsx
diff --git a/src/components/custom-objects-list/text-filter.tsx b/mc-app/src/components/custom-objects-list/text-filter.tsx
similarity index 100%
rename from src/components/custom-objects-list/text-filter.tsx
rename to mc-app/src/components/custom-objects-list/text-filter.tsx
diff --git a/src/components/entry-point/entry-point.tsx b/mc-app/src/components/entry-point/entry-point.tsx
similarity index 100%
rename from src/components/entry-point/entry-point.tsx
rename to mc-app/src/components/entry-point/entry-point.tsx
diff --git a/src/components/entry-point/index.ts b/mc-app/src/components/entry-point/index.ts
similarity index 100%
rename from src/components/entry-point/index.ts
rename to mc-app/src/components/entry-point/index.ts
diff --git a/mc-app/src/components/reference-input/index.tsx b/mc-app/src/components/reference-input/index.tsx
new file mode 100644
index 0000000..cbfb8ce
--- /dev/null
+++ b/mc-app/src/components/reference-input/index.tsx
@@ -0,0 +1,155 @@
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { ExternalLinkIcon } from '@commercetools-uikit/icons';
+import Spacings from '@commercetools-uikit/spacings';
+import TextInput from '@commercetools-uikit/text-input';
+import get from 'lodash/get';
+import React, { Suspense, lazy } from 'react';
+import { Link } from 'react-router-dom';
+import { ReferenceInputProps } from './search-input/types';
+import { referenceTypeToSingleValueMap } from '../../shared-code';
+
+const referenceTypeToComponentMap: Record = {
+ category: lazy(() => import('./search-components/category')),
+ customer: lazy(() => import('./search-components/customer')),
+ product: lazy(() => import('./search-components/product')),
+ cart: lazy(() => import('./search-components/cart')),
+ order: lazy(() => import('./search-components/order')),
+ 'tax-category': lazy(() => import('./search-components/tax-category')),
+ 'cart-discount': lazy(() => import('./search-components/cart-discount')),
+ 'product-discount': lazy(
+ () => import('./search-components/product-discount')
+ ),
+ channel: lazy(() => import('./search-components/channel')),
+ store: lazy(() => import('./search-components/store')),
+ type: lazy(() => import('./search-components/type')),
+ payment: lazy(() => import('./search-components/payment')),
+ state: lazy(() => import('./search-components/state')),
+ 'product-price': lazy(() => import('./search-components/standalone-price')),
+ 'customer-group': lazy(() => import('./search-components/customer-group')),
+ 'discount-code': lazy(() => import('./search-components/discount-code')),
+ 'product-type': lazy(() => import('./search-components/product-type')),
+ 'shopping-list': lazy(() => import('./search-components/shopping-list')),
+ 'shipping-method': lazy(() => import('./search-components/shipping-method')),
+ 'key-value-document': lazy(
+ () => import('./search-components/key-value-document')
+ ),
+};
+
+const referenceTypeToMCPageMap: Record = {
+ category: 'categories',
+ customer: 'customers',
+ product: 'products',
+ order: 'orders',
+ 'cart-discount': 'discounts/carts',
+ 'product-discount': 'discounts/products',
+ channel: 'settings/project/channels',
+ store: 'settings/project/stores',
+ 'customer-group': 'customers/customer-groups',
+ 'discount-code': 'discounts/codes',
+ 'product-type': 'settings/product-types',
+ 'tax-category': 'settings/project/taxes',
+ 'shipping-method': 'settings/project/shipping-methods',
+ 'product-price': 'standalone-prices',
+};
+
+const restrictedReferenceTypesToReferenceBy = [
+ {
+ referenceType: 'key-value-document',
+ referenceBy: 'key',
+ },
+ {
+ referenceType: 'order',
+ referenceBy: 'key',
+ },
+];
+
+
+const LoadingFallback: React.FC = () => Loading...
;
+
+class ErrorBoundary extends React.Component<
+ { children: React.ReactNode },
+ { hasError: boolean }
+> {
+ constructor(props: { children: React.ReactNode }) {
+ super(props);
+ this.state = { hasError: false };
+ }
+
+ static getDerivedStateFromError() {
+ return { hasError: true };
+ }
+
+ render() {
+ if (this.state.hasError) {
+ return Error loading component
;
+ }
+ return this.props.children;
+ }
+}
+
+const ReferenceInput: React.FC<
+ React.HTMLAttributes & ReferenceInputProps
+> = ({ reference, value, ...props }) => {
+ const { project } = useApplicationContext();
+ const referenceBy: 'id' | 'key' = get(reference, 'by', 'id') as 'id' | 'key';
+ const referenceType = get(reference, 'type');
+ const refValue = get(value, referenceBy, '');
+ const inRestrictedList = restrictedReferenceTypesToReferenceBy.some(
+ (item) => {
+ return (
+ item.referenceType === referenceType && item.referenceBy === referenceBy
+ );
+ }
+ );
+
+ const externalUrl =
+ referenceBy === 'id' && referenceTypeToMCPageMap[referenceType as string]
+ ? `/${project?.key}/${
+ referenceTypeToMCPageMap[referenceType as string]
+ }/${refValue}`
+ : '';
+
+ if (referenceType && referenceTypeToComponentMap[referenceType]) {
+ if (!inRestrictedList) {
+ const Component = referenceTypeToComponentMap[referenceType];
+ const singleValueQueryDataObject = referenceTypeToSingleValueMap[
+ referenceType
+ ]
+ ? referenceTypeToSingleValueMap[referenceType]
+ : referenceType;
+ return (
+
+ }>
+
+
+ {!!externalUrl && !!refValue && (
+
+
+
+ )}
+
+
+
+ );
+ }
+ }
+
+ return (
+
+ );
+};
+
+export default ReferenceInput;
diff --git a/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-all.graphql b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-all.graphql
new file mode 100644
index 0000000..7e4d139
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-all.graphql
@@ -0,0 +1,13 @@
+query CartDiscountSearch($locale: Locale!) {
+ cartDiscounts(limit: 50) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ isActive
+ value {
+ type
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-by-id.graphql b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-by-id.graphql
new file mode 100644
index 0000000..bb83d8e
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-by-id.graphql
@@ -0,0 +1,11 @@
+query CartDiscountById($id: String!, $locale: Locale) {
+ cartDiscount(id: $id) {
+ id
+ name(locale: $locale)
+ key
+ isActive
+ value {
+ type
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-by-key.graphql b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-by-key.graphql
new file mode 100644
index 0000000..c83a592
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-by-key.graphql
@@ -0,0 +1,12 @@
+query CartDiscountByKey($key: String!, $locale: Locale) {
+ cartDiscount(key: $key) {
+ id
+ name(locale: $locale)
+ key
+ isActive
+ value {
+ type
+ }
+ }
+}
+
diff --git a/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-search.graphql b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-search.graphql
new file mode 100644
index 0000000..4eb87eb
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart-discount/cart-discount-search.graphql
@@ -0,0 +1,13 @@
+query CartDiscountSearch($where: String!, $locale: Locale!) {
+ cartDiscounts(where: $where) {
+ results {
+ id
+ name(locale:$locale)
+ key,
+ isActive
+ value {
+ type
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/cart-discount/index.tsx b/mc-app/src/components/reference-input/search-components/cart-discount/index.tsx
new file mode 100644
index 0000000..7b49688
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart-discount/index.tsx
@@ -0,0 +1,51 @@
+// mc-app/src/components/reference-input/search-components/cart-discount.tsx
+
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import CartDiscountById from './cart-discount-by-id.graphql';
+import CartDiscountByKey from './cart-discount-by-key.graphql';
+import CartDiscountSearch from './cart-discount-search.graphql';
+import CartDiscountAll from './cart-discount-all.graphql';
+import { CartDiscount } from './types';
+
+const localizePath = (cartdiscount: CartDiscount) => {
+ return `${cartdiscount.name} - isActive: ${cartdiscount.isActive} - key: ${cartdiscount.key}`;
+};
+
+const CartDiscountSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.cartDiscounts.results.map((cartDiscount: CartDiscount): TEntity => {
+ return {
+ id: cartDiscount.id,
+ name: cartDiscount.name,
+ key: cartDiscount.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `name(${dataLocale} = "${text}") or description(${dataLocale} = "${text}") or key = "${text}"`,
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ localizePath={localizePath}
+ searchQuery={CartDiscountSearch}
+ byKeyQuery={CartDiscountByKey}
+ byIdQuery={CartDiscountById}
+ allQuery={CartDiscountAll}
+ {...props}
+ />
+ );
+};
+
+export default CartDiscountSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/cart-discount/types.ts b/mc-app/src/components/reference-input/search-components/cart-discount/types.ts
new file mode 100644
index 0000000..e30715c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart-discount/types.ts
@@ -0,0 +1,11 @@
+import { TEntity } from '../../types';
+
+export interface CartDiscount extends TEntity {
+ id: string;
+ name: string;
+ key: string;
+ value: {
+ type: string;
+ };
+ isActive: boolean;
+}
diff --git a/mc-app/src/components/reference-input/search-components/cart/cart-all.graphql b/mc-app/src/components/reference-input/search-components/cart/cart-all.graphql
new file mode 100755
index 0000000..6c3f08a
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart/cart-all.graphql
@@ -0,0 +1,19 @@
+query SearchCart {
+ carts(limit: 50) {
+ results {
+ id
+ key
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ currencyCode
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/cart/cart-by-id.graphql b/mc-app/src/components/reference-input/search-components/cart/cart-by-id.graphql
new file mode 100755
index 0000000..463cec1
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart/cart-by-id.graphql
@@ -0,0 +1,16 @@
+query getCartById($id: String!) {
+ cart(id: $id) {
+ id
+ key
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/cart/cart-by-key.graphql b/mc-app/src/components/reference-input/search-components/cart/cart-by-key.graphql
new file mode 100755
index 0000000..1afeb37
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart/cart-by-key.graphql
@@ -0,0 +1,16 @@
+query getCartByKey($key: String!) {
+ cart(key: $key) {
+ id
+ key
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/cart/cart-search.graphql b/mc-app/src/components/reference-input/search-components/cart/cart-search.graphql
new file mode 100755
index 0000000..f30c811
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart/cart-search.graphql
@@ -0,0 +1,19 @@
+query SearchCart($where: String!, $limit: Int!, $offset: Int!) {
+ carts(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ key
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ currencyCode
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/cart/index.tsx b/mc-app/src/components/reference-input/search-components/cart/index.tsx
new file mode 100755
index 0000000..ef0a38b
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart/index.tsx
@@ -0,0 +1,51 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import CartById from './cart-by-id.graphql';
+import CartByKey from './cart-by-key.graphql';
+import CartSearch from './cart-search.graphql';
+import CartAll from './cart-all.graphql';
+import { Cart } from './types';
+
+const localizePath = (cart: Cart) => {
+ return `${cart.customerEmail ?? ''} ${
+ (cart.totalPrice?.centAmount ?? 0) / 100
+ } ${cart.totalPrice?.currencyCode || 'N/A'} ${
+ cart.billingAddress?.streetName ?? ''
+ } ${cart.billingAddress?.city ?? ''} ${cart.billingAddress?.state ?? ''} ${
+ cart.billingAddress?.country ?? ''
+ }`;
+};
+
+const CartSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.carts.results.map((cart: Cart): TEntity => {
+ return {
+ id: cart.id,
+ name: localizePath(cart),
+ key: cart.key,
+ };
+ });
+ const variableBuilder = (text: string) => ({
+ where: `customerEmail = "${text}" or billingAddress(country= "${text}") or billingAddress(city= "${text}") or billingAddress(state= "${text}") or billingAddress(streetName= "${text}")`,
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ allQuery={CartAll}
+ searchQuery={CartSearch}
+ byKeyQuery={CartByKey}
+ byIdQuery={CartById}
+ {...props}
+ />
+ );
+};
+CartSearchInput.displayName = 'CartSearchInput';
+
+export default CartSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/cart/types.ts b/mc-app/src/components/reference-input/search-components/cart/types.ts
new file mode 100644
index 0000000..b22b87c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/cart/types.ts
@@ -0,0 +1,19 @@
+import { TEntity } from '../../types';
+
+export interface Cart extends TEntity {
+ customerEmail?: string;
+ billingAddress: {
+ country: string;
+ city: string;
+ state?: string;
+ streetName?: string;
+ };
+ totalPrice?: {
+ centAmount: number;
+ currencyCode: string;
+ };
+}
+
+export interface CartResults {
+ categories: { results: Cart[] };
+}
diff --git a/mc-app/src/components/reference-input/search-components/category/category-all.graphql b/mc-app/src/components/reference-input/search-components/category/category-all.graphql
new file mode 100755
index 0000000..30e1d81
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/category/category-all.graphql
@@ -0,0 +1,24 @@
+query CategorySearch($locale: Locale) {
+ categories: categorySearch(
+ limit: 50
+ ) {
+ results {
+ id
+ key
+ name(locale: $locale)
+ nameAllLocales {
+ locale
+ value
+ }
+ ancestors {
+ id
+ name(locale: $locale)
+ nameAllLocales {
+ locale
+ value
+ }
+ }
+ stagedProductCount
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/category/category-by-id.graphql b/mc-app/src/components/reference-input/search-components/category/category-by-id.graphql
new file mode 100755
index 0000000..163bdcc
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/category/category-by-id.graphql
@@ -0,0 +1,14 @@
+fragment CategoryToDisplay on Category {
+ name(locale: $locale)
+ key
+}
+
+query CategoryById($id: String, $locale: Locale) {
+ category(id: $id) {
+ ...CategoryToDisplay
+ stagedProductCount
+ ancestors {
+ ...CategoryToDisplay
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/category/category-by-key.graphql b/mc-app/src/components/reference-input/search-components/category/category-by-key.graphql
new file mode 100755
index 0000000..3fc958e
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/category/category-by-key.graphql
@@ -0,0 +1,14 @@
+fragment CategoryToDisplay on Category {
+ name(locale: $locale)
+ key
+}
+
+query CategoryById($key: String, $locale: Locale) {
+ category(key: $key) {
+ ...CategoryToDisplay
+ stagedProductCount
+ ancestors {
+ ...CategoryToDisplay
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/category/category-search.graphql b/mc-app/src/components/reference-input/search-components/category/category-search.graphql
new file mode 100755
index 0000000..f9dcc70
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/category/category-search.graphql
@@ -0,0 +1,26 @@
+query CategorySearch($fullText: LocalizedText, $limit: Int!, $offset: Int!, $locale: Locale) {
+ categories: categorySearch(
+ fulltext: $fullText
+ limit: $limit
+ offset: $offset
+ ) {
+ results {
+ id
+ key
+ name(locale: $locale)
+ nameAllLocales {
+ locale
+ value
+ }
+ ancestors {
+ id
+ name(locale: $locale)
+ nameAllLocales {
+ locale
+ value
+ }
+ }
+ stagedProductCount
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/category/index.tsx b/mc-app/src/components/reference-input/search-components/category/index.tsx
new file mode 100755
index 0000000..09cffca
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/category/index.tsx
@@ -0,0 +1,56 @@
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import CategoryById from './category-by-id.graphql';
+import CategoryByKey from './category-by-key.graphql';
+import CategorySearch from './category-search.graphql';
+import CategoryAll from './category-all.graphql';
+import { Category } from './types';
+
+const localizePath = (category: Category, showProductCount = false) => {
+ let path = category.ancestors
+ ?.map((ancestor) => ancestor.name)
+ .concat([category.name])
+ .join(' > ');
+ if (showProductCount) {
+ path = `${path} (${category.stagedProductCount})`;
+ }
+ return path;
+};
+
+const CategorySearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.categories.results.map((category: Category): TEntity => {
+ return {
+ id: category.id,
+ name: localizePath(category, false),
+ key: category.key,
+ };
+ });
+ const variableBuilder = (text: string) => ({
+ fullText: { locale: dataLocale, text },
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ searchQuery={CategorySearch}
+ byKeyQuery={CategoryByKey}
+ byIdQuery={CategoryById}
+ allQuery={CategoryAll}
+ {...props}
+ />
+ );
+};
+CategorySearchInput.displayName = 'CategorySearchInput';
+
+export default CategorySearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/category/types.ts b/mc-app/src/components/reference-input/search-components/category/types.ts
new file mode 100644
index 0000000..83cdcf5
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/category/types.ts
@@ -0,0 +1,16 @@
+import { TEntity } from '../../types';
+
+export interface Category extends TEntity {
+ name: string;
+ nameAllLocales: { [key: string]: string };
+ ancestors?: {
+ nameAllLocales: { [key: string]: string };
+ id: string;
+ name: string;
+ }[];
+ stagedProductCount?: number;
+}
+
+export interface CategoryResults {
+ categories: { results: Category[] };
+}
diff --git a/mc-app/src/components/reference-input/search-components/channel/channel-all.graphql b/mc-app/src/components/reference-input/search-components/channel/channel-all.graphql
new file mode 100644
index 0000000..22bec4f
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/channel/channel-all.graphql
@@ -0,0 +1,10 @@
+query ChannelSearch($locale: Locale!) {
+ channels(limit: 50) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ roles
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/channel/channel-by-id.graphql b/mc-app/src/components/reference-input/search-components/channel/channel-by-id.graphql
new file mode 100644
index 0000000..c513732
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/channel/channel-by-id.graphql
@@ -0,0 +1,8 @@
+query ChannelById($id: String!, $locale: Locale!) {
+ channel(id: $id) {
+ id
+ name(locale: $locale)
+ key
+ roles
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/channel/channel-by-key.graphql b/mc-app/src/components/reference-input/search-components/channel/channel-by-key.graphql
new file mode 100644
index 0000000..de9538e
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/channel/channel-by-key.graphql
@@ -0,0 +1,8 @@
+query ChannelByKey($key: String!, $locale: Locale!) {
+ channel(key: $key) {
+ id
+ name(locale: $locale)
+ key
+ roles
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/channel/channel-search.graphql b/mc-app/src/components/reference-input/search-components/channel/channel-search.graphql
new file mode 100644
index 0000000..21b1e3b
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/channel/channel-search.graphql
@@ -0,0 +1,10 @@
+query ChannelSearch($where: String!, $limit: Int!, $offset: Int!, $locale: Locale!) {
+ channels(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ roles
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/channel/index.tsx b/mc-app/src/components/reference-input/search-components/channel/index.tsx
new file mode 100644
index 0000000..283e3ef
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/channel/index.tsx
@@ -0,0 +1,52 @@
+// mc-app/src/components/reference-input/search-components/channel.tsx
+
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import ChannelById from './channel-by-id.graphql';
+import ChannelByKey from './channel-by-key.graphql';
+import ChannelSearch from './channel-search.graphql';
+import ChannelAll from './channel-all.graphql';
+import { Channel } from './types';
+
+const localizePath = (channel: Channel) => {
+ return `${channel.name} - roles: ${channel.roles.join(', ')} - key: ${
+ channel.key
+ }`;
+};
+const ChannelSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.channels.results.map((channel: Channel): TEntity => {
+ return {
+ id: channel.id,
+ name: channel.name,
+ key: channel.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `key = "${text}" or name(${dataLocale} = "${text}")`,
+ });
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={ChannelSearch}
+ byKeyQuery={ChannelByKey}
+ byIdQuery={ChannelById}
+ allQuery={ChannelAll}
+ {...props}
+ />
+ );
+};
+
+export default ChannelSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/channel/types.ts b/mc-app/src/components/reference-input/search-components/channel/types.ts
new file mode 100644
index 0000000..d384a75
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/channel/types.ts
@@ -0,0 +1,5 @@
+import { TEntity } from '../../types';
+
+export interface Channel extends TEntity {
+ roles: string[];
+}
diff --git a/mc-app/src/components/reference-input/search-components/customer-group/customer-group-all.graphql b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-all.graphql
new file mode 100644
index 0000000..feee9ec
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-all.graphql
@@ -0,0 +1,9 @@
+query CustomerGroupSearch {
+ customerGroups(limit: 50) {
+ results {
+ id
+ name
+ key
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer-group/customer-group-by-id.graphql b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-by-id.graphql
new file mode 100644
index 0000000..be08331
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-by-id.graphql
@@ -0,0 +1,7 @@
+query CustomerGroupById($id: String!) {
+ customerGroup(id: $id) {
+ id
+ name
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer-group/customer-group-by-key.graphql b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-by-key.graphql
new file mode 100644
index 0000000..f083074
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-by-key.graphql
@@ -0,0 +1,7 @@
+query CustomerGroupByKey($key: String!) {
+ customerGroup(key: $key) {
+ id
+ name
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer-group/customer-group-search.graphql b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-search.graphql
new file mode 100644
index 0000000..2675de3
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer-group/customer-group-search.graphql
@@ -0,0 +1,9 @@
+query CustomerGroupSearch($where: String!, $limit: Int!, $offset: Int!) {
+ customerGroups(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name
+ key
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer-group/index.tsx b/mc-app/src/components/reference-input/search-components/customer-group/index.tsx
new file mode 100644
index 0000000..ec253af
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer-group/index.tsx
@@ -0,0 +1,45 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import CustomerGroupById from './customer-group-by-id.graphql';
+import CustomerGroupByKey from './customer-group-by-key.graphql';
+import CustomerGroupSearch from './customer-group-search.graphql';
+import CustomerGroupAll from './customer-group-all.graphql';
+import { CustomerGroup } from './types';
+
+const localizePath = (customerGroup: CustomerGroup) => {
+ return `${customerGroup.name} (${customerGroup.key})`;
+};
+
+const CustomerGroupSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.customerGroups.results.map((customerGroup: CustomerGroup): TEntity => {
+ return {
+ id: customerGroup.id,
+ name: customerGroup.name,
+ key: customerGroup.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `name = "${text}" or key = "${text}"`,
+ });
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={CustomerGroupSearch}
+ byKeyQuery={CustomerGroupByKey}
+ byIdQuery={CustomerGroupById}
+ allQuery={CustomerGroupAll}
+ {...props}
+ />
+ );
+};
+
+export default CustomerGroupSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/customer-group/types.ts b/mc-app/src/components/reference-input/search-components/customer-group/types.ts
new file mode 100644
index 0000000..9a81b51
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer-group/types.ts
@@ -0,0 +1,7 @@
+import { TEntity } from '../../types';
+
+export interface CustomerGroup extends TEntity {
+ id: string;
+ name: string;
+ key: string;
+}
diff --git a/mc-app/src/components/reference-input/search-components/customer/customer-all.graphql b/mc-app/src/components/reference-input/search-components/customer/customer-all.graphql
new file mode 100755
index 0000000..a9e5a5a
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer/customer-all.graphql
@@ -0,0 +1,11 @@
+query CustomerSearch {
+ customers (limit: 50) {
+ results {
+ email,
+ firstName,
+ lastName,
+ id,
+ key,
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer/customer-by-id.graphql b/mc-app/src/components/reference-input/search-components/customer/customer-by-id.graphql
new file mode 100755
index 0000000..c9ad07c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer/customer-by-id.graphql
@@ -0,0 +1,9 @@
+query CustomerById($id:String!) {
+ customer (id: $id) {
+ email,
+ firstName,
+ lastName,
+ id,
+ key,
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer/customer-by-key.graphql b/mc-app/src/components/reference-input/search-components/customer/customer-by-key.graphql
new file mode 100755
index 0000000..97c3507
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer/customer-by-key.graphql
@@ -0,0 +1,9 @@
+query CustomerByKey($key:String!) {
+ customer (key: $key) {
+ email,
+ firstName,
+ lastName,
+ id,
+ key,
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer/customer-search.graphql b/mc-app/src/components/reference-input/search-components/customer/customer-search.graphql
new file mode 100755
index 0000000..291c3e6
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer/customer-search.graphql
@@ -0,0 +1,12 @@
+query CustomerSearch($where:String!, $limit: Int!, $offset: Int!) {
+ customers (where: $where, limit: $limit
+ offset: $offset) {
+ results {
+ email,
+ firstName,
+ lastName,
+ id,
+ key,
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/customer/index.tsx b/mc-app/src/components/reference-input/search-components/customer/index.tsx
new file mode 100755
index 0000000..7052c34
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer/index.tsx
@@ -0,0 +1,47 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import CustomerById from './customer-by-id.graphql';
+import CustomerByKey from './customer-by-key.graphql';
+import CustomerSearch from './customer-search.graphql';
+import CustomerAll from './customer-all.graphql';
+import { Customer } from './types';
+
+const localizePath = (customer: Customer) => {
+ return (
+ customer.firstName + ' ' + customer.lastName + ' (' + customer.email + ')'
+ );
+};
+
+const CustomerSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.customers.results.map((customer: Customer): TEntity => {
+ return {
+ id: customer.id,
+ name: localizePath(customer),
+ key: customer.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `firstName = "${text}" or lastName = "${text}" or email= "${text}"`,
+ });
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ searchQuery={CustomerSearch}
+ byKeyQuery={CustomerByKey}
+ byIdQuery={CustomerById}
+ allQuery={CustomerAll}
+ {...props}
+ />
+ );
+};
+CustomerSearchInput.displayName = 'CustomerSearchInput';
+
+export default CustomerSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/customer/types.ts b/mc-app/src/components/reference-input/search-components/customer/types.ts
new file mode 100644
index 0000000..a2bb008
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/customer/types.ts
@@ -0,0 +1,9 @@
+import { TEntity } from '../../types';
+
+export interface Customer extends TEntity {
+ email?: string;
+ firstName?: string;
+ lastName?: string;
+ id: string;
+ key?: string;
+}
diff --git a/mc-app/src/components/reference-input/search-components/discount-code/discount-code-all.graphql b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-all.graphql
new file mode 100644
index 0000000..0cc44a3
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-all.graphql
@@ -0,0 +1,10 @@
+query DiscountCodeSearch($locale: Locale!) {
+ discountCodes(limit: 50) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ code
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/discount-code/discount-code-by-id.graphql b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-by-id.graphql
new file mode 100644
index 0000000..220c22e
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-by-id.graphql
@@ -0,0 +1,9 @@
+
+query DiscountCodeById($id: String!, $locale: Locale!) {
+ discountCode(id: $id) {
+ id
+ name(locale: $locale)
+ key
+ code
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/discount-code/discount-code-by-key.graphql b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-by-key.graphql
new file mode 100644
index 0000000..b1d55b6
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-by-key.graphql
@@ -0,0 +1,7 @@
+query DiscountCodeByKey($key: String!, $locale: Locale!) {
+ discountCode(key: $key) {
+ id
+ name(locale: $locale)
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/discount-code/discount-code-search.graphql b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-search.graphql
new file mode 100644
index 0000000..dec0a97
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/discount-code/discount-code-search.graphql
@@ -0,0 +1,10 @@
+query DiscountCodeSearch($where: String!, $limit: Int!, $offset: Int!, $locale: Locale!) {
+ discountCodes(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ code
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/discount-code/index.tsx b/mc-app/src/components/reference-input/search-components/discount-code/index.tsx
new file mode 100644
index 0000000..61e8c33
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/discount-code/index.tsx
@@ -0,0 +1,51 @@
+// workspace/discount-code.tsx
+
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import DiscountCodeById from './discount-code-by-id.graphql';
+import DiscountCodeByKey from './discount-code-by-key.graphql';
+import DiscountCodeSearch from './discount-code-search.graphql';
+import DiscountCodeAll from './discount-code-all.graphql';
+import { DiscountCode } from './types';
+
+const localizePath = (discountCode: DiscountCode) => {
+ return `${discountCode.name} (${discountCode.code})`;
+};
+
+const DiscountCodeSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.discountCodes.results.map((discountCode: DiscountCode): TEntity => {
+ return {
+ id: discountCode.id,
+ name: localizePath(discountCode),
+ key: discountCode.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `name(${dataLocale} = "${text}") or code = "${text}" or key = "${text}"`,
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ localizePath={localizePath}
+ searchQuery={DiscountCodeSearch}
+ byKeyQuery={DiscountCodeByKey}
+ byIdQuery={DiscountCodeById}
+ allQuery={DiscountCodeAll}
+ {...props}
+ />
+ );
+};
+
+export default DiscountCodeSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/discount-code/types.ts b/mc-app/src/components/reference-input/search-components/discount-code/types.ts
new file mode 100644
index 0000000..604d94c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/discount-code/types.ts
@@ -0,0 +1,5 @@
+import { TEntity } from '../../types';
+
+export interface DiscountCode extends TEntity {
+ code: string;
+}
diff --git a/mc-app/src/components/reference-input/search-components/key-value-document/index.tsx b/mc-app/src/components/reference-input/search-components/key-value-document/index.tsx
new file mode 100644
index 0000000..3449271
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/key-value-document/index.tsx
@@ -0,0 +1,56 @@
+// workspace/key-value-document.tsx
+
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import KeyValueDocumentById from './key-value-document-by-id.graphql';
+import KeyValueDocumentByKey from './key-value-document-by-key.graphql';
+import KeyValueDocumentSearch from './key-value-document-search.graphql';
+import { KeyValueDocument } from './types';
+
+const localizePath = (keyValueDocument: KeyValueDocument) => {
+ return `Container: ${keyValueDocument.container}, key: ${keyValueDocument.key}`;
+};
+const KeyValueDocumentSearchInput: FC<
+ React.HTMLAttributes &
+ GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.customObjects.results.map(
+ (keyValueDocument: KeyValueDocument): TEntity => {
+ return {
+ id: keyValueDocument.id,
+ name: localizePath(keyValueDocument),
+ key: keyValueDocument.key,
+ };
+ }
+ );
+
+ const variableBuilder = (text: string) => {
+ if (text.split(' ').length > 1) {
+ return {
+ container: text.split(' ')[0],
+ where: `key = "${text.split(' ')[1]}"`,
+ };
+ }
+ return {
+ container: text,
+ // where: '',
+ };
+ };
+
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ searchQuery={KeyValueDocumentSearch}
+ byKeyQuery={KeyValueDocumentByKey}
+ byIdQuery={KeyValueDocumentById}
+ {...props}
+ />
+ );
+};
+
+export default KeyValueDocumentSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-by-id.graphql b/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-by-id.graphql
new file mode 100644
index 0000000..d7db2b8
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-by-id.graphql
@@ -0,0 +1,7 @@
+query KeyValueDocumentById($id:String!) {
+ customObject(id: $id) {
+ id
+ key
+ container
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-by-key.graphql b/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-by-key.graphql
new file mode 100644
index 0000000..58233d9
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-by-key.graphql
@@ -0,0 +1,7 @@
+query KeyValueDocumentByKey($key: String!) {
+ customObject(key: $key) {
+ id
+ container
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-search.graphql b/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-search.graphql
new file mode 100644
index 0000000..b286a08
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/key-value-document/key-value-document-search.graphql
@@ -0,0 +1,9 @@
+query KeyValueDocumentSearch($container:String!, $where: String, $limit: Int!, $offset: Int!) {
+ customObjects(container:$container, where: $where, limit: $limit, offset: $offset, sort:"key asc") {
+ results {
+ id
+ key
+ container
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/key-value-document/types.ts b/mc-app/src/components/reference-input/search-components/key-value-document/types.ts
new file mode 100644
index 0000000..4f47f72
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/key-value-document/types.ts
@@ -0,0 +1,5 @@
+import { TEntity } from '../../types';
+
+export interface KeyValueDocument extends TEntity {
+ container: string;
+}
diff --git a/mc-app/src/components/reference-input/search-components/order/index.tsx b/mc-app/src/components/reference-input/search-components/order/index.tsx
new file mode 100755
index 0000000..97cfd58
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/order/index.tsx
@@ -0,0 +1,51 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import OrderById from './order-by-id.graphql';
+import OrderByKey from './order-by-key.graphql';
+import OrderSearch from './order-search.graphql';
+import OrderAll from './order-all.graphql';
+import { Order } from './types';
+
+const localizePath = (order: Order) => {
+ return `OrderNumber: ${order.orderNumber} - ${order.customerEmail ?? ''} ${
+ (order.totalPrice?.centAmount ?? 0) / 100
+ } ${order.totalPrice?.currencyCode || 'N/A'} ${
+ order.billingAddress?.streetName ?? ''
+ } ${order.billingAddress?.city ?? ''} ${order.billingAddress?.state ?? ''} ${
+ order.billingAddress?.country ?? ''
+ }`;
+};
+
+const OrderSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.orders.results.map((order: Order): TEntity => {
+ return {
+ id: order.id,
+ name: localizePath(order),
+ key: order.orderNumber,
+ };
+ });
+ const variableBuilder = (text: string) => ({
+ where: `orderNumber = "${text}" or customerEmail = "${text}" or billingAddress(country= "${text}") or billingAddress(city= "${text}") or billingAddress(state= "${text}") or billingAddress(streetName= "${text}")`,
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ searchQuery={OrderSearch}
+ byKeyQuery={OrderByKey}
+ byIdQuery={OrderById}
+ allQuery={OrderAll}
+ {...props}
+ />
+ );
+};
+OrderSearchInput.displayName = 'OrderSearchInput';
+
+export default OrderSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/order/order-all.graphql b/mc-app/src/components/reference-input/search-components/order/order-all.graphql
new file mode 100755
index 0000000..403bb88
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/order/order-all.graphql
@@ -0,0 +1,19 @@
+query SearchOrder {
+ orders(limit: 50) {
+ results {
+ id
+ orderNumber
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ currencyCode
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/order/order-by-id.graphql b/mc-app/src/components/reference-input/search-components/order/order-by-id.graphql
new file mode 100755
index 0000000..65f2b88
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/order/order-by-id.graphql
@@ -0,0 +1,16 @@
+query getOrderById($id: String!) {
+ order(id: $id) {
+ id
+ orderNumber
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/order/order-by-key.graphql b/mc-app/src/components/reference-input/search-components/order/order-by-key.graphql
new file mode 100755
index 0000000..f358b6d
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/order/order-by-key.graphql
@@ -0,0 +1,16 @@
+query getOrderByOrderNumber($orderNumber: String!) {
+ order(orderNumber: $orderNumber) {
+ id
+ orderNumber
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/order/order-search.graphql b/mc-app/src/components/reference-input/search-components/order/order-search.graphql
new file mode 100755
index 0000000..d73ab0f
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/order/order-search.graphql
@@ -0,0 +1,19 @@
+query SearchOrder($where: String!, $limit: Int!, $offset: Int!) {
+ orders(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ orderNumber
+ customerEmail
+ billingAddress {
+ streetName
+ city
+ state
+ country
+ }
+ totalPrice {
+ centAmount
+ currencyCode
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/order/types.ts b/mc-app/src/components/reference-input/search-components/order/types.ts
new file mode 100644
index 0000000..0e84846
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/order/types.ts
@@ -0,0 +1,20 @@
+import { TEntity } from '../../types';
+
+export interface Order extends TEntity {
+ orderNumber: string;
+ customerEmail?: string;
+ billingAddress: {
+ country: string;
+ city: string;
+ state?: string;
+ streetName?: string;
+ };
+ totalPrice?: {
+ centAmount: number;
+ currencyCode: string;
+ };
+}
+
+export interface OrderResults {
+ categories: { results: Order[] };
+}
diff --git a/mc-app/src/components/reference-input/search-components/payment/index.tsx b/mc-app/src/components/reference-input/search-components/payment/index.tsx
new file mode 100644
index 0000000..1f60571
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/payment/index.tsx
@@ -0,0 +1,56 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import PaymentMethodById from './payment-by-id.graphql';
+import PaymentMethodByKey from './payment-by-key.graphql';
+import PaymentMethodSearch from './payment-search.graphql';
+import PaymentMethodAll from './payment-all.graphql';
+import { Payment } from './types';
+
+const localizePath = (payment: Payment) => {
+ return `${payment.id} - Amount: ${
+ (payment.amountPlanned?.centAmount ?? 0) / 100
+ } ${payment.amountPlanned?.currencyCode}${
+ payment.customer?.email ? ` - Customer: ${payment.customer.email}` : ''
+ }`;
+};
+
+const PaymentSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.payments.results.map((payment: Payment): TEntity => {
+ return {
+ id: payment.id,
+ name: localizePath(payment),
+ key: payment.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => {
+ if (isNaN(parseInt(text))) {
+ return {
+ where: `key="${text}" or amountPlanned(currencyCode= "${text}")`,
+ };
+ }
+ return {
+ where: `amountPlanned(centAmount = ${text})`,
+ };
+ };
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={PaymentMethodSearch}
+ byKeyQuery={PaymentMethodByKey}
+ byIdQuery={PaymentMethodById}
+ allQuery={PaymentMethodAll}
+ {...props}
+ />
+ );
+};
+
+export default PaymentSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/payment/payment-all.graphql b/mc-app/src/components/reference-input/search-components/payment/payment-all.graphql
new file mode 100644
index 0000000..96a1235
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/payment/payment-all.graphql
@@ -0,0 +1,23 @@
+query PaymentSearch($locale: Locale!) {
+ payments(limit: 50) {
+ results {
+ id
+ key
+ amountPlanned {
+ centAmount
+ currencyCode
+ }
+ customer {
+ email
+ }
+ paymentMethodInfo {
+ name(locale: $locale)
+ }
+ paymentStatus {
+ state {
+ key
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/payment/payment-by-id.graphql b/mc-app/src/components/reference-input/search-components/payment/payment-by-id.graphql
new file mode 100644
index 0000000..dbf0a72
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/payment/payment-by-id.graphql
@@ -0,0 +1,21 @@
+query PaymentGatewayById($id: String!, $locale: Locale!) {
+ payment(id: $id) {
+ id
+ key
+ amountPlanned {
+ centAmount
+ currencyCode
+ }
+ customer {
+ email
+ }
+ paymentMethodInfo {
+ name(locale: $locale)
+ }
+ paymentStatus {
+ state {
+ key
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/payment/payment-by-key.graphql b/mc-app/src/components/reference-input/search-components/payment/payment-by-key.graphql
new file mode 100644
index 0000000..bd83540
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/payment/payment-by-key.graphql
@@ -0,0 +1,21 @@
+query PaymentGatewayByKey($key: String!, $locale: Locale!) {
+ payment(key: $key) {
+ id
+ key
+ amountPlanned {
+ centAmount
+ currencyCode
+ }
+ customer {
+ email
+ }
+ paymentMethodInfo {
+ name(locale: $locale)
+ }
+ paymentStatus {
+ state {
+ key
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/payment/payment-search.graphql b/mc-app/src/components/reference-input/search-components/payment/payment-search.graphql
new file mode 100644
index 0000000..23dd358
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/payment/payment-search.graphql
@@ -0,0 +1,23 @@
+query PaymentSearch($where:String!, $limit: Int!, $offset: Int!, $locale: Locale!) {
+ payments(where:$where,limit: $limit, offset: $offset) {
+ results {
+ id
+ key
+ amountPlanned {
+ centAmount
+ currencyCode
+ }
+ customer {
+ email
+ }
+ paymentMethodInfo {
+ name(locale: $locale)
+ }
+ paymentStatus {
+ state {
+ key
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/payment/types.ts b/mc-app/src/components/reference-input/search-components/payment/types.ts
new file mode 100644
index 0000000..f71f57c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/payment/types.ts
@@ -0,0 +1,16 @@
+import { TEntity } from '../../types';
+
+export interface Payment extends TEntity {
+ amountPlanned?: {
+ centAmount: number;
+ currencyCode: string;
+ };
+ customer?: {
+ email: string;
+ };
+ paymentStatus?: {
+ state?: {
+ key?: string;
+ };
+ };
+}
diff --git a/mc-app/src/components/reference-input/search-components/product-discount/index.tsx b/mc-app/src/components/reference-input/search-components/product-discount/index.tsx
new file mode 100644
index 0000000..446c02c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-discount/index.tsx
@@ -0,0 +1,54 @@
+// mc-app/src/components/reference-input/search-components/cart-discount.tsx
+
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import ProductDiscountById from './product-discount-by-id.graphql';
+import ProductDiscountByKey from './product-discount-by-key.graphql';
+import ProductDiscountSearch from './product-discount-search.graphql';
+import ProductDiscountAll from './product-discount-all.graphql';
+import { ProductDiscount } from './types';
+
+const localizePath = (productdiscount: ProductDiscount) => {
+ return `${productdiscount.name} - isActive: ${productdiscount.isActive} - key: ${productdiscount.key}`;
+};
+
+const ProductDiscountSearchInput: FC<
+ React.HTMLAttributes &
+ GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.productDiscounts.results.map(
+ (productDiscount: ProductDiscount): TEntity => {
+ return {
+ id: productDiscount.id,
+ name: productDiscount.name,
+ key: productDiscount.key,
+ };
+ }
+ );
+
+ const variableBuilder = (text: string) => ({
+ where: `name(${dataLocale} = "${text}") or description(${dataLocale} = "${text}") or key = "${text}"`,
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ localizePath={localizePath}
+ searchQuery={ProductDiscountSearch}
+ byKeyQuery={ProductDiscountByKey}
+ byIdQuery={ProductDiscountById}
+ allQuery={ProductDiscountAll}
+ {...props}
+ />
+ );
+};
+
+export default ProductDiscountSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/product-discount/product-discount-all.graphql b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-all.graphql
new file mode 100644
index 0000000..541464f
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-all.graphql
@@ -0,0 +1,13 @@
+query ProductDiscountSearch($locale: Locale!) {
+ productDiscounts(limit: 50) {
+ results {
+ id
+ name(locale:$locale)
+ key,
+ isActive
+ value {
+ type
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product-discount/product-discount-by-id.graphql b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-by-id.graphql
new file mode 100644
index 0000000..c45e8e4
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-by-id.graphql
@@ -0,0 +1,11 @@
+query ProductDiscountById($id: String!, $locale: Locale) {
+ productDiscount(id: $id) {
+ id
+ name(locale: $locale)
+ key
+ isActive
+ value {
+ type
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/product-discount/product-discount-by-key.graphql b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-by-key.graphql
new file mode 100644
index 0000000..73936ce
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-by-key.graphql
@@ -0,0 +1,12 @@
+query ProductDiscountByKey($key: String!, $locale: Locale) {
+ productDiscount(key: $key) {
+ id
+ name(locale: $locale)
+ key
+ isActive
+ value {
+ type
+ }
+ }
+}
+
diff --git a/mc-app/src/components/reference-input/search-components/product-discount/product-discount-search.graphql b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-search.graphql
new file mode 100644
index 0000000..318b90e
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-discount/product-discount-search.graphql
@@ -0,0 +1,13 @@
+query ProductDiscountSearch($where: String!, $locale: Locale!) {
+ productDiscounts(where: $where) {
+ results {
+ id
+ name(locale:$locale)
+ key,
+ isActive
+ value {
+ type
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product-discount/types.ts b/mc-app/src/components/reference-input/search-components/product-discount/types.ts
new file mode 100644
index 0000000..c0875cf
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-discount/types.ts
@@ -0,0 +1,11 @@
+import { TEntity } from '../../types';
+
+export interface ProductDiscount extends TEntity {
+ id: string;
+ name: string;
+ key: string;
+ value: {
+ type: string;
+ };
+ isActive: boolean;
+}
diff --git a/mc-app/src/components/reference-input/search-components/product-type/index.tsx b/mc-app/src/components/reference-input/search-components/product-type/index.tsx
new file mode 100644
index 0000000..ba84c3c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-type/index.tsx
@@ -0,0 +1,45 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import ProductTypeById from './product-type-by-id.graphql';
+import ProductTypeByKey from './product-type-by-key.graphql';
+import ProductTypeSearch from './product-type-search.graphql';
+import ProductTypeAll from './product-type-all.graphql';
+import { ProductType } from './types';
+
+const localizePath = (product: ProductType) => {
+ return `${product.name} (${product.key})`;
+};
+
+const ProductTypeSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.productTypes.results.map((productType: ProductType): TEntity => {
+ return {
+ id: productType.id,
+ name: productType.name,
+ key: productType.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `name = "${text}"`,
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ searchQuery={ProductTypeSearch}
+ byKeyQuery={ProductTypeByKey}
+ byIdQuery={ProductTypeById}
+ allQuery={ProductTypeAll}
+ {...props}
+ />
+ );
+};
+
+export default ProductTypeSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/product-type/product-type-all.graphql b/mc-app/src/components/reference-input/search-components/product-type/product-type-all.graphql
new file mode 100644
index 0000000..0328357
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-type/product-type-all.graphql
@@ -0,0 +1,9 @@
+query ProductTypeSearch {
+ productTypes(limit: 50) {
+ results {
+ id
+ name
+ key
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product-type/product-type-by-id.graphql b/mc-app/src/components/reference-input/search-components/product-type/product-type-by-id.graphql
new file mode 100644
index 0000000..2249e67
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-type/product-type-by-id.graphql
@@ -0,0 +1,7 @@
+query ProductTypeById($id: String!) {
+ productType(id: $id) {
+ id
+ name
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product-type/product-type-by-key.graphql b/mc-app/src/components/reference-input/search-components/product-type/product-type-by-key.graphql
new file mode 100644
index 0000000..c5f1816
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-type/product-type-by-key.graphql
@@ -0,0 +1,7 @@
+query ProductTypeByKey($key: String!) {
+ productType(key: $key) {
+ id
+ name
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product-type/product-type-search.graphql b/mc-app/src/components/reference-input/search-components/product-type/product-type-search.graphql
new file mode 100644
index 0000000..ed1bb14
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-type/product-type-search.graphql
@@ -0,0 +1,9 @@
+query ProductTypeSearch($where: String!, $limit: Int!, $offset: Int!) {
+ productTypes(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name
+ key
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product-type/types.ts b/mc-app/src/components/reference-input/search-components/product-type/types.ts
new file mode 100644
index 0000000..d8ea2b5
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product-type/types.ts
@@ -0,0 +1,3 @@
+import { TEntity } from '../../types';
+
+export type ProductType = TEntity;
diff --git a/mc-app/src/components/reference-input/search-components/product/index.tsx b/mc-app/src/components/reference-input/search-components/product/index.tsx
new file mode 100755
index 0000000..6ce0f0b
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product/index.tsx
@@ -0,0 +1,51 @@
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import ProductById from './product-by-id.graphql';
+import ProductByKey from './product-by-key.graphql';
+import ProductSearch from './product-search.graphql';
+import ProductAll from './product-all.graphql';
+import { Product, ProductProjectionItem } from './types';
+
+const localizePathProductprojection = (product: ProductProjectionItem) => {
+ return `${product.name} (${product.masterVariant?.sku})`;
+};
+const localizePath = (product: Product) => {
+ return `${product.masterData?.current?.name} (${product.masterData?.current?.masterVariant?.sku})`;
+};
+
+const ProductSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => context);
+ const optionMapper = (data: Result) =>
+ data.productProjectionSearch.results.map((product: Product): TEntity => {
+ return {
+ id: product.id,
+ name: localizePathProductprojection(product),
+ key: product.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ text,
+ locale: dataLocale,
+ });
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ searchQuery={ProductSearch}
+ byKeyQuery={ProductByKey}
+ byIdQuery={ProductById}
+ allQuery={ProductAll}
+ {...props}
+ />
+ );
+};
+ProductSearchInput.displayName = 'CustomerSearchInput';
+
+export default ProductSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/product/product-all.graphql b/mc-app/src/components/reference-input/search-components/product/product-all.graphql
new file mode 100755
index 0000000..9ebfb21
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product/product-all.graphql
@@ -0,0 +1,16 @@
+query SearchProducts($locale: Locale!) {
+ productProjectionSearch(limit: 50) {
+ total
+ results {
+ id
+ productType {
+ key
+ }
+ key
+ name(locale:$locale)
+ masterVariant {
+ sku
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product/product-by-id.graphql b/mc-app/src/components/reference-input/search-components/product/product-by-id.graphql
new file mode 100755
index 0000000..9b1a588
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product/product-by-id.graphql
@@ -0,0 +1,18 @@
+query getProductById($id: String!, $locale: Locale!) {
+ product(id: $id) {
+ id
+ productType {
+ key
+ }
+ key
+ masterData {
+ current {
+ name (locale: $locale)
+ masterVariant {
+ sku
+ }
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product/product-by-key.graphql b/mc-app/src/components/reference-input/search-components/product/product-by-key.graphql
new file mode 100755
index 0000000..1881d8f
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product/product-by-key.graphql
@@ -0,0 +1,18 @@
+query getProductByKey($key: String!, $locale: Locale!) {
+ product(key: $key) {
+ id
+ productType {
+ key
+ }
+ key
+ masterData {
+ current {
+ name (locale: $locale)
+ masterVariant {
+ sku
+ }
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product/product-search.graphql b/mc-app/src/components/reference-input/search-components/product/product-search.graphql
new file mode 100755
index 0000000..9dc76fd
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product/product-search.graphql
@@ -0,0 +1,16 @@
+query SearchProducts($text: String!, $limit: Int!, $offset: Int!, $locale: Locale!) {
+ productProjectionSearch(text: $text, limit: $limit, offset: $offset, locale:$locale) {
+ total
+ results {
+ id
+ productType {
+ key
+ }
+ key
+ name(locale:$locale)
+ masterVariant {
+ sku
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/product/types.ts b/mc-app/src/components/reference-input/search-components/product/types.ts
new file mode 100644
index 0000000..c3a50f1
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/product/types.ts
@@ -0,0 +1,24 @@
+import { TEntity } from '../../types';
+
+export interface Product extends TEntity {
+ productType: {
+ key?: string;
+ };
+ masterData: {
+ current: {
+ name?: string;
+ masterVariant?: {
+ sku?: string;
+ };
+ };
+ };
+}
+
+export interface ProductProjectionItem extends TEntity {
+ productType: {
+ key?: string;
+ };
+ masterVariant?: {
+ sku?: string;
+ };
+}
diff --git a/mc-app/src/components/reference-input/search-components/shipping-method/index.tsx b/mc-app/src/components/reference-input/search-components/shipping-method/index.tsx
new file mode 100644
index 0000000..467a856
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shipping-method/index.tsx
@@ -0,0 +1,51 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import ShippingMethodById from './shipping-method-by-id.graphql';
+import ShippingMethodByKey from './shipping-method-by-key.graphql';
+import ShippingMethodSearch from './shipping-method-search.graphql';
+import ShippingMethodAll from './shipping-method-all.graphql';
+import { ShippingMethod } from './types';
+
+const localizePath = (shippingMethod: ShippingMethod) => {
+ return `${shippingMethod.name ?? ''} - key: ${
+ shippingMethod.key
+ }, Zones: ${shippingMethod.zoneRates
+ ?.map((zoneRate) => zoneRate.zone.name)
+ .join(', ')}`;
+};
+
+const ShippingMethodSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.shippingMethods.results.map(
+ (shippingMethod: ShippingMethod): TEntity => {
+ return {
+ id: shippingMethod.id,
+ name: localizePath(shippingMethod),
+ key: shippingMethod.key,
+ };
+ }
+ );
+
+ const variableBuilder = (text: string) => ({
+ where: `name = "${text}" or description = "${text}"`,
+ });
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={ShippingMethodSearch}
+ byKeyQuery={ShippingMethodByKey}
+ byIdQuery={ShippingMethodById}
+ allQuery={ShippingMethodAll}
+ {...props}
+ />
+ );
+};
+
+export default ShippingMethodSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-all.graphql b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-all.graphql
new file mode 100644
index 0000000..3ed949b
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-all.graphql
@@ -0,0 +1,15 @@
+query ShippingMethodSearch {
+ shippingMethods(limit: 50) {
+ results {
+ id
+ name
+ key
+ zoneRates {
+ zone {
+ id
+ name
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-by-id.graphql b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-by-id.graphql
new file mode 100644
index 0000000..0f5f086
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-by-id.graphql
@@ -0,0 +1,13 @@
+query ShippingMethodById($id: String!) {
+ shippingMethod(id: $id) {
+ id
+ name
+ key
+ zoneRates {
+ zone {
+ id
+ name
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-by-key.graphql b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-by-key.graphql
new file mode 100644
index 0000000..91c95a3
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-by-key.graphql
@@ -0,0 +1,13 @@
+query ShippingMethodByKey($key: String!) {
+ shippingMethod(key: $key) {
+ id
+ name
+ key
+ zoneRates {
+ zone {
+ id
+ name
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-search.graphql b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-search.graphql
new file mode 100644
index 0000000..cbdba10
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shipping-method/shipping-method-search.graphql
@@ -0,0 +1,15 @@
+query ShippingMethodSearch($where: String!, $limit: Int!, $offset: Int!) {
+ shippingMethods(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name
+ key
+ zoneRates {
+ zone {
+ id
+ name
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/shipping-method/types.ts b/mc-app/src/components/reference-input/search-components/shipping-method/types.ts
new file mode 100644
index 0000000..6600118
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shipping-method/types.ts
@@ -0,0 +1,10 @@
+import { TEntity } from '../../types';
+
+export interface ShippingMethod extends TEntity {
+ zoneRates: {
+ zone: {
+ id: string;
+ name: string;
+ };
+ }[];
+}
diff --git a/mc-app/src/components/reference-input/search-components/shopping-list/index.tsx b/mc-app/src/components/reference-input/search-components/shopping-list/index.tsx
new file mode 100644
index 0000000..4abef56
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shopping-list/index.tsx
@@ -0,0 +1,51 @@
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import ShoppingListById from './shopping-list-by-id.graphql';
+import ShoppingListByKey from './shopping-list-by-key.graphql';
+import ShoppingListSearch from './shopping-list-search.graphql';
+import ShoppingListAll from './shopping-list-all.graphql';
+import { ShoppingList } from './types';
+
+const localizePath = (shoppingList: ShoppingList) => {
+ return `${shoppingList.name ?? ''} - key: ${shoppingList.key}, customer: ${
+ shoppingList.customer?.email ?? ''
+ } - id: ${shoppingList.id}`;
+};
+
+const ShoppingListSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.shoppingLists.results.map((shoppingList: ShoppingList): TEntity => {
+ return {
+ id: shoppingList.id,
+ name: localizePath(shoppingList),
+ key: shoppingList.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `name(${dataLocale} = "${text}") or key = "${text}"`,
+ });
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={ShoppingListSearch}
+ byKeyQuery={ShoppingListByKey}
+ byIdQuery={ShoppingListById}
+ allQuery={ShoppingListAll}
+ {...props}
+ />
+ );
+};
+
+export default ShoppingListSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-all.graphql b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-all.graphql
new file mode 100644
index 0000000..5b9d100
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-all.graphql
@@ -0,0 +1,13 @@
+query ShoppingListSearch($locale: Locale!) {
+ shoppingLists(limit: 50) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ slug(locale: $locale)
+ customer {
+ email
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-by-id.graphql b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-by-id.graphql
new file mode 100644
index 0000000..ee54c62
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-by-id.graphql
@@ -0,0 +1,11 @@
+query ShoppingListById($id: String!, $locale: Locale!) {
+ shoppingList(id: $id) {
+ id
+ name(locale: $locale)
+ key
+ slug(locale: $locale)
+ customer {
+ email
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-by-key.graphql b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-by-key.graphql
new file mode 100644
index 0000000..47220a5
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-by-key.graphql
@@ -0,0 +1,11 @@
+query ShoppingListByKey($key: String!, $locale: Locale!) {
+ shoppingList(key: $key) {
+ id
+ name(locale: $locale)
+ key
+ slug(locale: $locale)
+ customer {
+ email
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-search.graphql b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-search.graphql
new file mode 100644
index 0000000..a9de5c9
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shopping-list/shopping-list-search.graphql
@@ -0,0 +1,13 @@
+query ShoppingListSearch($limit: Int!, $offset: Int!, $locale: Locale!, $where: String!) {
+ shoppingLists(limit: $limit, offset: $offset, where: $where) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ slug(locale: $locale)
+ customer {
+ email
+ }
+ }
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/shopping-list/types.ts b/mc-app/src/components/reference-input/search-components/shopping-list/types.ts
new file mode 100644
index 0000000..2cf5af1
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/shopping-list/types.ts
@@ -0,0 +1,9 @@
+import { TEntity } from '../../types';
+
+export interface ShoppingList extends TEntity {
+ slug?: string;
+ customer?: {
+ email?: string;
+ id: string;
+ };
+}
diff --git a/mc-app/src/components/reference-input/search-components/standalone-price/index.tsx b/mc-app/src/components/reference-input/search-components/standalone-price/index.tsx
new file mode 100644
index 0000000..fc72065
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/standalone-price/index.tsx
@@ -0,0 +1,63 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import StandalonePriceById from './standalone-price-by-id.graphql';
+import StandalonePriceByKey from './standalone-price-by-key.graphql';
+import StandalonePriceSearch from './standalone-price-search.graphql';
+import StandalonePricAll from './standalone-price-all.graphql';
+import { StandalonePrice } from './types';
+
+const localizePath = (standalonePrice: StandalonePrice) => {
+ return `SKU: ${standalonePrice.sku} - key: ${standalonePrice.key} - Price: ${
+ (standalonePrice.value.centAmount ?? 0) / 100
+ } ${standalonePrice.value.currencyCode}${
+ standalonePrice.channel ? ` - channel: ${standalonePrice.channel.key}` : ''
+ }${
+ standalonePrice.customerGroup
+ ? ` - customerGroup: ${standalonePrice.customerGroup.key}`
+ : ''
+ }`;
+};
+
+const StandalonePriceSearchInput: FC<
+ React.HTMLAttributes &
+ GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.standalonePrices.results.map(
+ (standalonePrice: StandalonePrice): TEntity => {
+ return {
+ id: standalonePrice.id,
+ name: localizePath(standalonePrice),
+ key: standalonePrice.key,
+ };
+ }
+ );
+
+ const variableBuilder = (text: string) => {
+ if (isNaN(parseInt(text))) {
+ return {
+ where: `key = "${text}" or sku = "${text}" or value(currencyCode="${text}")`,
+ };
+ }
+ return {
+ where: `value(centAmount = ${text})`,
+ };
+ };
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={StandalonePriceSearch}
+ byKeyQuery={StandalonePriceByKey}
+ byIdQuery={StandalonePriceById}
+ allQuery={StandalonePricAll}
+ {...props}
+ />
+ );
+};
+
+export default StandalonePriceSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-all.graphql b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-all.graphql
new file mode 100644
index 0000000..b122ee1
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-all.graphql
@@ -0,0 +1,21 @@
+query StandalonePriceSearch {
+ standalonePrices(limit: 50) {
+ results {
+ id
+ sku
+ key
+ customerGroup {
+ key
+ }
+ channel {
+ key
+ }
+ value {
+ centAmount
+ currencyCode
+ }
+ validFrom
+ validUntil
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-by-id.graphql b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-by-id.graphql
new file mode 100644
index 0000000..acdcd14
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-by-id.graphql
@@ -0,0 +1,19 @@
+query StandalonePriceById($id: String!) {
+ standalonePrice(id: $id) {
+ id
+ sku
+ key
+ customerGroup {
+ key
+ }
+ channel {
+ key
+ }
+ value {
+ centAmount
+ currencyCode
+ }
+ validFrom
+ validUntil
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-by-key.graphql b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-by-key.graphql
new file mode 100644
index 0000000..79697e9
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-by-key.graphql
@@ -0,0 +1,19 @@
+query StandalonePriceByKey($key: String!) {
+ standalonePrice(key: $key) {
+ id
+ sku
+ key
+ customerGroup {
+ key
+ }
+ channel {
+ key
+ }
+ value {
+ centAmount
+ currencyCode
+ }
+ validFrom
+ validUntil
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-search.graphql b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-search.graphql
new file mode 100644
index 0000000..b626afe
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/standalone-price/standalone-price-search.graphql
@@ -0,0 +1,21 @@
+query StandalonePriceSearch($where: String!, $limit: Int!, $offset: Int!) {
+ standalonePrices(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ sku
+ key
+ customerGroup {
+ key
+ }
+ channel {
+ key
+ }
+ value {
+ centAmount
+ currencyCode
+ }
+ validFrom
+ validUntil
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/standalone-price/types.ts b/mc-app/src/components/reference-input/search-components/standalone-price/types.ts
new file mode 100644
index 0000000..2479041
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/standalone-price/types.ts
@@ -0,0 +1,17 @@
+import { TEntity } from '../../types';
+
+export interface StandalonePrice extends TEntity {
+ sku: string;
+ customerGroup?: {
+ key: string;
+ };
+ channel?: {
+ key: string;
+ };
+ value: {
+ centAmount: number;
+ currencyCode: string;
+ };
+ validFrom: string;
+ validUntil: string;
+}
diff --git a/mc-app/src/components/reference-input/search-components/state/index.tsx b/mc-app/src/components/reference-input/search-components/state/index.tsx
new file mode 100644
index 0000000..2c66ca3
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/state/index.tsx
@@ -0,0 +1,49 @@
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import StateById from './state-by-id.graphql';
+import StateByKey from './state-by-key.graphql';
+import StateSearch from './state-search.graphql';
+import StateAll from './state-all.graphql';
+import { State } from './types';
+
+const localizePath = (state: State) => {
+ return `${state.name} - key: ${state.key} - type: ${state.type}`;
+};
+
+const StateSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.states.results.map((state: State): TEntity => {
+ return {
+ id: state.id,
+ name: localizePath(state),
+ key: state.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `name(${dataLocale} = "${text}") or key= "${text}"`,
+ });
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={StateSearch}
+ byKeyQuery={StateByKey}
+ byIdQuery={StateById}
+ allQuery={StateAll}
+ {...props}
+ />
+ );
+};
+
+export default StateSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/state/state-all.graphql b/mc-app/src/components/reference-input/search-components/state/state-all.graphql
new file mode 100644
index 0000000..b8ed668
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/state/state-all.graphql
@@ -0,0 +1,12 @@
+query StateSearch($locale: Locale!) {
+ states(limit: 50) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ description(locale: $locale)
+ roles
+ type
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/state/state-by-id.graphql b/mc-app/src/components/reference-input/search-components/state/state-by-id.graphql
new file mode 100644
index 0000000..df41b34
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/state/state-by-id.graphql
@@ -0,0 +1,10 @@
+query StateById($id: String!, $locale: Locale!) {
+ state(id: $id) {
+ id
+ name(locale: $locale)
+ key
+ description(locale: $locale)
+ roles
+ type
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/state/state-by-key.graphql b/mc-app/src/components/reference-input/search-components/state/state-by-key.graphql
new file mode 100644
index 0000000..6372a71
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/state/state-by-key.graphql
@@ -0,0 +1,10 @@
+query StateByKey($key: String!, $locale: Locale!) {
+ state(key: $key) {
+ id
+ name(locale: $locale)
+ key
+ description(locale: $locale)
+ roles
+ type
+ }
+}
diff --git a/mc-app/src/components/reference-input/search-components/state/state-search.graphql b/mc-app/src/components/reference-input/search-components/state/state-search.graphql
new file mode 100644
index 0000000..87ea33e
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/state/state-search.graphql
@@ -0,0 +1,12 @@
+query StateSearch($where: String!, $limit: Int!, $offset: Int!, $locale: Locale!) {
+ states(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ description(locale: $locale)
+ roles
+ type
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/state/types.ts b/mc-app/src/components/reference-input/search-components/state/types.ts
new file mode 100644
index 0000000..261587b
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/state/types.ts
@@ -0,0 +1,7 @@
+import { TEntity } from '../../types';
+
+export interface State extends TEntity {
+ description?: string;
+ roles?: string[];
+ type?: string;
+}
diff --git a/mc-app/src/components/reference-input/search-components/store/index.tsx b/mc-app/src/components/reference-input/search-components/store/index.tsx
new file mode 100644
index 0000000..4def753
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/store/index.tsx
@@ -0,0 +1,50 @@
+// mc-app/src/components/reference-input/search-components/channel.tsx
+
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import StoreById from './store-by-id.graphql';
+import StoreByKey from './store-by-key.graphql';
+import StoreSearch from './store-search.graphql';
+import StoreAll from './store-all.graphql';
+import { Store } from './types';
+
+const localizePath = (store: Store) => {
+ return `${store.name} - key: ${store.key}`;
+};
+const StoreSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+ const optionMapper = (data: Result) =>
+ data.stores.results.map((store: Store): TEntity => {
+ return {
+ id: store.id,
+ name: localizePath(store),
+ key: store.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `key = "${text}" or name(${dataLocale} = "${text}")`,
+ });
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={StoreSearch}
+ byKeyQuery={StoreByKey}
+ byIdQuery={StoreById}
+ allQuery={StoreAll}
+ {...props}
+ />
+ );
+};
+
+export default StoreSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/store/store-all.graphql b/mc-app/src/components/reference-input/search-components/store/store-all.graphql
new file mode 100644
index 0000000..ccfff40
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/store/store-all.graphql
@@ -0,0 +1,15 @@
+query StorelSearch($locale: Locale) {
+ stores(limit: 50) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ distributionChannels {
+ name
+ }
+ supplyChannels {
+ name
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/store/store-by-id.graphql b/mc-app/src/components/reference-input/search-components/store/store-by-id.graphql
new file mode 100644
index 0000000..a46227c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/store/store-by-id.graphql
@@ -0,0 +1,13 @@
+query StorelSearch($id: String!, $locale: Locale) {
+ store(id: $id) {
+ id
+ name(locale: $locale)
+ key
+ distributionChannels {
+ name
+ }
+ supplyChannels {
+ name
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/store/store-by-key.graphql b/mc-app/src/components/reference-input/search-components/store/store-by-key.graphql
new file mode 100644
index 0000000..8e22bcf
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/store/store-by-key.graphql
@@ -0,0 +1,13 @@
+query StorelSearch($key: String!, $locale: Locale) {
+ store(key: $key) {
+ id
+ name(locale: $locale)
+ key
+ distributionChannels {
+ name
+ }
+ supplyChannels {
+ name
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/store/store-search.graphql b/mc-app/src/components/reference-input/search-components/store/store-search.graphql
new file mode 100644
index 0000000..b87f80c
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/store/store-search.graphql
@@ -0,0 +1,15 @@
+query StorelSearch($where: String!, $limit: Int!, $offset: Int!, $locale: Locale) {
+ stores(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name(locale: $locale)
+ key
+ distributionChannels {
+ name
+ }
+ supplyChannels {
+ name
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/store/types.ts b/mc-app/src/components/reference-input/search-components/store/types.ts
new file mode 100644
index 0000000..06140ed
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/store/types.ts
@@ -0,0 +1,3 @@
+import { TEntity } from '../../types';
+
+export type Store = TEntity;
diff --git a/mc-app/src/components/reference-input/search-components/tax-category/index.tsx b/mc-app/src/components/reference-input/search-components/tax-category/index.tsx
new file mode 100644
index 0000000..c0f1c29
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/tax-category/index.tsx
@@ -0,0 +1,45 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import TaxCategoryById from './tax-category-by-id.graphql';
+import TaxCategoryByKey from './tax-category-by-key.graphql';
+import TaxCategorySearch from './tax-category-search.graphql';
+import TaxCategoryAll from './tax-category-all.graphql';
+import { TaxCategory } from './types';
+
+const localizePath = (taxCategory: TaxCategory) => {
+ return `${taxCategory.name} (${taxCategory.key})`;
+};
+
+const TaxCategorySearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.taxCategories.results.map((taxCategory: TaxCategory): TEntity => {
+ return {
+ id: taxCategory.id,
+ name: localizePath(taxCategory),
+ key: taxCategory.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `name = "${text}" or description = "${text}"`,
+ });
+
+ return (
+ >
+ optionMapper={optionMapper}
+ localizePath={localizePath}
+ variableBuilder={variableBuilder}
+ searchQuery={TaxCategorySearch}
+ byKeyQuery={TaxCategoryByKey}
+ byIdQuery={TaxCategoryById}
+ allQuery={TaxCategoryAll}
+ {...props}
+ />
+ );
+};
+
+export default TaxCategorySearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/tax-category/tax-category-all.graphql b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-all.graphql
new file mode 100644
index 0000000..00eb905
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-all.graphql
@@ -0,0 +1,9 @@
+query TaxCategorySearch {
+ taxCategories(limit: 50) {
+ results {
+ id
+ name
+ key
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/tax-category/tax-category-by-id.graphql b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-by-id.graphql
new file mode 100644
index 0000000..64a67ec
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-by-id.graphql
@@ -0,0 +1,7 @@
+query TaxCategoryById($id: String!) {
+ taxCategory(id: $id) {
+ id
+ name
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/tax-category/tax-category-by-key.graphql b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-by-key.graphql
new file mode 100644
index 0000000..66674dc
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-by-key.graphql
@@ -0,0 +1,7 @@
+query TaxCategoryByKey($key: String!) {
+ taxCategory(key: $key) {
+ id
+ name
+ key
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/tax-category/tax-category-search.graphql b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-search.graphql
new file mode 100644
index 0000000..cf2b1a9
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/tax-category/tax-category-search.graphql
@@ -0,0 +1,9 @@
+query TaxCategorySearch($where: String!, $limit: Int!, $offset: Int!) {
+ taxCategories(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name
+ key
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/tax-category/types.ts b/mc-app/src/components/reference-input/search-components/tax-category/types.ts
new file mode 100644
index 0000000..6379519
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/tax-category/types.ts
@@ -0,0 +1,3 @@
+import { TEntity } from '../../types';
+
+export type TaxCategory = TEntity;
diff --git a/mc-app/src/components/reference-input/search-components/type/index.tsx b/mc-app/src/components/reference-input/search-components/type/index.tsx
new file mode 100644
index 0000000..9a4323b
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/type/index.tsx
@@ -0,0 +1,47 @@
+import { FC } from 'react';
+import AsyncSearchInput from '../../search-input/async-search-input';
+import { GenericSearchInputProps, Result } from '../../search-input/types';
+import { TEntity } from '../../types';
+import TypeById from './type-by-id.graphql';
+import TypeByKey from './type-by-key.graphql';
+import TypeSearch from './type-search.graphql';
+import TypeAll from './type-all.graphql';
+import { TType } from './types';
+
+const localizePath = (type: TType) => {
+ return `${type.name ?? ''} - key: ${
+ type.key
+ }, Resources: ${type.resourceTypeIds?.join(', ')}`;
+};
+
+const TypeSearchInput: FC<
+ React.HTMLAttributes & GenericSearchInputProps
+> = (props) => {
+ const optionMapper = (data: Result) =>
+ data.typeDefinitions.results.map((type: TType): TEntity => {
+ return {
+ id: type.id,
+ name: localizePath(type),
+ key: type.key,
+ };
+ });
+
+ const variableBuilder = (text: string) => ({
+ where: `key = "${text}"`,
+ });
+
+ return (
+ >
+ localizePath={localizePath}
+ optionMapper={optionMapper}
+ variableBuilder={variableBuilder}
+ searchQuery={TypeSearch}
+ byKeyQuery={TypeByKey}
+ byIdQuery={TypeById}
+ allQuery={TypeAll}
+ {...props}
+ />
+ );
+};
+
+export default TypeSearchInput;
diff --git a/mc-app/src/components/reference-input/search-components/type/type-all.graphql b/mc-app/src/components/reference-input/search-components/type/type-all.graphql
new file mode 100644
index 0000000..09523c2
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/type/type-all.graphql
@@ -0,0 +1,10 @@
+query TypeSearch( $locale: Locale!) {
+ typeDefinitions(limit: 50) {
+ results {
+ id
+ name(locale:$locale)
+ key
+ resourceTypeIds
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/type/type-by-id.graphql b/mc-app/src/components/reference-input/search-components/type/type-by-id.graphql
new file mode 100644
index 0000000..cfb7f9b
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/type/type-by-id.graphql
@@ -0,0 +1,8 @@
+query TypeById($id: String!, $locale: Locale!) {
+ typeDefinition(id: $id) {
+ id
+ name(locale:$locale)
+ key
+ resourceTypeIds
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/type/type-by-key.graphql b/mc-app/src/components/reference-input/search-components/type/type-by-key.graphql
new file mode 100644
index 0000000..8c46609
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/type/type-by-key.graphql
@@ -0,0 +1,8 @@
+query TypeByKey($key: String!, $locale: Locale!) {
+ typeDefinition(key: $key) {
+ id
+ name(locale:$locale)
+ key
+ resourceTypeIds
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/type/type-search.graphql b/mc-app/src/components/reference-input/search-components/type/type-search.graphql
new file mode 100644
index 0000000..eee9b1f
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/type/type-search.graphql
@@ -0,0 +1,10 @@
+query TypeSearch($where: String!, $limit: Int!, $offset: Int!, $locale: Locale!) {
+ typeDefinitions(where: $where, limit: $limit, offset: $offset) {
+ results {
+ id
+ name(locale:$locale)
+ key
+ resourceTypeIds
+ }
+ }
+}
\ No newline at end of file
diff --git a/mc-app/src/components/reference-input/search-components/type/types.ts b/mc-app/src/components/reference-input/search-components/type/types.ts
new file mode 100644
index 0000000..8f7d34f
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-components/type/types.ts
@@ -0,0 +1,5 @@
+import { TEntity } from '../../types';
+
+export interface TType extends TEntity {
+ resourceTypeIds?: string[];
+}
diff --git a/mc-app/src/components/reference-input/search-input/async-search-input.tsx b/mc-app/src/components/reference-input/search-input/async-search-input.tsx
new file mode 100755
index 0000000..e4d2ecf
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-input/async-search-input.tsx
@@ -0,0 +1,139 @@
+import { useLazyQuery, useQuery } from '@apollo/client';
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { GRAPHQL_TARGETS } from '@commercetools-frontend/constants';
+import AsyncSelectInput from '@commercetools-uikit/async-select-input';
+import { SearchIcon } from '@commercetools-uikit/icons';
+import { useCallback, useEffect, useState } from 'react';
+import { SingleValueProps } from 'react-select';
+import { TEntity } from '../types';
+import { AsyncSelectOption } from './search-option';
+import { SearchSingleValue } from './search-single-value';
+import { AsyncSearchInputProps, Result } from './types';
+
+const AsyncSearchInput = >({
+ name,
+ value,
+ placeholder,
+ hasError,
+ referenceBy,
+ referenceType,
+ singleValueQueryDataObject,
+ byIdQuery,
+ byKeyQuery,
+ searchQuery,
+ allQuery,
+ onChange,
+ onBlur,
+ optionMapper,
+ variableBuilder,
+ localizePath,
+ ...props
+}: React.HTMLAttributes & AsyncSearchInputProps) => {
+ const [defaultOptions, setDefaultOptions] = useState([]);
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+
+ const { refetch } = useQuery(searchQuery, {
+ skip: true,
+ variables: {
+ limit: 20,
+ offset: 0,
+ locale: dataLocale,
+ },
+ context: {
+ target: GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM,
+ },
+ });
+
+ const [getAll] = useLazyQuery(allQuery ?? searchQuery, {
+ variables: {
+ locale: dataLocale,
+ },
+ context: {
+ target: GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM,
+ },
+ fetchPolicy: 'cache-first'
+ });
+
+ const loadOptions = (text: string) => {
+ console.log('text', text);
+
+ return refetch(variableBuilder(text)).then((response) =>
+ optionMapper(response.data).map((option) => ({
+ ...option,
+ disabled: !option[referenceBy],
+ }))
+ );
+ };
+
+ const loadDefaultOptions = useCallback(async () => {
+ const res = await getAll().then((response) => {
+ if (response.data) {
+ return optionMapper(response.data).map((option) => ({
+ ...option,
+ disabled: !option[referenceBy],
+ }));
+ }
+ return [];
+ });
+ setDefaultOptions(res);
+ }, [allQuery]);
+
+ useEffect(() => {
+ if (allQuery) {
+ loadDefaultOptions();
+ }
+ }, [allQuery, loadDefaultOptions]);
+ return (
+ !!option.disabled}
+ name={`${name}.${referenceBy}`}
+ value={value}
+ placeholder={placeholder}
+ isClearable
+ isSearchable
+ cacheOptions={20}
+ loadOptions={loadOptions}
+ defaultOptions={defaultOptions}
+ components={{
+ SingleValue: (props: SingleValueProps) => (
+
+ {...props}
+ referenceBy={referenceBy}
+ singleValueQueryDataObject={singleValueQueryDataObject}
+ referenceType={referenceType}
+ byIdQuery={byIdQuery}
+ byKeyQuery={byKeyQuery}
+ localizePath={localizePath}
+ />
+ ),
+ Option: AsyncSelectOption,
+ DropdownIndicator: () => ,
+ }}
+ hasError={hasError}
+ onBlur={(event) => {
+ onBlur({
+ ...event,
+ target: {
+ ...event.target,
+ value: (event.target.value as TEntity)?.[referenceBy],
+ },
+ });
+ }}
+ onChange={(event) => {
+ onChange({
+ ...event,
+ target: {
+ ...event.target,
+ value: (event.target.value as TEntity)?.[referenceBy],
+ },
+ });
+ }}
+ />
+ );
+};
+AsyncSearchInput.displayName = 'AsyncSearchInput';
+
+export default AsyncSearchInput;
diff --git a/mc-app/src/components/reference-input/search-input/search-option.tsx b/mc-app/src/components/reference-input/search-input/search-option.tsx
new file mode 100644
index 0000000..73a784d
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-input/search-option.tsx
@@ -0,0 +1,30 @@
+import { FC } from 'react';
+import AsyncSelectInput from '@commercetools-uikit/async-select-input';
+import { OptionProps } from 'react-select';
+import Spacings from '@commercetools-uikit/spacings';
+import Text from '@commercetools-uikit/text';
+
+export const AsyncSelectOption: FC> = (props) => {
+ return (
+ {
+ return {
+ padding: '8px',
+ cursor: (optionProps as OptionProps)?.data?.disabled
+ ? 'not-allowed'
+ : 'pointer',
+ '&:hover': {
+ backgroundColor: (optionProps as OptionProps)?.data?.disabled
+ ? 'var(--color-neutral-60)'
+ : 'var(--color-primary-90)',
+ },
+ };
+ }}
+ >
+
+ {props.data.name}
+
+
+ );
+};
diff --git a/mc-app/src/components/reference-input/search-input/search-single-value.tsx b/mc-app/src/components/reference-input/search-input/search-single-value.tsx
new file mode 100644
index 0000000..20abe41
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-input/search-single-value.tsx
@@ -0,0 +1,66 @@
+import { useQuery } from '@apollo/client';
+
+import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
+import { GRAPHQL_TARGETS } from '@commercetools-frontend/constants';
+import AsyncSelectInput from '@commercetools-uikit/async-select-input';
+import LoadingSpinner from '@commercetools-uikit/loading-spinner';
+import { ContentNotification } from '@commercetools-uikit/notifications';
+import Spacings from '@commercetools-uikit/spacings';
+import Text from '@commercetools-uikit/text';
+import { SingleValueProps } from 'react-select';
+import { getErrorMessage } from '../../../helpers';
+import { TEntity } from '../types';
+import { SearchSingleValueProps } from './types';
+
+export const SearchSingleValue = (
+ props: SingleValueProps & SearchSingleValueProps
+) => {
+ const { dataLocale } = useApplicationContext((context) => ({
+ dataLocale: context.dataLocale ?? '',
+ }));
+
+ const { data, loading, error } = useQuery<
+ Record,
+ { locale: string }
+ >(props.referenceBy === 'key' ? props.byKeyQuery : props.byIdQuery, {
+ variables: {
+ [props.referenceBy]: props.data[props.referenceBy],
+ locale: dataLocale,
+ },
+ context: {
+ target: GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM,
+ },
+ skip: !props.data || !props.data[props.referenceBy],
+ });
+
+ if (!props.data || !props.data[props.referenceBy]) {
+ return ;
+ }
+ if (error) {
+ return (
+
+ {getErrorMessage(error)}
+
+ );
+ }
+ if (loading) {
+ return (
+
+
+
+ );
+ }
+ if (!data?.[props.singleValueQueryDataObject]) {
+ return (
+
+ Invalid value
+
+ );
+ }
+
+ return (
+
+ {props.localizePath(data[props.singleValueQueryDataObject], true)}
+
+ );
+};
diff --git a/mc-app/src/components/reference-input/search-input/types.ts b/mc-app/src/components/reference-input/search-input/types.ts
new file mode 100644
index 0000000..8dcd7a1
--- /dev/null
+++ b/mc-app/src/components/reference-input/search-input/types.ts
@@ -0,0 +1,49 @@
+import { DocumentNode, OperationVariables } from '@apollo/client';
+import { TEntity } from '../types';
+
+export interface SearchSingleValueProps {
+ referenceBy: 'key' | 'id';
+ referenceType: string;
+ singleValueQueryDataObject: string;
+ byKeyQuery: DocumentNode;
+ byIdQuery: DocumentNode;
+ localizePath: (value: T, ...args: any[]) => string | undefined;
+}
+
+export interface GenericSearchInputProps extends ReferenceInputProps {
+ value?: T | null;
+ referenceBy: 'key' | 'id';
+ referenceType: string;
+ singleValueQueryDataObject: string;
+}
+
+export interface AsyncSearchInputProps
+ extends GenericSearchInputProps {
+ value?: T | null;
+ byIdQuery: DocumentNode;
+ byKeyQuery: DocumentNode;
+ searchQuery: DocumentNode;
+ allQuery?: DocumentNode;
+ optionMapper: (data: R) => TEntity[];
+ variableBuilder: (text: string) => OperationVariables;
+ localizePath: (value: T, ...args: any[]) => string | undefined;
+}
+
+export interface ReferenceInputProps {
+ name: string;
+ value?: any;
+ placeholder?: string;
+ hasError?: boolean;
+ onChange(...args: unknown[]): unknown;
+ onBlur(...args: unknown[]): unknown;
+ reference?: {
+ by?: string;
+ type?: string;
+ };
+}
+
+export interface Result {
+ [key: string]: {
+ results: T[];
+ };
+}
diff --git a/mc-app/src/components/reference-input/types.ts b/mc-app/src/components/reference-input/types.ts
new file mode 100644
index 0000000..9aa13a0
--- /dev/null
+++ b/mc-app/src/components/reference-input/types.ts
@@ -0,0 +1,6 @@
+export interface TEntity {
+ key?: string;
+ id: string;
+ name?: string;
+ disabled?: boolean;
+}
diff --git a/src/constants.ts b/mc-app/src/constants.ts
similarity index 99%
rename from src/constants.ts
rename to mc-app/src/constants.ts
index 9945465..404f2f4 100644
--- a/src/constants.ts
+++ b/mc-app/src/constants.ts
@@ -22,7 +22,6 @@ export const groupNames = {
customers: 'customers',
};
-
export const TYPES = {
String: 'String',
LocalizedString: 'LocalizedString',
@@ -161,4 +160,4 @@ export const emptyAttribute: AttributeValue = {
type: TYPES_ENUM.Boolean,
set: false,
required: false,
-};
\ No newline at end of file
+};
diff --git a/src/context/container-context.tsx b/mc-app/src/context/container-context.tsx
similarity index 99%
rename from src/context/container-context.tsx
rename to mc-app/src/context/container-context.tsx
index 5c40886..1184079 100644
--- a/src/context/container-context.tsx
+++ b/mc-app/src/context/container-context.tsx
@@ -27,7 +27,6 @@ const useContainerContext = (): ContainerContext => {
type Props = PropsWithChildren<{ results: Array | undefined }>;
const ContainerProvider: React.FC = ({ results, children }) => {
-
const containerContextValue: ContainerContext = {
hasContainers: (results && results.length > 0) || false,
containers: results || [],
diff --git a/src/form-utils.spec.toBeMigrated.js b/mc-app/src/form-utils.spec.toBeMigrated.js
similarity index 99%
rename from src/form-utils.spec.toBeMigrated.js
rename to mc-app/src/form-utils.spec.toBeMigrated.js
index eb8872e..4c67b96 100644
--- a/src/form-utils.spec.toBeMigrated.js
+++ b/mc-app/src/form-utils.spec.toBeMigrated.js
@@ -6,11 +6,7 @@ import times from 'lodash/times';
import * as yup from 'yup';
import { FormattedMessage } from 'react-intl';
import LocalizedTextInput from '@commercetools-uikit/localized-text-input';
-import {
- REFERENCE_BY,
- REFERENCE_TYPES,
- TYPES,
-} from './constants';
+import { REFERENCE_BY, REFERENCE_TYPES, TYPES } from './constants';
import { getAttributeValues, getAttributeValidation } from './form-utils';
import messages from './components/custom-object-form/messages';
diff --git a/src/form-utils.ts b/mc-app/src/form-utils.ts
similarity index 82%
rename from src/form-utils.ts
rename to mc-app/src/form-utils.ts
index 008c31d..4112a6c 100644
--- a/src/form-utils.ts
+++ b/mc-app/src/form-utils.ts
@@ -1,8 +1,5 @@
import { IntlShape, MessageDescriptor } from 'react-intl';
-import camelCase from 'lodash/camelCase';
-import {
- AttributeValue,
-} from './constants';
+import { AttributeValue } from './constants';
import { getInitialValueByType, getValidationSpecification } from './helpers';
export const getAttributeValues = (
@@ -14,7 +11,7 @@ export const getAttributeValues = (
(value, { name, type, set, attributes: nested, reference }) => {
return {
...value,
- [camelCase(name)]: getInitialValueByType(
+ [name]: getInitialValueByType(
type,
set,
nested,
@@ -27,7 +24,7 @@ export const getAttributeValues = (
{}
);
};
-
+
export const getAttributeValidation = (
attributes: Array,
languages: Array,
@@ -37,7 +34,7 @@ export const getAttributeValidation = (
return attributes.reduce((result, attribute) => {
return {
...result,
- [camelCase(attribute.name)]: getValidationSpecification(
+ [attribute.name]: getValidationSpecification(
attribute,
languages,
messages,
diff --git a/src/globals.d.ts b/mc-app/src/globals.d.ts
similarity index 100%
rename from src/globals.d.ts
rename to mc-app/src/globals.d.ts
diff --git a/src/helpers.ts b/mc-app/src/helpers.ts
similarity index 98%
rename from src/helpers.ts
rename to mc-app/src/helpers.ts
index fbc8fd8..0ea2e85 100644
--- a/src/helpers.ts
+++ b/mc-app/src/helpers.ts
@@ -10,12 +10,7 @@ import LocalizedTextInput from '@commercetools-uikit/localized-text-input';
import { IntlShape, MessageDescriptor } from 'react-intl';
import { addMethod, array, object, string, number, date, boolean } from 'yup';
import type { TChannel } from './types/generated/ctp';
-import {
- AttributeValue,
- Reference,
- TYPES,
- TYPES_ENUM,
-} from './constants';
+import { AttributeValue, Reference, TYPES, TYPES_ENUM } from './constants';
import { getAttributeValues, getAttributeValidation } from './form-utils';
export const getErrorMessage = (error: ApolloError) =>
@@ -78,7 +73,6 @@ export const convertToActionData = (draft: Partial) => ({
name: transformLocalizedFieldToLocalizedString(draft.nameAllLocales || []),
});
-
export const getValueByType = (
type: TYPES_ENUM,
attributes: Array | undefined,
@@ -250,4 +244,4 @@ export const getValidationSpecification = (
) => {
const validation = getValidationByType(attribute, languages, messages, intl);
return attribute.set ? array(validation) : validation;
-};
\ No newline at end of file
+};
diff --git a/src/hooks/use-custom-object-connector/delete-custom-object.rest.graphql b/mc-app/src/hooks/use-custom-object-connector/delete-custom-object.rest.graphql
similarity index 100%
rename from src/hooks/use-custom-object-connector/delete-custom-object.rest.graphql
rename to mc-app/src/hooks/use-custom-object-connector/delete-custom-object.rest.graphql
diff --git a/src/hooks/use-custom-object-connector/get-custom-object.rest.graphql b/mc-app/src/hooks/use-custom-object-connector/get-custom-object.rest.graphql
similarity index 100%
rename from src/hooks/use-custom-object-connector/get-custom-object.rest.graphql
rename to mc-app/src/hooks/use-custom-object-connector/get-custom-object.rest.graphql
diff --git a/src/hooks/use-custom-object-connector/get-custom-objects.ctp.graphql b/mc-app/src/hooks/use-custom-object-connector/get-custom-objects.ctp.graphql
similarity index 100%
rename from src/hooks/use-custom-object-connector/get-custom-objects.ctp.graphql
rename to mc-app/src/hooks/use-custom-object-connector/get-custom-objects.ctp.graphql
diff --git a/src/hooks/use-custom-object-connector/update-custom-object.rest.graphql b/mc-app/src/hooks/use-custom-object-connector/update-custom-object.rest.graphql
similarity index 100%
rename from src/hooks/use-custom-object-connector/update-custom-object.rest.graphql
rename to mc-app/src/hooks/use-custom-object-connector/update-custom-object.rest.graphql
diff --git a/src/hooks/use-custom-object-connector/use-custom-object-connector.ts b/mc-app/src/hooks/use-custom-object-connector/use-custom-object-connector.ts
similarity index 82%
rename from src/hooks/use-custom-object-connector/use-custom-object-connector.ts
rename to mc-app/src/hooks/use-custom-object-connector/use-custom-object-connector.ts
index ba1faf3..be081dd 100644
--- a/src/hooks/use-custom-object-connector/use-custom-object-connector.ts
+++ b/mc-app/src/hooks/use-custom-object-connector/use-custom-object-connector.ts
@@ -1,3 +1,6 @@
+/* eslint-disable @typescript-eslint/ban-ts-comment */
+import { createApolloClient } from '@commercetools-frontend/application-shell';
+
import { ApolloError, ApolloQueryResult } from '@apollo/client';
import {
useMcMutation,
@@ -8,16 +11,16 @@ import { extractErrorFromGraphQlResponse } from '../../helpers';
import {
TCustomObjectDraft,
TMutation,
- TMutation_CreateOrUpdateCustomObjectArgs,
TMutation_DeleteCustomObjectArgs,
TQuery,
TQuery_CustomObjectArgs,
TQuery_CustomObjectsArgs,
} from '../../types/generated/ctp';
-import GetCustomObjects from './get-custom-objects.ctp.graphql';
-import GetCustomObject from './get-custom-object.rest.graphql';
import DeleteCustomObject from './delete-custom-object.rest.graphql';
-import UpdateCustomObject from './update-custom-object.rest.graphql';
+import GetCustomObject from './get-custom-object.rest.graphql';
+import GetCustomObjects from './get-custom-objects.ctp.graphql';
+import { CustomObjectController } from '../../shared-code';
+import { GraphQLClient } from '../../shared-code/types/graphql';
type TUseCustomObjectsFetcher = (variables: TQuery_CustomObjectsArgs) => {
customObjectsPaginatedResult?: TQuery['customObjects'];
@@ -26,6 +29,8 @@ type TUseCustomObjectsFetcher = (variables: TQuery_CustomObjectsArgs) => {
refetch(): Promise>;
};
+const client = createApolloClient();
+
export const useCustomObjectsFetcher: TUseCustomObjectsFetcher = (
variables: TQuery_CustomObjectsArgs
) => {
@@ -76,11 +81,6 @@ export const useCustomObjectFetcher: TUseCustomObjectFetcher = (
};
export const useCustomObjectUpdater = () => {
- const [updateCustomObject, { loading }] = useMcMutation<
- TMutation,
- TMutation_CreateOrUpdateCustomObjectArgs
- >(UpdateCustomObject);
-
const execute = async ({
draft,
onCompleted,
@@ -90,28 +90,29 @@ export const useCustomObjectUpdater = () => {
onCompleted?: () => void;
onError?: (message?: string) => void;
}) => {
+ const controller = new CustomObjectController(client as GraphQLClient, {
+ target: GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM,
+ });
try {
- return await updateCustomObject({
- context: {
- target: GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM,
- },
- variables: {
- draft: draft,
- },
- onCompleted() {
+ await controller
+ .createOrUpdateCustomObject(
+ draft.container,
+ draft.key,
+ draft.value,
+ draft.container
+ )
+ .then(() => {
onCompleted && onCompleted();
- },
- onError({ message }) {
- onError && onError(message);
- },
- });
+ })
+ .catch((error) => {
+ onError && onError(error.message);
+ });
} catch (graphQlResponse) {
throw extractErrorFromGraphQlResponse(graphQlResponse);
}
};
return {
- loading,
execute,
};
};
diff --git a/src/i18n/data/core.json b/mc-app/src/i18n/data/core.json
similarity index 100%
rename from src/i18n/data/core.json
rename to mc-app/src/i18n/data/core.json
diff --git a/src/i18n/data/de.json b/mc-app/src/i18n/data/de.json
similarity index 100%
rename from src/i18n/data/de.json
rename to mc-app/src/i18n/data/de.json
diff --git a/src/i18n/data/en.json b/mc-app/src/i18n/data/en.json
similarity index 100%
rename from src/i18n/data/en.json
rename to mc-app/src/i18n/data/en.json
diff --git a/src/i18n/data/es.json b/mc-app/src/i18n/data/es.json
similarity index 100%
rename from src/i18n/data/es.json
rename to mc-app/src/i18n/data/es.json
diff --git a/src/i18n/data/fr-FR.json b/mc-app/src/i18n/data/fr-FR.json
similarity index 100%
rename from src/i18n/data/fr-FR.json
rename to mc-app/src/i18n/data/fr-FR.json
diff --git a/src/i18n/data/ja.json b/mc-app/src/i18n/data/ja.json
similarity index 100%
rename from src/i18n/data/ja.json
rename to mc-app/src/i18n/data/ja.json
diff --git a/src/i18n/data/zh-CN.json b/mc-app/src/i18n/data/zh-CN.json
similarity index 100%
rename from src/i18n/data/zh-CN.json
rename to mc-app/src/i18n/data/zh-CN.json
diff --git a/src/index.tsx b/mc-app/src/index.tsx
similarity index 100%
rename from src/index.tsx
rename to mc-app/src/index.tsx
diff --git a/src/load-messages.ts b/mc-app/src/load-messages.ts
similarity index 100%
rename from src/load-messages.ts
rename to mc-app/src/load-messages.ts
diff --git a/src/messages.ts b/mc-app/src/messages.ts
similarity index 100%
rename from src/messages.ts
rename to mc-app/src/messages.ts
diff --git a/src/routes.tsx b/mc-app/src/routes.tsx
similarity index 92%
rename from src/routes.tsx
rename to mc-app/src/routes.tsx
index 127e895..f74f019 100644
--- a/src/routes.tsx
+++ b/mc-app/src/routes.tsx
@@ -12,7 +12,6 @@ import LoadingSpinner from '@commercetools-uikit/loading-spinner';
import Spacings from '@commercetools-uikit/spacings';
import Link from '@commercetools-uikit/link';
import Text from '@commercetools-uikit/text';
-import ariesLabsLogo from './assets/aries-labs-logo.svg';
import ContainerList from './components/container-list';
import CustomObjectsList from './components/custom-objects-list';
import { messages } from './messages';
@@ -25,7 +24,6 @@ type ApplicationRoutesProps = {
children?: ReactNode;
};
const ApplicationRoutes = (_props: ApplicationRoutesProps) => {
-
const match = useRouteMatch();
/**
@@ -89,7 +87,7 @@ const ApplicationRoutes = (_props: ApplicationRoutesProps) => {
if (!customObjectsPaginatedResult) {
return ;
}
-
+
const { results } = customObjectsPaginatedResult || {};
return (
@@ -98,11 +96,6 @@ const ApplicationRoutes = (_props: ApplicationRoutesProps) => {
-
-
-
-
-
);
};
diff --git a/mc-app/src/shared-code/constants/map-types.ts b/mc-app/src/shared-code/constants/map-types.ts
new file mode 100644
index 0000000..ebe417e
--- /dev/null
+++ b/mc-app/src/shared-code/constants/map-types.ts
@@ -0,0 +1,17 @@
+export const referenceTypeToSingleValueMap: Record = {
+ 'cart-discount': 'cartDiscount',
+ 'product-discount': 'productDiscount',
+ 'customer-group': 'customerGroup',
+ 'discount-code': 'discountCode',
+ 'key-value-document': 'customObject',
+ 'product-type': 'productType',
+ 'tax-category': 'taxCategory',
+ 'shopping-list': 'shoppingList',
+ 'shipping-method': 'shippingMethod',
+ type: 'typeDefinition',
+ 'product-price': 'standalonePrice',
+ };
+
+ export const referenceTypeSkipKey: string[] = [
+ 'order'
+ ]
\ No newline at end of file
diff --git a/mc-app/src/shared-code/custom-object.controller.ts b/mc-app/src/shared-code/custom-object.controller.ts
new file mode 100644
index 0000000..554f50e
--- /dev/null
+++ b/mc-app/src/shared-code/custom-object.controller.ts
@@ -0,0 +1,504 @@
+import { ApolloContextValue } from '@apollo/client';
+import { AttributeSchema, CustomObject, Schema } from './types/validator';
+import Create from './queries/create-custom-object';
+import Get from './queries/get-custom-object';
+import { GraphQLClient } from './types/graphql';
+import { referenceTypeToSingleValueMap } from './constants/map-types';
+import { getEntityById } from './queries/get-entity-by-id';
+import { getEntityByKey } from './queries/get-entity-by-key';
+
+const SCHEMA_CONTAINER = 'mc-custom-object-schema';
+export class CustomObjectController {
+ private apolloClient?: GraphQLClient;
+ private context?: ApolloContextValue;
+
+ constructor(
+ apolloClient?: GraphQLClient,
+ context?: ApolloContextValue & { target: string }
+ ) {
+ this.apolloClient = apolloClient;
+ this.context = context;
+ }
+
+ async fetchCustomObject(
+ container: string,
+ key: string
+ ): Promise {
+ try {
+ const response = await this.apolloClient
+ ?.query({
+ query: Get,
+ variables: { container, key },
+ ...(this.context && { context: this.context }),
+ })
+ .then((res) => {
+ return res.data as { customObject: CustomObject };
+ });
+ return response?.customObject;
+ } catch (error) {
+ console.error('Error fetching custom object:', error);
+ return undefined;
+ }
+ }
+
+ async createOrUpdateCustomObject(
+ container: string,
+ key: string,
+ value: string,
+ schemaType: string
+ ): Promise {
+ const jsonValue = JSON.parse(value);
+ await this.validateObjectBySchemaType(jsonValue, schemaType);
+
+ const response = await this.apolloClient
+ ?.mutate({
+ mutation: Create,
+ variables: {
+ draft: {
+ container,
+ key,
+ value,
+ },
+ },
+ ...(this.context && { context: this.context }),
+ })
+ .then((res) => {
+ return res.data as CustomObject;
+ });
+
+ return response;
+ }
+
+ private async validateObjectBySchemaType(
+ value: Record,
+ schemaType: string
+ ): Promise {
+ if (schemaType === SCHEMA_CONTAINER) {
+ return;
+ }
+ const schemaObject = await this.fetchCustomObject(
+ SCHEMA_CONTAINER,
+ schemaType
+ );
+
+ if (!schemaObject) {
+ throw new Error(`Schema not found for type: ${schemaType}`);
+ }
+ await this.validateObjectSchema(schemaObject.value, value);
+ }
+
+ private async validateObjectSchema(
+ schema: Schema,
+ value: Record
+ ) {
+ for (const attributeSchema of schema.attributes) {
+ const attributeValue = value[attributeSchema.name];
+
+ if (attributeSchema.required && attributeValue === undefined) {
+ throw new Error(`Required attribute missing: ${attributeSchema.name}`);
+ }
+
+ if (attributeValue != null) {
+ await this.validateAttribute(attributeSchema, attributeValue);
+ }
+ }
+ }
+
+ public async validateAttribute(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ switch (schema.type) {
+ case 'Boolean':
+ await this.validateBoolean(schema, value);
+ break;
+ case 'String':
+ await this.validateString(schema, value);
+ break;
+ case 'LocalizedString':
+ await this.validateLocalizedString(schema, value);
+ break;
+ case 'Number':
+ await this.validateNumber(schema, value);
+ break;
+ case 'Date':
+ await this.validateDate(schema, value);
+ break;
+ case 'Enum':
+ await this.validateEnum(schema, value);
+ break;
+ case 'LocalizedEnum':
+ await this.validateLocalizedEnum(schema, value);
+ break;
+ case 'Money':
+ await this.validateMoney(schema, value);
+ break;
+ case 'Time':
+ await this.validateTime(schema, value);
+ break;
+ case 'DateTime':
+ await this.validateDateTime(schema, value);
+ break;
+ case 'Reference':
+ await this.validateReference(schema, value);
+ break;
+ case 'Object':
+ await this.validateObject(schema, value);
+ break;
+ default:
+ throw new Error(`Unsupported type for attribute: ${schema.name}`);
+ }
+ }
+
+ private async validateSet(
+ schema: AttributeSchema,
+ value: any,
+ cbFuncName: string
+ ): Promise {
+ if (!schema.required && (typeof value === 'undefined' || value === null)) {
+ return;
+ } else if (!Array.isArray(value)) {
+ throw new Error(
+ `Invalid type for set attribute: ${
+ schema.name
+ }. Expected Array, got ${typeof value}`
+ );
+ }
+ for (const item of value) {
+ // @ts-ignore
+ this[cbFuncName] &&
+ // @ts-ignore
+ (await this[cbFuncName](
+ {
+ ...schema,
+ set: false,
+ },
+ item
+ ));
+ }
+ }
+
+ private async validateBoolean(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateBoolean');
+ } else {
+ if (schema.required && typeof value !== 'boolean') {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Boolean, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateString(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateString');
+ } else {
+ if (schema.required && typeof value !== 'string') {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected String, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateNumber(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateNumber');
+ } else {
+ if (schema.required && typeof value !== 'number') {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Number, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateEnum(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateEnum');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+
+ if (!schema.enum?.some((enumValue) => enumValue.value === value)) {
+ throw new Error(
+ `Invalid enum value for attribute: ${schema.name}. Value: ${value}`
+ );
+ }
+
+ if (schema.required && typeof value !== 'string') {
+ throw new Error(
+ `Invalid type for enum attribute: ${
+ schema.name
+ }. Expected String, got ${typeof value}`
+ );
+ }
+ }
+ }
+ private async validateLocalizedEnum(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateLocalizedEnum');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+
+ if (!schema.lenum?.some((enumValue) => enumValue.value === value)) {
+ throw new Error(
+ `Invalid enum value for attribute: ${schema.name}. Value: ${value}`
+ );
+ }
+
+ if (schema.required && typeof value !== 'string') {
+ throw new Error(
+ `Invalid type for enum attribute: ${
+ schema.name
+ }. Expected String, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateReference(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateReference');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (typeof value !== 'object' || !value) {
+ throw new Error(
+ `Invalid type for reference attribute: ${
+ schema.name
+ }. Expected object, got ${typeof value}`
+ );
+ }
+
+ const referenceValue = value as Record;
+ const typeId = referenceValue.typeId as string;
+ const id = referenceValue.id as string;
+ const key = referenceValue.key as string;
+
+ if (!typeId) {
+ throw new Error(
+ `Invalid reference value for attribute: ${schema.name}. Missing typeId`
+ );
+ }
+ if (schema.required && !id && !key) {
+ throw new Error(
+ `Invalid reference value for attribute: ${schema.name}. Missing id or key`
+ );
+ }
+
+ if (!schema.reference || typeId !== schema.reference.type) {
+ throw new Error(
+ `Invalid reference type for attribute: ${schema.name}. Expected ${schema.reference?.type}, got ${typeId}`
+ );
+ }
+ await this.validateReferenceValue(typeId, id, key);
+ }
+ }
+
+ private async validateMoney(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateMoney');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (
+ typeof value.amount !== 'string' ||
+ typeof value.currencyCode !== 'string'
+ ) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Money, got ${typeof value}`
+ );
+ }
+ if (isNaN(parseInt(value.amount))) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected amount, got ${typeof value.amount}`
+ );
+ }
+ }
+ }
+ private async validateTime(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateTime');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+
+ const timeRegex = /^([01]?[0-9]|2[0-3]):[0-5][0-9] ([AP]M)$/;
+ if (typeof value !== 'string' || !value.match(timeRegex)) {
+ throw new Error(
+ `Invalid value for attribute: ${schema.name}. Expected Time in format HH:mm AM/PM, got ${value}`
+ );
+ }
+ }
+ }
+ private async validateDateTime(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateDateTime');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ const dateTimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
+ if (typeof value !== 'string' || !value.match(dateTimeRegex)) {
+ throw new Error(
+ `Invalid value for attribute: ${schema.name}. Expected DateTime in format yyyy-mm-ddTHH:mm:ss.sssZ, got ${value}`
+ );
+ }
+ }
+ }
+ private async validateDate(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateDate');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
+ if (typeof value !== 'string' || !value.match(dateRegex)) {
+ throw new Error(
+ `Invalid value for attribute: ${schema.name}. Expected Date in format MM/DD/YYYY, got ${value}`
+ );
+ }
+ }
+ }
+
+ private async validateLocalizedString(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateLocalizedString');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (typeof value !== 'object' || value === null) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected LocalizedString, got ${typeof value}`
+ );
+ }
+ if (Object.keys(value).length === 0) {
+ throw new Error(
+ `Invalid type for attribute: ${schema.name}. Expected LocalizedString is empty`
+ );
+ }
+ if (schema.required) {
+ if (
+ !Object.keys(value).some(
+ (key) => typeof value[key] !== undefined || value[key] !== ''
+ )
+ ) {
+ throw new Error(`Required attribute missing: ${schema.name}`);
+ }
+ }
+ }
+ }
+
+ private async validateObject(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateObject');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (typeof value !== 'object' || !value) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Object, got ${typeof value}`
+ );
+ }
+ if (schema.attributes?.length) {
+ await this.validateObjectSchema(
+ {
+ attributes: schema.attributes,
+ },
+ value
+ );
+ }
+ }
+ }
+
+ private async validateReferenceValue(
+ typeId: string,
+ id?: string,
+ key?: string
+ ): Promise {
+ if (!id && !key){
+ return;
+ }
+ const singleValueQueryDataObject = referenceTypeToSingleValueMap[typeId]
+ ? referenceTypeToSingleValueMap[typeId]
+ : typeId;
+
+ const query = id
+ ? getEntityById(singleValueQueryDataObject)
+ : getEntityByKey(singleValueQueryDataObject);
+
+ await this.apolloClient
+ ?.query({
+ query: query,
+ variables: id ? { id } : { key },
+ ...(this.context && { context: this.context }),
+ }).then((res) => {
+ if (!(res.data as any)[singleValueQueryDataObject]) {
+ throw new Error(
+ `Invalid reference value for attribute: ${typeId}. The expected ${typeId} was not found`
+ );
+ }
+ });
+ }
+}
diff --git a/mc-app/src/shared-code/index.ts b/mc-app/src/shared-code/index.ts
new file mode 100644
index 0000000..7a7740b
--- /dev/null
+++ b/mc-app/src/shared-code/index.ts
@@ -0,0 +1,2 @@
+export { CustomObjectController } from './custom-object.controller';
+export { referenceTypeToSingleValueMap } from './constants/map-types';
diff --git a/mc-app/src/shared-code/queries/create-custom-object.ts b/mc-app/src/shared-code/queries/create-custom-object.ts
new file mode 100644
index 0000000..7440df9
--- /dev/null
+++ b/mc-app/src/shared-code/queries/create-custom-object.ts
@@ -0,0 +1,12 @@
+import gql from 'graphql-tag';
+
+export default gql`
+ mutation UpdateCustomObject($draft: CustomObjectDraft!) {
+ createOrUpdateCustomObject(draft: $draft) {
+ id
+ version
+ key
+ container
+ }
+ }
+`;
diff --git a/mc-app/src/shared-code/queries/get-custom-object.ts b/mc-app/src/shared-code/queries/get-custom-object.ts
new file mode 100644
index 0000000..ae57073
--- /dev/null
+++ b/mc-app/src/shared-code/queries/get-custom-object.ts
@@ -0,0 +1,13 @@
+import gql from 'graphql-tag';
+
+export default gql`
+ query customObject($key: String!, $container: String!) {
+ customObject(key: $key, container: $container) {
+ id
+ lastModifiedAt
+ container
+ key
+ value
+ }
+ }
+`;
diff --git a/mc-app/src/shared-code/queries/get-entity-by-id.ts b/mc-app/src/shared-code/queries/get-entity-by-id.ts
new file mode 100644
index 0000000..4e68c6a
--- /dev/null
+++ b/mc-app/src/shared-code/queries/get-entity-by-id.ts
@@ -0,0 +1,14 @@
+import gql from "graphql-tag"
+import { referenceTypeSkipKey } from "../constants/map-types"
+
+export const getEntityById = (type: string) => {
+ const skipKey = referenceTypeSkipKey.includes(type)
+ return gql`
+ query ${type}($id: String!) {
+ ${type}(id: $id) {
+ id
+ ${skipKey ? '' : 'key'}
+ }
+ }
+ `
+}
\ No newline at end of file
diff --git a/mc-app/src/shared-code/queries/get-entity-by-key.ts b/mc-app/src/shared-code/queries/get-entity-by-key.ts
new file mode 100644
index 0000000..f9395a3
--- /dev/null
+++ b/mc-app/src/shared-code/queries/get-entity-by-key.ts
@@ -0,0 +1,12 @@
+import gql from "graphql-tag"
+
+export const getEntityByKey = (type: string) => {
+ return gql`
+ query ${type}($key: String!) {
+ ${type}(key: $key) {
+ id
+ key
+ }
+ }
+ `
+}
\ No newline at end of file
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.boolean.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.boolean.spec.ts
new file mode 100644
index 0000000..7c06dba
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.boolean.spec.ts
@@ -0,0 +1,126 @@
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateAttribute', () => {
+ describe('Boolean', () => {
+ const testCases = [
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: true,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: false,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: false, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: false },
+ value: [true],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: false },
+ value: [false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: false },
+ value: [true, false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [true],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [true, false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [true, true],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [false, false],
+ shouldThrowError: false,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'fail' : 'pass'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(
+ schema as AttributeSchema,
+ value
+ );
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.date-time.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.date-time.spec.ts
new file mode 100644
index 0000000..d17c680
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.date-time.spec.ts
@@ -0,0 +1,212 @@
+// valication-service/src/controllers/custom-object.controller.date-time.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateDateTime', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: '2022-01-01T12:34:56.999Z',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: '2022-01-01T12:34:56Z',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: 'random string',
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: '2022-01-01T12:34:56.000Z',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: 'invalid date format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: ['2022-01-01T12:34:56.000Z'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: ['invalid date format'],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: ['2022-01-01T12:34:56.333Z'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: ['invalid date'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: [''],
+ shouldThrowError: true,
+ },
+ ];
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.date.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.date.spec.ts
new file mode 100644
index 0000000..455b35a
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.date.spec.ts
@@ -0,0 +1,193 @@
+// valication-service/src/controllers/custom-object.controller.date.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateDate', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: '2022-01-01',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: 'invalid date format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: '2022-01-01',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: 'invalid date format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: ['2022-01-01'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: ['invalid date format'],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: ['2022-01-01'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: ['invalid date format'],
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.enum.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.enum.spec.ts
new file mode 100644
index 0000000..7e6b45b
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.enum.spec.ts
@@ -0,0 +1,173 @@
+// valication-service/src/controllers/custom-object.controller.enum.spec.ts
+
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateEnum', () => {
+ const enumValues = [
+ { value: 'option1' },
+ { value: 'option2' },
+ { value: 'option3' },
+ ];
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: false,
+ enum: enumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: false,
+ enum: enumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: false,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: true,
+ enum: enumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: true,
+ enum: enumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: true,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: false,
+ enum: enumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: false,
+ enum: enumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: false,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: true,
+ enum: enumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: true,
+ enum: enumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: true,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.localised-string.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.localised-string.spec.ts
new file mode 100644
index 0000000..990e00e
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.localised-string.spec.ts
@@ -0,0 +1,266 @@
+// valication-service/src/controllers/custom-object.controller.localized-string.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateLocalizedString', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: {
+ en: 'hello',
+ de: 'hallo',
+ },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: {},
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: {
+ en: 'hello',
+ de: 'hallo',
+ },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: {},
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: [
+ {
+ locale: 'en',
+ value: 'hello',
+ },
+ {
+ locale: 'de',
+ value: 'hallo',
+ },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: [
+ {
+ locale: 'en',
+ value: 'hello',
+ },
+ {
+ locale: 'en',
+ value: 'hello again',
+ },
+ ],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: [
+ {
+ en: 'hello',
+ de: 'hallo',
+ },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: [
+ {
+ en: 123,
+ },
+ ],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.localized-enum.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.localized-enum.spec.ts
new file mode 100644
index 0000000..cea8f33
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.localized-enum.spec.ts
@@ -0,0 +1,191 @@
+// valication-service/src/controllers/custom-object.controller.localized-enum.spec.ts
+
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateLocalizedEnum', () => {
+ const localizedEnumValues = [
+ {
+ value: 'option1',
+ label: {
+ en: 'Option 1',
+ de: 'Option 1 (DE)',
+ },
+ },
+ {
+ value: 'option2',
+ label: {
+ en: 'Option 2',
+ de: 'Option 2 (DE)',
+ },
+ },
+ {
+ value: 'option3',
+ label: {
+ en: 'Option 3',
+ de: 'Option 3 (DE)',
+ },
+ },
+ ];
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.money.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.money.spec.ts
new file mode 100644
index 0000000..6bc78c3
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.money.spec.ts
@@ -0,0 +1,278 @@
+// valication-service/src/controllers/custom-object.controller.money.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateMoney', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: '1000', currencyCode: 'USD' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: 1000, currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: 'invalid', currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: '1000' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { amount: '1000', currencyCode: 'EUR' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { amount: 'invalid', currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { amount: '1000' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [
+ { amount: '1000', currencyCode: 'USD' },
+ { amount: '2000', currencyCode: 'EUR' },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [{ amount: 'invalid', currencyCode: 'USD' }],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [{ amount: '1000' }],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [{ currencyCode: 'USD' }],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [
+ { amount: '1000', currencyCode: 'USD' },
+ { amount: '2000', currencyCode: 'EUR' },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [{ amount: 'invalid', currencyCode: 'USD' }],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [{ amount: '1000' }],
+ shouldThrowError: true,
+ },
+ ];
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${JSON.stringify(value)} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.number.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.number.spec.ts
new file mode 100644
index 0000000..8aad096
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.number.spec.ts
@@ -0,0 +1,128 @@
+// valication-service/src/controllers/custom-object.controller.number.spec.ts
+
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateNumber', () => {
+ const testCases = [
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: false,
+ },
+ value: 42,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: false,
+ },
+ value: 'hello',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: false,
+ },
+ value: [1, 2, 3],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: false,
+ },
+ value: ['hello', 'world'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: true,
+ },
+ value: [1],
+ shouldThrowError: false,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.object.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.object.spec.ts
new file mode 100644
index 0000000..f55c6e6
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.object.spec.ts
@@ -0,0 +1,404 @@
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+const objectSchema: { attributes: AttributeSchema[]; value: any }[] = [
+ {
+ attributes: [
+ {
+ name: 'age',
+ type: 'Number',
+ set: false,
+ required: true,
+ },
+ ],
+ value: {
+ age: 25,
+ },
+ },
+ {
+ attributes: [
+ {
+ name: 'names',
+ type: 'String',
+ set: true,
+ required: true,
+ },
+ ],
+ value: {
+ names: ['John', 'Smith'],
+ },
+ },
+];
+
+describe('CustomObjectController - validateObject', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = () =>
+ objectSchema
+ .map((item) => [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: item.value,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: {},
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: 123,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: true,
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: item.value,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: {},
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: 123,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: true,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [item.value],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [],
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: ['string value'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [123],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [true],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [{}],
+ shouldThrowError: true,
+ },
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [item.value],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [],
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [{}],
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: ['string value'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [123],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [true],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ ])
+ .reduce((a, b) => a.concat(b), []);
+
+ testCases().forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.reference.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.reference.spec.ts
new file mode 100644
index 0000000..15c729b
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.reference.spec.ts
@@ -0,0 +1,252 @@
+// valication-service/src/controllers/custom-object.controller.reference.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateReference', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', id: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', key: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'category', id: '123' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', productId: '123' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', id: '123' }],
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', id: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', key: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', productId: '123' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', id: '123' }],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', key: '123' }],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'category', id: '123' }],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', id: '123' }],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ ];
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.string.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.string.spec.ts
new file mode 100644
index 0000000..77c6b5a
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.string.spec.ts
@@ -0,0 +1,101 @@
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateAttribute', () => {
+ describe('String', () => {
+ const testCases = [
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: 'test',
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: '',
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: true },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: ['test'],
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: false },
+ value: ['test'],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: false },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: false },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: ['test'],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: [''],
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(
+ schema as AttributeSchema,
+ value
+ );
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/specs/custom-object.controller.time.spec.ts b/mc-app/src/shared-code/specs/custom-object.controller.time.spec.ts
new file mode 100644
index 0000000..3549820
--- /dev/null
+++ b/mc-app/src/shared-code/specs/custom-object.controller.time.spec.ts
@@ -0,0 +1,212 @@
+// valication-service/src/controllers/custom-object.controller.time.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateTime', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: '12:34 AM',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: 'invalid time format',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: '22:34 AM',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: '10:34',
+ shouldThrowError: true,
+ },
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: '12:34 PM',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: 'invalid time format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: ['12:34 AM'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: ['55:42 PM'],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: ['12:34 PM'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: [{ value: 'invalid time format' }],
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/mc-app/src/shared-code/types/graphql.ts b/mc-app/src/shared-code/types/graphql.ts
new file mode 100644
index 0000000..d6b57da
--- /dev/null
+++ b/mc-app/src/shared-code/types/graphql.ts
@@ -0,0 +1,14 @@
+import { DocumentNode } from 'graphql';
+
+export interface GraphQLClient {
+ query(options: {
+ query: DocumentNode;
+ variables?: Record;
+ context?: any;
+ }): Promise<{ data: T }>;
+ mutate(options: {
+ mutation: DocumentNode;
+ variables?: Record;
+ context?: any;
+ }): Promise<{ data: T }>;
+}
diff --git a/mc-app/src/shared-code/types/index.types.ts b/mc-app/src/shared-code/types/index.types.ts
new file mode 100644
index 0000000..4e2d9ae
--- /dev/null
+++ b/mc-app/src/shared-code/types/index.types.ts
@@ -0,0 +1,17 @@
+export type Message = {
+ code: string;
+ message: string;
+ referencedBy: string;
+};
+
+export type ValidatorCreator = (
+ path: string[],
+ message: Message,
+ overrideConfig?: object
+) => [string[], [[(o: object) => boolean, string, [object]]]];
+
+export type ValidatorFunction = (o: object) => boolean;
+
+export type Wrapper = (
+ validator: ValidatorFunction
+) => (value: object) => boolean;
diff --git a/mc-app/src/shared-code/types/validator.ts b/mc-app/src/shared-code/types/validator.ts
new file mode 100644
index 0000000..3c60f13
--- /dev/null
+++ b/mc-app/src/shared-code/types/validator.ts
@@ -0,0 +1,59 @@
+// Types for schema structure
+export type AttributeType =
+ | 'Boolean'
+ | 'String'
+ | 'Number'
+ | 'Date'
+ | 'Enum'
+ | 'Reference'
+ | 'Money'
+ | 'LocalizedString'
+ | 'Time'
+ | 'DateTime'
+ | 'LocalizedEnum'
+ | 'Object';
+
+export interface EnumValue {
+ value: string;
+ label: string;
+}
+export interface LEnumValue {
+ value: string;
+ label: Record;
+}
+
+export interface ReferenceType {
+ by: string;
+ type: string;
+}
+
+export interface AttributeSchema {
+ name: string;
+ type: AttributeType;
+ set: boolean;
+ required: boolean;
+ enum?: EnumValue[];
+ lenum?: LEnumValue[];
+ reference?: ReferenceType;
+ attributes?: AttributeSchema[];
+}
+
+export interface Schema {
+ attributes: AttributeSchema[];
+}
+
+export interface CustomObject {
+ id: string;
+ container: string;
+ key: string;
+ value: T;
+ version: number;
+ createdAt: string;
+ lastModifiedAt: string;
+}
+
+export interface CustomObjectDraft {
+ container: string;
+ key: string;
+ value: T;
+}
diff --git a/src/test-utils/builder.ts b/mc-app/src/test-utils/builder.ts
similarity index 100%
rename from src/test-utils/builder.ts
rename to mc-app/src/test-utils/builder.ts
diff --git a/src/test-utils/generator.ts b/mc-app/src/test-utils/generator.ts
similarity index 100%
rename from src/test-utils/generator.ts
rename to mc-app/src/test-utils/generator.ts
diff --git a/src/test-utils/index.tsx b/mc-app/src/test-utils/index.tsx
similarity index 98%
rename from src/test-utils/index.tsx
rename to mc-app/src/test-utils/index.tsx
index 1285eb6..ed8d378 100644
--- a/src/test-utils/index.tsx
+++ b/mc-app/src/test-utils/index.tsx
@@ -11,9 +11,13 @@ import map from 'lodash/map';
import reduce from 'lodash/reduce';
import times from 'lodash/times';
import faker from 'faker';
-import { entryPointUriPath, CONTAINER, REFERENCE_BY,
+import {
+ entryPointUriPath,
+ CONTAINER,
+ REFERENCE_BY,
REFERENCE_TYPES,
- TYPES, } from '../constants';
+ TYPES,
+} from '../constants';
import ApplicationRoutes from '../routes';
import { getAttributeValues } from '../form-utils';
diff --git a/src/test-utils/intl-mock.js b/mc-app/src/test-utils/intl-mock.js
similarity index 100%
rename from src/test-utils/intl-mock.js
rename to mc-app/src/test-utils/intl-mock.js
diff --git a/src/test-utils/transformers.ts b/mc-app/src/test-utils/transformers.ts
similarity index 100%
rename from src/test-utils/transformers.ts
rename to mc-app/src/test-utils/transformers.ts
diff --git a/src/test-utils/types.ts b/mc-app/src/test-utils/types.ts
similarity index 100%
rename from src/test-utils/types.ts
rename to mc-app/src/test-utils/types.ts
diff --git a/src/test-utils/use-effect-mock.js b/mc-app/src/test-utils/use-effect-mock.js
similarity index 100%
rename from src/test-utils/use-effect-mock.js
rename to mc-app/src/test-utils/use-effect-mock.js
diff --git a/src/types/generated/ctp.ts b/mc-app/src/types/generated/ctp.ts
similarity index 100%
rename from src/types/generated/ctp.ts
rename to mc-app/src/types/generated/ctp.ts
diff --git a/tsconfig.json b/mc-app/tsconfig.json
similarity index 100%
rename from tsconfig.json
rename to mc-app/tsconfig.json
diff --git a/yarn.lock b/mc-app/yarn.lock
similarity index 80%
rename from yarn.lock
rename to mc-app/yarn.lock
index a44d9d6..06202b5 100644
--- a/yarn.lock
+++ b/mc-app/yarn.lock
@@ -3,9 +3,9 @@
"@adobe/css-tools@^4.0.1":
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63"
- integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.1.tgz#2447a230bfe072c1659e6815129c03cf170710e3"
+ integrity sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==
"@ampproject/remapping@^2.2.0":
version "2.3.0"
@@ -16,9 +16,9 @@
"@jridgewell/trace-mapping" "^0.3.24"
"@apollo/client@^3.9.7":
- version "3.11.5"
- resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.11.5.tgz#6645a716f28e9c712912de369ac0f9d74e163762"
- integrity sha512-gmTKgXhYH2Q3VT9vUWChuMy34gfK7n/EEJYc7kXt1GP7678Vz2L0xUlHSMEoPoqit317eamZjXQSyxlpn03lnQ==
+ version "3.11.10"
+ resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.11.10.tgz#e16ae82ea9b16536ffd109847d24f9293fab5c4d"
+ integrity sha512-IfGc+X4il0rDqVQBBWdxIKM+ciDCiDzBq9+Bg9z4tJMi87uF6po4v+ddiac1wP0ARgVPsFwEIGxK7jhN4pW8jg==
dependencies:
"@graphql-typed-document-node/core" "^3.1.1"
"@wry/caches" "^1.0.0"
@@ -49,34 +49,35 @@
dependencies:
"@babel/highlight" "^7.10.4"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.8.3":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465"
- integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.8.3":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
+ integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
dependencies:
- "@babel/highlight" "^7.24.7"
+ "@babel/helper-validator-identifier" "^7.25.9"
+ js-tokens "^4.0.0"
picocolors "^1.0.0"
-"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2", "@babel/compat-data@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb"
- integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9", "@babel/compat-data@^7.26.0":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.2.tgz#278b6b13664557de95b8f35b90d96785850bb56e"
+ integrity sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==
"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.6", "@babel/core@^7.22.17", "@babel/core@^7.24.5", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
- version "7.25.2"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77"
- integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40"
+ integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==
dependencies:
"@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.24.7"
- "@babel/generator" "^7.25.0"
- "@babel/helper-compilation-targets" "^7.25.2"
- "@babel/helper-module-transforms" "^7.25.2"
- "@babel/helpers" "^7.25.0"
- "@babel/parser" "^7.25.0"
- "@babel/template" "^7.25.0"
- "@babel/traverse" "^7.25.2"
- "@babel/types" "^7.25.2"
+ "@babel/code-frame" "^7.26.0"
+ "@babel/generator" "^7.26.0"
+ "@babel/helper-compilation-targets" "^7.25.9"
+ "@babel/helper-module-transforms" "^7.26.0"
+ "@babel/helpers" "^7.26.0"
+ "@babel/parser" "^7.26.0"
+ "@babel/template" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.26.0"
convert-source-map "^2.0.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
@@ -84,76 +85,77 @@
semver "^6.3.1"
"@babel/eslint-parser@^7.22.15":
- version "7.25.1"
- resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz#469cee4bd18a88ff3edbdfbd227bd20e82aa9b82"
- integrity sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz#603c68a63078796527bc9d0833f5e52dd5f9224c"
+ integrity sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==
dependencies:
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
eslint-visitor-keys "^2.1.0"
semver "^6.3.1"
-"@babel/generator@^7.25.0", "@babel/generator@^7.25.6", "@babel/generator@^7.7.2":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c"
- integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==
+"@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.7.2":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f"
+ integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==
dependencies:
- "@babel/types" "^7.25.6"
+ "@babel/parser" "^7.26.2"
+ "@babel/types" "^7.26.0"
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.25"
- jsesc "^2.5.1"
+ jsesc "^3.0.2"
-"@babel/helper-annotate-as-pure@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab"
- integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==
+"@babel/helper-annotate-as-pure@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4"
+ integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==
dependencies:
- "@babel/types" "^7.24.7"
+ "@babel/types" "^7.25.9"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3"
- integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz#f41752fe772a578e67286e6779a68a5a92de1ee9"
+ integrity sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==
dependencies:
- "@babel/traverse" "^7.24.7"
- "@babel/types" "^7.24.7"
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.25.9"
-"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2":
- version "7.25.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c"
- integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==
+"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875"
+ integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==
dependencies:
- "@babel/compat-data" "^7.25.2"
- "@babel/helper-validator-option" "^7.24.8"
- browserslist "^4.23.1"
+ "@babel/compat-data" "^7.25.9"
+ "@babel/helper-validator-option" "^7.25.9"
+ browserslist "^4.24.0"
lru-cache "^5.1.1"
semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14"
- integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- "@babel/helper-member-expression-to-functions" "^7.24.8"
- "@babel/helper-optimise-call-expression" "^7.24.7"
- "@babel/helper-replace-supers" "^7.25.0"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
- "@babel/traverse" "^7.25.4"
+"@babel/helper-create-class-features-plugin@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83"
+ integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ "@babel/helper-member-expression-to-functions" "^7.25.9"
+ "@babel/helper-optimise-call-expression" "^7.25.9"
+ "@babel/helper-replace-supers" "^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
semver "^6.3.1"
-"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0", "@babel/helper-create-regexp-features-plugin@^7.25.2":
- version "7.25.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9"
- integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz#3e8999db94728ad2b2458d7a470e7770b7764e26"
+ integrity sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- regexpu-core "^5.3.1"
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ regexpu-core "^6.1.1"
semver "^6.3.1"
-"@babel/helper-define-polyfill-provider@^0.6.2":
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d"
- integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==
+"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3":
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21"
+ integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==
dependencies:
"@babel/helper-compilation-targets" "^7.22.6"
"@babel/helper-plugin-utils" "^7.22.5"
@@ -161,181 +163,178 @@
lodash.debounce "^4.0.8"
resolve "^1.14.2"
-"@babel/helper-member-expression-to-functions@^7.24.8":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6"
- integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==
- dependencies:
- "@babel/traverse" "^7.24.8"
- "@babel/types" "^7.24.8"
-
-"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b"
- integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==
- dependencies:
- "@babel/traverse" "^7.24.7"
- "@babel/types" "^7.24.7"
-
-"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2":
- version "7.25.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6"
- integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==
- dependencies:
- "@babel/helper-module-imports" "^7.24.7"
- "@babel/helper-simple-access" "^7.24.7"
- "@babel/helper-validator-identifier" "^7.24.7"
- "@babel/traverse" "^7.25.2"
-
-"@babel/helper-optimise-call-expression@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f"
- integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==
- dependencies:
- "@babel/types" "^7.24.7"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878"
- integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==
-
-"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e"
- integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- "@babel/helper-wrap-function" "^7.25.0"
- "@babel/traverse" "^7.25.0"
-
-"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9"
- integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==
- dependencies:
- "@babel/helper-member-expression-to-functions" "^7.24.8"
- "@babel/helper-optimise-call-expression" "^7.24.7"
- "@babel/traverse" "^7.25.0"
-
-"@babel/helper-simple-access@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3"
- integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==
- dependencies:
- "@babel/traverse" "^7.24.7"
- "@babel/types" "^7.24.7"
-
-"@babel/helper-skip-transparent-expression-wrappers@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9"
- integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==
- dependencies:
- "@babel/traverse" "^7.24.7"
- "@babel/types" "^7.24.7"
-
-"@babel/helper-string-parser@^7.24.8":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d"
- integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==
-
-"@babel/helper-validator-identifier@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db"
- integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
-
-"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d"
- integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==
-
-"@babel/helper-wrap-function@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81"
- integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==
- dependencies:
- "@babel/template" "^7.25.0"
- "@babel/traverse" "^7.25.0"
- "@babel/types" "^7.25.0"
-
-"@babel/helpers@^7.25.0":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.6.tgz#57ee60141829ba2e102f30711ffe3afab357cc60"
- integrity sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==
- dependencies:
- "@babel/template" "^7.25.0"
- "@babel/types" "^7.25.6"
-
-"@babel/highlight@^7.10.4", "@babel/highlight@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d"
- integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==
- dependencies:
- "@babel/helper-validator-identifier" "^7.24.7"
+"@babel/helper-member-expression-to-functions@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3"
+ integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==
+ dependencies:
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715"
+ integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
+ dependencies:
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae"
+ integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
+ dependencies:
+ "@babel/helper-module-imports" "^7.25.9"
+ "@babel/helper-validator-identifier" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
+
+"@babel/helper-optimise-call-expression@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e"
+ integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==
+ dependencies:
+ "@babel/types" "^7.25.9"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46"
+ integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==
+
+"@babel/helper-remap-async-to-generator@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92"
+ integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ "@babel/helper-wrap-function" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
+
+"@babel/helper-replace-supers@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz#ba447224798c3da3f8713fc272b145e33da6a5c5"
+ integrity sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.25.9"
+ "@babel/helper-optimise-call-expression" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
+
+"@babel/helper-simple-access@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz#6d51783299884a2c74618d6ef0f86820ec2e7739"
+ integrity sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==
+ dependencies:
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9"
+ integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==
+ dependencies:
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/helper-string-parser@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
+ integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
+
+"@babel/helper-validator-identifier@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
+ integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
+
+"@babel/helper-validator-option@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72"
+ integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
+
+"@babel/helper-wrap-function@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0"
+ integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==
+ dependencies:
+ "@babel/template" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/helpers@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4"
+ integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==
+ dependencies:
+ "@babel/template" "^7.25.9"
+ "@babel/types" "^7.26.0"
+
+"@babel/highlight@^7.10.4":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6"
+ integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.25.9"
chalk "^2.4.2"
js-tokens "^4.0.0"
picocolors "^1.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.0", "@babel/parser@^7.25.6", "@babel/parser@^7.7.0":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f"
- integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.2", "@babel/parser@^7.7.0":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.2.tgz#fd7b6f487cfea09889557ef5d4eeb9ff9a5abd11"
+ integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==
dependencies:
- "@babel/types" "^7.25.6"
+ "@babel/types" "^7.26.0"
-"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3":
- version "7.25.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f"
- integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==
+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe"
+ integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/traverse" "^7.25.3"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
-"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73"
- integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==
+"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30"
+ integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73"
- integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137"
+ integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89"
- integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1"
+ integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
- "@babel/plugin-transform-optional-chaining" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
+ "@babel/plugin-transform-optional-chaining" "^7.25.9"
-"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb"
- integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e"
+ integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/traverse" "^7.25.0"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
"@babel/plugin-proposal-do-expressions@^7.22.5":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.24.7.tgz#09ab8037ef28d71578b1734dc8a88fd00887c98a"
- integrity sha512-M9pJwhoROof4rc4WzDdMoftv8JrtYfBVurvReacQ8lit+qUd0d71+1zUltb6/zCI7HBW4+KZbtBGmcudXw0GDQ==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.25.9.tgz#c1eae77aeb86fcd689804378acefd9e8f1ca8a27"
+ integrity sha512-0IkO77tw2OcZua/ADovH//IEiUyQpNjWvLyMFNidXnZx4eEriQjwkH9t/EyQZUaQu0KOxxdszC7m8VUVs51ydg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-do-expressions" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-proposal-export-default-from@^7.22.17":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.24.7.tgz#0b539c46b8ac804f694e338f803c8354c0f788b6"
- integrity sha512-CcmFwUJ3tKhLjPdt4NP+SHMshebytF8ZTYOv5ZDpkzq2sin80Wb5vJrGt8fhPrORQCfoSa0LAxC/DW+GAC5+Hw==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.9.tgz#52702be6ef8367fc8f18b8438278332beeb8f87c"
+ integrity sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-export-default-from" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
version "7.21.0-placeholder-for-preset-env.2"
@@ -370,47 +369,19 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-do-expressions@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.24.7.tgz#c8aa7471fa25286fede4c12a464a49d286de8362"
- integrity sha512-lQee+garSbTjCvXdzfjXeSzPd03pyBXALfB2C4bW7SwORrZAs5CDt67toH8MRPuvQFYvWpkXYe07AhHDY3tWfQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
-
-"@babel/plugin-syntax-dynamic-import@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
- integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-export-default-from@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.24.7.tgz#85dae9098933573aae137fb52141dd3ca52ae7ac"
- integrity sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
-
-"@babel/plugin-syntax-export-namespace-from@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
- integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
-
-"@babel/plugin-syntax-import-assertions@^7.24.7":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz#bb918905c58711b86f9710d74a3744b6c56573b5"
- integrity sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==
+"@babel/plugin-syntax-import-assertions@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f"
+ integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-syntax-import-attributes@^7.24.7":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz#6d4c78f042db0e82fd6436cd65fec5dc78ad2bde"
- integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==
+"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7"
+ integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-syntax-import-meta@^7.10.4":
version "7.10.4"
@@ -426,12 +397,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d"
- integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==
+"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290"
+ integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
@@ -486,15 +457,13 @@
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-typescript@^7.24.7", "@babel/plugin-syntax-typescript@^7.7.2":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff"
- integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==
+"@babel/plugin-syntax-typescript@^7.25.9", "@babel/plugin-syntax-typescript@^7.7.2":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399"
+ integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
version "7.18.6"
@@ -504,563 +473,545 @@
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-arrow-functions@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514"
- integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==
+"@babel/plugin-transform-arrow-functions@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845"
+ integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-async-generator-functions@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz#2afd4e639e2d055776c9f091b6c0c180ed8cf083"
- integrity sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==
+"@babel/plugin-transform-async-generator-functions@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz#1b18530b077d18a407c494eb3d1d72da505283a2"
+ integrity sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/helper-remap-async-to-generator" "^7.25.0"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/traverse" "^7.25.4"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-remap-async-to-generator" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
-"@babel/plugin-transform-async-to-generator@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc"
- integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==
+"@babel/plugin-transform-async-to-generator@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71"
+ integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==
dependencies:
- "@babel/helper-module-imports" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/helper-remap-async-to-generator" "^7.24.7"
+ "@babel/helper-module-imports" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-remap-async-to-generator" "^7.25.9"
-"@babel/plugin-transform-block-scoped-functions@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f"
- integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==
+"@babel/plugin-transform-block-scoped-functions@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz#5700691dbd7abb93de300ca7be94203764fce458"
+ integrity sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-block-scoping@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac"
- integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==
+"@babel/plugin-transform-block-scoping@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1"
+ integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-class-properties@^7.22.5", "@babel/plugin-transform-class-properties@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz#bae7dbfcdcc2e8667355cd1fb5eda298f05189fd"
- integrity sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==
+"@babel/plugin-transform-class-properties@^7.22.5", "@babel/plugin-transform-class-properties@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f"
+ integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.25.4"
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-create-class-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-class-static-block@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d"
- integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==
+"@babel/plugin-transform-class-static-block@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0"
+ integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/helper-create-class-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-classes@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz#d29dbb6a72d79f359952ad0b66d88518d65ef89a"
- integrity sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==
+"@babel/plugin-transform-classes@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52"
+ integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- "@babel/helper-compilation-targets" "^7.25.2"
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/helper-replace-supers" "^7.25.0"
- "@babel/traverse" "^7.25.4"
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ "@babel/helper-compilation-targets" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-replace-supers" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707"
- integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==
+"@babel/plugin-transform-computed-properties@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b"
+ integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/template" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/template" "^7.25.9"
-"@babel/plugin-transform-destructuring@^7.22.15", "@babel/plugin-transform-destructuring@^7.24.8":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550"
- integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==
+"@babel/plugin-transform-destructuring@^7.22.15", "@babel/plugin-transform-destructuring@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1"
+ integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-dotall-regex@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0"
- integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==
+"@babel/plugin-transform-dotall-regex@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a"
+ integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-duplicate-keys@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee"
- integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==
+"@babel/plugin-transform-duplicate-keys@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d"
+ integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604"
- integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==
+"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31"
+ integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.25.0"
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-create-regexp-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-dynamic-import@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4"
- integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==
+"@babel/plugin-transform-dynamic-import@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8"
+ integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-exponentiation-operator@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d"
- integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==
+"@babel/plugin-transform-exponentiation-operator@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz#ece47b70d236c1d99c263a1e22b62dc20a4c8b0f"
+ integrity sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-export-namespace-from@^7.22.11", "@babel/plugin-transform-export-namespace-from@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197"
- integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==
+"@babel/plugin-transform-export-namespace-from@^7.22.11", "@babel/plugin-transform-export-namespace-from@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2"
+ integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-for-of@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70"
- integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==
+"@babel/plugin-transform-for-of@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755"
+ integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
-"@babel/plugin-transform-function-name@^7.25.1":
- version "7.25.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37"
- integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==
+"@babel/plugin-transform-function-name@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97"
+ integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==
dependencies:
- "@babel/helper-compilation-targets" "^7.24.8"
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/traverse" "^7.25.1"
+ "@babel/helper-compilation-targets" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
-"@babel/plugin-transform-json-strings@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a"
- integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==
+"@babel/plugin-transform-json-strings@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660"
+ integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-literals@^7.25.2":
- version "7.25.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3"
- integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==
+"@babel/plugin-transform-literals@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de"
+ integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-logical-assignment-operators@^7.22.11", "@babel/plugin-transform-logical-assignment-operators@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0"
- integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==
+"@babel/plugin-transform-logical-assignment-operators@^7.22.11", "@babel/plugin-transform-logical-assignment-operators@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7"
+ integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-member-expression-literals@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df"
- integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==
+"@babel/plugin-transform-member-expression-literals@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de"
+ integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-modules-amd@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7"
- integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==
+"@babel/plugin-transform-modules-amd@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5"
+ integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==
dependencies:
- "@babel/helper-module-transforms" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-module-transforms" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c"
- integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==
+"@babel/plugin-transform-modules-commonjs@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz#d165c8c569a080baf5467bda88df6425fc060686"
+ integrity sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==
dependencies:
- "@babel/helper-module-transforms" "^7.24.8"
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/helper-simple-access" "^7.24.7"
+ "@babel/helper-module-transforms" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-simple-access" "^7.25.9"
-"@babel/plugin-transform-modules-systemjs@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33"
- integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==
+"@babel/plugin-transform-modules-systemjs@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8"
+ integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==
dependencies:
- "@babel/helper-module-transforms" "^7.25.0"
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/helper-validator-identifier" "^7.24.7"
- "@babel/traverse" "^7.25.0"
+ "@babel/helper-module-transforms" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-validator-identifier" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
-"@babel/plugin-transform-modules-umd@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8"
- integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==
+"@babel/plugin-transform-modules-umd@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9"
+ integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==
dependencies:
- "@babel/helper-module-transforms" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-module-transforms" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923"
- integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a"
+ integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-new-target@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00"
- integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==
+"@babel/plugin-transform-new-target@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd"
+ integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120"
- integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==
+"@babel/plugin-transform-nullish-coalescing-operator@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz#bcb1b0d9e948168102d5f7104375ca21c3266949"
+ integrity sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-numeric-separator@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63"
- integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==
+"@babel/plugin-transform-numeric-separator@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1"
+ integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-object-rest-spread@^7.22.15", "@babel/plugin-transform-object-rest-spread@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6"
- integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==
+"@babel/plugin-transform-object-rest-spread@^7.22.15", "@babel/plugin-transform-object-rest-spread@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18"
+ integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==
dependencies:
- "@babel/helper-compilation-targets" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.24.7"
+ "@babel/helper-compilation-targets" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/plugin-transform-parameters" "^7.25.9"
-"@babel/plugin-transform-object-super@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be"
- integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==
+"@babel/plugin-transform-object-super@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03"
+ integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/helper-replace-supers" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-replace-supers" "^7.25.9"
-"@babel/plugin-transform-optional-catch-binding@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4"
- integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==
+"@babel/plugin-transform-optional-catch-binding@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3"
+ integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d"
- integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==
+"@babel/plugin-transform-optional-chaining@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd"
+ integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
-"@babel/plugin-transform-parameters@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68"
- integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==
+"@babel/plugin-transform-parameters@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257"
+ integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz#9bbefbe3649f470d681997e0b64a4b254d877242"
- integrity sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==
+"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57"
+ integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.25.4"
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-create-class-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061"
- integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==
+"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33"
+ integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- "@babel/helper-create-class-features-plugin" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ "@babel/helper-create-class-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-property-literals@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc"
- integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==
+"@babel/plugin-transform-property-literals@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f"
+ integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-transform-react-constant-elements@^7.18.12":
- version "7.25.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz#71a665ed16ce618067d05f4a98130207349d82ae"
- integrity sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz#08a1de35a301929b60fdf2788a54b46cd8ecd0ef"
+ integrity sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-react-display-name@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b"
- integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==
+"@babel/plugin-transform-react-display-name@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz#4b79746b59efa1f38c8695065a92a9f5afb24f7d"
+ integrity sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-react-jsx-development@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b"
- integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==
+"@babel/plugin-transform-react-jsx-development@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz#8fd220a77dd139c07e25225a903b8be8c829e0d7"
+ integrity sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==
dependencies:
- "@babel/plugin-transform-react-jsx" "^7.24.7"
+ "@babel/plugin-transform-react-jsx" "^7.25.9"
"@babel/plugin-transform-react-jsx-self@^7.24.5":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz#66bff0248ea0b549972e733516ffad577477bdab"
- integrity sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz#c0b6cae9c1b73967f7f9eb2fca9536ba2fad2858"
+ integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-transform-react-jsx-source@^7.24.1":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz#1198aab2548ad19582013815c938d3ebd8291ee3"
- integrity sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz#4c6b8daa520b5f155b5fb55547d7c9fa91417503"
+ integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-react-jsx@^7.17.12", "@babel/plugin-transform-react-jsx@^7.24.7":
- version "7.25.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a"
- integrity sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==
+"@babel/plugin-transform-react-jsx@^7.17.12", "@babel/plugin-transform-react-jsx@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz#06367940d8325b36edff5e2b9cbe782947ca4166"
+ integrity sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- "@babel/helper-module-imports" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/plugin-syntax-jsx" "^7.24.7"
- "@babel/types" "^7.25.2"
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ "@babel/helper-module-imports" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/plugin-syntax-jsx" "^7.25.9"
+ "@babel/types" "^7.25.9"
-"@babel/plugin-transform-react-pure-annotations@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595"
- integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==
+"@babel/plugin-transform-react-pure-annotations@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz#ea1c11b2f9dbb8e2d97025f43a3b5bc47e18ae62"
+ integrity sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-regenerator@^7.22.10", "@babel/plugin-transform-regenerator@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8"
- integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==
+"@babel/plugin-transform-regenerator@^7.22.10", "@babel/plugin-transform-regenerator@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b"
+ integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
regenerator-transform "^0.15.2"
-"@babel/plugin-transform-reserved-words@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4"
- integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==
+"@babel/plugin-transform-regexp-modifiers@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850"
+ integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+
+"@babel/plugin-transform-reserved-words@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce"
+ integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-transform-runtime@^7.22.15":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz#96e4ad7bfbbe0b4a7b7e6f2a533ca326cf204963"
- integrity sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz#62723ea3f5b31ffbe676da9d6dae17138ae580ea"
+ integrity sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==
dependencies:
- "@babel/helper-module-imports" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-module-imports" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
babel-plugin-polyfill-corejs2 "^0.4.10"
babel-plugin-polyfill-corejs3 "^0.10.6"
babel-plugin-polyfill-regenerator "^0.6.1"
semver "^6.3.1"
-"@babel/plugin-transform-shorthand-properties@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73"
- integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==
+"@babel/plugin-transform-shorthand-properties@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2"
+ integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-spread@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3"
- integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==
+"@babel/plugin-transform-spread@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9"
+ integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
-"@babel/plugin-transform-sticky-regex@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb"
- integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==
+"@babel/plugin-transform-sticky-regex@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32"
+ integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-template-literals@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8"
- integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==
+"@babel/plugin-transform-template-literals@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz#6dbd4a24e8fad024df76d1fac6a03cf413f60fe1"
+ integrity sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-typeof-symbol@^7.24.8":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c"
- integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==
+"@babel/plugin-transform-typeof-symbol@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz#224ba48a92869ddbf81f9b4a5f1204bbf5a2bc4b"
+ integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-typescript@^7.24.7":
- version "7.25.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add"
- integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==
+"@babel/plugin-transform-typescript@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz#69267905c2b33c2ac6d8fe765e9dc2ddc9df3849"
+ integrity sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.24.7"
- "@babel/helper-create-class-features-plugin" "^7.25.0"
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
- "@babel/plugin-syntax-typescript" "^7.24.7"
+ "@babel/helper-annotate-as-pure" "^7.25.9"
+ "@babel/helper-create-class-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
+ "@babel/plugin-syntax-typescript" "^7.25.9"
-"@babel/plugin-transform-unicode-escapes@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e"
- integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==
+"@babel/plugin-transform-unicode-escapes@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82"
+ integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-unicode-property-regex@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd"
- integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==
+"@babel/plugin-transform-unicode-property-regex@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3"
+ integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-unicode-regex@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f"
- integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==
+"@babel/plugin-transform-unicode-regex@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1"
+ integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.24.7"
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
-"@babel/plugin-transform-unicode-sets-regex@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz#be664c2a0697ffacd3423595d5edef6049e8946c"
- integrity sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==
+"@babel/plugin-transform-unicode-sets-regex@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe"
+ integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.25.2"
- "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-create-regexp-features-plugin" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
"@babel/preset-env@^7.19.4", "@babel/preset-env@^7.22.15":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.4.tgz#be23043d43a34a2721cd0f676c7ba6f1481f6af6"
- integrity sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==
- dependencies:
- "@babel/compat-data" "^7.25.4"
- "@babel/helper-compilation-targets" "^7.25.2"
- "@babel/helper-plugin-utils" "^7.24.8"
- "@babel/helper-validator-option" "^7.24.8"
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.3"
- "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7"
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0"
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1"
+ integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==
+ dependencies:
+ "@babel/compat-data" "^7.26.0"
+ "@babel/helper-compilation-targets" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-validator-option" "^7.25.9"
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9"
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9"
"@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-class-properties" "^7.12.13"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
- "@babel/plugin-syntax-import-assertions" "^7.24.7"
- "@babel/plugin-syntax-import-attributes" "^7.24.7"
- "@babel/plugin-syntax-import-meta" "^7.10.4"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
- "@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-syntax-import-assertions" "^7.26.0"
+ "@babel/plugin-syntax-import-attributes" "^7.26.0"
"@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
- "@babel/plugin-transform-arrow-functions" "^7.24.7"
- "@babel/plugin-transform-async-generator-functions" "^7.25.4"
- "@babel/plugin-transform-async-to-generator" "^7.24.7"
- "@babel/plugin-transform-block-scoped-functions" "^7.24.7"
- "@babel/plugin-transform-block-scoping" "^7.25.0"
- "@babel/plugin-transform-class-properties" "^7.25.4"
- "@babel/plugin-transform-class-static-block" "^7.24.7"
- "@babel/plugin-transform-classes" "^7.25.4"
- "@babel/plugin-transform-computed-properties" "^7.24.7"
- "@babel/plugin-transform-destructuring" "^7.24.8"
- "@babel/plugin-transform-dotall-regex" "^7.24.7"
- "@babel/plugin-transform-duplicate-keys" "^7.24.7"
- "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0"
- "@babel/plugin-transform-dynamic-import" "^7.24.7"
- "@babel/plugin-transform-exponentiation-operator" "^7.24.7"
- "@babel/plugin-transform-export-namespace-from" "^7.24.7"
- "@babel/plugin-transform-for-of" "^7.24.7"
- "@babel/plugin-transform-function-name" "^7.25.1"
- "@babel/plugin-transform-json-strings" "^7.24.7"
- "@babel/plugin-transform-literals" "^7.25.2"
- "@babel/plugin-transform-logical-assignment-operators" "^7.24.7"
- "@babel/plugin-transform-member-expression-literals" "^7.24.7"
- "@babel/plugin-transform-modules-amd" "^7.24.7"
- "@babel/plugin-transform-modules-commonjs" "^7.24.8"
- "@babel/plugin-transform-modules-systemjs" "^7.25.0"
- "@babel/plugin-transform-modules-umd" "^7.24.7"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7"
- "@babel/plugin-transform-new-target" "^7.24.7"
- "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7"
- "@babel/plugin-transform-numeric-separator" "^7.24.7"
- "@babel/plugin-transform-object-rest-spread" "^7.24.7"
- "@babel/plugin-transform-object-super" "^7.24.7"
- "@babel/plugin-transform-optional-catch-binding" "^7.24.7"
- "@babel/plugin-transform-optional-chaining" "^7.24.8"
- "@babel/plugin-transform-parameters" "^7.24.7"
- "@babel/plugin-transform-private-methods" "^7.25.4"
- "@babel/plugin-transform-private-property-in-object" "^7.24.7"
- "@babel/plugin-transform-property-literals" "^7.24.7"
- "@babel/plugin-transform-regenerator" "^7.24.7"
- "@babel/plugin-transform-reserved-words" "^7.24.7"
- "@babel/plugin-transform-shorthand-properties" "^7.24.7"
- "@babel/plugin-transform-spread" "^7.24.7"
- "@babel/plugin-transform-sticky-regex" "^7.24.7"
- "@babel/plugin-transform-template-literals" "^7.24.7"
- "@babel/plugin-transform-typeof-symbol" "^7.24.8"
- "@babel/plugin-transform-unicode-escapes" "^7.24.7"
- "@babel/plugin-transform-unicode-property-regex" "^7.24.7"
- "@babel/plugin-transform-unicode-regex" "^7.24.7"
- "@babel/plugin-transform-unicode-sets-regex" "^7.25.4"
+ "@babel/plugin-transform-arrow-functions" "^7.25.9"
+ "@babel/plugin-transform-async-generator-functions" "^7.25.9"
+ "@babel/plugin-transform-async-to-generator" "^7.25.9"
+ "@babel/plugin-transform-block-scoped-functions" "^7.25.9"
+ "@babel/plugin-transform-block-scoping" "^7.25.9"
+ "@babel/plugin-transform-class-properties" "^7.25.9"
+ "@babel/plugin-transform-class-static-block" "^7.26.0"
+ "@babel/plugin-transform-classes" "^7.25.9"
+ "@babel/plugin-transform-computed-properties" "^7.25.9"
+ "@babel/plugin-transform-destructuring" "^7.25.9"
+ "@babel/plugin-transform-dotall-regex" "^7.25.9"
+ "@babel/plugin-transform-duplicate-keys" "^7.25.9"
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9"
+ "@babel/plugin-transform-dynamic-import" "^7.25.9"
+ "@babel/plugin-transform-exponentiation-operator" "^7.25.9"
+ "@babel/plugin-transform-export-namespace-from" "^7.25.9"
+ "@babel/plugin-transform-for-of" "^7.25.9"
+ "@babel/plugin-transform-function-name" "^7.25.9"
+ "@babel/plugin-transform-json-strings" "^7.25.9"
+ "@babel/plugin-transform-literals" "^7.25.9"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.25.9"
+ "@babel/plugin-transform-member-expression-literals" "^7.25.9"
+ "@babel/plugin-transform-modules-amd" "^7.25.9"
+ "@babel/plugin-transform-modules-commonjs" "^7.25.9"
+ "@babel/plugin-transform-modules-systemjs" "^7.25.9"
+ "@babel/plugin-transform-modules-umd" "^7.25.9"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9"
+ "@babel/plugin-transform-new-target" "^7.25.9"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9"
+ "@babel/plugin-transform-numeric-separator" "^7.25.9"
+ "@babel/plugin-transform-object-rest-spread" "^7.25.9"
+ "@babel/plugin-transform-object-super" "^7.25.9"
+ "@babel/plugin-transform-optional-catch-binding" "^7.25.9"
+ "@babel/plugin-transform-optional-chaining" "^7.25.9"
+ "@babel/plugin-transform-parameters" "^7.25.9"
+ "@babel/plugin-transform-private-methods" "^7.25.9"
+ "@babel/plugin-transform-private-property-in-object" "^7.25.9"
+ "@babel/plugin-transform-property-literals" "^7.25.9"
+ "@babel/plugin-transform-regenerator" "^7.25.9"
+ "@babel/plugin-transform-regexp-modifiers" "^7.26.0"
+ "@babel/plugin-transform-reserved-words" "^7.25.9"
+ "@babel/plugin-transform-shorthand-properties" "^7.25.9"
+ "@babel/plugin-transform-spread" "^7.25.9"
+ "@babel/plugin-transform-sticky-regex" "^7.25.9"
+ "@babel/plugin-transform-template-literals" "^7.25.9"
+ "@babel/plugin-transform-typeof-symbol" "^7.25.9"
+ "@babel/plugin-transform-unicode-escapes" "^7.25.9"
+ "@babel/plugin-transform-unicode-property-regex" "^7.25.9"
+ "@babel/plugin-transform-unicode-regex" "^7.25.9"
+ "@babel/plugin-transform-unicode-sets-regex" "^7.25.9"
"@babel/preset-modules" "0.1.6-no-external-plugins"
babel-plugin-polyfill-corejs2 "^0.4.10"
babel-plugin-polyfill-corejs3 "^0.10.6"
babel-plugin-polyfill-regenerator "^0.6.1"
- core-js-compat "^3.37.1"
+ core-js-compat "^3.38.1"
semver "^6.3.1"
"@babel/preset-modules@0.1.6-no-external-plugins":
@@ -1073,32 +1024,32 @@
esutils "^2.0.2"
"@babel/preset-react@^7.18.6", "@babel/preset-react@^7.22.15":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc"
- integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.25.9.tgz#5f473035dc2094bcfdbc7392d0766bd42dce173e"
+ integrity sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/helper-validator-option" "^7.24.7"
- "@babel/plugin-transform-react-display-name" "^7.24.7"
- "@babel/plugin-transform-react-jsx" "^7.24.7"
- "@babel/plugin-transform-react-jsx-development" "^7.24.7"
- "@babel/plugin-transform-react-pure-annotations" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-validator-option" "^7.25.9"
+ "@babel/plugin-transform-react-display-name" "^7.25.9"
+ "@babel/plugin-transform-react-jsx" "^7.25.9"
+ "@babel/plugin-transform-react-jsx-development" "^7.25.9"
+ "@babel/plugin-transform-react-pure-annotations" "^7.25.9"
"@babel/preset-typescript@^7.18.6", "@babel/preset-typescript@^7.22.15":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1"
- integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d"
+ integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
- "@babel/helper-validator-option" "^7.24.7"
- "@babel/plugin-syntax-jsx" "^7.24.7"
- "@babel/plugin-transform-modules-commonjs" "^7.24.7"
- "@babel/plugin-transform-typescript" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-validator-option" "^7.25.9"
+ "@babel/plugin-syntax-jsx" "^7.25.9"
+ "@babel/plugin-transform-modules-commonjs" "^7.25.9"
+ "@babel/plugin-transform-typescript" "^7.25.9"
"@babel/register@^7.22.15":
- version "7.24.6"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.24.6.tgz#59e21dcc79e1d04eed5377633b0f88029a6bef9e"
- integrity sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.25.9.tgz#1c465acf7dc983d70ccc318eb5b887ecb04f021b"
+ integrity sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA==
dependencies:
clone-deep "^4.0.1"
find-cache-dir "^2.0.0"
@@ -1106,15 +1057,10 @@
pirates "^4.0.6"
source-map-support "^0.5.16"
-"@babel/regjsgen@^0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
- integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-
"@babel/runtime-corejs3@^7.12.5", "@babel/runtime-corejs3@^7.17.9", "@babel/runtime-corejs3@^7.20.13", "@babel/runtime-corejs3@^7.22.15", "@babel/runtime-corejs3@^7.22.5":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.25.6.tgz#5e3facf42775cc95bcde95746e940061931286e4"
- integrity sha512-Gz0Nrobx8szge6kQQ5Z5MX9L3ObqNwCQY1PSwSNzreFL7aHGxv8Fp2j3ETV6/wWdbiV+mW6OSm8oQhg3Tcsniw==
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz#5af6bed16073eb4a0191233d61e158a5c768c430"
+ integrity sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==
dependencies:
core-js-pure "^3.30.2"
regenerator-runtime "^0.14.0"
@@ -1127,54 +1073,53 @@
regenerator-runtime "^0.14.0"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.9", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.13", "@babel/runtime@^7.22.15", "@babel/runtime@^7.22.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2"
- integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1"
+ integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
dependencies:
regenerator-runtime "^0.14.0"
-"@babel/template@^7.24.7", "@babel/template@^7.25.0", "@babel/template@^7.3.3":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a"
- integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==
- dependencies:
- "@babel/code-frame" "^7.24.7"
- "@babel/parser" "^7.25.0"
- "@babel/types" "^7.25.0"
-
-"@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41"
- integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==
- dependencies:
- "@babel/code-frame" "^7.24.7"
- "@babel/generator" "^7.25.6"
- "@babel/parser" "^7.25.6"
- "@babel/template" "^7.25.0"
- "@babel/types" "^7.25.6"
+"@babel/template@^7.25.9", "@babel/template@^7.3.3":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016"
+ integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==
+ dependencies:
+ "@babel/code-frame" "^7.25.9"
+ "@babel/parser" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/traverse@^7.25.9", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84"
+ integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==
+ dependencies:
+ "@babel/code-frame" "^7.25.9"
+ "@babel/generator" "^7.25.9"
+ "@babel/parser" "^7.25.9"
+ "@babel/template" "^7.25.9"
+ "@babel/types" "^7.25.9"
debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
- version "7.25.6"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6"
- integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff"
+ integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==
dependencies:
- "@babel/helper-string-parser" "^7.24.8"
- "@babel/helper-validator-identifier" "^7.24.7"
- to-fast-properties "^2.0.0"
+ "@babel/helper-string-parser" "^7.25.9"
+ "@babel/helper-validator-identifier" "^7.25.9"
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@bundled-es-modules/cookie@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz#c3b82703969a61cf6a46e959a012b2c257f6b164"
- integrity sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==
+"@bundled-es-modules/cookie@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz#b41376af6a06b3e32a15241d927b840a9b4de507"
+ integrity sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==
dependencies:
- cookie "^0.5.0"
+ cookie "^0.7.2"
"@bundled-es-modules/statuses@^1.0.1":
version "1.0.1"
@@ -1199,38 +1144,38 @@
"@babel/runtime" "^7.17.9"
"@babel/runtime-corejs3" "^7.17.9"
-"@commercetools-frontend/actions-global@22.31.0", "@commercetools-frontend/actions-global@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/actions-global/-/actions-global-22.31.0.tgz#cbe1048c1abcf10cc9c5bf00d11a800b594340c1"
- integrity sha512-oh7zMHXYWMJYEOvSdZ46veNupK62RoazVsKJunyyEZje50c0iDmHX1NJ2jd7Wut2c4ILtjENzPgjbE4ZuWqVLw==
+"@commercetools-frontend/actions-global@22.35.1", "@commercetools-frontend/actions-global@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/actions-global/-/actions-global-22.35.1.tgz#82bd59c9c09c5d5782e69a60993b4c5619e75881"
+ integrity sha512-mPVzdkdVzdruo+BC/37PoaaIBcU1A5xVAcKf6w7avrhIEdUI3VjQ+B06ptc6X9BpVHEyFusF+p4POgI+CQ/NkA==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/browser-history" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
- "@commercetools-frontend/notifications" "22.31.0"
- "@commercetools-frontend/sentry" "22.31.0"
+ "@commercetools-frontend/browser-history" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
+ "@commercetools-frontend/notifications" "22.35.1"
+ "@commercetools-frontend/sentry" "22.35.1"
"@types/lodash" "^4.14.198"
"@types/react" "^17.0.80"
"@types/react-redux" "^7.1.26"
lodash "4.17.21"
redux-thunk "2.4.2"
-"@commercetools-frontend/application-components@22.31.0", "@commercetools-frontend/application-components@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-components/-/application-components-22.31.0.tgz#09cb31415d77a813494aa2912590f6a80a04fa46"
- integrity sha512-/qSp9fsSuPpCqtKDecPPwbm8GpG+40XckZYSr7VFeJZjhPF7AfRuU6HZkOFVpdEfWqrlyH7HILR32s0D9cmgzQ==
+"@commercetools-frontend/application-components@22.35.1", "@commercetools-frontend/application-components@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-components/-/application-components-22.35.1.tgz#f982b46b2aa871d4449f349c8e84803ab86bb0c9"
+ integrity sha512-HnNFlDnXty1tcl40Q77dHeHCojT/Zh9kkPpUFqo5/Qws7qczr4lDn9HGeErqpQLEFujt0Jm1UeT7kPUQmegrMw==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/actions-global" "22.31.0"
- "@commercetools-frontend/application-config" "22.31.0"
- "@commercetools-frontend/application-shell-connectors" "22.31.0"
- "@commercetools-frontend/assets" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
- "@commercetools-frontend/i18n" "22.31.0"
- "@commercetools-frontend/l10n" "22.31.0"
- "@commercetools-frontend/sentry" "22.31.0"
+ "@commercetools-frontend/actions-global" "22.35.1"
+ "@commercetools-frontend/application-config" "22.35.1"
+ "@commercetools-frontend/application-shell-connectors" "22.35.1"
+ "@commercetools-frontend/assets" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
+ "@commercetools-frontend/i18n" "22.35.1"
+ "@commercetools-frontend/l10n" "22.35.1"
+ "@commercetools-frontend/sentry" "22.35.1"
"@commercetools-uikit/accessible-button" "^19.9.0"
"@commercetools-uikit/card" "^19.9.0"
"@commercetools-uikit/constraints" "^19.9.0"
@@ -1266,17 +1211,17 @@
raf-schd "^4.0.3"
react-modal "3.16.1"
-"@commercetools-frontend/application-config@22.31.0", "@commercetools-frontend/application-config@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-config/-/application-config-22.31.0.tgz#38d542559cc33b3bac5219fb6318518122174a96"
- integrity sha512-WtRhef0/41WOAz2J+wMC9AD7rtBQHVjoDJKmTxWCNDgud6kLnHFb4Xg8Q5YfkNc7VDddlmUtzNiM83jw/ByEKw==
+"@commercetools-frontend/application-config@22.35.1", "@commercetools-frontend/application-config@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-config/-/application-config-22.35.1.tgz#2849280127c71bde55546f6921e243e727f84f45"
+ integrity sha512-q76TlK/jSZZRs8hWsjs3vhveSrBGdOuNyFS99wH/Nsm5KOKKQk6vbH++eN9tcpjlqQvwmPzHhoY5muIxHUByCQ==
dependencies:
"@babel/core" "^7.22.17"
"@babel/register" "^7.22.15"
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/babel-preset-mc-app" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
+ "@commercetools-frontend/babel-preset-mc-app" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
"@types/dompurify" "^2.4.0"
"@types/lodash" "^4.14.198"
"@types/react" "^17.0.80"
@@ -1288,17 +1233,17 @@
lodash "4.17.21"
omit-empty-es "1.2.0"
-"@commercetools-frontend/application-shell-connectors@22.31.0", "@commercetools-frontend/application-shell-connectors@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-shell-connectors/-/application-shell-connectors-22.31.0.tgz#798dcaadf4f584c1488ed60e9a9ab41287d87369"
- integrity sha512-nS4paiy7bAP5znEkYo4K5t7t82PJ+0jZ4UyRCLfioJ45i5DMv3gU/bgt97mUC46N0Sk0PHxKStdQfG5CmwJgMA==
+"@commercetools-frontend/application-shell-connectors@22.35.1", "@commercetools-frontend/application-shell-connectors@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-shell-connectors/-/application-shell-connectors-22.35.1.tgz#33a97f41ea31967faa9d3bfeca8240f01856dc2b"
+ integrity sha512-QOMZDuovIk21Y6bUKYZJ/A0704z4DzIeeF7M7fTIvPpZDte2jF2tr8OqTTGzZaDnnmySDm03KOdiOk4HR4/D7g==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/application-config" "22.31.0"
- "@commercetools-frontend/browser-history" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
- "@commercetools-frontend/sentry" "22.31.0"
+ "@commercetools-frontend/application-config" "22.35.1"
+ "@commercetools-frontend/browser-history" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
+ "@commercetools-frontend/sentry" "22.35.1"
"@commercetools/http-user-agent" "3.0.0"
"@emotion/react" "^11.11.4"
"@types/lodash" "^4.14.198"
@@ -1314,28 +1259,28 @@
uuid "9.0.1"
wait-for-observables "1.0.3"
-"@commercetools-frontend/application-shell@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-shell/-/application-shell-22.31.0.tgz#7b8ed93c0f63c7330b182095e269cf89e83295a6"
- integrity sha512-V4yPzJAvhp0B0a2qGwujYNPppCy9WGqTieaYZuZjKTvaDVqYfzR86znUfO5s1FLTEHg4E89uCNnF8H71i5W7IQ==
+"@commercetools-frontend/application-shell@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/application-shell/-/application-shell-22.35.1.tgz#7f70ba050fca9890a08f086effbbc0c8474949c2"
+ integrity sha512-xB43L1GCRCYA9uyw8WFnZ2Re25b7nXWDR9q/lnf/wMT15S/zBpku5uf3fQT7WbZIq5eKElKkymJ77asv70H0CA==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/actions-global" "22.31.0"
- "@commercetools-frontend/application-components" "22.31.0"
- "@commercetools-frontend/application-config" "22.31.0"
- "@commercetools-frontend/application-shell-connectors" "22.31.0"
- "@commercetools-frontend/assets" "22.31.0"
- "@commercetools-frontend/browser-history" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
- "@commercetools-frontend/i18n" "22.31.0"
- "@commercetools-frontend/l10n" "22.31.0"
- "@commercetools-frontend/notifications" "22.31.0"
- "@commercetools-frontend/permissions" "22.31.0"
- "@commercetools-frontend/react-notifications" "22.31.0"
- "@commercetools-frontend/sdk" "22.31.0"
- "@commercetools-frontend/sentry" "22.31.0"
- "@commercetools-frontend/url-utils" "22.31.0"
+ "@commercetools-frontend/actions-global" "22.35.1"
+ "@commercetools-frontend/application-components" "22.35.1"
+ "@commercetools-frontend/application-config" "22.35.1"
+ "@commercetools-frontend/application-shell-connectors" "22.35.1"
+ "@commercetools-frontend/assets" "22.35.1"
+ "@commercetools-frontend/browser-history" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
+ "@commercetools-frontend/i18n" "22.35.1"
+ "@commercetools-frontend/l10n" "22.35.1"
+ "@commercetools-frontend/notifications" "22.35.1"
+ "@commercetools-frontend/permissions" "22.35.1"
+ "@commercetools-frontend/react-notifications" "22.35.1"
+ "@commercetools-frontend/sdk" "22.35.1"
+ "@commercetools-frontend/sentry" "22.35.1"
+ "@commercetools-frontend/url-utils" "22.35.1"
"@commercetools-uikit/accessible-hidden" "^19.9.0"
"@commercetools-uikit/avatar" "^19.9.0"
"@commercetools-uikit/card" "^19.9.0"
@@ -1351,7 +1296,6 @@
"@commercetools-uikit/select-input" "^19.9.0"
"@commercetools-uikit/spacings" "^19.9.0"
"@commercetools-uikit/text" "^19.9.0"
- "@commercetools-uikit/tooltip" "^19.9.0"
"@emotion/react" "^11.11.4"
"@emotion/styled" "^11.11.0"
"@flopflip/combine-adapters" "14.0.2"
@@ -1396,15 +1340,15 @@
unfetch "4.2.0"
uuid "9.0.1"
-"@commercetools-frontend/assets@22.31.0", "@commercetools-frontend/assets@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/assets/-/assets-22.31.0.tgz#0e762f2eb5d1f3c15d82a9984e0f10ddb4862ad5"
- integrity sha512-Kdn7K8SktY32yAcoz3QutUpdkID7mQZOzVQGBSCGKySdhWJ8atqNJn+/QqOKvcGZ5Leo9DPh2yj8lbYkrRK75Q==
+"@commercetools-frontend/assets@22.35.1", "@commercetools-frontend/assets@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/assets/-/assets-22.35.1.tgz#d8b6f8a50c79b88aa880613abd8efa3b2e0f93bc"
+ integrity sha512-NzLJpEt1wGEQJk3weqxx18nK/83wEcvfnxxu2j96bfy4O/N6fgPzAFlRgzTLyeVnviNaVXlBEIq9eWV3iup+zg==
-"@commercetools-frontend/babel-preset-mc-app@22.31.0", "@commercetools-frontend/babel-preset-mc-app@^22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/babel-preset-mc-app/-/babel-preset-mc-app-22.31.0.tgz#d2ab7e7c0ef5ad4859694760b396b43c54609d7a"
- integrity sha512-2HQbx0G6N+tOp9BDonTpCDck/LNzDoWk9+puXEwAA7SxOqfBasVybSNVDSV6odlUdY8b6z58NFl0gU0gDTSy6g==
+"@commercetools-frontend/babel-preset-mc-app@22.35.1", "@commercetools-frontend/babel-preset-mc-app@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/babel-preset-mc-app/-/babel-preset-mc-app-22.35.1.tgz#a8f50c8b2142f011dcc2f0b2edc1f545392d1e9b"
+ integrity sha512-ECcKIoG1iy/2CnB0AXAcRpIyqqN4A0UiYpXind9QBFssnMdDSgDF9Sae3Z6nFbUlTPAGDFejU2KzDJaMwhu7hQ==
dependencies:
"@babel/core" "^7.22.17"
"@babel/plugin-proposal-do-expressions" "^7.22.5"
@@ -1432,10 +1376,10 @@
babel-plugin-transform-react-remove-prop-types "^0.4.24"
core-js "^3.32.2"
-"@commercetools-frontend/browser-history@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/browser-history/-/browser-history-22.31.0.tgz#ca2150bae2c32c09f3c2a397cba01faf3db643b0"
- integrity sha512-IXow4sW/gp3qOU218tLBBuqaSEyGyUWj6CNkdjsTp15W5S7kUzfeGux5NIqfFNG2pbIzYYR2m/Iw1ctsYCGYAg==
+"@commercetools-frontend/browser-history@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/browser-history/-/browser-history-22.35.1.tgz#599bf60382938e4b996e784f4438e3518009b314"
+ integrity sha512-zlbmZ88Lfg6/ZIi9k9Ieps+GEtnO7Xv7ncyNokuUqaX+SFcxJ3DO4GEt5Yq+1W96HrfHmbCX/uUT3G8HHTkDzw==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
@@ -1444,22 +1388,22 @@
history-query-enhancer "1.0.4"
qss "2.0.3"
-"@commercetools-frontend/constants@22.31.0", "@commercetools-frontend/constants@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/constants/-/constants-22.31.0.tgz#c1eb7c4cd00f77948d83e01fdef926e5c360291d"
- integrity sha512-qqSo8XdwJlvMJ+Nf6NAjKqTY7MHI0ZfjjwLHHMuyN0kjBK/MGEbzksnSpTFbgR8lhqcn1AI4fq0CcLX97KRidw==
+"@commercetools-frontend/constants@22.35.1", "@commercetools-frontend/constants@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/constants/-/constants-22.35.1.tgz#2ee1a9920f361a15388c9eed521e4c5386358412"
+ integrity sha512-URRXa6cuTw/HYtRMz0ZF1LJ/W0kqQarM+j+t6tCIg+b4hOORo21HPpuV7YHbAfCwgxo60uDBmsPGUdo/PfUhgg==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
-"@commercetools-frontend/eslint-config-mc-app@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/eslint-config-mc-app/-/eslint-config-mc-app-22.31.0.tgz#ca69adf495bb4c7a9a8f1f446258d5df56a35e0c"
- integrity sha512-mqZjVNYC+e3J5vvC1ABc3hmC6VTks2atuXcqiUSewKlXRzNyX/gp7Z1GcmKm2Nc8A15/0aTqbwQsm2lDZj1lew==
+"@commercetools-frontend/eslint-config-mc-app@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/eslint-config-mc-app/-/eslint-config-mc-app-22.35.1.tgz#f6ebd7e3388c9912d3532c2f3abadbea8e6b2d55"
+ integrity sha512-BVgQe4+ikHkn+NYbcqSa9zB5/onjuM3cPp2aze8MhB0Kz/CEEb1nC5JdViMgjceggHxt2jeSu8OalrL2RvP7dw==
dependencies:
"@babel/core" "^7.22.17"
"@babel/eslint-parser" "^7.22.15"
- "@commercetools-frontend/babel-preset-mc-app" "^22.31.0"
+ "@commercetools-frontend/babel-preset-mc-app" "^22.35.1"
"@rushstack/eslint-patch" "^1.3.3"
"@typescript-eslint/eslint-plugin" "^5.62.0"
"@typescript-eslint/parser" "^5.62.0"
@@ -1478,15 +1422,15 @@
prettier "^2.8.4"
typescript "^5.2.2"
-"@commercetools-frontend/i18n@22.31.0", "@commercetools-frontend/i18n@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/i18n/-/i18n-22.31.0.tgz#465a92c3f869eada6e6e33ef539d5e10484d58ee"
- integrity sha512-p1x8Mgv/Sz5dcXqYF9jqhge7ILQeYGx15hjkzV79jmg0TP/GEQ/8Ajsz6qE0LehLttfsVFje7HXtDstwp9UuDg==
+"@commercetools-frontend/i18n@22.35.1", "@commercetools-frontend/i18n@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/i18n/-/i18n-22.35.1.tgz#cb279ab1946c962d0dc16fa1f986430c6bb93093"
+ integrity sha512-tODOlppSvCTJpdfMrDSBJqHDlW94/c28V7e5HrvH7uZtESEVOZdHQaOIG8Dtqo38jndNuQ4x619aERQlJkwXug==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
"@commercetools-community-kit/i18n" "^0.3.0"
- "@commercetools-frontend/sentry" "22.31.0"
+ "@commercetools-frontend/sentry" "22.35.1"
"@commercetools-uikit/i18n" "^19.9.0"
"@emotion/react" "^11.11.4"
"@formatjs/icu-messageformat-parser" "2.7.8"
@@ -1495,13 +1439,13 @@
moment "^2.29.4"
prop-types "15.8.1"
-"@commercetools-frontend/jest-preset-mc-app@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/jest-preset-mc-app/-/jest-preset-mc-app-22.31.0.tgz#cf5877dc69a18de9a91c6a2d4a5369ef6597d362"
- integrity sha512-R0t4THFrKWWTTUgJ+nU6AMMqFCYVfzDJ1To/goGxzABdcqBQAR6+4ROCQjRJ7oI8b5cxNu72gdQbS8mON1YMQA==
+"@commercetools-frontend/jest-preset-mc-app@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/jest-preset-mc-app/-/jest-preset-mc-app-22.35.1.tgz#abf770162c44553e89c3aaf4b07411e1314a94fc"
+ integrity sha512-CTmjIbYwYFNBOSRbH6c+VlBgcX+kxZ7oK0GGtZuFlE5qA0TLLXUXHBAzIcxEJoSssSNLi32J9o9t3owq8zgb9Q==
dependencies:
"@babel/core" "^7.22.17"
- "@commercetools-frontend/babel-preset-mc-app" "22.31.0"
+ "@commercetools-frontend/babel-preset-mc-app" "22.35.1"
"@formatjs/intl-getcanonicallocales" "^2.2.1"
"@formatjs/intl-listformat" "^7.4.1"
"@formatjs/intl-locale" "^3.3.3"
@@ -1526,14 +1470,14 @@
setimmediate "1.0.5"
unfetch "4.2.0"
-"@commercetools-frontend/l10n@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/l10n/-/l10n-22.31.0.tgz#6b9f68fe8518c9be54dd0e49ff1e128d5ab9a39d"
- integrity sha512-L/SkjUN9nnAwBQvp+PECWPMKVZFazRdac8xRUFiSafBpfemyrAKL8i/70MiFF4qVHqpDer383x15Bx62LJqk7Q==
+"@commercetools-frontend/l10n@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/l10n/-/l10n-22.35.1.tgz#6e528ba151a998dfdbe5d734604a24e84e351138"
+ integrity sha512-yTrbbtCpTJpFrDc4P8rWcKP+/VQyQCgmXHNjInmVKdFuzCRAPo8mDzcSJ9XK5Y3OgKZUR4dlD0X6EDClqzR9KQ==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/sentry" "22.31.0"
+ "@commercetools-frontend/sentry" "22.35.1"
"@emotion/react" "^11.11.4"
"@types/lodash" "^4.14.198"
"@types/prop-types" "^15.7.5"
@@ -1543,42 +1487,42 @@
moment-timezone "^0.5.40"
prop-types "15.8.1"
-"@commercetools-frontend/mc-dev-authentication@22.31.0", "@commercetools-frontend/mc-dev-authentication@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/mc-dev-authentication/-/mc-dev-authentication-22.31.0.tgz#1203b595f70cd41a43e7ad123dab46dc8d284663"
- integrity sha512-wzo21gg+zjARFEb8eYTU0W8auC6xQ6DawXohKjYAbjLmMvdTlk7y2eFyh5+hRoWjm0nplAxQR3iUYXOWctwViQ==
+"@commercetools-frontend/mc-dev-authentication@22.35.1", "@commercetools-frontend/mc-dev-authentication@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/mc-dev-authentication/-/mc-dev-authentication-22.35.1.tgz#61b5351addaf5ae6b8a0d1048a84c9d3da9fa9ea"
+ integrity sha512-pRZS4lb0rKsSFbGbP7GgIDmOsCScofeJWLdZ3839uCSQpw6OH1g0homYKPj75W7yHWNEkGHbUSdh8h0Fe8JYVQ==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
-"@commercetools-frontend/mc-html-template@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/mc-html-template/-/mc-html-template-22.31.0.tgz#b471c403f313100f8ea4af4b272a121b1775bf03"
- integrity sha512-gHKxA6DOnqRNAL2LPGXzkr11dpWjrspVGQc1qk7EsrMmb2pvFL/QMLRxTvrTvvSVrXFmiYkZ1608S0DrWiEZHw==
+"@commercetools-frontend/mc-html-template@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/mc-html-template/-/mc-html-template-22.35.1.tgz#9fb987bc5e501145cd2e25705d2c9a3f4376bec7"
+ integrity sha512-WTqCVuvZ4wGx8ULmdNGnnzQ0z+y6tYnj3RMMHW4g+EmYp9ZS/fJNJMPgdxPugt7pccu9Lz/xZvKB+/meoN8K1A==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/application-config" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
+ "@commercetools-frontend/application-config" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
serialize-javascript "6.0.2"
uglify-js "3.18.0"
uglifycss "0.0.29"
-"@commercetools-frontend/mc-scripts@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/mc-scripts/-/mc-scripts-22.31.0.tgz#b2e8eda56f61b44944420ff163d1078c902a3229"
- integrity sha512-/10d+TiNopT6lgOvqfOdFnQf4rCEbwzmmVEzKyxVcv3RS6dc943SvBOfgMCm3w30urrn5fygEPwBDiz1mjwyuw==
+"@commercetools-frontend/mc-scripts@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/mc-scripts/-/mc-scripts-22.35.1.tgz#a55477ce681fe49aed44c1c2042adc7abfd3a1ec"
+ integrity sha512-LG8QiZ3yYntjfstR48q+QGy2Zwp71tCcDjxpmlRjjGPAo4eoA1l8SSeLl0sSY1FYkuIhLJRHv2zvznh7QUOnWA==
dependencies:
"@babel/core" "^7.22.17"
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/application-components" "22.31.0"
- "@commercetools-frontend/application-config" "22.31.0"
- "@commercetools-frontend/assets" "22.31.0"
- "@commercetools-frontend/babel-preset-mc-app" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
- "@commercetools-frontend/mc-dev-authentication" "22.31.0"
- "@commercetools-frontend/mc-html-template" "22.31.0"
+ "@commercetools-frontend/application-components" "22.35.1"
+ "@commercetools-frontend/application-config" "22.35.1"
+ "@commercetools-frontend/assets" "22.35.1"
+ "@commercetools-frontend/babel-preset-mc-app" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
+ "@commercetools-frontend/mc-dev-authentication" "22.35.1"
+ "@commercetools-frontend/mc-html-template" "22.35.1"
"@commercetools/http-user-agent" "3.0.0"
"@formatjs/cli-lib" "^6.3.8"
"@pmmmwh/react-refresh-webpack-plugin" "0.5.15"
@@ -1624,6 +1568,7 @@
querystring-es3 "^0.2.1"
react-dev-utils "12.0.1"
react-refresh "0.14.2"
+ rollup-plugin-visualizer "^5.12.0"
serve-handler "6.1.5"
shelljs "0.8.5"
style-loader "3.3.4"
@@ -1632,28 +1577,29 @@
thread-loader "3.0.4"
url "^0.11.0"
vite "~4.5.3"
- webpack "5.92.0"
+ vite-bundle-analyzer "0.12.1"
+ webpack "5.94.0"
webpack-bundle-analyzer "4.10.2"
webpack-dev-server "4.15.2"
webpackbar "5.0.2"
-"@commercetools-frontend/notifications@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/notifications/-/notifications-22.31.0.tgz#6f1ab1d8031a05c6d4a68a5b7e634486d05c0212"
- integrity sha512-brxa85orJgVfSGSGlVkqG6J2tN6FC9r5EVEZC/zIc6f1URFlh/2QRs9e5MOk65VRnlSFx5/CB8EW/2B3DPYuTw==
+"@commercetools-frontend/notifications@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/notifications/-/notifications-22.35.1.tgz#2af3d42a3cfc19708144c4d0f23bcd061a1c6435"
+ integrity sha512-Mm0w8onl4fRjeI62wR1llyDUiczuvR1sEkPLnbfrUYyrCaoRSGGMyxNouY1nLptoz1du/2Kp9UNecM6M1fQqYA==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
-"@commercetools-frontend/permissions@22.31.0", "@commercetools-frontend/permissions@^22.20.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/permissions/-/permissions-22.31.0.tgz#f29a0839f453507c3392b7c9a0619b426843bd71"
- integrity sha512-oYAQ3esL8Eu53mpSLgcRGwwVR+vvrz5nq+meQSazbZCwNRAOpywl6qUbs/suGwgSce0kaE2X6A5NWbyFv2R98g==
+"@commercetools-frontend/permissions@22.35.1", "@commercetools-frontend/permissions@^22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/permissions/-/permissions-22.35.1.tgz#811ac4d5f9fec8771be39520b07fd846c0389063"
+ integrity sha512-SZEz1XeU1CMo0PWMoEVvZXDcoqImnwY+K/c08Gd59LPU4uJcYcd6olgz+cmIdAQ6SzhNIBIlMqbb4ULSZziOFQ==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/application-shell-connectors" "22.31.0"
- "@commercetools-frontend/sentry" "22.31.0"
+ "@commercetools-frontend/application-shell-connectors" "22.35.1"
+ "@commercetools-frontend/sentry" "22.35.1"
"@emotion/react" "^11.11.4"
"@types/lodash" "^4.14.198"
"@types/prop-types" "^15.7.5"
@@ -1663,18 +1609,18 @@
tiny-invariant "1.3.3"
tiny-warning "1.0.3"
-"@commercetools-frontend/react-notifications@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/react-notifications/-/react-notifications-22.31.0.tgz#f7874fae439f7e42f4bef31380a19f02a1b82f65"
- integrity sha512-BcdUjZQLjdf1OVl8esJ26pMRTRdvjbpxSRF6ZOAQOt3QC4jZUdtcLrUuMvJyPwhbvD5HNgFhclUau3h/g9rQuA==
+"@commercetools-frontend/react-notifications@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/react-notifications/-/react-notifications-22.35.1.tgz#5377366aeb29cc820423bc58ec01f297c3b67489"
+ integrity sha512-YITgNOiGdi01XveyAGxj/qB/kuQV+5eAjdo681onJaP/pKhdayxCnM0PJ5t9TUzJmutkd87pR/vvMo8xzJbt5Q==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/actions-global" "22.31.0"
- "@commercetools-frontend/application-components" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
- "@commercetools-frontend/notifications" "22.31.0"
- "@commercetools-frontend/sentry" "22.31.0"
+ "@commercetools-frontend/actions-global" "22.35.1"
+ "@commercetools-frontend/application-components" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
+ "@commercetools-frontend/notifications" "22.35.1"
+ "@commercetools-frontend/sentry" "22.35.1"
"@commercetools-uikit/design-system" "^19.9.0"
"@commercetools-uikit/hooks" "^19.9.0"
"@commercetools-uikit/icon-button" "^19.9.0"
@@ -1698,14 +1644,14 @@
prop-types "15.8.1"
reselect "4.1.8"
-"@commercetools-frontend/sdk@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/sdk/-/sdk-22.31.0.tgz#1bdbf72494ac322cd36531af771872e71db61bad"
- integrity sha512-jKKYZGTL2CBVbYDkD7b+frc9ZlWYmIb/v32UpSTbxSAXsZeSKpTH5iZHUuYjimUFRnSE1KAj4QF+pZ8IjXLjMw==
+"@commercetools-frontend/sdk@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/sdk/-/sdk-22.35.1.tgz#07b9376132d3162eb24c13598770dd208fe8ebc6"
+ integrity sha512-I5lR78i8SJtmB8SlukMbqulE+/c0/c+9L2gX1045e/bhqDPde+Ty7LDy7DpSZpMPH6xckUGPrk/2rrjZJcPAuw==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/constants" "22.31.0"
+ "@commercetools-frontend/constants" "22.35.1"
"@commercetools/api-request-builder" "6.0.0"
"@commercetools/http-user-agent" "3.0.0"
"@commercetools/sdk-client" "3.0.0"
@@ -1723,26 +1669,26 @@
unfetch "4.2.0"
uuid "9.0.1"
-"@commercetools-frontend/sentry@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/sentry/-/sentry-22.31.0.tgz#a63c847de26ce24fb2c7af30e414207b47cde528"
- integrity sha512-+oySanJ+uSb80U4Z4fiFY8LBqCjv+AJzHKBi8bv1aDcOP74lso/A1wHQ7iHyaUNkBnZe714pzHh9J1vgHFmhvQ==
+"@commercetools-frontend/sentry@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/sentry/-/sentry-22.35.1.tgz#8cd3b4cd10a03874a259bc78d0811ad1341c6ca8"
+ integrity sha512-7KtCm20oyEZ/PJhSWfJgWx+i8ONpa1dv7JphQlPub0Icw1LCVb2eMR9NVFZxzRkjcGOI6L+QWeABv1y/mYCxzA==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
- "@commercetools-frontend/browser-history" "22.31.0"
- "@commercetools-frontend/constants" "22.31.0"
- "@sentry/browser" "7.117.0"
+ "@commercetools-frontend/browser-history" "22.35.1"
+ "@commercetools-frontend/constants" "22.35.1"
+ "@sentry/browser" "7.119.1"
"@sentry/react" "7.117.0"
"@sentry/types" "7.117.0"
"@types/prop-types" "^15.7.5"
"@types/react" "^17.0.80"
prop-types "15.8.1"
-"@commercetools-frontend/url-utils@22.31.0":
- version "22.31.0"
- resolved "https://registry.yarnpkg.com/@commercetools-frontend/url-utils/-/url-utils-22.31.0.tgz#9d72a6920689195b8a6370ba168992666a6b6ff6"
- integrity sha512-TMFXchgS+Bpnsa25RR+XiH/mIfeOodiReUhFKnFy0S2vnCCBLyMhEiyi9EPSFJo7c71sWJCbM60sBI9Njn3vfg==
+"@commercetools-frontend/url-utils@22.35.1":
+ version "22.35.1"
+ resolved "https://registry.yarnpkg.com/@commercetools-frontend/url-utils/-/url-utils-22.35.1.tgz#b9c605b809fc3450ed1aab73a0a37a2c602113c0"
+ integrity sha512-WfW4d6kw0ZohLrb22D3TTSmm7aT8OgzyXD3tukV/bSR4C108D8k0sJCIHeLEiiQdfhXY6iYsKqDb20bIYKcn2g==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime-corejs3" "^7.22.15"
@@ -1794,15 +1740,15 @@
"@babel/runtime-corejs3" "^7.17.9"
"@faker-js/faker" "^8.0.0"
-"@commercetools-uikit/accessible-button@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/accessible-button/-/accessible-button-18.5.0.tgz#9e587dd4a60c5ddb06b749b13e1b558c4359e2f0"
- integrity sha512-0GnjrSi6Rb3K8HJs0efczPivWEXERaHo7aRAxPOf7a6OSjtiwLVaKb+9RwtaKJTrkmxK27Yu42OBDlCUH+JAbA==
+"@commercetools-uikit/accessible-button@19.16.0", "@commercetools-uikit/accessible-button@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/accessible-button/-/accessible-button-19.16.0.tgz#ecd93c6224df1f6fa431b03e50f10808e53a7daa"
+ integrity sha512-rVxsTyINsfqOijvQHsOaGEsTRJBzXlKlfaXeiJyvaQX5l8lDmt6UUrtyifqtk6Dvq3Z1Hh3vXbXMS/0ytMR7IA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
"@types/react-is" "^17.0.3"
@@ -1810,211 +1756,242 @@
prop-types "15.8.1"
react-is "17.0.2"
-"@commercetools-uikit/accessible-button@19.10.0", "@commercetools-uikit/accessible-button@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/accessible-button/-/accessible-button-19.10.0.tgz#d14aa279fbce7df53e5d00bdfccb7b30d43e8353"
- integrity sha512-kvoFBUkqn+lizYhvl6IkLr2a+yAafLzApdh3FXpCPA/hlV5iTmTC63Jwr2InXxYGRTGMTIUN8KU9Be2B/eSWHQ==
+"@commercetools-uikit/accessible-hidden@19.16.0", "@commercetools-uikit/accessible-hidden@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/accessible-hidden/-/accessible-hidden-19.16.0.tgz#801ae4aa2008ae95eaca40cfc41c84e47cdc20fb"
+ integrity sha512-ogSnKT+YS794MA7IWA5I+5tByT6GSFrZ37/Sv6Lk+1Cwc2hhz+5PLO+6Jp/43JW1nPx+pwIoBtiWhX7/QP1IKQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
"@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- "@types/react-is" "^17.0.3"
- lodash "4.17.21"
prop-types "15.8.1"
- react-is "17.0.2"
-"@commercetools-uikit/accessible-hidden@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/accessible-hidden/-/accessible-hidden-19.10.0.tgz#8b2f0bbd063406f94fe0238fca25c50508bb33a8"
- integrity sha512-chVA3PizltnrgJ+zeosFnU0wbJjJYYHXizfjX7usYm6FVuElJtDR53fIZ4oOjzqE3ibHTIWvnPLC1bWsGz5BSw==
+"@commercetools-uikit/async-select-input@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/async-select-input/-/async-select-input-19.16.0.tgz#1b3770d03ac5390aa5798718faebec759ecaae2b"
+ integrity sha512-HydckVHcI8Ag6mo98SNiU11aRJB7JwjokeIXt3Cp8qsNMPUp5RepNpzt/nVYRRj/5bU7G3ShaViBw4H9nKjNiA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/loading-spinner" "19.16.0"
+ "@commercetools-uikit/select-utils" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
+ "@emotion/styled" "^11.10.5"
+ lodash "4.17.21"
prop-types "15.8.1"
+ react-select "5.8.1"
"@commercetools-uikit/avatar@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/avatar/-/avatar-19.10.0.tgz#7cfe9e692dd3c66aa2a7a8bf1798d5b2cb0c3f24"
- integrity sha512-O8eGOJsvq/ICsWFjBcZsrTypJ5vTf3Cj3GNXju4nTq6w69xUS3aRhFG32m/yKV5yPMXYfd8sVRzNQhirUkzGkQ==
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/avatar/-/avatar-19.16.0.tgz#c99cb2abac799c57d5773c46ff17862b2c379aed"
+ integrity sha512-I13ORtboYyb+vSybDryev9bJlAO4KL/15pJWPiWuF7F3rhDCoXP2fQT5YcXwwem6lXhh48uVQHUItfpEqlQAnA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
-"@commercetools-uikit/calendar-time-utils@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/calendar-time-utils/-/calendar-time-utils-18.5.0.tgz#10ac004e54521d6b980ab7d65688a1b932b52d2e"
- integrity sha512-Zqcb+OHbnUIqi4WYAj6Fp/eWRfgV2sCOwayMqeMnty8vblh7YnC1vRVWXKfjoTRZqT+xhpVv9tj54iVisNtVxw==
+"@commercetools-uikit/calendar-time-utils@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/calendar-time-utils/-/calendar-time-utils-19.16.0.tgz#5ead7bd92874a0daa9ba0e8573b7a4de4dd9aff5"
+ integrity sha512-+phwo3JkI8p5DSBFQG4Qt3RZbEtso9bDs7eVjnIbygozmcve/tzrRn+J4nylltljaX0M8IivzzfqN+PT5aQyvw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/utils" "19.16.0"
-"@commercetools-uikit/calendar-utils@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/calendar-utils/-/calendar-utils-18.5.0.tgz#9da73ddb6857689d23b95af63108333f2126bca6"
- integrity sha512-Hoq8ylo38Jch4BPexNKhnEiG/0baca7Z8tZxcPTOMy8w27JspfsxYEbbb+PZr+scxjx4aPNIQEUNIDYysTP92w==
+"@commercetools-uikit/calendar-utils@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/calendar-utils/-/calendar-utils-19.16.0.tgz#e954aa97d839dfc0fd75cc262c9fde3f7c15492f"
+ integrity sha512-KzvvKmq5UDvQ0ytXgSBsroM6yUbn8U5GScSM+Xg3eptiMgkmJqmdwr6u9jEllYbi88icuF2Sr9v6ZJybByy+Mg==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/input-utils" "18.5.0"
- "@commercetools-uikit/secondary-icon-button" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/tooltip" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/secondary-icon-button" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/tooltip" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
- react-select "5.8.0"
+ react-select "5.8.1"
-"@commercetools-uikit/card@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/card/-/card-19.10.0.tgz#b211da351a57be191a241d854fd93e0291930421"
- integrity sha512-1XPMXFoDhb8sLFTS1bbi9f3cKlpMR20e3AiQ+n9NFlbdei1uEHGrT0gu3aCd1PEKZRNk74WZzybMxfd4roA4vg==
+"@commercetools-uikit/card@19.16.0", "@commercetools-uikit/card@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/card/-/card-19.16.0.tgz#daf0a5006de92ccc60aba3d1988471325bbd920c"
+ integrity sha512-NX27x1IcCPwozDCjVmEQYg/SnORfX5suEIS7V7kfwzv+/xUKqDCqEdUZRtmG6YxPR7SwMqiGm6tb/2pfWuXloA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings-inset" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings-inset" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
"@types/react-router-dom" "^5.3.3"
prop-types "15.8.1"
-"@commercetools-uikit/checkbox-input@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/checkbox-input/-/checkbox-input-18.5.0.tgz#854e01442f5b47cdaf6f939fa137f14a268014f7"
- integrity sha512-uRAVzrOBPQULujBMuNWNh0rOyyCiUGfi2cuc/4YlwVNYo0M5gRH23/fMlPg+TmuMrE4OdzBBf/zGjD1s5soJqg==
+"@commercetools-uikit/checkbox-input@19.16.0", "@commercetools-uikit/checkbox-input@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/checkbox-input/-/checkbox-input-19.16.0.tgz#22da19983399023622463dedb6ed463a78257423"
+ integrity sha512-MfswCBTbOgRlWXgS18nV4p+gqOJZPmH+0/NnusPjY1MmmASkKlfNGe26sc+XgPf5cyO1LEwweJkKmmZIR5ovow==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/input-utils" "18.5.0"
- "@commercetools-uikit/select-utils" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/select-utils" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/collapsible-motion@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/collapsible-motion/-/collapsible-motion-18.5.0.tgz#751764c5df71388417fa34aabcf4eda362b78f5e"
- integrity sha512-ocRU30Z6bSpLEU0F+uNMFlfWle+7Dv8V9PvfTECAaryUoNYGbsTaXK6Jyb6F8ef/1k4nd1fRl9r6ZLMek5K3wQ==
+"@commercetools-uikit/collapsible-motion@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/collapsible-motion/-/collapsible-motion-19.16.0.tgz#4d952e3580131539f7a0109ceb393ccb9a7d0446"
+ integrity sha512-HYkfcwyUZ5tcm6M4OXFuTTDKmnjfkRfjP5OkwMBfofXfQqmAn9RfxifLGdP0nEvMswS6SUnQIZxlNnFu+CNIzQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
-"@commercetools-uikit/collapsible-panel@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/collapsible-panel/-/collapsible-panel-18.5.0.tgz#8087372040bbecae4899b2496c259d8bbca20df9"
- integrity sha512-zr+y//n6W522S56j27gK7n2VS2sVZBwUTL8cMXMGRqnZYNN98eZodYU5sfbtqUaAZ1xIzGgO7OH2tMVKWCFsMA==
+"@commercetools-uikit/collapsible-panel@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/collapsible-panel/-/collapsible-panel-19.16.0.tgz#7c7fbc731ea1d5e3e0d076cd14842013fd830ec6"
+ integrity sha512-Ibiu/07saap2cmi2iAy2RQclLLOIgArkBKob0Kah5Sk7zifCaN0lJ4imrTXu32PuGThQ3QUX7kWoQIUJrD7G6A==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/collapsible-motion" "18.5.0"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/spacings" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/collapsible-motion" "19.16.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/constraints@18.5.0", "@commercetools-uikit/constraints@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/constraints/-/constraints-18.5.0.tgz#868a009b18db0e1e3fe44ec2d68a48b3441d6022"
- integrity sha512-okhWVIpceE1YKUoXwozd+zcoD+yr+IO5oAxaNKi5j/ssVr3OBdq+cFiSsXb9WMvZD0Ix0zY8bzTZQOLx7el7bw==
+"@commercetools-uikit/constraints@19.16.0", "@commercetools-uikit/constraints@^19.16.0", "@commercetools-uikit/constraints@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/constraints/-/constraints-19.16.0.tgz#9191a0873bde2f405bd0821357a884f29bb50615"
+ integrity sha512-R/8ae5E1xBjiL6b2vkYB2Lu9D+ufkEt8uqmNa6jt90fGmiZEoC/H0fRbixz1ZewwBMhKtnExlLdDrhRe77Ymtg==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/constraints@19.10.0", "@commercetools-uikit/constraints@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/constraints/-/constraints-19.10.0.tgz#a41bfbe103b01c00075a6d13942551e338a6a7de"
- integrity sha512-YS+q0xh1aN4j//aelWds+HyzgLHDgSIBSg84Zp0ifhMFvcHcVgGzOpCas+1kA4RuT1rAYYBUNh7jxqhU7ll0JQ==
+"@commercetools-uikit/data-table-manager@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/data-table-manager/-/data-table-manager-19.16.0.tgz#4812b0e961521f3b5ef15784f8a63ec099663c96"
+ integrity sha512-zFw2DFu9krwhNigJ1s9EqwZkgqlPLU2UN7rf9kj9EFk608cNviwKhRJfCq1kV2756zykRFI+huR7DC+oK9wI0A==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/accessible-hidden" "19.16.0"
+ "@commercetools-uikit/async-select-input" "19.16.0"
+ "@commercetools-uikit/card" "19.16.0"
+ "@commercetools-uikit/collapsible-motion" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/dropdown-menu" "19.16.0"
+ "@commercetools-uikit/field-label" "19.16.0"
+ "@commercetools-uikit/grid" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icon-button" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/primary-button" "19.16.0"
+ "@commercetools-uikit/radio-input" "19.16.0"
+ "@commercetools-uikit/secondary-button" "19.16.0"
+ "@commercetools-uikit/secondary-icon-button" "19.16.0"
+ "@commercetools-uikit/select-input" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/tag" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/tooltip" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
+ "@types/debounce-promise" "^3.1.6"
+ "@types/react-beautiful-dnd" "^13.1.3"
+ debounce-promise "^3.1.2"
+ lodash "4.17.21"
prop-types "15.8.1"
+ react-beautiful-dnd "13.1.1"
-"@commercetools-uikit/data-table@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/data-table/-/data-table-18.5.0.tgz#48e47c6e7ac41bbe64a5f58454f705c2224773c6"
- integrity sha512-jstEsfFOZDYAfvLQUTZ2oky1XjKLg+J7rlPG8XaMbt3CG3ifXMhelz4XfP/8R1175NVHY5hDwmjjFvt/Q1+TnQ==
+"@commercetools-uikit/data-table@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/data-table/-/data-table-19.16.0.tgz#e84c416d084c2d42ba9104a6dd9eaefea9b8d025"
+ integrity sha512-wdpDvUNqGvF2KP+p0FlISeKQa7kHzc4wMUelc6l4ZDk1vozPqdAJztjbEAw+AHbjGW9mqnCv8KH936M0kfLg2g==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/secondary-icon-button" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/data-table-manager" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/secondary-icon-button" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/date-input@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/date-input/-/date-input-18.5.0.tgz#427b91902e86237affc2c046a55b185ca131dc12"
- integrity sha512-XeobwLA10kGnF2ZIU8xuOvYTlmYFuV8qVGqxqYEatg+3K65KNvbwL85RKF0vxOR4TuREVclhQAzrrd9d72ytsQ==
+"@commercetools-uikit/date-input@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/date-input/-/date-input-19.16.0.tgz#1c544dada42f5ee37748872688d6b1e5c391ad35"
+ integrity sha512-dacMZX4mDoJOPTBZDJ7Ga3D2Y+2jPkZn6ygq7Lw4wVSmY6YCdNrwowV2jsesvSGESu4iKl0JLvl5BEmkQUTG4A==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/calendar-time-utils" "18.5.0"
- "@commercetools-uikit/calendar-utils" "18.5.0"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/secondary-icon-button" "18.5.0"
- "@commercetools-uikit/select-utils" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/tooltip" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/calendar-time-utils" "19.16.0"
+ "@commercetools-uikit/calendar-utils" "19.16.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/secondary-icon-button" "19.16.0"
+ "@commercetools-uikit/select-utils" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/tooltip" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
downshift "6.1.12"
@@ -2022,26 +1999,26 @@
react-is "17.0.2"
warning "4.0.3"
-"@commercetools-uikit/date-time-input@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/date-time-input/-/date-time-input-18.5.0.tgz#3b1c4e97beefb7261cd1c703db91a88cc74f5cbf"
- integrity sha512-GGMWbT49YoeJo+GHvkHZsLUH26n+WuXKpeSNU1HBPZz9eTNjjzQKZ5/lwc5omNyKo6DQYrIuqQ0BrV54IkuE9A==
+"@commercetools-uikit/date-time-input@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/date-time-input/-/date-time-input-19.16.0.tgz#fb5c74d96069dc0c7f9cd50d5fd443b196504a4c"
+ integrity sha512-j88Bu5Q0gP12tGPm2EziA147JI51E4PnSDkHN6GjxHbw1qXgp310xnQqLPeCCyvvB9qvndOncGtESXUI9iqEEA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/calendar-time-utils" "18.5.0"
- "@commercetools-uikit/calendar-utils" "18.5.0"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/secondary-icon-button" "18.5.0"
- "@commercetools-uikit/select-utils" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/tooltip" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/calendar-time-utils" "19.16.0"
+ "@commercetools-uikit/calendar-utils" "19.16.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/secondary-icon-button" "19.16.0"
+ "@commercetools-uikit/select-utils" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/tooltip" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
downshift "6.1.12"
@@ -2049,117 +2026,107 @@
react-is "17.0.2"
warning "4.0.3"
-"@commercetools-uikit/design-system@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/design-system/-/design-system-18.5.0.tgz#87e6b903eda359f65afe5e5da64dd5c109cefdd0"
- integrity sha512-tocLjSfzHfHFGQRctH4tSOEyigAHy6rM9DADFRXTCOXrruSA63EuelAWIDttikJkZy1Pk1duBaWyzC0qNiHVQw==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/hooks" "18.5.0"
- "@emotion/react" "^11.10.5"
- lodash "4.17.21"
- prop-types "15.8.1"
- react "17.0.2"
-
-"@commercetools-uikit/design-system@19.10.0", "@commercetools-uikit/design-system@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/design-system/-/design-system-19.10.0.tgz#69cb8708121d5a5772a7b3b9e8c435e37dcd05f1"
- integrity sha512-BI3ul4tlPhYbhP9JDMc9EhMwlbGX+h1YplFRl5LU9FWDxbl+hLPLrRPonwUnldsoTfZEJcsXHT91aI4CZIBAhg==
+"@commercetools-uikit/design-system@19.16.0", "@commercetools-uikit/design-system@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/design-system/-/design-system-19.16.0.tgz#b0ce825ed7ffaba6449cc950d6cf3eb3355b7456"
+ integrity sha512-wkkHgGI6KaY5nZQ2D7z/2VOc9RgT0GUc4BsS+RnciZSIgB9VqVXaxaBnE1QqX+Xu/N8crSGn9eRgWORLWpt9uA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/hooks" "19.10.0"
+ "@commercetools-uikit/hooks" "19.16.0"
"@emotion/react" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
react "17.0.2"
-"@commercetools-uikit/field-errors@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/field-errors/-/field-errors-18.5.0.tgz#91e7e30d64756efea3d2c12fd4fa3e93b6572ca2"
- integrity sha512-LqKFdLzpY7I1ZKFcMQvtUBTMzPuyuwiGodb6ZzUtw4zNcIRit8fNb37Vrjx4E3G4DxDBdf5NbRvFs9Jqz8ZgQA==
+"@commercetools-uikit/dropdown-menu@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/dropdown-menu/-/dropdown-menu-19.16.0.tgz#554c0c87e253eb5dc864f6f478a5069efa9fbba7"
+ integrity sha512-2C0cuHDkWbsyMS+pBg418uWrwrYUckrTec8i0ppRXprF6st2DOZ6vmTK3I9Vtf6hCrTa1AWcO2ZvrFprwLld1w==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/messages" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/secondary-button" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/spacings-stack" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
+ react-intl "^6.3.2"
-"@commercetools-uikit/field-label@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/field-label/-/field-label-18.5.0.tgz#29a42a528abaec1e7b0a83623ba3a71cbfd71cb6"
- integrity sha512-CKgxEmCjYJOW9qxXtFgA8VQGAXUjFi5szImL5E6acpOaaMyX71DXq0Oz3gBhTMFbMaqCdEDzzisu16cwcFX4Tg==
+"@commercetools-uikit/field-errors@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/field-errors/-/field-errors-19.16.0.tgz#2b6ecba3ff5edcaab94a46f956d305a0dd9df009"
+ integrity sha512-Hm85SW7qcdz2C9PX25WgpwnPx4fVugVwQjC0QGS1ZJVGlULfi0emAm0PnISK7JCuTQmTzZfD18IdWeNxO+W4KA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/icon-button" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/label" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/spacings-stack" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/messages" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
- react-intl "^6.3.2"
-"@commercetools-uikit/field-warnings@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/field-warnings/-/field-warnings-18.5.0.tgz#26595feac859119cdf4f6d4b878e6ed437acf187"
- integrity sha512-auBAIZlaR/yKUxyucaWOVKirm/J3JDh1DepwXgN+O87Ya9MTWrQbl8Y3jb5+A0RQb+r1RRUNO39eBJUE4BFOMA==
+"@commercetools-uikit/field-label@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/field-label/-/field-label-19.16.0.tgz#d7084e3bca033e486e7ea4a7d02b10cc71da3874"
+ integrity sha512-jCjBV4vjXMuPPcFIpjAWdgbl75a1B3hafD0pZU4xs9NGeQSYf8YqCsqA7FmCdQ9KO5Hpr4NLd8d6QOHrALXn1A==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/messages" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icon-button" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/label" "19.16.0"
+ "@commercetools-uikit/secondary-icon-button" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/spacings-stack" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
+ react-intl "^6.3.2"
-"@commercetools-uikit/flat-button@18.5.0", "@commercetools-uikit/flat-button@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/flat-button/-/flat-button-18.5.0.tgz#3e2a9d82bdc86641444d8ce781e2b47b3ec09738"
- integrity sha512-zhDr+T7hXfjn61THSflDR/sR80LiGB0O1D842d4bVv1gd5AfdStVZ2Pz/MjxPfbOE8fdHFScNKFByuMgzl2pDw==
+"@commercetools-uikit/field-warnings@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/field-warnings/-/field-warnings-19.16.0.tgz#7e86ca68ada6a4c3ffa0f6c9539410b3193138f3"
+ integrity sha512-2Q++tBFouUeZm9ulWUrwsGrOpqkOKfodq2LHjgqSj3HCTL2zMK9ZA+tNCTI0iNn99fMvS8jrVq/fpCAj2EvdZA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/messages" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
- lodash "4.17.21"
prop-types "15.8.1"
- react-intl "^6.3.2"
-"@commercetools-uikit/flat-button@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/flat-button/-/flat-button-19.10.0.tgz#78c51c25d56aee2011f953d8145e9ec6a10589c8"
- integrity sha512-b+mMQwn/CaH7Qg/LMMjYEgzBTLkm2eJO2PPSwEUlWcauleXSPnwWCN1BUjoTB2zsdJpT/iWpouEMx8ciyutkbQ==
+"@commercetools-uikit/flat-button@19.16.0", "@commercetools-uikit/flat-button@^19.16.0", "@commercetools-uikit/flat-button@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/flat-button/-/flat-button-19.16.0.tgz#3c5b7726f485037c71aed7be8d1a17e36aec4f32"
+ integrity sha512-Glkz0nm2YteZ8QftH2fQFTsJ38C0PB3CBxn039UzJfgQpWSZSEHiEBFVBRt4A0Jc54yP7y5tn1YABgZXJHH7OQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings-inline" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/grid@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/grid/-/grid-18.5.0.tgz#5533effdb900b07c978bddd218e76ec3a4759669"
- integrity sha512-gQB03NxaUP2MFQnD5p6EiqomfHCut17mRZStKEKsSZinD/wXAx9yROm3lSzfnqqW+qMsj5ieT1pM1Qw6EUlpFg==
+"@commercetools-uikit/grid@19.16.0", "@commercetools-uikit/grid@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/grid/-/grid-19.16.0.tgz#16a8f3327c8979e26aa0f4e41b48d5196a936cf7"
+ integrity sha512-bD3bcbxsoQbcL2N7U7zKV4qB1qkLfjyzCs6vLRGbI9ulSgVvzI6p9nICNRoL9Vm1fw2TjddGJeK6S4hmIuV1BA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
@@ -2167,177 +2134,117 @@
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/hooks@18.5.0", "@commercetools-uikit/hooks@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/hooks/-/hooks-18.5.0.tgz#d5944ba4c87252fc5419c913ae8ddf165cf9d9d9"
- integrity sha512-rsCkuy1s1iZIpTiKnzl63xcThSr+gS6jTL7Vw1Pz4wUZbTY9n6WNEOBZfYJXAEQJxAhSMxshWCTivZbx1xC88w==
+"@commercetools-uikit/hooks@19.16.0", "@commercetools-uikit/hooks@^19.16.0", "@commercetools-uikit/hooks@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/hooks/-/hooks-19.16.0.tgz#fc2ade04dba28689050fded6abc74d684d94de68"
+ integrity sha512-3cqSM6v2u5tRzTom9voZnkw8PKum/ao6WD5iU9JesgUwhIXYLVmt9snr3hfOMqGsNosACNAgUEPRac7rRSgS3A==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/utils" "18.5.0"
- "@types/raf-schd" "^4.0.1"
- lodash "4.17.21"
- raf-schd "^4.0.3"
-
-"@commercetools-uikit/hooks@19.10.0", "@commercetools-uikit/hooks@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/hooks/-/hooks-19.10.0.tgz#3572ecee82ceb1d4b970af21c5862330b980b13d"
- integrity sha512-U1qEnYt0uB9vmTEiDba6nJrIbPaUDeA2o7zgoEl62l/TIiu5vrv4DGPpIHh1pjrH8X8BLo7PXmChAh+XLm0yJA==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@types/raf-schd" "^4.0.1"
lodash "4.17.21"
raf-schd "^4.0.3"
"@commercetools-uikit/i18n@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/i18n/-/i18n-19.10.0.tgz#222e5a455b688ae4d0ccb966a7bae9d929306644"
- integrity sha512-k09Edrk3t4qBTQg4K+azWEQcskojDMWbxkKqYwlmQ93BvaiAA6bJPX0nbC3z7FeblZS1trqZI/geliAVfcBZNg==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
-
-"@commercetools-uikit/icon-button@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/icon-button/-/icon-button-18.5.0.tgz#5e75f1bd09058ef3fa5920adee9a78c937b353c3"
- integrity sha512-sCsDuGXtcmkK1/y3vCDt2e+h7mdZQXg3wApgzS35Q7avOiCokmDAEegZRnBeAV20zngZpUgHaOOeT/DgLTlaPA==
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/i18n/-/i18n-19.16.0.tgz#71982af98b2ad1b89920cc429623b195d14feb0a"
+ integrity sha512-o8gKkPLiGnNHhcRRZBXeIsImIP6o95SRZ+eKNEDmWtcCW1nCBspJeXfg4K3KcddInMxh5y1q1cGJ556A87CN9w==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/spacings" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- lodash "4.17.21"
- prop-types "15.8.1"
- react-intl "^6.3.2"
-"@commercetools-uikit/icon-button@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/icon-button/-/icon-button-19.10.0.tgz#0b302a3272b164025b97dfef370aa6196d75dcfd"
- integrity sha512-PyXnQkrWCyIepu0KvxXFclbUdbxDJMYtU+2BxbEjJkGWKshyCcfB7eV0kNhAyKNiBtc8Db163gaDn9G5JIbzsw==
+"@commercetools-uikit/icon-button@19.16.0", "@commercetools-uikit/icon-button@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/icon-button/-/icon-button-19.16.0.tgz#e738715429f39a06563fa5b4bd13326814592520"
+ integrity sha512-6QZHOmchvjyZRApyZiN0qLqC2Qb4RrYHDG3522/INYcsAXgUS9scgbzw6yvwYfIpYMI3p+sUm68GKpkNmAvLpQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/icons@18.5.0", "@commercetools-uikit/icons@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/icons/-/icons-18.5.0.tgz#ab47525a2da15a85a0d11e74efaed7e18c11fef7"
- integrity sha512-VI40UVABLrJO1MwJdiMcvBkaZVl7xYK0JNlNXoxa143w1ZsPxcT/Vy5bcRn/uHDVL6EQRG4S4tl/8fEMkpMteQ==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- "@types/dompurify" "^2.4.0"
- dompurify "2.4.7"
- prop-types "15.8.1"
- react-from-dom "0.6.2"
-
-"@commercetools-uikit/icons@19.10.0", "@commercetools-uikit/icons@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/icons/-/icons-19.10.0.tgz#ed489e924c077a363664b3d95f737066b2f85090"
- integrity sha512-le959+zYiZNLNPOUQSv3frPm9z5E95roJkovfqzGIoNPi6X/4W8OH+PgK1Q5cpC7wzDNwmfLRJkSDWOAHJGzcQ==
+"@commercetools-uikit/icons@19.16.0", "@commercetools-uikit/icons@^19.16.0", "@commercetools-uikit/icons@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/icons/-/icons-19.16.0.tgz#834424ee70abff13b27e9f9d9a261dc896492871"
+ integrity sha512-ASEMBWm4mbsZPz63XaawIrASbmLif8N6YTlSk1KWL9y1UI/8HrtJNtgZOX67PHM897luoc5cC8XdP7KkG7pPfA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
"@types/dompurify" "^2.4.0"
- dompurify "2.5.5"
+ dompurify "2.5.7"
prop-types "15.8.1"
react-from-dom "0.6.2"
-"@commercetools-uikit/input-utils@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/input-utils/-/input-utils-18.5.0.tgz#615c9dc022326f5c47b61e0eaf17690ef1abaa61"
- integrity sha512-yL6+E32vVA+DqZyODrdhJAtS3sa9xnS2j9NvLjgxogMI+ZDszjwM3QJIX6uNSlPrSXpI9QI+xjVhlABuNmSYwA==
+"@commercetools-uikit/input-utils@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/input-utils/-/input-utils-19.16.0.tgz#2d1bd091f92459dd96d92c5acdc5c217acc3e2dc"
+ integrity sha512-KH5u5jKeIq7p3Par6D0FWMu/ucyK9KtaIKXxGzdTi+4JAPAeMTL4g/qGoYtooIt3MfbcsZi5GCFjszZHZFMGKA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/flat-button" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/flat-button" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
react-textarea-autosize "8.4.0"
-"@commercetools-uikit/label@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/label/-/label-18.5.0.tgz#4cf6be2b0e6f724ef0a1e8b1650d9b5b888e9035"
- integrity sha512-McEPWyCdfO3OZO9QkxdAU6yKoaQ/lMk07JeOvAk+83iBf9Xu5+FPE8UmCwfgKB4UAvuniiQ37hdw3VbWVKnoIw==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- prop-types "15.8.1"
-
-"@commercetools-uikit/label@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/label/-/label-19.10.0.tgz#f8e8ff9dd79c5d2648430566969a66b7a640a9ad"
- integrity sha512-NPefW5iQuT/oBizvdJR+V2vs8o94nnGpxr9xZFBhQCfdJh+7/p/KDAZNUr1e8hAwYwZ2y5CcT4t+coQfa6/wsQ==
+"@commercetools-uikit/label@19.16.0", "@commercetools-uikit/label@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/label/-/label-19.16.0.tgz#4a9fcfa233a88190ec502c8171f9a87447a57f94"
+ integrity sha512-1M21mSQ7Qw79PiGDpg4WJJgDg/JvltSEm3bCjmJcMh745r+qjCgEW40l0UEcjgnuekADeN/RWbiI23WoBB6zlg==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/link-button@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/link-button/-/link-button-18.5.0.tgz#d814cea8999139cc2b7a62387c5b0ffcab2f2cb1"
- integrity sha512-oU8yyIzOBraH2viLbla835DwlBoXcVilDmD9lvGwlRf1+5UaYRtNpMJ/n74lF/J94KucNV4PJLUd9AlK3eA/7A==
+"@commercetools-uikit/link-button@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/link-button/-/link-button-19.16.0.tgz#f696a9edcb812a617b4adacc6a8ee45a95d13c09"
+ integrity sha512-yLMuvMtgsgFax8SFmiBR4FuIsM3UK99a492+fO0BcrA6g8ncj6/PcqGBi9Ydh9S0CzVeVwA/cihQUtGBXbVcyg==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
-"@commercetools-uikit/link@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/link/-/link-18.5.0.tgz#27aff47d067ffa6cf425ae1122823422706b52d6"
- integrity sha512-/wAP+xiKwoOydopDYQzNMvck1pOZLduLcy8G86kVkVCRq5aQ7Rus4zypFM4jouEfOiveGO3b9/0cJOYl+Wj0Dg==
+"@commercetools-uikit/link@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/link/-/link-19.16.0.tgz#108729879b7fdd594c8021fafaa98fa2866118d4"
+ integrity sha512-kxS7CWkHkoiH8f2H41Ud3RyGO1iIYeeuKXDBWuU/rbRXYLvSYOQex568g99WXH3sADKcYsZhxSum+nCAuxkkBg==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
"@types/history" "^4.7.11"
@@ -2345,617 +2252,467 @@
history "4.10.1"
prop-types "15.8.1"
-"@commercetools-uikit/loading-spinner@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/loading-spinner/-/loading-spinner-18.5.0.tgz#394f01997a1cb58056338f50c0fe8b97d6910f74"
- integrity sha512-DXhs2kBFxQvK7f0eFNktjg0UFwSHwznKmVS92a0pmGJJGnu5ih+sQf5HZ/ZDKCCkZf/NTfKPJzBnMDNSye7Fww==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- prop-types "15.8.1"
- react-intl "^6.3.2"
-
-"@commercetools-uikit/loading-spinner@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/loading-spinner/-/loading-spinner-19.10.0.tgz#01a094d3193497abdcbf65fb0b463f4210cc1cd8"
- integrity sha512-bEmSfV/lFjHCqWIz3UbqG9WA/Us1poLcarj103jJ3JLJitMQmazN3bStpx/YvwssZ99MPmOS/XHIEjeoj3Piug==
+"@commercetools-uikit/loading-spinner@19.16.0", "@commercetools-uikit/loading-spinner@^19.16.0", "@commercetools-uikit/loading-spinner@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/loading-spinner/-/loading-spinner-19.16.0.tgz#46e8074faf21862e604dbf7e207878157294a1cd"
+ integrity sha512-9FRa/JLGbZrN0eFaHbovhCQRjS3c7npXs5hHyQy9riunGmft2SIfyPsRU4OgalcyDWU7pgZOg9ESsf6m0eBZEw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings-inline" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/localized-text-field@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/localized-text-field/-/localized-text-field-18.5.0.tgz#fe79c9022265ee874eb62ce9b9c064c47f7bbef2"
- integrity sha512-Rft+bnfx7x8GoMaJdEcmPcsS17kHncbK7373T9KugIEf6DN+aC57z11thj0ermuvfl9pj/hlp4RyKnTyXIsS4g==
+"@commercetools-uikit/localized-text-field@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/localized-text-field/-/localized-text-field-19.16.0.tgz#8e74422d171c18afb93b2b0e4dc5dc421d0506d8"
+ integrity sha512-HrbBTQ12nbZAIJlMg1dpdl7A32KTdWleS5bdozzwAd5R+jKSszoJRQfew0wa/Xr29cjzab3PHvUPMBk0FpZ2wA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/field-errors" "18.5.0"
- "@commercetools-uikit/field-label" "18.5.0"
- "@commercetools-uikit/field-warnings" "18.5.0"
- "@commercetools-uikit/localized-text-input" "18.5.0"
- "@commercetools-uikit/spacings" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/field-errors" "19.16.0"
+ "@commercetools-uikit/field-label" "19.16.0"
+ "@commercetools-uikit/field-warnings" "19.16.0"
+ "@commercetools-uikit/localized-text-input" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/localized-text-input@18.5.0", "@commercetools-uikit/localized-text-input@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/localized-text-input/-/localized-text-input-18.5.0.tgz#4043ef1c8e772a953ba808a52263df1277845665"
- integrity sha512-utflOpCMbpnFi3TpW9JDm7mQxBa/NidP6QQZDG0cUEvVbyCm+5/SuVccZtnevnxxXfpD8Crk4ER5RfrZ0Zhdwg==
+"@commercetools-uikit/localized-text-input@19.16.0", "@commercetools-uikit/localized-text-input@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/localized-text-input/-/localized-text-input-19.16.0.tgz#4a55b419a8856fa3b3a8b9e5f88af52e3fc2a2be"
+ integrity sha512-2R0HuxrS2NmoIGJroyFnn4BQMyeWwPSKld8Wgb8xxll+GdaSA/bZy96wl9EvseghMP+mVokgrw3d1zObITUMEw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/flat-button" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/input-utils" "18.5.0"
- "@commercetools-uikit/localized-utils" "18.5.0"
- "@commercetools-uikit/messages" "18.5.0"
- "@commercetools-uikit/spacings-stack" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/text-input" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/flat-button" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/localized-utils" "19.16.0"
+ "@commercetools-uikit/messages" "19.16.0"
+ "@commercetools-uikit/spacings-stack" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/text-input" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/localized-utils@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/localized-utils/-/localized-utils-18.5.0.tgz#00c28af810dbb9f5e4dd5c068efd4e196649fb23"
- integrity sha512-2H0poskSAJltvGzpjfWdzWg5Y++kDoStXxQ3Br4xlL61372dWfoPlSFH3++HzRzBuraNZWoMGgxWK+BdoY529w==
+"@commercetools-uikit/localized-utils@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/localized-utils/-/localized-utils-19.16.0.tgz#278f38863edca473bf8cfc257d00be0a6937a0bb"
+ integrity sha512-ymbo+KK9WWYpnT0HgkPCPwUkcZff+irNczZnl0jkW1v3zQKivNWhbPHPoG6giMzsGWBmA0PZ8LOLBdhFVekoOQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/utils" "19.16.0"
lodash "4.17.21"
-"@commercetools-uikit/messages@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/messages/-/messages-18.5.0.tgz#7a87a91e2013532549a6980542b1d4737027163e"
- integrity sha512-ck3DdPDq09NLXK+cMWWZefCPGElUObhaR8ffPNAxDgjxw/52sDoidxMqlcutbTU0x50OJ74v9XQLJgetdl8vxQ==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- prop-types "15.8.1"
- react-intl "^6.3.2"
-
-"@commercetools-uikit/messages@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/messages/-/messages-19.10.0.tgz#e165933ee6c17c834d9b7d852ba09ab67fbb32d6"
- integrity sha512-ALi6QVbH0RmPIQlX3gCxjMPPaPHmfoWjztXjOgmL7e5iNIpGcs4jlii+4bVGxB30qDfy2+4UlWeQwef+7kxInQ==
+"@commercetools-uikit/messages@19.16.0", "@commercetools-uikit/messages@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/messages/-/messages-19.16.0.tgz#48177033df1dd20f4255a90d42c297ac9991870d"
+ integrity sha512-a4kRJKvx0ifNs2Qcr+P+DL6M/51OamPyCan9KVw1VD6wGjW5a3tr+Zp5FvOB3IqCCe5XI2vc8aqWujmM40Z/gA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/money-input@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/money-input/-/money-input-18.5.0.tgz#1ba914d3e1d4280774cf4810bd3bf2aa17723e07"
- integrity sha512-IsUvFJTIT6LIhZA9HlN4vUIO3tJWm3kpdNi+RUdTjWOs1efe5NB3+0R7ivtqZX1o1NPsA6pSK5QL5qz8iooR1w==
+"@commercetools-uikit/money-input@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/money-input/-/money-input-19.16.0.tgz#4ba93a257ec33a14357327f8c744f4dfffce86eb"
+ integrity sha512-VWtwHhhuPo8b6+SJ6pqv8A5d+FTfRQ9nxqV2+zhDmlk/QmZmCTZKjD6oyDoquJOt+7FbKVkb4AqrVgvdXRWhKQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/input-utils" "18.5.0"
- "@commercetools-uikit/select-utils" "18.5.0"
- "@commercetools-uikit/tooltip" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/select-utils" "19.16.0"
+ "@commercetools-uikit/tooltip" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
- react-select "5.8.0"
-
-"@commercetools-uikit/notifications@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/notifications/-/notifications-18.5.0.tgz#9cbeaf7a8e2acbdc9dd75aa5459d27376312b780"
- integrity sha512-zA03FQBhi+o13ufFXKuWCdgVyZGO6UJuEwiixI4jc0c/7G0aVvq610yXhgI5hMcudBNbb7qAqOxSxOA1Y6gyWw==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- prop-types "15.8.1"
+ react-select "5.8.1"
-"@commercetools-uikit/notifications@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/notifications/-/notifications-19.10.0.tgz#fb02265878f5d2c8749ac8f62d81e59c8cc0a04a"
- integrity sha512-z6Of6bW869mxc+Gg6ySGX4JC9dooqIOdkLuHsB4RruaLOcEh4+RZCAI11dAt+NqSdV8r636AvxhhML4kY6GRfQ==
+"@commercetools-uikit/notifications@^19.16.0", "@commercetools-uikit/notifications@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/notifications/-/notifications-19.16.0.tgz#ba0132148f41662b7136559ad2d104d7a9477194"
+ integrity sha512-MTvbBp/LTktsyrCbB5hGb4NIQMc1FEXsofvH+m2J+XzAfL9faYrGOOxGobiJ7ltBSyMGHR6FhObQYdgSHYw+mQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/icons" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/number-input@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/number-input/-/number-input-18.5.0.tgz#51ff805a306450798a0c6adcb3b6e2da3e441d28"
- integrity sha512-Sfvgs9J+q/dHvo2iX19EGxsHYeAxC0VgZm4kgPpMW0yt+mCo8kF1coqX8OYjqWK84L5dFf9HktfCUz6NctnI9w==
+"@commercetools-uikit/number-input@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/number-input/-/number-input-19.16.0.tgz#72753900b9d4ac2f78d8f770f19c5ef752a27808"
+ integrity sha512-s7cAz94pfss79sKX+vqtH6EBKr1VzNKd+0k+bG9BP/uN43qG9T1iSo1d5Vr3//2K/K2SWmgvxFWXasr/G7Oh5w==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/input-utils" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/pagination@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/pagination/-/pagination-18.5.0.tgz#ad42ce3cbb0c03a1560da764b6e2da63b27c5589"
- integrity sha512-gRENZFTe42trFT5drMyCzXW4oqpcFsIZtwyGjv9W0oWOWuX9yTP/Cj5P+CJuyD3IkdBlkCZVmk00qPz6YY0jxA==
+"@commercetools-uikit/pagination@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/pagination/-/pagination-19.16.0.tgz#3e0bd33d25e941cb23fbf42948a3e47d955a2511"
+ integrity sha512-ku/mVfxIy2fImDCdgje0VXJgUQNyl6Fu+uK24RazcSfzhNms2Z3JNpv/wMH9dLIy6UvKHUlIIOPM23Z8lyJrpg==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/label" "18.5.0"
- "@commercetools-uikit/number-input" "18.5.0"
- "@commercetools-uikit/secondary-icon-button" "18.5.0"
- "@commercetools-uikit/select-input" "18.5.0"
- "@commercetools-uikit/spacings" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/label" "19.16.0"
+ "@commercetools-uikit/number-input" "19.16.0"
+ "@commercetools-uikit/secondary-icon-button" "19.16.0"
+ "@commercetools-uikit/select-input" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
formik "^2.2.9"
lodash "4.17.21"
prop-types "15.8.1"
-"@commercetools-uikit/primary-button@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/primary-button/-/primary-button-19.10.0.tgz#42cb850d3ddaa34f941a8c276c1752033e7c3fab"
- integrity sha512-jf8GXjXB9g1UFxXNCt84SceQvBiI4ob+k04vR9w34PzT1psFt3z9TEMeKzcrxF9WpuUa+SNRydZAbyCqCB2Vmg==
+"@commercetools-uikit/primary-button@19.16.0", "@commercetools-uikit/primary-button@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/primary-button/-/primary-button-19.16.0.tgz#80e401bd859256d3ae2a5cf6bddd953e62c7ae56"
+ integrity sha512-A5C81n1XOauWVRf2HoDwSa+pv1sA/F4nhJbbG5HIfWhvPYTnMSRaGmP+CzmXqGZvZg8SA35kTlqg2XcOMGgSMA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings-inline" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/secondary-button@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/secondary-button/-/secondary-button-19.10.0.tgz#339d625e1d0945da070dc9af87cc0e5ec177774e"
- integrity sha512-Aw8197pb+rwzd1UeUa3fSlHaBWRazfw1Wlo6FUojiyG/hVq8K0nFcNFPFdICFDTmVQh8a+zEIa3ctubqwgy/Ig==
+"@commercetools-uikit/radio-input@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/radio-input/-/radio-input-19.16.0.tgz#d5004504f90fbb0ccbd19c6ac2e70618564afd7b"
+ integrity sha512-wFOZykVestoNzyYN5tc/nmk3HLvJdAi4eYdWBm/oC/TwPNT38MRxZ0A3vhIwcsezvbGbSpk11YUOaYzPPTaF1g==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings-inline" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/spacings-inset" "19.16.0"
+ "@commercetools-uikit/spacings-stack" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
- lodash "4.17.21"
prop-types "15.8.1"
+ react-is "17.0.2"
-"@commercetools-uikit/secondary-icon-button@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/secondary-icon-button/-/secondary-icon-button-18.5.0.tgz#6e15b86f318b03ccc363f54169fbcaa32846bf45"
- integrity sha512-8zKmp+ZVZKwTobnh8sr8Y2HxWDEAolGtyOLOowkgnqPibWQExT8T3n99ZL7TtS4IK+PyGlD5ol5o+WbHAqLBgA==
+"@commercetools-uikit/secondary-button@19.16.0", "@commercetools-uikit/secondary-button@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/secondary-button/-/secondary-button-19.16.0.tgz#12cf71eb607df61c655302a2f3292c7a4b8f6bcc"
+ integrity sha512-QzrOJZ4VzvOEfRP3MC0f/aXXSp10/0vVer2x+Ghh/NkFfcXx8UbZYZusQ7TP2SMMOzV50ItQQQs+4VvZyLAIrw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/spacings" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
- react-intl "^6.3.2"
-"@commercetools-uikit/secondary-icon-button@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/secondary-icon-button/-/secondary-icon-button-19.10.0.tgz#01a6bcce77c60254fb21802295916c7ceb468201"
- integrity sha512-j42XEuOfAfz96ptvZhzhZp1t1UQ96AEWbZpttlke/bnwjYjc7Jb/bw3+GeGKSJrtRjOqsfj1Iy7uh8Jm8VMZbg==
+"@commercetools-uikit/secondary-icon-button@19.16.0", "@commercetools-uikit/secondary-icon-button@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/secondary-icon-button/-/secondary-icon-button-19.16.0.tgz#5698dc537bc765718c716bbf6e9f5d79e8fdf420"
+ integrity sha512-+K98Kv0hQSo8sysWtseHOosLQlG+HFiWRqG6xOcySlIyXdvB38pZ3npnLXgzfIOgJ/WMeQDxpyugqoIqKALn8w==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/select-field@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-field/-/select-field-18.5.0.tgz#fcb9c9bbbc172b22506f6ab5a6abdf7d9ac9659f"
- integrity sha512-ZubyBp7jOvnrzEeaP2SgR68BRRFOrAj9yArXMWQPe9d5P3mZdoX+KBd626Hqk+jcuNDs7ROJdHo/BcmmRNLGsQ==
+"@commercetools-uikit/select-field@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-field/-/select-field-19.16.0.tgz#b3dec5306d564a254d872a6f2a12d29256bee36b"
+ integrity sha512-Yf3NfcpWJcBElfc/vnU5AuWxxk3cEWfYeJ9EjZOrmFL7N9HvDgzkNgNehfh2cLfWA5rk6jNmy2AG21j4x+citw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/field-errors" "18.5.0"
- "@commercetools-uikit/field-label" "18.5.0"
- "@commercetools-uikit/field-warnings" "18.5.0"
- "@commercetools-uikit/select-input" "18.5.0"
- "@commercetools-uikit/spacings" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/field-errors" "19.16.0"
+ "@commercetools-uikit/field-label" "19.16.0"
+ "@commercetools-uikit/field-warnings" "19.16.0"
+ "@commercetools-uikit/select-input" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/select-input@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-input/-/select-input-18.5.0.tgz#2dd9923a0ff327847daac5a93ae3d54df26a5633"
- integrity sha512-Cvp/Jy28YIXXARCa6iCBDkvkp6QQGIp0vDnWVnkta6PFscL1QyGKHv1P10KoNsXKLlA7YoRNfPwfUunsVzX1pg==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/select-utils" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/is-prop-valid" "1.2.1"
- "@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- lodash "4.17.21"
- prop-types "15.8.1"
- react-select "5.8.0"
-
-"@commercetools-uikit/select-input@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-input/-/select-input-19.10.0.tgz#b30367103d031740f7e4018536078268f463beb7"
- integrity sha512-9tgAqLXDW8UACCkgIEt1ApsFTrS8S1IqoBcf07tuIP4x/LdAlq6OKRnd00FSmO4E4/3bsxCIMsFd508MqAMzUw==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/icons" "19.10.0"
- "@commercetools-uikit/select-utils" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
- "@emotion/is-prop-valid" "1.2.2"
- "@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- lodash "4.17.21"
- prop-types "15.8.1"
- react-select "5.8.0"
-
-"@commercetools-uikit/select-utils@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-utils/-/select-utils-18.5.0.tgz#bc2d788e3d2d355ad0112c927559ad7cb38b30e5"
- integrity sha512-kjHRYkGLgmi8DrXag+LU/5d2Qmz+5UMX8zyS7K/IPcBgJ/rbuX9/yN+EXSA2KogWczHegvbWhYldc6loiGAf5g==
+"@commercetools-uikit/select-input@19.16.0", "@commercetools-uikit/select-input@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-input/-/select-input-19.16.0.tgz#6167da125154265fb8615317e2f60d5865897c6c"
+ integrity sha512-OYwgmbq6vlX4dau821Bq/uyBk2j4nHCcdfBlwwy+mQ2q1D85B70Jx2m7mHKcQ60hpUtlAij0QpIj3dg0BxmxdA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/spacings" "18.5.0"
- "@commercetools-uikit/text" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/select-utils" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
+ "@emotion/is-prop-valid" "1.3.1"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
- react-select "5.8.0"
+ react-select "5.8.1"
-"@commercetools-uikit/select-utils@19.10.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-utils/-/select-utils-19.10.0.tgz#d6fa5ec32769716a62ef585e2393368add823c82"
- integrity sha512-MTm3tX/nABFnnlH/iUXyhyvOoaaYC94oSRcN5e3zjQV3IcDx6HRXmBgztTReLMTNwMPTIJcuycQB/a5Wmap/sg==
+"@commercetools-uikit/select-utils@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/select-utils/-/select-utils-19.16.0.tgz#ba1a5587aca839163fac46cd80b45b5292c4d923"
+ integrity sha512-GTOO4ShjcT7l9N0vqhap1hpRHnMis8yrPMIXP3h5hoD25T7j5n5knh+jINhivMRk9j4+kUA/tqTlme6k7EvZmw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/icons" "19.10.0"
- "@commercetools-uikit/spacings" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/checkbox-input" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
- react-select "5.8.0"
-
-"@commercetools-uikit/spacings-inline@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inline/-/spacings-inline-18.5.0.tgz#80b105d79ac7d2a7a2b1e871e32fafd2460b644e"
- integrity sha512-0tkuG7Dhu4i5oSiMJ3CMpzyx/vTiROICXXgSd5bxrvUyNe2OLfHlQIqIrEmslTWfs5fExS/8W6obqA0PudH6TA==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- prop-types "15.8.1"
+ react-select "5.8.1"
-"@commercetools-uikit/spacings-inline@19.10.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inline/-/spacings-inline-19.10.0.tgz#1c3b21ed0620bc00677a0833890ca1c3bafd6120"
- integrity sha512-Py7yUA5nr4+WxixkoCPyqelF8NWD9WTb5rUSXeTACxnzuGDaeUDyOuoAfaHk4kOM8RM4hDqLIjokPIeXdmkHnw==
+"@commercetools-uikit/spacings-inline@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inline/-/spacings-inline-19.16.0.tgz#5bf671da5a977558e8245b64cfa32b662cf4c137"
+ integrity sha512-zmK4WgotHEBXvrwbHBzP++fiK/lV9luQYV3G1de0YbwMf0tXWiT38uNX+RLVhvjbFgD2lxyGQs2PdonoRMwCFw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/spacings-inset-squish@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inset-squish/-/spacings-inset-squish-18.5.0.tgz#b6e32785305a1b2c2db0ecbb6b315afe38c77d0f"
- integrity sha512-GTc/iq07+oaDSG7UFUMN3BFSYRYILRVlgT1Q/8HGmQt7ldnhpUZ2TembCQqRNIVN7Rb8YiqmZsdG5SqwptC6iw==
+"@commercetools-uikit/spacings-inset-squish@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inset-squish/-/spacings-inset-squish-19.16.0.tgz#9e1d51737b9cfd631fd5cc007ea175858dbbcb30"
+ integrity sha512-Owar8Ov8+8F2Co6yrsCVTZoGpri2UxqADTpcjcivgsDlJkj4/GeHRthAN4GfVay1fQBefUpx2ueaDvLtBiyeQQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/spacings-inset-squish@19.10.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inset-squish/-/spacings-inset-squish-19.10.0.tgz#751b3ac6e76bb76fa4383b86ca3dc8f3a0ef31f1"
- integrity sha512-JbcJGVJVIDbcnm994uToG+qrvJRHfo4Lvt6MFcw8PUEhXFVvIVWpRfNGoby8KGX9xide4hPSZoXMimkjRl+J/w==
+"@commercetools-uikit/spacings-inset@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inset/-/spacings-inset-19.16.0.tgz#a86170ad5635c2c676c1b4b2e755ae5fb8a115e3"
+ integrity sha512-496UQMqyXnZ44hdRPfPobOgknowaqFgSqFdAuWxt2Pvgi81pA0GZy/54LMeXCAfrNRGPNvLIOHlI83f2aJ2DOA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/spacings-inset@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inset/-/spacings-inset-18.5.0.tgz#7697a45055ab5d8c72abecbee4ef2b3852853923"
- integrity sha512-5C9ychAChYFe9jGvpPhtDkdsTN7whxfZ0h2wPIGoAAF55Vo1STTqisRMB8yPw2Z0qGs4UJODEsFF8qpgaLGPKw==
+"@commercetools-uikit/spacings-stack@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-stack/-/spacings-stack-19.16.0.tgz#6803847446014b2ad1e3caa948c1734db9de674a"
+ integrity sha512-lrUaG4X6E2An1PU5E7ZrJ9Oeg1Ey+0oIRhTe18+Qdb5VhVbjyjnaU41z+fAibVjrkQxCzw3HYYhPaLoU+qej9w==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/spacings-inset@19.10.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-inset/-/spacings-inset-19.10.0.tgz#cb0d46476e6517a3b6288c9bf1f10d5d18fddb5a"
- integrity sha512-4rMJhu7L3nTSO4igxY8BzLRjyG9K1BrBLYlzetqjf00+7nCTysESiJJD7rCPwOcbzIQZDrd7JmvNDZXZm++lTg==
+"@commercetools-uikit/spacings@19.16.0", "@commercetools-uikit/spacings@^19.16.0", "@commercetools-uikit/spacings@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings/-/spacings-19.16.0.tgz#a5e78071c4bcde64ed0f34a63c6b9b13f0055783"
+ integrity sha512-fzEZv0wJtFJTaIyIT1VrFPd2AOwsOcthw8c/pN5+uHpqLPGHokpaY+lxoDcH/KMrzKgGdNCR/Z7a1gp8rQsCfw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
- "@emotion/react" "^11.10.5"
- prop-types "15.8.1"
-
-"@commercetools-uikit/spacings-stack@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-stack/-/spacings-stack-18.5.0.tgz#e3bcc98e537d96a6d6a73c48d9b735c8b1c94e52"
- integrity sha512-UzqoqINkRLf8kP3RA8CrThT+pFVVe7PVf+AXjNqgJxPFXOph9WWJaSmKS20OQbEbb3DCaz/Oe1+tQjTT39x1pw==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/react" "^11.10.5"
- prop-types "15.8.1"
-
-"@commercetools-uikit/spacings-stack@19.10.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings-stack/-/spacings-stack-19.10.0.tgz#4be22e8ad8df8bdea31d60b0cd7b852ea96f457f"
- integrity sha512-C/16mFBp2THrDjeyU1Y8MzOplF+gCdt2Xa6uzvH+ty005GUBNysTaecGPwFK0ZKkn+MvXVpD2/Oox5CuaFQV0w==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
- "@emotion/react" "^11.10.5"
- prop-types "15.8.1"
-
-"@commercetools-uikit/spacings@18.5.0", "@commercetools-uikit/spacings@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings/-/spacings-18.5.0.tgz#ed0970fffb67595c94af8f17071ce1461e505dc3"
- integrity sha512-raViM0EXaI2hJPArf1T6mRA2UbpDIT628WgjF9pOnqSfZGba+6SG274djeZ7Oi9I24hKBTFO3isYrcxwsT5Rog==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/spacings-inset" "18.5.0"
- "@commercetools-uikit/spacings-inset-squish" "18.5.0"
- "@commercetools-uikit/spacings-stack" "18.5.0"
-
-"@commercetools-uikit/spacings@19.10.0", "@commercetools-uikit/spacings@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/spacings/-/spacings-19.10.0.tgz#652cc7f9c14d7ce1f6499dbf54ab50e96ab5646b"
- integrity sha512-FvqTe6bdPJXkB4IL8qJ1/cDU463tbK077QCacIBmVI4Z5o2ScvqRsTvFat30bkt6G3L9dA0R2utqyRCdiZsDSw==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/spacings-inline" "19.10.0"
- "@commercetools-uikit/spacings-inset" "19.10.0"
- "@commercetools-uikit/spacings-inset-squish" "19.10.0"
- "@commercetools-uikit/spacings-stack" "19.10.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/spacings-inset" "19.16.0"
+ "@commercetools-uikit/spacings-inset-squish" "19.16.0"
+ "@commercetools-uikit/spacings-stack" "19.16.0"
"@commercetools-uikit/stamp@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/stamp/-/stamp-19.10.0.tgz#366da906f2f562ec9610985e48bcc39dee28244a"
- integrity sha512-4QWX/hxM9SGAAYmEba1S9aPgxqtBHJMuNP7hWo8Hfz0QfyvRUIzWqPMUX0eHQldUt8no45I2EULXEloIuOi80A==
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/stamp/-/stamp-19.16.0.tgz#967923cdc306526fac15b1c9ec6ae61e7216b279"
+ integrity sha512-EfTpaPIWUnxuqzZCXxueE44YCQKcxpLc42MTl/xMioFQnCU1282o0X2Iy7y0QBDz0FeO6lGWiqIaWAPYLeqQ2Q==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/spacings-inline" "19.10.0"
- "@commercetools-uikit/text" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
prop-types "15.8.1"
-"@commercetools-uikit/text-field@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/text-field/-/text-field-18.5.0.tgz#702f19af89a0d4c28ae6aeeed45ed8e0d894f166"
- integrity sha512-uwIrj5CuDRwYkRZUPvfz+aNIfb7IJ6xSLoYpxyzI4zrWoVu4HHXThjFk2qA7HF4m4ctdQdpnc8iMib4IjPXMcw==
+"@commercetools-uikit/tag@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/tag/-/tag-19.16.0.tgz#3ee3f5d02a0276112bb1d1761d9528ac4fc7a80d"
+ integrity sha512-yOMmtkmVMlNQI29Xc1/rcp4sUXmwkoniTnnkpDriztqQZIeS41LcGtSzPMY1pIb5LCA4D4iZrqrubSkNW9pA/g==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/field-errors" "18.5.0"
- "@commercetools-uikit/field-label" "18.5.0"
- "@commercetools-uikit/field-warnings" "18.5.0"
- "@commercetools-uikit/spacings-stack" "18.5.0"
- "@commercetools-uikit/text-input" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/spacings" "19.16.0"
+ "@commercetools-uikit/text" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
react-intl "^6.3.2"
-"@commercetools-uikit/text-input@18.5.0", "@commercetools-uikit/text-input@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/text-input/-/text-input-18.5.0.tgz#e61bcdeefa99367096c22966cda40f1f7351172c"
- integrity sha512-KJ1wxms5HHc3vfLkHDNSJBNjF0ZeRbqI7nX/VQLgfWMdDB3ovB5WgMmCAzkiF8fsR7idekJK0NzEb2WtWbSBIg==
+"@commercetools-uikit/text-field@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/text-field/-/text-field-19.16.0.tgz#49751c4e19ceca5c4e0abc48943420c9cfbf9393"
+ integrity sha512-lJqR7A0kNUhTRS7EFtt4S1UvKlLvltA4yIoEiZJ5DAm7jx3qzvUIozx3OoOBDHhIMYHlvUXwLEoS1MPS/W2KSw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/input-utils" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/field-errors" "19.16.0"
+ "@commercetools-uikit/field-label" "19.16.0"
+ "@commercetools-uikit/field-warnings" "19.16.0"
+ "@commercetools-uikit/messages" "19.16.0"
+ "@commercetools-uikit/spacings-stack" "19.16.0"
+ "@commercetools-uikit/text-input" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
prop-types "15.8.1"
+ react-intl "^6.3.2"
-"@commercetools-uikit/text@18.5.0", "@commercetools-uikit/text@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/text/-/text-18.5.0.tgz#b70d9d28082e39874a054ab3b66d3ec04cdd0157"
- integrity sha512-SWbQZTMFhJgd/91iigLGMeg4eIaFqDH/fDj4qMt+QxLRsi9yss26QtbnR1QYvF+RJXbQri3qgzXs3YxWnExb5w==
+"@commercetools-uikit/text-input@19.16.0", "@commercetools-uikit/text-input@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/text-input/-/text-input-19.16.0.tgz#d05ae0de265bba0a4bbfdb1993c02d786c919584"
+ integrity sha512-h0WglWBCuZqT+dN2gWObM/7R3avZ/YaoZr+idtwKHGVpD59LNxacNcySJUeLYT53dAEOGwGWW+U87bg7e2hrqw==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
- lodash "4.17.21"
+ "@emotion/styled" "^11.10.5"
prop-types "15.8.1"
- warning "4.0.3"
-"@commercetools-uikit/text@19.10.0", "@commercetools-uikit/text@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/text/-/text-19.10.0.tgz#38860299324e423222cd0ee7a00adfc8f777288c"
- integrity sha512-DXCiCZ35OreZEMqkd5rM9pKZ1SF/qIRcAs8/2X8JdK39R7gNgUajs0NTucRkZtY2DJDFm5Gba24mfLj7BTdmRg==
+"@commercetools-uikit/text@19.16.0", "@commercetools-uikit/text@^19.16.0", "@commercetools-uikit/text@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/text/-/text-19.16.0.tgz#36c8c0d982da5ca63a64076ef64028e8e9a7fbdf"
+ integrity sha512-o7p8NbLP733YJNqpmZty1I25nNf1pBgLr1qF/m4Y6RVE3vapS3w11DLOEeimBl2vKMz/a9GpI6yOGbp/IdpHew==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
lodash "4.17.21"
prop-types "15.8.1"
warning "4.0.3"
-"@commercetools-uikit/time-input@^18.4.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/time-input/-/time-input-18.5.0.tgz#1bf8e896d200643fb02d9fbbbd6e6548b3697111"
- integrity sha512-96Y/lBjlGZHCp3q8Pnrd4roI/XhKOSF+lhANmgxKfIGCsGbldAaCrK243YmQnTc3e4cYEhEBLHabdFOMpaq+EQ==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/accessible-button" "18.5.0"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/icons" "18.5.0"
- "@commercetools-uikit/input-utils" "18.5.0"
- "@commercetools-uikit/spacings-inline" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
- "@emotion/is-prop-valid" "1.2.1"
- "@emotion/react" "^11.10.5"
- "@emotion/styled" "^11.10.5"
- prop-types "15.8.1"
-
-"@commercetools-uikit/tooltip@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/tooltip/-/tooltip-18.5.0.tgz#28d62c899e67ef642918339fba449e95f32db690"
- integrity sha512-MBu9EvSu6Q16sNY7lAS+ls9nzFyVuvShlGcjHLgpN6IMqovprqJK1PPD7XPz7SwMqSvIr7JIQo38NwzsqEr/Rw==
+"@commercetools-uikit/time-input@^19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/time-input/-/time-input-19.16.0.tgz#2b96e8abe504f24b5ca9831602e2f9310975e4f0"
+ integrity sha512-GmIs2M6cKyPHlZgM2CzTr8Q9sARczJNeZ2IIFsLW1CNSo5OYg/D8xoEAZZNd3NJo7Bpi9AH3y/y9GFpKidqaNg==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "18.5.0"
- "@commercetools-uikit/design-system" "18.5.0"
- "@commercetools-uikit/hooks" "18.5.0"
- "@commercetools-uikit/utils" "18.5.0"
+ "@commercetools-uikit/accessible-button" "19.16.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/icons" "19.16.0"
+ "@commercetools-uikit/input-utils" "19.16.0"
+ "@commercetools-uikit/spacings-inline" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
+ "@emotion/is-prop-valid" "1.3.1"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
- lodash "4.17.21"
prop-types "15.8.1"
- react-is "17.0.2"
- use-popper "1.1.6"
-"@commercetools-uikit/tooltip@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/tooltip/-/tooltip-19.10.0.tgz#c0533574b0ee90b47a8133a9d23fc9658624e41e"
- integrity sha512-Ihc+ef0uHMjNoX8/86khWJFOJ2Oq3e9pt6vmNHOGl3g6yQC5toNpEyhQE9T/GHaItwo7d5NtO+AWyM+7CZEt5A==
+"@commercetools-uikit/tooltip@19.16.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/tooltip/-/tooltip-19.16.0.tgz#9c4a56a9fca61d71970bb3a9cb784e0f51144f51"
+ integrity sha512-tSlfV6UJzy0P4rMeIBmOs3Z8XVkFkwVQhZEYxpSFxL3n/qZOkBNg7isp52IKLRuHSSdRNlHet3wPuO6hzbTmCQ==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@commercetools-uikit/constraints" "19.10.0"
- "@commercetools-uikit/design-system" "19.10.0"
- "@commercetools-uikit/hooks" "19.10.0"
- "@commercetools-uikit/utils" "19.10.0"
+ "@commercetools-uikit/constraints" "19.16.0"
+ "@commercetools-uikit/design-system" "19.16.0"
+ "@commercetools-uikit/hooks" "19.16.0"
+ "@commercetools-uikit/utils" "19.16.0"
"@emotion/react" "^11.10.5"
"@emotion/styled" "^11.10.5"
lodash "4.17.21"
@@ -2963,23 +2720,14 @@
react-is "17.0.2"
use-popper "1.1.6"
-"@commercetools-uikit/utils@18.5.0":
- version "18.5.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/utils/-/utils-18.5.0.tgz#baa4fe9f756a057d1b21a042119e49b27331e951"
- integrity sha512-khbHbTrG9K56B744lPGAwZiWXmlHwa5DFPs6ZmLg2vekGfp/6Q6Al98IPV2VRHvksxbd76fdrgcA+h2Be4ogoQ==
- dependencies:
- "@babel/runtime" "^7.20.13"
- "@babel/runtime-corejs3" "^7.20.13"
- "@emotion/is-prop-valid" "1.2.1"
-
-"@commercetools-uikit/utils@19.10.0", "@commercetools-uikit/utils@^19.9.0":
- version "19.10.0"
- resolved "https://registry.yarnpkg.com/@commercetools-uikit/utils/-/utils-19.10.0.tgz#610f1d023c3cad5507528c97bd7c439f949fd37c"
- integrity sha512-OrNeVJMbQ9guZJhsO5rgu9xBw7JUGx0vWGsvR9dwX9J75maj4yUT8dvf5a30Ii2D6rpu3sNqhd/G33zGAS1ZlA==
+"@commercetools-uikit/utils@19.16.0", "@commercetools-uikit/utils@^19.9.0":
+ version "19.16.0"
+ resolved "https://registry.yarnpkg.com/@commercetools-uikit/utils/-/utils-19.16.0.tgz#aa43edf4d544d76e3406dd92fa499862171aa23c"
+ integrity sha512-nPd86tlopUz0Sr0cVYYFH+PQ74kLoOzOy7WCf2Rb9+D8K+Cd589TgJRI1Xo7T1/RpZw2ryTbNUsPidtF+3k+zA==
dependencies:
"@babel/runtime" "^7.20.13"
"@babel/runtime-corejs3" "^7.20.13"
- "@emotion/is-prop-valid" "1.2.2"
+ "@emotion/is-prop-valid" "1.3.1"
"@commercetools/api-request-builder@6.0.0":
version "6.0.0"
@@ -2992,15 +2740,15 @@
integrity sha512-kHlVST/Ax8GFpG9vpcUR5wKBGBoY2tZDA87kSC3nxhgk2+szZfv7MMMaAt0EIz2thpyO7oJv9NyPY/3XrrNIXQ==
"@commercetools/platform-sdk@^7.0.0":
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/@commercetools/platform-sdk/-/platform-sdk-7.11.0.tgz#44df4574a5e02fca1cfbfb7a138f84758d034002"
- integrity sha512-8vlgiK6w8NewUZ60HUDJzdNUzDp2ByO+8fAH7aUTkt+suXYbG3Jl/k8brgX8JOn2AR4k7kC8g7sEHV6JUN8KzA==
+ version "7.20.0"
+ resolved "https://registry.yarnpkg.com/@commercetools/platform-sdk/-/platform-sdk-7.20.0.tgz#6e5e484381c64dd2ca9aaf0923ee8372ea45685b"
+ integrity sha512-Dv/abLO3yuJmt/MT4zeqodAJhBzZZNSyULKSZCUgy42VTt6UC9Sg5Iud8ghJzezlsuTWF/VvtUP/Ow61CJeFQA==
dependencies:
"@commercetools/sdk-client-v2" "^2.5.0"
"@commercetools/sdk-middleware-auth" "^7.0.0"
"@commercetools/sdk-middleware-http" "^7.0.0"
"@commercetools/sdk-middleware-logger" "^3.0.0"
- "@commercetools/ts-client" "^2.0.2"
+ "@commercetools/ts-client" "^2.1.2"
"@commercetools/sdk-client-v2@^2.5.0":
version "2.5.0"
@@ -3037,10 +2785,10 @@
resolved "https://registry.yarnpkg.com/@commercetools/sdk-middleware-logger/-/sdk-middleware-logger-3.0.0.tgz#4bfc7441d485b3f1046001f44200d12926accb84"
integrity sha512-DhMXAA2yIch/AaGxy7st85Z1HFmeLtHWGkr9z5rX4xKjan4PHGB/IE5saAR+SNGHhs6+1Lp8vZEHDo3tFqVLmg==
-"@commercetools/sync-actions@^5.15.0":
- version "5.18.0"
- resolved "https://registry.yarnpkg.com/@commercetools/sync-actions/-/sync-actions-5.18.0.tgz#d1901c0898bd6ddb2c7bb340592671751e6954d5"
- integrity sha512-JSdXQuq3OEu7zpSU9R0IbXXmF90Bxq7/yM7CNKgkzvtwZeu9jasVcyttfEAON0BPJNrwHhXNaE9WMe3WuzYpvA==
+"@commercetools/sync-actions@^5.19.2":
+ version "5.19.2"
+ resolved "https://registry.yarnpkg.com/@commercetools/sync-actions/-/sync-actions-5.19.2.tgz#93cf5bd624feeabe56517299b3c54b13593eb906"
+ integrity sha512-9CrqaSxhZ2+TIcfr1Jvatj1Mme85rYkWtcAevrA/wqYbTkU095hQMHu1cIJ3vH4zkKXtq6ORL0k1DXVLgy8lXA==
dependencies:
fast-equals "^2.0.0"
jsondiffpatch "^0.4.0"
@@ -3054,16 +2802,14 @@
lodash.uniqwith "^4.5.0"
lodash.without "^4.4.0"
-"@commercetools/ts-client@^2.0.2":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@commercetools/ts-client/-/ts-client-2.0.3.tgz#bdf2a1c9275b1331e362d9c2466ec95f09c015d8"
- integrity sha512-8S/wV56cyaXf5SbSdHtYqcFhZRFlM2N/nWgyD8wh84GuqYTJDKv5N1woKNOZVvajQZsnuy3DJDMSFzLG+EuDfw==
+"@commercetools/ts-client@^2.1.2":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/@commercetools/ts-client/-/ts-client-2.1.2.tgz#8b813350d06881e079bd56dccccb1321cc73a630"
+ integrity sha512-gTRMsrDb5XxhP7q+BJfV96QgQJrMqcQMgmKxzZwoXfnT4BwDgLW4B3fP0oJ4QX8OAZnMVgWr7GAr0Dck4xDnBg==
dependencies:
abort-controller "3.0.0"
- async-mutex "^0.5.0"
buffer "^6.0.3"
node-fetch "^2.6.1"
- uuid "10.0.0"
"@discoveryjs/json-ext@0.5.7":
version "0.5.7"
@@ -3120,32 +2866,13 @@
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b"
integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==
-"@emotion/is-prop-valid@1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc"
- integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==
- dependencies:
- "@emotion/memoize" "^0.8.1"
-
-"@emotion/is-prop-valid@1.2.2":
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337"
- integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==
- dependencies:
- "@emotion/memoize" "^0.8.1"
-
-"@emotion/is-prop-valid@^1.3.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz#bd84ba972195e8a2d42462387581560ef780e4e2"
- integrity sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==
+"@emotion/is-prop-valid@1.3.1", "@emotion/is-prop-valid@^1.3.0":
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz#8d5cf1132f836d7adbe42cf0b49df7816fc88240"
+ integrity sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==
dependencies:
"@emotion/memoize" "^0.9.0"
-"@emotion/memoize@^0.8.1":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17"
- integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==
-
"@emotion/memoize@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102"
@@ -3166,14 +2893,14 @@
hoist-non-react-statics "^3.3.1"
"@emotion/serialize@^1.2.0", "@emotion/serialize@^1.3.0", "@emotion/serialize@^1.3.1":
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.3.1.tgz#490b660178f43d2de8e92b278b51079d726c05c3"
- integrity sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.3.2.tgz#e1c1a2e90708d5d85d81ccaee2dfeb3cc0cccf7a"
+ integrity sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==
dependencies:
"@emotion/hash" "^0.9.2"
"@emotion/memoize" "^0.9.0"
"@emotion/unitless" "^0.10.0"
- "@emotion/utils" "^1.4.0"
+ "@emotion/utils" "^1.4.1"
csstype "^3.0.2"
"@emotion/sheet@^1.4.0":
@@ -3203,10 +2930,10 @@
resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz#1a818a0b2c481efba0cf34e5ab1e0cb2dcb9dfaf"
integrity sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==
-"@emotion/utils@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.4.0.tgz#262f1d02aaedb2ec91c83a0955dd47822ad5fbdd"
- integrity sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==
+"@emotion/utils@^1.4.0", "@emotion/utils@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.4.1.tgz#b3adbb43de12ee2149541c4f1337d2eb7774f0ad"
+ integrity sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==
"@emotion/weak-memoize@^0.4.0":
version "0.4.0"
@@ -3334,16 +3061,16 @@
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
"@eslint-community/eslint-utils@^4.2.0":
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
- integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
+ integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
dependencies:
- eslint-visitor-keys "^3.3.0"
+ eslint-visitor-keys "^3.4.3"
"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1":
- version "4.11.0"
- resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
- integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
+ version "4.12.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
+ integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
"@eslint/eslintrc@^0.4.3":
version "0.4.3"
@@ -3375,10 +3102,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@8.57.0":
- version "8.57.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
- integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
+"@eslint/js@8.57.1":
+ version "8.57.1"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2"
+ integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
"@faker-js/faker@^8.0.0":
version "8.4.1"
@@ -3386,24 +3113,24 @@
integrity sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==
"@floating-ui/core@^1.6.0":
- version "1.6.7"
- resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.7.tgz#7602367795a390ff0662efd1c7ae8ca74e75fb12"
- integrity sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12"
+ integrity sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==
dependencies:
- "@floating-ui/utils" "^0.2.7"
+ "@floating-ui/utils" "^0.2.8"
"@floating-ui/dom@^1.0.1":
- version "1.6.10"
- resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.10.tgz#b74c32f34a50336c86dcf1f1c845cf3a39e26d6f"
- integrity sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==
+ version "1.6.12"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556"
+ integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==
dependencies:
"@floating-ui/core" "^1.6.0"
- "@floating-ui/utils" "^0.2.7"
+ "@floating-ui/utils" "^0.2.8"
-"@floating-ui/utils@^0.2.7":
- version "0.2.7"
- resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.7.tgz#d0ece53ce99ab5a8e37ebdfe5e32452a2bfc073e"
- integrity sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==
+"@floating-ui/utils@^0.2.8":
+ version "0.2.8"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62"
+ integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==
"@flopflip/adapter-utilities@14.0.2":
version "14.0.2"
@@ -3525,29 +3252,30 @@
launchdarkly-js-client-sdk "3.4.0"
"@formatjs/cli-lib@^6.3.8":
- version "6.4.2"
- resolved "https://registry.yarnpkg.com/@formatjs/cli-lib/-/cli-lib-6.4.2.tgz#1face8f7b051df9090a03fffaa6de17176603ac1"
- integrity sha512-Khj1fVZgubtI6FNGmmQGiEg6Kfc2zBZhsJjkCmoofubbDq2IV4yV89uVpdNyroG8mzHUkXlM8yUh0cWzR4Z/Bg==
+ version "6.6.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-lib/-/cli-lib-6.6.6.tgz#1259057f98d42762a81456ba0d387b06c99b5f54"
+ integrity sha512-yWcW2fJB7wLblOPED+1NfaUU0dHBt/UZSsw774lh/oxKrr+rOfFTHciqTMif1H533mRcxkPtIZf/WdPsgzqgXA==
dependencies:
- "@formatjs/icu-messageformat-parser" "2.7.8"
- "@formatjs/ts-transformer" "3.13.14"
+ "@formatjs/icu-messageformat-parser" "2.9.4"
+ "@formatjs/icu-skeleton-parser" "1.8.8"
+ "@formatjs/ts-transformer" "3.13.23"
"@types/estree" "^1.0.0"
- "@types/fs-extra" "^9.0.1"
- "@types/json-stable-stringify" "^1.0.32"
- "@types/node" "14 || 16 || 17"
- chalk "^4.0.0"
- commander "8"
- fast-glob "^3.2.7"
- fs-extra "10"
- json-stable-stringify "^1.0.1"
- loud-rejection "^2.2.0"
- tslib "^2.4.0"
+ "@types/fs-extra" "9 || 10 || 11"
+ "@types/json-stable-stringify" "1"
+ "@types/node" "14 || 16 || 17 || 18 || 20 || 22"
+ chalk "4"
+ commander "12"
+ fast-glob "3"
+ fs-extra "9 || 10 || 11"
+ json-stable-stringify "1"
+ loud-rejection "2"
+ tslib "2"
typescript "5"
"@formatjs/cli@^6.2.7":
- version "6.2.12"
- resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.2.12.tgz#5295e4f6351ed563bcd49fb6479905165098bcd4"
- integrity sha512-bt1NEgkeYN8N9zWcpsPu3fZ57vv+biA+NtIQBlyOZnCp1bcvh+vNTXvmwF4C5qxqDtCylpOIb3yi3Ktgp4v0JQ==
+ version "6.3.11"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.3.11.tgz#b14af6121a9afbe7c841e410b6057758952fc82c"
+ integrity sha512-TonnLTxrSLoD/ZMNz+XrswN8sTwGBxvq0ff7Tmh7Wx3Mw7U0h1p+bXfevHfHp/5ANra8tfHUd9c3InYOOIp4XQ==
"@formatjs/ecma402-abstract@1.18.3":
version "1.18.3"
@@ -3565,12 +3293,21 @@
"@formatjs/intl-localematcher" "0.5.4"
tslib "^2.4.0"
-"@formatjs/fast-memoize@2.2.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b"
- integrity sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==
+"@formatjs/ecma402-abstract@2.2.4":
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.4.tgz#355e42d375678229d46dc8ad7a7139520dd03e7b"
+ integrity sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg==
dependencies:
- tslib "^2.4.0"
+ "@formatjs/fast-memoize" "2.2.3"
+ "@formatjs/intl-localematcher" "0.5.8"
+ tslib "2"
+
+"@formatjs/fast-memoize@2.2.3":
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.3.tgz#74e64109279d5244f9fc281f3ae90c407cece823"
+ integrity sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==
+ dependencies:
+ tslib "2"
"@formatjs/icu-messageformat-parser@2.7.8":
version "2.7.8"
@@ -3581,6 +3318,15 @@
"@formatjs/icu-skeleton-parser" "1.8.2"
tslib "^2.4.0"
+"@formatjs/icu-messageformat-parser@2.9.4":
+ version "2.9.4"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.4.tgz#52501fbdc122a86097644f03ae1117b9ced00872"
+ integrity sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg==
+ dependencies:
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/icu-skeleton-parser" "1.8.8"
+ tslib "2"
+
"@formatjs/icu-skeleton-parser@1.8.2":
version "1.8.2"
resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz#2252c949ae84ee66930e726130ea66731a123c9f"
@@ -3589,14 +3335,22 @@
"@formatjs/ecma402-abstract" "2.0.0"
tslib "^2.4.0"
-"@formatjs/intl-displaynames@6.6.8":
- version "6.6.8"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.6.8.tgz#2f5afac8df83167f5a6ef8543600eaf1ef99c885"
- integrity sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g==
+"@formatjs/icu-skeleton-parser@1.8.8":
+ version "1.8.8"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.8.tgz#a16eff7fd040acf096fb1853c99527181d38cf90"
+ integrity sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA==
dependencies:
- "@formatjs/ecma402-abstract" "2.0.0"
- "@formatjs/intl-localematcher" "0.5.4"
- tslib "^2.4.0"
+ "@formatjs/ecma402-abstract" "2.2.4"
+ tslib "2"
+
+"@formatjs/intl-displaynames@6.8.5":
+ version "6.8.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.8.5.tgz#e9cd778764209534795f2a579d0269b26631d1ae"
+ integrity sha512-85b+GdAKCsleS6cqVxf/Aw/uBd+20EM0wDpgaxzHo3RIR3bxF4xCJqH/Grbzx8CXurTgDDZHPdPdwJC+May41w==
+ dependencies:
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/intl-localematcher" "0.5.8"
+ tslib "2"
"@formatjs/intl-enumerator@1.4.6":
version "1.4.6"
@@ -3605,21 +3359,28 @@
dependencies:
tslib "^2.4.0"
-"@formatjs/intl-getcanonicallocales@2.3.0", "@formatjs/intl-getcanonicallocales@^2.2.1":
+"@formatjs/intl-getcanonicallocales@2.3.0":
version "2.3.0"
resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.3.0.tgz#b6c6fa1c664e30a61f27fa6399a76159d82a5842"
integrity sha512-BOXbLwqQ7nKua/l7tKqDLRN84WupDXFDhGJQMFvsMVA2dKuOdRaWTxWpL3cJ7qPkoNw11Jf+Xpj4OSPBBvW0eQ==
dependencies:
tslib "^2.4.0"
-"@formatjs/intl-listformat@7.5.7", "@formatjs/intl-listformat@^7.4.1":
- version "7.5.7"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.5.7.tgz#125e05105fabd1ae5f11881d6ab74484f2098ee4"
- integrity sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g==
+"@formatjs/intl-getcanonicallocales@^2.2.1":
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.5.3.tgz#97bf9e536578c49836b6c74ab83b539f9148f2a4"
+ integrity sha512-I/OKMbzrwkD6sA4jsjRuIrCs7Zdzlw54WEBQTROU2545zx8gCV3X9987XxzH82kvQGgLcPAElUP7ul7cKJh53Q==
dependencies:
- "@formatjs/ecma402-abstract" "2.0.0"
- "@formatjs/intl-localematcher" "0.5.4"
- tslib "^2.4.0"
+ tslib "2"
+
+"@formatjs/intl-listformat@7.7.5", "@formatjs/intl-listformat@^7.4.1":
+ version "7.7.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.7.5.tgz#e7d9fd66b648bbe878f9c64fcba756f1634a7794"
+ integrity sha512-Wzes10SMNeYgnxYiKsda4rnHP3Q3II4XT2tZyOgnH5fWuHDtIkceuWlRQNsvrI3uiwP4hLqp2XdQTCsfkhXulg==
+ dependencies:
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/intl-localematcher" "0.5.8"
+ tslib "2"
"@formatjs/intl-locale@^3.3.3":
version "3.4.6"
@@ -3638,48 +3399,55 @@
dependencies:
tslib "^2.4.0"
-"@formatjs/intl-numberformat@^8.7.1":
- version "8.10.3"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-numberformat/-/intl-numberformat-8.10.3.tgz#abc97cc6a7b7f1b20da9f07a976b5589c1192ab8"
- integrity sha512-lH3liLMeIjZ19Zxt8RRPnBcpPweS1YNSXRURDiFfvFmRlDZUOd8+GlcVyECcPZPkIoSH/p4lfGrnaUzepxJ92g==
- dependencies:
- "@formatjs/ecma402-abstract" "2.0.0"
- "@formatjs/intl-localematcher" "0.5.4"
- tslib "^2.4.0"
-
-"@formatjs/intl-pluralrules@^5.2.5":
- version "5.2.14"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.2.14.tgz#7477bd2aa9bfde9e543d839707eff5460eb08026"
- integrity sha512-l6Ev7aOGXJSh5EPDEqzsbyufdCCKXZk993QXRQebLsB0TXRhIyF4alqjdMEatLwIigK/Mka8kiVIOLeFP5Cj9Q==
+"@formatjs/intl-localematcher@0.5.8":
+ version "0.5.8"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.8.tgz#b11bbd04bd3551f7cadcb1ef1e231822d0e3c97e"
+ integrity sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==
dependencies:
- "@formatjs/ecma402-abstract" "2.0.0"
- "@formatjs/intl-localematcher" "0.5.4"
- tslib "^2.4.0"
+ tslib "2"
-"@formatjs/intl@2.10.4":
- version "2.10.4"
- resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.10.4.tgz#e1819e0858fb05ca65923a020f346bc74e894e92"
- integrity sha512-56483O+HVcL0c7VucAS2tyH020mt9XTozZO67cwtGg0a7KWDukS/FzW3OnvaHmTHDuYsoPIzO+ZHVfU6fT/bJw==
+"@formatjs/intl-numberformat@^8.7.1":
+ version "8.14.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-numberformat/-/intl-numberformat-8.14.5.tgz#e7f699e7ae4338d758636eeee61952b80bddb755"
+ integrity sha512-UP7Y+t2orvEbFB8EYmmSIbfam1CjhhYWIV7diWBXWilGjrXH7zxIrpgbG22wWwfkEAu8TU8OB/rzIha66Tg1vQ==
dependencies:
- "@formatjs/ecma402-abstract" "2.0.0"
- "@formatjs/fast-memoize" "2.2.0"
- "@formatjs/icu-messageformat-parser" "2.7.8"
- "@formatjs/intl-displaynames" "6.6.8"
- "@formatjs/intl-listformat" "7.5.7"
- intl-messageformat "10.5.14"
- tslib "^2.4.0"
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/intl-localematcher" "0.5.8"
+ tslib "2"
-"@formatjs/ts-transformer@3.13.14":
- version "3.13.14"
- resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.13.14.tgz#1c183157cf3a6fbc128c0c492fbf6cd4a2e55a7f"
- integrity sha512-TP/R54lxQ9Drzzimxrrt6yBT/xBofTgYl5wSTpyKe3Aq9vIBVcFmS6EOqycj0X34KGu3EpDPGO0ng8ZQZGLIFg==
- dependencies:
- "@formatjs/icu-messageformat-parser" "2.7.8"
- "@types/json-stable-stringify" "^1.0.32"
- "@types/node" "14 || 16 || 17"
- chalk "^4.0.0"
- json-stable-stringify "^1.0.1"
- tslib "^2.4.0"
+"@formatjs/intl-pluralrules@^5.2.5":
+ version "5.3.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.3.5.tgz#df6bb644e9703b5d2466618d412b96cce42be554"
+ integrity sha512-ahtSZ82E5yEVbHAm22jbIOxtB4nPlAS3xMsbdEkwO1ZXEi2mOsiPFpDJ5F5Duq6uSggldHHh1kcKUjDLgGb1vg==
+ dependencies:
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/intl-localematcher" "0.5.8"
+ tslib "2"
+
+"@formatjs/intl@2.10.15":
+ version "2.10.15"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.10.15.tgz#c592507512d7827c760b74bb8afc37629f89523a"
+ integrity sha512-i6+xVqT+6KCz7nBfk4ybMXmbKO36tKvbMKtgFz9KV+8idYFyFbfwKooYk8kGjyA5+T5f1kEPQM5IDLXucTAQ9g==
+ dependencies:
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/fast-memoize" "2.2.3"
+ "@formatjs/icu-messageformat-parser" "2.9.4"
+ "@formatjs/intl-displaynames" "6.8.5"
+ "@formatjs/intl-listformat" "7.7.5"
+ intl-messageformat "10.7.7"
+ tslib "2"
+
+"@formatjs/ts-transformer@3.13.23":
+ version "3.13.23"
+ resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.13.23.tgz#df03323fbb3f2c9393084fbcab1106aa279199e4"
+ integrity sha512-9ufpij2uHlc/yzb2WDOswaslTQQ7nOIE7aDLWErmc7Kpm5uPU6MihSuEa//DVoNoOD+fywYkbqsZnDjvXeLuAQ==
+ dependencies:
+ "@formatjs/icu-messageformat-parser" "2.9.4"
+ "@types/json-stable-stringify" "1"
+ "@types/node" "14 || 16 || 17 || 18 || 20 || 22"
+ chalk "4"
+ json-stable-stringify "1"
+ tslib "2"
typescript "5"
"@graphql-tools/batch-execute@^7.1.2":
@@ -3863,12 +3631,12 @@
resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861"
integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==
-"@humanwhocodes/config-array@^0.11.14":
- version "0.11.14"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
- integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
+"@humanwhocodes/config-array@^0.13.0":
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748"
+ integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
dependencies:
- "@humanwhocodes/object-schema" "^2.0.2"
+ "@humanwhocodes/object-schema" "^2.0.3"
debug "^4.3.1"
minimatch "^3.0.5"
@@ -3891,7 +3659,7 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
-"@humanwhocodes/object-schema@^2.0.2":
+"@humanwhocodes/object-schema@^2.0.3":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
@@ -3901,44 +3669,38 @@
resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c"
integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==
-"@inquirer/confirm@^3.0.0":
- version "3.1.22"
- resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.22.tgz#23990624c11f60c6f7a5b0558c7505c35076a037"
- integrity sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==
+"@inquirer/confirm@^5.0.0":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.0.2.tgz#2b9dcf6b7da5f518c74abe4aeaf3173253d83c93"
+ integrity sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==
dependencies:
- "@inquirer/core" "^9.0.10"
- "@inquirer/type" "^1.5.2"
+ "@inquirer/core" "^10.1.0"
+ "@inquirer/type" "^3.0.1"
-"@inquirer/core@^9.0.10":
- version "9.0.10"
- resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.0.10.tgz#4270191e2ad3bea6223530a093dd9479bcbc7dd0"
- integrity sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA==
+"@inquirer/core@^10.1.0":
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.0.tgz#c5fdc34c4cafd7248da29a3c3b3120fe6e1c45be"
+ integrity sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==
dependencies:
- "@inquirer/figures" "^1.0.5"
- "@inquirer/type" "^1.5.2"
- "@types/mute-stream" "^0.0.4"
- "@types/node" "^22.1.0"
- "@types/wrap-ansi" "^3.0.0"
+ "@inquirer/figures" "^1.0.8"
+ "@inquirer/type" "^3.0.1"
ansi-escapes "^4.3.2"
- cli-spinners "^2.9.2"
cli-width "^4.1.0"
- mute-stream "^1.0.0"
+ mute-stream "^2.0.0"
signal-exit "^4.1.0"
strip-ansi "^6.0.1"
wrap-ansi "^6.2.0"
yoctocolors-cjs "^2.1.2"
-"@inquirer/figures@^1.0.5":
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.5.tgz#57f9a996d64d3e3345d2a3ca04d36912e94f8790"
- integrity sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==
+"@inquirer/figures@^1.0.8":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.8.tgz#d9e414a1376a331a0e71b151fea27c48845788b0"
+ integrity sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==
-"@inquirer/type@^1.5.2":
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.2.tgz#15f5e4a4dae02c4203650cb07c8a000cdd423939"
- integrity sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==
- dependencies:
- mute-stream "^1.0.0"
+"@inquirer/type@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.1.tgz#619ce9f65c3e114d8e39c41822bed3440d20b478"
+ integrity sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
@@ -4366,16 +4128,16 @@
resolved "https://registry.yarnpkg.com/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz#9ceecc94b49fbaa15666e38ae8587f64acce007d"
integrity sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==
-"@mswjs/interceptors@^0.29.0":
- version "0.29.1"
- resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.29.1.tgz#e77fc58b5188569041d0440b25c9e9ebb1ccd60a"
- integrity sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==
+"@mswjs/interceptors@^0.37.0":
+ version "0.37.1"
+ resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.37.1.tgz#fe30692c18318b0dba8aa36b390cb0a482fd81a7"
+ integrity sha512-SvE+tSpcX884RJrPCskXxoS965Ky/pYABDEhWW6oeSRhpUDLrS5nTvT5n1LLSDVDYvty4imVmXsy+3/ROVuknA==
dependencies:
"@open-draft/deferred-promise" "^2.2.0"
"@open-draft/logger" "^0.3.0"
"@open-draft/until" "^2.0.0"
is-node-process "^1.2.0"
- outvariant "^1.2.1"
+ outvariant "^1.4.3"
strict-event-emitter "^0.5.1"
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
@@ -4464,9 +4226,9 @@
config-chain "^1.1.11"
"@polka/url@^1.0.0-next.24":
- version "1.0.0-next.25"
- resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817"
- integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==
+ version "1.0.0-next.28"
+ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73"
+ integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==
"@react-hook/latest@1.0.3", "@react-hook/latest@^1.0.2":
version "1.0.3"
@@ -4505,7 +4267,7 @@
"@rollup/pluginutils" "^5.0.1"
graphql-tag "^2.12.6"
-"@rollup/pluginutils@5.1.0", "@rollup/pluginutils@^5.0.1":
+"@rollup/pluginutils@5.1.0":
version "5.1.0"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0"
integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==
@@ -4514,6 +4276,20 @@
estree-walker "^2.0.2"
picomatch "^2.3.1"
+"@rollup/pluginutils@^5.0.1":
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.3.tgz#3001bf1a03f3ad24457591f2c259c8e514e0dbdf"
+ integrity sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==
+ dependencies:
+ "@types/estree" "^1.0.0"
+ estree-walker "^2.0.2"
+ picomatch "^4.0.2"
+
+"@rtsao/scc@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
+ integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
+
"@rushstack/eslint-patch@^1.3.3":
version "1.10.4"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz#427d5549943a9c6fce808e39ea64dbe60d4047f1"
@@ -4528,6 +4304,15 @@
"@sentry/types" "7.117.0"
"@sentry/utils" "7.117.0"
+"@sentry-internal/feedback@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-7.119.1.tgz#98285dc9dba0ab62369d758124901b00faf58697"
+ integrity sha512-EPyW6EKZmhKpw/OQUPRkTynXecZdYl4uhZwdZuGqnGMAzswPOgQvFrkwsOuPYvoMfXqCH7YuRqyJrox3uBOrTA==
+ dependencies:
+ "@sentry/core" "7.119.1"
+ "@sentry/types" "7.119.1"
+ "@sentry/utils" "7.119.1"
+
"@sentry-internal/replay-canvas@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-7.117.0.tgz#d6b3b711453c88e040f31ebab1d4bc627b4a6505"
@@ -4538,6 +4323,16 @@
"@sentry/types" "7.117.0"
"@sentry/utils" "7.117.0"
+"@sentry-internal/replay-canvas@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-7.119.1.tgz#b1413fb37734d609b0745ac24d49ddf9d63b9c51"
+ integrity sha512-O/lrzENbMhP/UDr7LwmfOWTjD9PLNmdaCF408Wx8SDuj7Iwc+VasGfHg7fPH4Pdr4nJON6oh+UqoV4IoG05u+A==
+ dependencies:
+ "@sentry/core" "7.119.1"
+ "@sentry/replay" "7.119.1"
+ "@sentry/types" "7.119.1"
+ "@sentry/utils" "7.119.1"
+
"@sentry-internal/tracing@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.117.0.tgz#c7d2357dae8d7ea2bc130e4513ac4ffc8dc7553c"
@@ -4547,6 +4342,15 @@
"@sentry/types" "7.117.0"
"@sentry/utils" "7.117.0"
+"@sentry-internal/tracing@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.119.1.tgz#500d50d451bfd0ce6b185e9f112208229739ab03"
+ integrity sha512-cI0YraPd6qBwvUA3wQdPGTy8PzAoK0NZiaTN1LM3IczdPegehWOaEG5GVTnpGnTsmBAzn1xnBXNBhgiU4dgcrQ==
+ dependencies:
+ "@sentry/core" "7.119.1"
+ "@sentry/types" "7.119.1"
+ "@sentry/utils" "7.119.1"
+
"@sentry/browser@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.117.0.tgz#3030073f360974dadcf5a5f2e1542497b3be2482"
@@ -4561,6 +4365,20 @@
"@sentry/types" "7.117.0"
"@sentry/utils" "7.117.0"
+"@sentry/browser@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.119.1.tgz#260470dd7fd18de366017c3bf23a252a24d2ff05"
+ integrity sha512-aMwAnFU4iAPeLyZvqmOQaEDHt/Dkf8rpgYeJ0OEi50dmP6AjG+KIAMCXU7CYCCQDn70ITJo8QD5+KzCoZPYz0A==
+ dependencies:
+ "@sentry-internal/feedback" "7.119.1"
+ "@sentry-internal/replay-canvas" "7.119.1"
+ "@sentry-internal/tracing" "7.119.1"
+ "@sentry/core" "7.119.1"
+ "@sentry/integrations" "7.119.1"
+ "@sentry/replay" "7.119.1"
+ "@sentry/types" "7.119.1"
+ "@sentry/utils" "7.119.1"
+
"@sentry/core@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.117.0.tgz#eebdb6e700d5fbdf3102c4abfb4ff92ef79ae9a5"
@@ -4569,6 +4387,14 @@
"@sentry/types" "7.117.0"
"@sentry/utils" "7.117.0"
+"@sentry/core@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.119.1.tgz#63e949cad167a0ee5e52986c93b96ff1d6a05b57"
+ integrity sha512-YUNnH7O7paVd+UmpArWCPH4Phlb5LwrkWVqzFWqL3xPyCcTSof2RL8UmvpkTjgYJjJ+NDfq5mPFkqv3aOEn5Sw==
+ dependencies:
+ "@sentry/types" "7.119.1"
+ "@sentry/utils" "7.119.1"
+
"@sentry/integrations@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.117.0.tgz#4613dae3bc1d257c3c870461327fd4f70dbda229"
@@ -4579,6 +4405,16 @@
"@sentry/utils" "7.117.0"
localforage "^1.8.1"
+"@sentry/integrations@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.119.1.tgz#9fc17aa9fcb942fbd2fc12eecd77a0f316897960"
+ integrity sha512-CGmLEPnaBqbUleVqrmGYjRjf5/OwjUXo57I9t0KKWViq81mWnYhaUhRZWFNoCNQHns+3+GPCOMvl0zlawt+evw==
+ dependencies:
+ "@sentry/core" "7.119.1"
+ "@sentry/types" "7.119.1"
+ "@sentry/utils" "7.119.1"
+ localforage "^1.8.1"
+
"@sentry/react@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.117.0.tgz#0a6e729f5d17782a02a48728821536ede569bc8d"
@@ -4600,11 +4436,26 @@
"@sentry/types" "7.117.0"
"@sentry/utils" "7.117.0"
+"@sentry/replay@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.119.1.tgz#117cf493a3008a39943b7d571d451c6218542847"
+ integrity sha512-4da+ruMEipuAZf35Ybt2StBdV1S+oJbSVccGpnl9w6RoeQoloT4ztR6ML3UcFDTXeTPT1FnHWDCyOfST0O7XMw==
+ dependencies:
+ "@sentry-internal/tracing" "7.119.1"
+ "@sentry/core" "7.119.1"
+ "@sentry/types" "7.119.1"
+ "@sentry/utils" "7.119.1"
+
"@sentry/types@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.117.0.tgz#c4d89aba487c05f4e5cbfa2f1c65180b536393b4"
integrity sha512-5dtdulcUttc3F0Te7ekZmpSp/ebt/CA71ELx0uyqVGjWsSAINwskFD77sdcjqvZWek//WjiYX1+GRKlpJ1QqsA==
+"@sentry/types@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.119.1.tgz#f9c3c12e217c9078a6d556c92590e42a39b750dd"
+ integrity sha512-4G2mcZNnYzK3pa2PuTq+M2GcwBRY/yy1rF+HfZU+LAPZr98nzq2X3+mJHNJoobeHRkvVh7YZMPi4ogXiIS5VNQ==
+
"@sentry/utils@7.117.0":
version "7.117.0"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.117.0.tgz#ac367a6f623bd09440b39d947437009c0ffe52b2"
@@ -4612,6 +4463,13 @@
dependencies:
"@sentry/types" "7.117.0"
+"@sentry/utils@7.119.1":
+ version "7.119.1"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.119.1.tgz#08b28fa8170987a60e149e2102e83395a95e9a89"
+ integrity sha512-ju/Cvyeu/vkfC5/XBV30UNet5kLEicZmXSyuLwZu95hEbL+foPdxN+re7pCI/eNqfe3B2vz7lvz5afLVOlQ2Hg==
+ dependencies:
+ "@sentry/types" "7.119.1"
+
"@sheerun/mutationobserver-shim@0.3.3":
version "0.3.3"
resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25"
@@ -4766,84 +4624,84 @@
"@svgr/plugin-jsx" "^6.5.1"
"@svgr/plugin-svgo" "^6.5.1"
-"@swc/core-darwin-arm64@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.22.tgz#2ce216c4bb61627ff9689213e690ffc64ed02114"
- integrity sha512-B2Bh2W+C7ALdGwDxRWAJ+UtNExfozvwyayGiNkbR3wmDKXXeQfhGM5MK+QYUWKu7UQ6ATq69OyZrxofDobKUug==
-
-"@swc/core-darwin-x64@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.7.22.tgz#78d028d72756193a1bedf3cc0766aede1b290878"
- integrity sha512-s34UQntnQ6tL9hS9aX3xG7OfGhpmy05FEEndbHaooGO8O+L5k8uWxhE5KhYCOC0N803sGdZg6YZmKtYrWN/YxA==
-
-"@swc/core-linux-arm-gnueabihf@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.22.tgz#f95e45179e362dd5cfc3c9b8083af33e430195d9"
- integrity sha512-SE69+oos1jLOXx5YdMH//Qc5zQc2xYukajB+0BWmkcFd/S/cCanGWYtdSzYausm8af2Fw1hPJMNIfndJLnBDFw==
-
-"@swc/core-linux-arm64-gnu@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.22.tgz#8058a7c18385cadf56ca7d2db4d6fa41e52f4bd3"
- integrity sha512-59FzDW/ojgiTj4dlnv3Z3ESuVlzhSAq9X12CNYh4/WTCNA8BoJqOnWMRQKspWtoNlnVviFLMvpek0pGXHndEBA==
-
-"@swc/core-linux-arm64-musl@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.22.tgz#8d29b9574ad3ff615fcba85b6e661d510f48186e"
- integrity sha512-cMQMI8YRO/XR3OrYuiUlWksNsJOZSkA6gSLNyH6eHTw+FOAzv05oJ4SFYe6s1WesrOqRwhpez6y5H6OIP/EKzg==
-
-"@swc/core-linux-x64-gnu@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.22.tgz#ad863612d32c00ec28b3dc3fc1a8418ca9c94f2b"
- integrity sha512-639kA7MXrWqWYfwuSJ+XTg21VYb/5o99R1zJrndoEjEX6m7Wza/sXssQKU5jbbkPoSEKVKNP3n/gazLWiUKgiQ==
-
-"@swc/core-linux-x64-musl@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.22.tgz#421740384a738631b1bbc6202eeb5489ed5e356b"
- integrity sha512-f3zfGgY8EJQUOk3ve25ZTkNkhB/kHo9QlN2r+0exaE1g9W7X8IS6J8pWzF3hJrV2P9dBi6ofMOt+opVA89JKHA==
-
-"@swc/core-win32-arm64-msvc@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.22.tgz#ba62979f394faabe8a4c964e5590169269d8170c"
- integrity sha512-p/Fav5U+LtTJD/tbbS0dKK8SVVAhXo5Jdm1TDeBPJ4BEIVguYBZEXgD3CW9wY4K34g1hscpiz2Q2rktfhFj1+A==
-
-"@swc/core-win32-ia32-msvc@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.22.tgz#7fe30501e853298a552c2bd89306cc41d15f95c8"
- integrity sha512-HbmfasaCNTqeCTvDjleYj+jJZQ6MlraiVOdhW55KtbA9mAVQdPBq6DDAvR7VOero3wUNYUM/e36otFKgEJI5Rg==
-
-"@swc/core-win32-x64-msvc@1.7.22":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.22.tgz#8be5c1f89c61c0d6412093398274b3cbc1b4b52f"
- integrity sha512-lppIveE+hpe7WXny/9cUT+T6sBM/ND0E+dviKWJ5jFBISj2KWomlSJGUjYEsRGJVPnTEc8uOlKK7etmXBhQx9A==
+"@swc/core-darwin-arm64@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.2.tgz#98b60a56229c4341c1263723f985e04f3f82d499"
+ integrity sha512-nETmsCoY29krTF2PtspEgicb3tqw7Ci5sInTI03EU5zpqYbPjoPH99BVTjj0OsF53jP5MxwnLI5Hm21lUn1d6A==
+
+"@swc/core-darwin-x64@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.9.2.tgz#6bb1be573878acf42aa6abd6b602ef0136cc00de"
+ integrity sha512-9gD+bwBz8ZByjP6nZTXe/hzd0tySIAjpDHgkFiUrc+5zGF+rdTwhcNrzxNHJmy6mw+PW38jqII4uspFHUqqxuQ==
+
+"@swc/core-linux-arm-gnueabihf@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.9.2.tgz#e63f57f2e214f06d711bed830d53af0597749647"
+ integrity sha512-kYq8ief1Qrn+WmsTWAYo4r+Coul4dXN6cLFjiPZ29Cv5pyU+GFvSPAB4bEdMzwy99rCR0u2P10UExaeCjurjvg==
+
+"@swc/core-linux-arm64-gnu@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.9.2.tgz#cb26240fe5769c1675ac75717ec836e99a7f7e93"
+ integrity sha512-n0W4XiXlmEIVqxt+rD3ZpkogsEWUk1jJ+i5bQNgB+1JuWh0fBE8c/blDgTQXa0GB5lTPVDZQussgdNOCnAZwiA==
+
+"@swc/core-linux-arm64-musl@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.9.2.tgz#0e4733e4e4398bee0c030a4e97279f78a65d4e61"
+ integrity sha512-8xzrOmsyCC1zrx2Wzx/h8dVsdewO1oMCwBTLc1gSJ/YllZYTb04pNm6NsVbzUX2tKddJVRgSJXV10j/NECLwpA==
+
+"@swc/core-linux-x64-gnu@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.9.2.tgz#6b4b86d06537004cc4477915b67f7d94d1b6ba33"
+ integrity sha512-kZrNz/PjRQKcchWF6W292jk3K44EoVu1ad5w+zbS4jekIAxsM8WwQ1kd+yjUlN9jFcF8XBat5NKIs9WphJCVXg==
+
+"@swc/core-linux-x64-musl@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.9.2.tgz#d6de84dbdcf69b1fdb45c8ae232b7d23ba92c7e2"
+ integrity sha512-TTIpR4rjMkhX1lnFR+PSXpaL83TrQzp9znRdp2TzYrODlUd/R20zOwSo9vFLCyH6ZoD47bccY7QeGZDYT3nlRg==
+
+"@swc/core-win32-arm64-msvc@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.9.2.tgz#a5c477f0296e499890f55cfaa7c0100152b1900b"
+ integrity sha512-+Eg2d4icItKC0PMjZxH7cSYFLWk0aIp94LNmOw6tPq0e69ax6oh10upeq0D1fjWsKLmOJAWEvnXlayZcijEXDw==
+
+"@swc/core-win32-ia32-msvc@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.9.2.tgz#66bbfea8cfcf6b602b8fb0d9ee788e92c8a736ed"
+ integrity sha512-nLWBi4vZDdM/LkiQmPCakof8Dh1/t5EM7eudue04V1lIcqx9YHVRS3KMwEaCoHLGg0c312Wm4YgrWQd9vwZ5zQ==
+
+"@swc/core-win32-x64-msvc@1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.9.2.tgz#f609fefac8f412b445cb0a2bfec73a657e41d4db"
+ integrity sha512-ik/k+JjRJBFkXARukdU82tSVx0CbExFQoQ78qTO682esbYXzjdB5eLVkoUbwen299pnfr88Kn4kyIqFPTje8Xw==
"@swc/core@^1.5.7":
- version "1.7.22"
- resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.7.22.tgz#fe7d515bba08fdd29937eae6dc40077459634087"
- integrity sha512-Asn79WKqyjEuO2VEeSnVjn2YiRMToRhFJwOsQeqftBvwWMn1FGUuzVcXtkQFBk37si8Gh2Vkk/+p0u4K5NxDig==
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.9.2.tgz#226bdc5033ba0af85c0bf814b16bdc1df0070d35"
+ integrity sha512-dYyEkO6mRYtZFpnOsnYzv9rY69fHAHoawYOjGOEcxk9WYtaJhowMdP/w6NcOKnz2G7GlZaenjkzkMa6ZeQeMsg==
dependencies:
"@swc/counter" "^0.1.3"
- "@swc/types" "^0.1.12"
+ "@swc/types" "^0.1.15"
optionalDependencies:
- "@swc/core-darwin-arm64" "1.7.22"
- "@swc/core-darwin-x64" "1.7.22"
- "@swc/core-linux-arm-gnueabihf" "1.7.22"
- "@swc/core-linux-arm64-gnu" "1.7.22"
- "@swc/core-linux-arm64-musl" "1.7.22"
- "@swc/core-linux-x64-gnu" "1.7.22"
- "@swc/core-linux-x64-musl" "1.7.22"
- "@swc/core-win32-arm64-msvc" "1.7.22"
- "@swc/core-win32-ia32-msvc" "1.7.22"
- "@swc/core-win32-x64-msvc" "1.7.22"
+ "@swc/core-darwin-arm64" "1.9.2"
+ "@swc/core-darwin-x64" "1.9.2"
+ "@swc/core-linux-arm-gnueabihf" "1.9.2"
+ "@swc/core-linux-arm64-gnu" "1.9.2"
+ "@swc/core-linux-arm64-musl" "1.9.2"
+ "@swc/core-linux-x64-gnu" "1.9.2"
+ "@swc/core-linux-x64-musl" "1.9.2"
+ "@swc/core-win32-arm64-msvc" "1.9.2"
+ "@swc/core-win32-ia32-msvc" "1.9.2"
+ "@swc/core-win32-x64-msvc" "1.9.2"
"@swc/counter@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
-"@swc/types@^0.1.12":
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.12.tgz#7f632c06ab4092ce0ebd046ed77ff7557442282f"
- integrity sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==
+"@swc/types@^0.1.15":
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.15.tgz#9a3b3873d93382750b823aaeabca787bd3fa7c96"
+ integrity sha512-XKaZ+dzDIQ9Ot9o89oJQ/aluI17+VvUnIpYJTcZtvv1iYX6MzHh3Ik2CSR7MdPKpPwfZXHBeCingb2b4PoDVdw==
dependencies:
"@swc/counter" "^0.1.3"
@@ -4935,6 +4793,13 @@
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708"
integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==
+"@types/axios@^0.14.4":
+ version "0.14.4"
+ resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.4.tgz#174e3a05fe7677f13bc719f0d2a427f5defacedf"
+ integrity sha512-9JgOaunvQdsQ/qW2OPmE5+hCeUB52lQSolecrFrthct55QekhmXEwT203s20RL+UHtCQc15y3VXpby9E7Kkh/g==
+ dependencies:
+ axios "*"
+
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.12", "@types/babel__core@^7.1.14", "@types/babel__core@^7.20.5":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
@@ -5008,6 +4873,11 @@
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
+"@types/debounce-promise@^3.1.6":
+ version "3.1.9"
+ resolved "https://registry.yarnpkg.com/@types/debounce-promise/-/debounce-promise-3.1.9.tgz#b59346fe5c24636ebe0fb88f2f7e41b888b1cd7c"
+ integrity sha512-awNxydYSU+E2vL7EiOAMtiSOfL5gUM5X4YSE2A92qpxDJQ/rXz6oMPYBFDcDywlUmvIDI6zsqgq17cGm5CITQw==
+
"@types/dompurify@^2.4.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.4.0.tgz#fd9706392a88e0e0e6d367f3588482d817df0ab9"
@@ -5015,7 +4885,7 @@
dependencies:
"@types/trusted-types" "*"
-"@types/eslint-scope@^3.7.3":
+"@types/eslint-scope@^3.7.7":
version "3.7.7"
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5"
integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==
@@ -5031,22 +4901,42 @@
"@types/estree" "*"
"@types/json-schema" "*"
-"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5":
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
- integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5", "@types/estree@^1.0.6":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
+ integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
-"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33":
- version "4.19.5"
- resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6"
- integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==
+"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz#3c9997ae9d00bc236e45c6374e84f2596458d9db"
+ integrity sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==
dependencies:
"@types/node" "*"
"@types/qs" "*"
"@types/range-parser" "*"
"@types/send" "*"
-"@types/express@*", "@types/express@^4.17.13":
+"@types/express-serve-static-core@^4.17.33":
+ version "4.19.6"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267"
+ integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+ "@types/send" "*"
+
+"@types/express@*":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.0.tgz#13a7d1f75295e90d19ed6e74cab3678488eaa96c"
+ integrity sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^5.0.0"
+ "@types/qs" "*"
+ "@types/serve-static" "*"
+
+"@types/express@^4.17.13":
version "4.17.21"
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
@@ -5056,11 +4946,12 @@
"@types/qs" "*"
"@types/serve-static" "*"
-"@types/fs-extra@^9.0.1":
- version "9.0.13"
- resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45"
- integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==
+"@types/fs-extra@9 || 10 || 11":
+ version "11.0.4"
+ resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.4.tgz#e16a863bb8843fba8c5004362b5a73e17becca45"
+ integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==
dependencies:
+ "@types/jsonfile" "*"
"@types/node" "*"
"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3":
@@ -5075,7 +4966,7 @@
resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64"
integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==
-"@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1":
+"@types/hoist-non-react-statics@3", "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1":
version "3.3.5"
resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494"
integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==
@@ -5125,9 +5016,9 @@
"@types/istanbul-lib-report" "*"
"@types/jest@*":
- version "29.5.12"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544"
- integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==
+ version "29.5.14"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5"
+ integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==
dependencies:
expect "^29.0.0"
pretty-format "^29.0.0"
@@ -5146,33 +5037,33 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
-"@types/json-stable-stringify@^1.0.32":
- version "1.0.36"
- resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.36.tgz#fe6c6001a69ff8160a772da08779448a333c7ddd"
- integrity sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==
+"@types/json-stable-stringify@1":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz#41393e6b7a9a67221607346af4a79783aeb28aea"
+ integrity sha512-ESTsHWB72QQq+pjUFIbEz9uSCZppD31YrVkbt2rnUciTYEvcwN6uZIhX5JZeBHqRlFJ41x/7MewCs7E2Qux6Cg==
"@types/json5@^0.0.29":
version "0.0.29"
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
+"@types/jsonfile@*":
+ version "6.1.4"
+ resolved "https://registry.yarnpkg.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702"
+ integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==
+ dependencies:
+ "@types/node" "*"
+
"@types/lodash@^4.14.198", "@types/lodash@^4.17.0":
- version "4.17.7"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612"
- integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==
+ version "4.17.13"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.13.tgz#786e2d67cfd95e32862143abe7463a7f90c300eb"
+ integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==
"@types/mime@^1":
version "1.3.5"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
-"@types/mute-stream@^0.0.4":
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478"
- integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==
- dependencies:
- "@types/node" "*"
-
"@types/node-fetch@2.6.11":
version "2.6.11"
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24"
@@ -5188,17 +5079,12 @@
dependencies:
"@types/node" "*"
-"@types/node@*", "@types/node@^22.1.0":
- version "22.5.1"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.1.tgz#de01dce265f6b99ed32b295962045d10b5b99560"
- integrity sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==
+"@types/node@*", "@types/node@14 || 16 || 17 || 18 || 20 || 22":
+ version "22.9.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365"
+ integrity sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==
dependencies:
- undici-types "~6.19.2"
-
-"@types/node@14 || 16 || 17":
- version "17.0.45"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190"
- integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
+ undici-types "~6.19.8"
"@types/parse-json@^4.0.0":
version "4.0.2"
@@ -5219,14 +5105,14 @@
kleur "^3.0.3"
"@types/prop-types@*", "@types/prop-types@^15.7.5":
- version "15.7.12"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
- integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
+ version "15.7.13"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451"
+ integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==
"@types/qs@*":
- version "6.9.15"
- resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce"
- integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==
+ version "6.9.17"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.17.tgz#fc560f60946d0aeff2f914eb41679659d3310e1a"
+ integrity sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==
"@types/raf-schd@^4.0.1":
version "4.0.3"
@@ -5238,6 +5124,13 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
+"@types/react-beautiful-dnd@^13.1.3":
+ version "13.1.8"
+ resolved "https://registry.yarnpkg.com/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.8.tgz#f52d3ea07e1e19159d6c3c4a48c8da3d855e60b4"
+ integrity sha512-E3TyFsro9pQuK4r8S/OL6G99eq7p8v29sX0PM7oT8Z+PJfZvSQTx4zTQbUJ+QZXioAF0e7TGBEcA1XhYhCweyQ==
+ dependencies:
+ "@types/react" "*"
+
"@types/react-dom@<18", "@types/react-dom@<18.0.0", "@types/react-dom@^17.0.19":
version "17.0.25"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.25.tgz#e0e5b3571e1069625b3a3da2b279379aa33a0cb5"
@@ -5260,9 +5153,9 @@
"@types/react" "*"
"@types/react-redux@^7.1.20", "@types/react-redux@^7.1.26":
- version "7.1.33"
- resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.33.tgz#53c5564f03f1ded90904e3c90f77e4bd4dc20b15"
- integrity sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==
+ version "7.1.34"
+ resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.34.tgz#83613e1957c481521e6776beeac4fd506d11bd0e"
+ integrity sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==
dependencies:
"@types/hoist-non-react-statics" "^3.3.0"
"@types/react" "*"
@@ -5294,9 +5187,9 @@
"@types/react" "*"
"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@<18", "@types/react@^17", "@types/react@^17.0.80":
- version "17.0.80"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.80.tgz#a5dfc351d6a41257eb592d73d3a85d3b7dbcbb41"
- integrity sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==
+ version "17.0.83"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.83.tgz#b477c56387b74279281149dcf5ba2a1e2216d131"
+ integrity sha512-l0m4ArKJvmFtR4e8UmKrj1pB4tUgOhJITf+mADyF/p69Ts1YAR/E+G9XEM0mHXKVRa1dQNHseyyDNzeuAXfXQw==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "^0.16"
@@ -5415,15 +5308,10 @@
dependencies:
"@types/node" "*"
-"@types/wrap-ansi@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd"
- integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==
-
"@types/ws@^8.5.5":
- version "8.5.12"
- resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e"
- integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==
+ version "8.5.13"
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20"
+ integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==
dependencies:
"@types/node" "*"
@@ -5560,125 +5448,125 @@
"@types/babel__core" "^7.20.5"
react-refresh "^0.14.2"
-"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb"
- integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==
+"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6"
+ integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==
dependencies:
- "@webassemblyjs/helper-numbers" "1.11.6"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+ "@webassemblyjs/helper-numbers" "1.13.2"
+ "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
-"@webassemblyjs/floating-point-hex-parser@1.11.6":
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431"
- integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==
+"@webassemblyjs/floating-point-hex-parser@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb"
+ integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==
-"@webassemblyjs/helper-api-error@1.11.6":
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768"
- integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==
+"@webassemblyjs/helper-api-error@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7"
+ integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==
-"@webassemblyjs/helper-buffer@1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6"
- integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==
+"@webassemblyjs/helper-buffer@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b"
+ integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==
-"@webassemblyjs/helper-numbers@1.11.6":
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5"
- integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==
+"@webassemblyjs/helper-numbers@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d"
+ integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==
dependencies:
- "@webassemblyjs/floating-point-hex-parser" "1.11.6"
- "@webassemblyjs/helper-api-error" "1.11.6"
+ "@webassemblyjs/floating-point-hex-parser" "1.13.2"
+ "@webassemblyjs/helper-api-error" "1.13.2"
"@xtuc/long" "4.2.2"
-"@webassemblyjs/helper-wasm-bytecode@1.11.6":
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9"
- integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==
+"@webassemblyjs/helper-wasm-bytecode@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b"
+ integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==
-"@webassemblyjs/helper-wasm-section@1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf"
- integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==
+"@webassemblyjs/helper-wasm-section@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348"
+ integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==
dependencies:
- "@webassemblyjs/ast" "1.12.1"
- "@webassemblyjs/helper-buffer" "1.12.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
- "@webassemblyjs/wasm-gen" "1.12.1"
+ "@webassemblyjs/ast" "1.14.1"
+ "@webassemblyjs/helper-buffer" "1.14.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.13.2"
+ "@webassemblyjs/wasm-gen" "1.14.1"
-"@webassemblyjs/ieee754@1.11.6":
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a"
- integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==
+"@webassemblyjs/ieee754@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba"
+ integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==
dependencies:
"@xtuc/ieee754" "^1.2.0"
-"@webassemblyjs/leb128@1.11.6":
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7"
- integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==
+"@webassemblyjs/leb128@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0"
+ integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==
dependencies:
"@xtuc/long" "4.2.2"
-"@webassemblyjs/utf8@1.11.6":
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a"
- integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==
+"@webassemblyjs/utf8@1.13.2":
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1"
+ integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==
"@webassemblyjs/wasm-edit@^1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b"
- integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==
- dependencies:
- "@webassemblyjs/ast" "1.12.1"
- "@webassemblyjs/helper-buffer" "1.12.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
- "@webassemblyjs/helper-wasm-section" "1.12.1"
- "@webassemblyjs/wasm-gen" "1.12.1"
- "@webassemblyjs/wasm-opt" "1.12.1"
- "@webassemblyjs/wasm-parser" "1.12.1"
- "@webassemblyjs/wast-printer" "1.12.1"
-
-"@webassemblyjs/wasm-gen@1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547"
- integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==
- dependencies:
- "@webassemblyjs/ast" "1.12.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
- "@webassemblyjs/ieee754" "1.11.6"
- "@webassemblyjs/leb128" "1.11.6"
- "@webassemblyjs/utf8" "1.11.6"
-
-"@webassemblyjs/wasm-opt@1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5"
- integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==
- dependencies:
- "@webassemblyjs/ast" "1.12.1"
- "@webassemblyjs/helper-buffer" "1.12.1"
- "@webassemblyjs/wasm-gen" "1.12.1"
- "@webassemblyjs/wasm-parser" "1.12.1"
-
-"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937"
- integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==
- dependencies:
- "@webassemblyjs/ast" "1.12.1"
- "@webassemblyjs/helper-api-error" "1.11.6"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
- "@webassemblyjs/ieee754" "1.11.6"
- "@webassemblyjs/leb128" "1.11.6"
- "@webassemblyjs/utf8" "1.11.6"
-
-"@webassemblyjs/wast-printer@1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac"
- integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==
- dependencies:
- "@webassemblyjs/ast" "1.12.1"
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597"
+ integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==
+ 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"
+
+"@webassemblyjs/wasm-gen@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570"
+ integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==
+ 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"
+
+"@webassemblyjs/wasm-opt@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b"
+ integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
+ "@webassemblyjs/helper-buffer" "1.14.1"
+ "@webassemblyjs/wasm-gen" "1.14.1"
+ "@webassemblyjs/wasm-parser" "1.14.1"
+
+"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.12.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb"
+ integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==
+ 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"
+
+"@webassemblyjs/wast-printer@1.14.1":
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07"
+ integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==
+ dependencies:
+ "@webassemblyjs/ast" "1.14.1"
"@xtuc/long" "4.2.2"
"@wry/caches@^1.0.0":
@@ -5738,7 +5626,7 @@ abort-controller@3.0.0:
dependencies:
event-target-shim "^5.0.0"
-accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
+accepts@~1.3.4, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
@@ -5778,9 +5666,9 @@ acorn-walk@^7.1.1:
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
acorn-walk@^8.0.0, acorn-walk@^8.0.2:
- version "8.3.3"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e"
- integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==
+ version "8.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
+ integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
dependencies:
acorn "^8.11.0"
@@ -5789,10 +5677,10 @@ acorn@^7.1.1, acorn@^7.4.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.0.4, acorn@^8.1.0, acorn@^8.11.0, acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0:
- version "8.12.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
- integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
+acorn@^8.0.4, acorn@^8.1.0, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0:
+ version "8.14.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
+ integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
address@^1.0.1, address@^1.1.2:
version "1.2.2"
@@ -5903,9 +5791,9 @@ ansi-regex@^5.0.1:
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-regex@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
- integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654"
+ integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
ansi-styles@^3.2.1:
version "3.2.1"
@@ -5956,19 +5844,17 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-aria-query@5.1.3, aria-query@~5.1.3:
+aria-query@5.1.3:
version "5.1.3"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
dependencies:
deep-equal "^2.0.5"
-aria-query@^5.0.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
- integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
- dependencies:
- dequal "^2.0.3"
+aria-query@^5.0.0, aria-query@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59"
+ integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==
array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1:
version "1.0.1"
@@ -5988,7 +5874,7 @@ array-flatten@1.1.1:
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
-array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8:
+array-includes@^3.1.6, array-includes@^3.1.8:
version "3.1.8"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d"
integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
@@ -6040,7 +5926,7 @@ array.prototype.findlast@^1.2.5:
es-object-atoms "^1.0.0"
es-shim-unscopables "^1.0.2"
-array.prototype.findlastindex@^1.2.3:
+array.prototype.findlastindex@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d"
integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
@@ -6107,13 +5993,6 @@ astral-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-async-mutex@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.5.0.tgz#353c69a0b9e75250971a64ac203b0ebfddd75482"
- integrity sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==
- dependencies:
- tslib "^2.4.0"
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -6143,17 +6022,24 @@ available-typed-arrays@^1.0.7:
dependencies:
possible-typed-array-names "^1.0.0"
-axe-core@^4.9.1:
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59"
- integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==
+axe-core@^4.10.0:
+ version "4.10.2"
+ resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.2.tgz#85228e3e1d8b8532a27659b332e39b7fa0e022df"
+ integrity sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==
-axobject-query@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1"
- integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==
+axios@*, axios@^1.7.7:
+ version "1.7.7"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f"
+ integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==
dependencies:
- deep-equal "^2.0.5"
+ follow-redirects "^1.15.6"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
+axobject-query@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee"
+ integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==
babel-eslint@^10.1.0:
version "10.1.0"
@@ -6261,12 +6147,12 @@ babel-plugin-macros@^3.0.1, babel-plugin-macros@^3.1.0:
resolve "^1.19.0"
babel-plugin-polyfill-corejs2@^0.4.10:
- version "0.4.11"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33"
- integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==
+ version "0.4.12"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz#ca55bbec8ab0edeeef3d7b8ffd75322e210879a9"
+ integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==
dependencies:
"@babel/compat-data" "^7.22.6"
- "@babel/helper-define-polyfill-provider" "^0.6.2"
+ "@babel/helper-define-polyfill-provider" "^0.6.3"
semver "^6.3.1"
babel-plugin-polyfill-corejs3@^0.10.6:
@@ -6278,11 +6164,11 @@ babel-plugin-polyfill-corejs3@^0.10.6:
core-js-compat "^3.38.0"
babel-plugin-polyfill-regenerator@^0.6.1:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e"
- integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz#abeb1f3f1c762eace37587f42548b08b57789bc8"
+ integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.6.2"
+ "@babel/helper-define-polyfill-provider" "^0.6.3"
babel-plugin-preval@^5.1.0:
version "5.1.0"
@@ -6366,10 +6252,10 @@ binary-extensions@^2.0.0:
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
-body-parser@1.20.2:
- version "1.20.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
- integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
+body-parser@1.20.3:
+ version "1.20.3"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
+ integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
dependencies:
bytes "3.1.2"
content-type "~1.0.5"
@@ -6379,15 +6265,15 @@ body-parser@1.20.2:
http-errors "2.0.0"
iconv-lite "0.4.24"
on-finished "2.4.1"
- qs "6.11.0"
+ qs "6.13.0"
raw-body "2.5.2"
type-is "~1.6.18"
unpipe "1.0.0"
bonjour-service@^1.0.11:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02"
- integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722"
+ integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==
dependencies:
fast-deep-equal "^3.1.3"
multicast-dns "^7.2.5"
@@ -6417,15 +6303,15 @@ browser-process-hrtime@^1.0.0:
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
-browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.23.1, browserslist@^4.23.3:
- version "4.23.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800"
- integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==
+browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.2:
+ version "4.24.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580"
+ integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==
dependencies:
- caniuse-lite "^1.0.30001646"
- electron-to-chromium "^1.5.4"
+ caniuse-lite "^1.0.30001669"
+ electron-to-chromium "^1.5.41"
node-releases "^2.0.18"
- update-browserslist-db "^1.1.0"
+ update-browserslist-db "^1.1.1"
bser@2.1.1:
version "2.1.1"
@@ -6537,12 +6423,12 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646:
- version "1.0.30001655"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz#0ce881f5a19a2dcfda2ecd927df4d5c1684b982f"
- integrity sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669:
+ version "1.0.30001680"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz#5380ede637a33b9f9f1fc6045ea99bd142f3da5e"
+ integrity sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==
-chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+chalk@4, chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -6625,9 +6511,9 @@ ci-info@^3.2.0:
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
cjs-module-lexer@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz#677de7ed7efff67cc40c9bf1897fea79d41b5215"
- integrity sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g==
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170"
+ integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==
classnames@^2.3.2:
version "2.5.1"
@@ -6641,11 +6527,6 @@ clean-css@^5.2.2:
dependencies:
source-map "~0.6.0"
-cli-spinners@^2.9.2:
- version "2.9.2"
- resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41"
- integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==
-
cli-width@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
@@ -6734,10 +6615,10 @@ combined-stream@^1.0.8:
dependencies:
delayed-stream "~1.0.0"
-commander@8, commander@^8.3.0:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
- integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+commander@12:
+ version "12.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
+ integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
commander@^2.19.0, commander@^2.20.0:
version "2.20.3"
@@ -6749,6 +6630,11 @@ commander@^7.2.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+commander@^8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+ integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+
common-tags@1.8.2:
version "1.8.2"
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
@@ -6759,7 +6645,7 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
-compressible@~2.0.16:
+compressible@~2.0.18:
version "2.0.18"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
@@ -6767,16 +6653,16 @@ compressible@~2.0.16:
mime-db ">= 1.43.0 < 2"
compression@^1.7.4:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
- integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.5.tgz#fdd256c0a642e39e314c478f6c2cd654edd74c93"
+ integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==
dependencies:
- accepts "~1.3.5"
- bytes "3.0.0"
- compressible "~2.0.16"
+ bytes "3.1.2"
+ compressible "~2.0.18"
debug "2.6.9"
+ negotiator "~0.6.4"
on-headers "~1.0.2"
- safe-buffer "5.1.2"
+ safe-buffer "5.2.1"
vary "~1.1.2"
compute-scroll-into-view@^1.0.17:
@@ -6844,32 +6730,32 @@ cookie-signature@1.0.6:
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
-cookie@0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
- integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
+cookie@0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
+ integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
-cookie@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
- integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+cookie@^0.7.2:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
+ integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
-core-js-compat@^3.37.1, core-js-compat@^3.38.0:
- version "3.38.1"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09"
- integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==
+core-js-compat@^3.38.0, core-js-compat@^3.38.1:
+ version "3.39.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.39.0.tgz#b12dccb495f2601dc860bdbe7b4e3ffa8ba63f61"
+ integrity sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==
dependencies:
- browserslist "^4.23.3"
+ browserslist "^4.24.2"
core-js-pure@^3.23.3, core-js-pure@^3.30.2:
- version "3.38.1"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.38.1.tgz#e8534062a54b7221344884ba9b52474be495ada3"
- integrity sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==
+ version "3.39.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.39.0.tgz#aa0d54d70a15bdc13e7c853db87c10abc30d68f3"
+ integrity sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==
core-js@^3.32.2:
- version "3.38.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.38.1.tgz#aa375b79a286a670388a1a363363d53677c0383e"
- integrity sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==
+ version "3.39.0"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.39.0.tgz#57f7647f4d2d030c32a72ea23a0555b2eaa30f83"
+ integrity sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==
core-util-is@~1.0.0:
version "1.0.3"
@@ -6954,14 +6840,21 @@ cross-spawn@^5.1.0:
which "^1.2.9"
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
- integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
+ integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies:
path-key "^3.1.0"
shebang-command "^2.0.0"
which "^2.0.1"
+css-box-model@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1"
+ integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==
+ dependencies:
+ tiny-invariant "^1.0.6"
+
css-declaration-sorter@^6.3.1:
version "6.4.1"
resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71"
@@ -7215,6 +7108,11 @@ debounce-fn@4.0.0:
dependencies:
mimic-fn "^3.0.0"
+debounce-promise@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/debounce-promise/-/debounce-promise-3.1.2.tgz#320fb8c7d15a344455cd33cee5ab63530b6dc7c5"
+ integrity sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==
+
debounce@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
@@ -7228,11 +7126,11 @@ debug@2.6.9, debug@^2.6.0:
ms "2.0.0"
debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b"
- integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
+ integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
dependencies:
- ms "2.1.2"
+ ms "^2.1.3"
debug@^3.2.7:
version "3.2.7"
@@ -7362,11 +7260,6 @@ dequal@1.0.0:
resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.0.tgz#41c6065e70de738541c82cdbedea5292277a017e"
integrity sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw==
-dequal@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
- integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
-
destroy@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
@@ -7531,20 +7424,10 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
dependencies:
domelementtype "^2.2.0"
-dompurify@2.4.7:
- version "2.4.7"
- resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.7.tgz#277adeb40a2c84be2d42a8bcd45f582bfa4d0cfc"
- integrity sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==
-
-dompurify@2.5.5:
- version "2.5.5"
- resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.5.5.tgz#0540a05b8020d4691ee9c6083fb23b2c919276fc"
- integrity sha512-FgbqnEPiv5Vdtwt6Mxl7XSylttCC03cqP5ldNT2z+Kj0nLxPHJH4+1Cyf5Jasxhw93Rl4Oo11qRoUV72fmya2Q==
-
-dompurify@^2.4.7:
- version "2.5.6"
- resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.5.6.tgz#8402b501611eaa7fb3786072297fcbe2787f8592"
- integrity sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==
+dompurify@2.5.7, dompurify@^2.4.7:
+ version "2.5.7"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.5.7.tgz#6e0d36b9177db5a99f18ade1f28579db5ab839d7"
+ integrity sha512-2q4bEI+coQM8f5ez7kt2xclg1XsecaV9ASJk/54vwlfRRNQfDqJz2pzQ8t0Ix/ToBpXlVjrRIx7pFC/o8itG2Q==
domutils@1.5.1:
version "1.5.1"
@@ -7617,10 +7500,10 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-electron-to-chromium@^1.5.4:
- version "1.5.13"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6"
- integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==
+electron-to-chromium@^1.5.41:
+ version "1.5.63"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.63.tgz#69444d592fbbe628d129866c2355691ea93eda3e"
+ integrity sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==
emittery@^0.10.2:
version "0.10.2"
@@ -7662,7 +7545,12 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-enhanced-resolve@^5.15.0, enhanced-resolve@^5.17.0, enhanced-resolve@^5.17.1:
+encodeurl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
+enhanced-resolve@^5.15.0, enhanced-resolve@^5.17.1:
version "5.17.1"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15"
integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==
@@ -7688,7 +7576,7 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
-entities@^4.4.0:
+entities@^4.4.0, entities@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
@@ -7772,9 +7660,9 @@ error-stack-parser@^2.0.6:
stackframe "^1.3.4"
es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3:
- version "1.23.3"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
- integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
+ version "1.23.5"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.5.tgz#f4599a4946d57ed467515ed10e4f157289cd52fb"
+ integrity sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==
dependencies:
array-buffer-byte-length "^1.0.1"
arraybuffer.prototype.slice "^1.0.3"
@@ -7791,7 +7679,7 @@ es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23
function.prototype.name "^1.1.6"
get-intrinsic "^1.2.4"
get-symbol-description "^1.0.2"
- globalthis "^1.0.3"
+ globalthis "^1.0.4"
gopd "^1.0.1"
has-property-descriptors "^1.0.2"
has-proto "^1.0.3"
@@ -7807,10 +7695,10 @@ es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23
is-string "^1.0.7"
is-typed-array "^1.1.13"
is-weakref "^1.0.2"
- object-inspect "^1.13.1"
+ object-inspect "^1.13.3"
object-keys "^1.1.1"
object.assign "^4.1.5"
- regexp.prototype.flags "^1.5.2"
+ regexp.prototype.flags "^1.5.3"
safe-array-concat "^1.1.2"
safe-regex-test "^1.0.3"
string.prototype.trim "^1.2.9"
@@ -7855,10 +7743,10 @@ es-get-iterator@^1.1.3:
isarray "^2.0.5"
stop-iteration-iterator "^1.0.0"
-es-iterator-helpers@^1.0.19:
- version "1.0.19"
- resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8"
- integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==
+es-iterator-helpers@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz#2f1a3ab998b30cb2d10b195b587c6d9ebdebf152"
+ integrity sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
@@ -7867,12 +7755,13 @@ es-iterator-helpers@^1.0.19:
es-set-tostringtag "^2.0.3"
function-bind "^1.1.2"
get-intrinsic "^1.2.4"
- globalthis "^1.0.3"
+ globalthis "^1.0.4"
+ gopd "^1.0.1"
has-property-descriptors "^1.0.2"
has-proto "^1.0.3"
has-symbols "^1.0.3"
internal-slot "^1.0.7"
- iterator.prototype "^1.1.2"
+ iterator.prototype "^1.1.3"
safe-array-concat "^1.1.2"
es-module-lexer@^1.2.1:
@@ -7940,7 +7829,7 @@ esbuild@^0.18.10:
"@esbuild/win32-ia32" "0.18.20"
"@esbuild/win32-x64" "0.18.20"
-escalade@^3.1.1, escalade@^3.1.2:
+escalade@^3.1.1, escalade@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
@@ -8028,10 +7917,10 @@ eslint-import-resolver-typescript@^3.6.0, eslint-import-resolver-typescript@^3.6
is-bun-module "^1.0.2"
is-glob "^4.0.3"
-eslint-module-utils@^2.8.0, eslint-module-utils@^2.8.1:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz#2ecad69d71e1fa81f17f7f24d5d3e46b168de663"
- integrity sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==
+eslint-module-utils@^2.12.0, eslint-module-utils@^2.8.1:
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b"
+ integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==
dependencies:
debug "^3.2.7"
@@ -8061,26 +7950,28 @@ eslint-plugin-graphql@^4.0.0:
lodash.without "^4.4.0"
eslint-plugin-import@^2.22.0, eslint-plugin-import@^2.28.1:
- version "2.29.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
- integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
+ version "2.31.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7"
+ integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==
dependencies:
- array-includes "^3.1.7"
- array.prototype.findlastindex "^1.2.3"
+ "@rtsao/scc" "^1.1.0"
+ array-includes "^3.1.8"
+ array.prototype.findlastindex "^1.2.5"
array.prototype.flat "^1.3.2"
array.prototype.flatmap "^1.3.2"
debug "^3.2.7"
doctrine "^2.1.0"
eslint-import-resolver-node "^0.3.9"
- eslint-module-utils "^2.8.0"
- hasown "^2.0.0"
- is-core-module "^2.13.1"
+ eslint-module-utils "^2.12.0"
+ hasown "^2.0.2"
+ is-core-module "^2.15.1"
is-glob "^4.0.3"
minimatch "^3.1.2"
- object.fromentries "^2.0.7"
- object.groupby "^1.0.1"
- object.values "^1.1.7"
+ object.fromentries "^2.0.8"
+ object.groupby "^1.0.3"
+ object.values "^1.2.0"
semver "^6.3.1"
+ string.prototype.trimend "^1.0.8"
tsconfig-paths "^3.15.0"
eslint-plugin-jest-dom@^4.0.3:
@@ -8100,26 +7991,25 @@ eslint-plugin-jest@^27.2.3:
"@typescript-eslint/utils" "^5.10.0"
eslint-plugin-jsx-a11y@^6.7.1:
- version "6.9.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz#67ab8ff460d4d3d6a0b4a570e9c1670a0a8245c8"
- integrity sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==
+ version "6.10.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483"
+ integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==
dependencies:
- aria-query "~5.1.3"
+ aria-query "^5.3.2"
array-includes "^3.1.8"
array.prototype.flatmap "^1.3.2"
ast-types-flow "^0.0.8"
- axe-core "^4.9.1"
- axobject-query "~3.1.1"
+ axe-core "^4.10.0"
+ axobject-query "^4.1.0"
damerau-levenshtein "^1.0.8"
emoji-regex "^9.2.2"
- es-iterator-helpers "^1.0.19"
hasown "^2.0.2"
jsx-ast-utils "^3.3.5"
language-tags "^1.0.9"
minimatch "^3.1.2"
object.fromentries "^2.0.8"
safe-regex-test "^1.0.3"
- string.prototype.includes "^2.0.0"
+ string.prototype.includes "^2.0.1"
eslint-plugin-node@^11.1.0:
version "11.1.0"
@@ -8151,16 +8041,16 @@ eslint-plugin-react-hooks@^4.1.0, eslint-plugin-react-hooks@^4.6.0:
integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==
eslint-plugin-react@^7.20.6, eslint-plugin-react@^7.33.2:
- version "7.35.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41"
- integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==
+ version "7.37.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz#cd0935987876ba2900df2f58339f6d92305acc7a"
+ integrity sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==
dependencies:
array-includes "^3.1.8"
array.prototype.findlast "^1.2.5"
array.prototype.flatmap "^1.3.2"
array.prototype.tosorted "^1.1.4"
doctrine "^2.1.0"
- es-iterator-helpers "^1.0.19"
+ es-iterator-helpers "^1.1.0"
estraverse "^5.3.0"
hasown "^2.0.2"
jsx-ast-utils "^2.4.1 || ^3.0.0"
@@ -8304,15 +8194,15 @@ eslint@^7.7.0:
v8-compile-cache "^2.0.3"
eslint@^8.57.0:
- version "8.57.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
- integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
+ version "8.57.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9"
+ integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.6.1"
"@eslint/eslintrc" "^2.1.4"
- "@eslint/js" "8.57.0"
- "@humanwhocodes/config-array" "^0.11.14"
+ "@eslint/js" "8.57.1"
+ "@humanwhocodes/config-array" "^0.13.0"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
"@ungap/structured-clone" "^1.2.0"
@@ -8476,36 +8366,36 @@ expect@^29.0.0:
jest-util "^29.7.0"
express@^4.17.3:
- version "4.19.2"
- resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
- integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==
+ version "4.21.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281"
+ integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
- body-parser "1.20.2"
+ body-parser "1.20.3"
content-disposition "0.5.4"
content-type "~1.0.4"
- cookie "0.6.0"
+ cookie "0.7.1"
cookie-signature "1.0.6"
debug "2.6.9"
depd "2.0.0"
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
etag "~1.8.1"
- finalhandler "1.2.0"
+ finalhandler "1.3.1"
fresh "0.5.2"
http-errors "2.0.0"
- merge-descriptors "1.0.1"
+ merge-descriptors "1.0.3"
methods "~1.1.2"
on-finished "2.4.1"
parseurl "~1.3.3"
- path-to-regexp "0.1.7"
+ path-to-regexp "0.1.10"
proxy-addr "~2.0.7"
- qs "6.11.0"
+ qs "6.13.0"
range-parser "~1.2.1"
safe-buffer "5.2.1"
- send "0.18.0"
- serve-static "1.15.0"
+ send "0.19.0"
+ serve-static "1.16.2"
setprototypeof "1.2.0"
statuses "2.0.1"
type-is "~1.6.18"
@@ -8542,7 +8432,7 @@ fast-equals@2.0.4, fast-equals@^2.0.0:
resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-2.0.4.tgz#3add9410585e2d7364c2deeb6a707beadb24b927"
integrity sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w==
-fast-glob@^3.1.1, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.2:
+fast-glob@3, fast-glob@^3.1.1, fast-glob@^3.2.9, fast-glob@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
@@ -8564,9 +8454,9 @@ fast-levenshtein@^2.0.6:
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fast-uri@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134"
- integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241"
+ integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==
fast-url-parser@1.1.3:
version "1.1.3"
@@ -8623,13 +8513,13 @@ fill-range@^7.1.1:
dependencies:
to-regex-range "^5.0.1"
-finalhandler@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
- integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+finalhandler@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
+ integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
dependencies:
debug "2.6.9"
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
on-finished "2.4.1"
parseurl "~1.3.3"
@@ -8692,14 +8582,14 @@ flat-cache@^3.0.4:
rimraf "^3.0.2"
flatted@^3.2.9:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
- integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27"
+ integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
-follow-redirects@^1.0.0:
- version "1.15.6"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
- integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+follow-redirects@^1.0.0, follow-redirects@^1.15.6:
+ version "1.15.9"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
+ integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
for-each@^0.3.3:
version "0.3.3"
@@ -8732,7 +8622,7 @@ form-data-encoder@^2.1.2:
resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5"
integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==
-form-data@4.0.0, form-data@^4.0.0:
+form-data@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
@@ -8742,9 +8632,18 @@ form-data@4.0.0, form-data@^4.0.0:
mime-types "^2.1.12"
form-data@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
- integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.2.tgz#83ad9ced7c03feaad97e293d6f6091011e1659c8"
+ integrity sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+form-data@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
+ integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
@@ -8779,7 +8678,7 @@ fresh@0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
-fs-extra@10, fs-extra@10.1.0:
+fs-extra@10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
@@ -8788,6 +8687,15 @@ fs-extra@10, fs-extra@10.1.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
+"fs-extra@9 || 10 || 11":
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
+ integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -8863,9 +8771,9 @@ get-caller-file@^2.0.5:
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
get-east-asian-width@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e"
- integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389"
+ integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==
get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
version "1.2.4"
@@ -8898,9 +8806,9 @@ get-symbol-description@^1.0.2:
get-intrinsic "^1.2.4"
get-tsconfig@^4.7.5:
- version "4.8.0"
- resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.0.tgz#125dc13a316f61650a12b20c97c11b8fd996fedd"
- integrity sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==
+ version "4.8.1"
+ resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471"
+ integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==
dependencies:
resolve-pkg-maps "^1.0.0"
@@ -8963,7 +8871,7 @@ globals@^13.19.0, globals@^13.20.0, globals@^13.6.0, globals@^13.9.0:
dependencies:
type-fest "^0.20.2"
-globalthis@1.0.4, globalthis@^1.0.3:
+globalthis@1.0.4, globalthis@^1.0.3, globalthis@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
@@ -9078,6 +8986,11 @@ graphql@16.8.2:
resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.2.tgz#54771c7ff195da913f5e70af8044a026d32eca2a"
integrity sha512-cvVIBILwuoSyD54U4cF/UXDh5yAobhNV/tPygI4lZhgOIJQE/WLWC4waBRb4I6bDVYb3OVx3lfHbaQOEoUD5sg==
+graphql@^16.8.1:
+ version "16.9.0"
+ resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f"
+ integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==
+
gzip-size@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
@@ -9173,7 +9086,7 @@ history@4.10.1, history@^4.9.0:
tiny-warning "^1.0.0"
value-equal "^1.0.1"
-hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2:
+hoist-non-react-statics@3, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@@ -9323,9 +9236,9 @@ http-proxy-agent@^5.0.0:
debug "4"
http-proxy-middleware@^2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
- integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6"
+ integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==
dependencies:
"@types/http-proxy" "^1.17.8"
http-proxy "^1.18.1"
@@ -9484,15 +9397,15 @@ interpret@^1.0.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-intl-messageformat@10.5.14:
- version "10.5.14"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.14.tgz#e5bb373f8a37b88fbe647d7b941f3ab2a37ed00a"
- integrity sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==
+intl-messageformat@10.7.7:
+ version "10.7.7"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.7.7.tgz#42085e1664729d02240a03346e31a2540b1112a0"
+ integrity sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA==
dependencies:
- "@formatjs/ecma402-abstract" "2.0.0"
- "@formatjs/fast-memoize" "2.2.0"
- "@formatjs/icu-messageformat-parser" "2.7.8"
- tslib "^2.4.0"
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/fast-memoize" "2.2.3"
+ "@formatjs/icu-messageformat-parser" "2.9.4"
+ tslib "2"
intl@1.2.5:
version "1.2.5"
@@ -9565,9 +9478,9 @@ is-boolean-object@^1.0.1, is-boolean-object@^1.1.0:
has-tostringtag "^1.0.0"
is-bun-module@^1.0.2:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.1.0.tgz#a66b9830869437f6cdad440ba49ab6e4dc837269"
- integrity sha512-4mTAVPlrXpaN3jtF0lsnPCMGnq4+qZjVIKq0HCpfcqf8OC1SM5oATCIAPM5V5FN05qp2NNnFndphmdZS9CV3hA==
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.2.1.tgz#495e706f42e29f086fd5fe1ac3c51f106062b9fc"
+ integrity sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==
dependencies:
semver "^7.6.3"
@@ -9583,7 +9496,7 @@ is-ci@^2.0.0:
dependencies:
ci-info "^2.0.0"
-is-core-module@^2.13.0, is-core-module@^2.13.1:
+is-core-module@^2.13.0, is-core-module@^2.15.1:
version "2.15.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37"
integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==
@@ -9886,10 +9799,10 @@ iterall@^1.2.1:
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea"
integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==
-iterator.prototype@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0"
- integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==
+iterator.prototype@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.3.tgz#016c2abe0be3bbdb8319852884f60908ac62bf9c"
+ integrity sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==
dependencies:
define-properties "^1.2.1"
get-intrinsic "^1.2.1"
@@ -10269,9 +10182,9 @@ jest-resolve@^27.5.1:
slash "^3.0.0"
jest-runner-eslint@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/jest-runner-eslint/-/jest-runner-eslint-2.2.0.tgz#defa330b06f47cde663de04373e3ae0ffdb1c55f"
- integrity sha512-uR0kS/PCwCybIFh1yvbJSr3ajmusrueO8vnA4H3ItTpKCoYpQ9k2j2COrR1rdb4MnnbVBczrodCChrcJ/Hq3AQ==
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/jest-runner-eslint/-/jest-runner-eslint-2.2.1.tgz#3cb214f84eeab3848af81c5842359e82073a3aef"
+ integrity sha512-BSAB65hGhtr/Kmb7tSkfqFmK9LYwCMK8L1xcp+XaSToPFqr7sY1jleMZUeDhV0ITA33pW+JUCx5a02veVD2Q2w==
dependencies:
chalk "^4.0.0"
cosmiconfig "^7.0.0"
@@ -10663,15 +10576,10 @@ jsdom@^21.1.2:
ws "^8.13.0"
xml-name-validator "^4.0.0"
-jsesc@^2.5.1:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
- integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-
-jsesc@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
- integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
+jsesc@^3.0.2, jsesc@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e"
+ integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==
json-buffer@3.0.1:
version "3.0.1"
@@ -10708,7 +10616,7 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-json-stable-stringify@^1.0.1:
+json-stable-stringify@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454"
integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==
@@ -10809,9 +10717,9 @@ language-tags@^1.0.9:
language-subtag-registry "^0.3.20"
launch-editor@^2.6.0:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.8.1.tgz#3bda72af213ec9b46b170e39661916ec66c2f463"
- integrity sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA==
+ version "2.9.1"
+ resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047"
+ integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==
dependencies:
picocolors "^1.0.0"
shell-quote "^1.8.1"
@@ -11031,7 +10939,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
-loud-rejection@^2.2.0:
+loud-rejection@2:
version "2.2.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-2.2.0.tgz#4255eb6e9c74045b0edc021fa7397ab655a8517c"
integrity sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==
@@ -11122,7 +11030,7 @@ memfs@^3.1.2, memfs@^3.4.3:
dependencies:
fs-monkey "^1.0.4"
-memoize-one@5.2.1:
+memoize-one@5.2.1, memoize-one@^5.1.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e"
integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==
@@ -11132,10 +11040,10 @@ memoize-one@^6.0.0:
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
- integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
+merge-descriptors@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
+ integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
merge-stream@^2.0.0:
version "2.0.0"
@@ -11269,9 +11177,9 @@ moment-locales-webpack-plugin@1.2.0:
lodash.difference "^4.5.0"
moment-timezone@^0.5.40:
- version "0.5.45"
- resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c"
- integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==
+ version "0.5.46"
+ resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.46.tgz#a21aa6392b3c6b3ed916cd5e95858a28d893704a"
+ integrity sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==
dependencies:
moment "^2.29.4"
@@ -11295,36 +11203,33 @@ ms@2.0.0:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-ms@2.1.3, ms@^2.1.1:
+ms@2.1.3, ms@^2.1.1, ms@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
msw@^2.2.3:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/msw/-/msw-2.4.1.tgz#bb0ead0311de39d5847ff0836b9dd67e7bba02b8"
- integrity sha512-HXcoQPzYTwEmVk+BGIcRa0vLabBT+J20SSSeYh/QfajaK5ceA6dlD4ZZjfz2dqGEq4vRNCPLP6eXsB94KllPFg==
+ version "2.6.5"
+ resolved "https://registry.yarnpkg.com/msw/-/msw-2.6.5.tgz#0d4ec95e6170aff26fcb0734ec1258c1e2bb617d"
+ integrity sha512-PnlnTpUlOrj441kYQzzFhzMzMCGFT6a2jKUBG7zSpLkYS5oh8Arrbc0dL8/rNAtxaoBy0EVs2mFqj2qdmWK7lQ==
dependencies:
- "@bundled-es-modules/cookie" "^2.0.0"
+ "@bundled-es-modules/cookie" "^2.0.1"
"@bundled-es-modules/statuses" "^1.0.1"
"@bundled-es-modules/tough-cookie" "^0.1.6"
- "@inquirer/confirm" "^3.0.0"
- "@mswjs/interceptors" "^0.29.0"
+ "@inquirer/confirm" "^5.0.0"
+ "@mswjs/interceptors" "^0.37.0"
+ "@open-draft/deferred-promise" "^2.2.0"
"@open-draft/until" "^2.1.0"
"@types/cookie" "^0.6.0"
"@types/statuses" "^2.0.4"
chalk "^4.1.2"
+ graphql "^16.8.1"
headers-polyfill "^4.0.2"
is-node-process "^1.2.0"
- outvariant "^1.4.2"
- path-to-regexp "^6.2.0"
+ outvariant "^1.4.3"
+ path-to-regexp "^6.3.0"
strict-event-emitter "^0.5.1"
- type-fest "^4.9.0"
+ type-fest "^4.26.1"
yargs "^17.7.2"
multicast-dns@^7.2.5:
@@ -11335,10 +11240,10 @@ multicast-dns@^7.2.5:
dns-packet "^5.2.2"
thunky "^1.0.2"
-mute-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
- integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
+mute-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b"
+ integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==
nanoid@^3.3.7:
version "3.3.7"
@@ -11370,6 +11275,11 @@ negotiator@0.6.3:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+negotiator@~0.6.4:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7"
+ integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
+
neo-async@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
@@ -11459,19 +11369,19 @@ nth-check@~1.0.1:
boolbase "~1.0.0"
nwsapi@^2.2.0, nwsapi@^2.2.2, nwsapi@^2.2.4:
- version "2.2.12"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.12.tgz#fb6af5c0ec35b27b4581eb3bbad34ec9e5c696f8"
- integrity sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==
+ version "2.2.13"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.13.tgz#e56b4e98960e7a040e5474536587e599c4ff4655"
+ integrity sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==
object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-object-inspect@^1.13.1, object-inspect@^1.7.0:
- version "1.13.2"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff"
- integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==
+object-inspect@^1.13.1, object-inspect@^1.13.3, object-inspect@^1.7.0:
+ version "1.13.3"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a"
+ integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==
object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.5:
version "1.1.6"
@@ -11515,7 +11425,7 @@ object.fromentries@^2.0.7, object.fromentries@^2.0.8:
es-abstract "^1.23.2"
es-object-atoms "^1.0.0"
-object.groupby@^1.0.1:
+object.groupby@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e"
integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
@@ -11616,7 +11526,7 @@ optionator@^0.9.1, optionator@^0.9.3:
type-check "^0.4.0"
word-wrap "^1.2.5"
-outvariant@^1.2.1, outvariant@^1.4.0, outvariant@^1.4.2:
+outvariant@^1.4.0, outvariant@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.3.tgz#221c1bfc093e8fec7075497e7799fdbf43d14873"
integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==
@@ -11727,11 +11637,11 @@ parse5@^3.0.1:
"@types/node" "*"
parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
- integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a"
+ integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==
dependencies:
- entities "^4.4.0"
+ entities "^4.5.0"
parseurl@~1.3.2, parseurl@~1.3.3:
version "1.3.3"
@@ -11776,10 +11686,10 @@ path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
- integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
+path-to-regexp@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b"
+ integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==
path-to-regexp@2.2.1:
version "2.2.1"
@@ -11787,16 +11697,16 @@ path-to-regexp@2.2.1:
integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==
path-to-regexp@^1.7.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
- integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24"
+ integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==
dependencies:
isarray "0.0.1"
-path-to-regexp@^6.2.0:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36"
- integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==
+path-to-regexp@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4"
+ integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==
path-type@^4.0.0:
version "4.0.0"
@@ -11808,16 +11718,21 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
-picocolors@^1.0.0, picocolors@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
- integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
+picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+picomatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
+ integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
+
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -12005,20 +11920,20 @@ postcss-modules-extract-imports@^3.1.0:
integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==
postcss-modules-local-by-default@^4.0.5:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz#f1b9bd757a8edf4d8556e8d0f4f894260e3df78f"
- integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz#b0db6bc81ffc7bdc52eb0f84d6ca0bedf0e36d21"
+ integrity sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==
dependencies:
icss-utils "^5.0.0"
- postcss-selector-parser "^6.0.2"
+ postcss-selector-parser "^7.0.0"
postcss-value-parser "^4.1.0"
postcss-modules-scope@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz#a43d28289a169ce2c15c00c4e64c0858e43457d5"
- integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c"
+ integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==
dependencies:
- postcss-selector-parser "^6.0.4"
+ postcss-selector-parser "^7.0.0"
postcss-modules-values@^4.0.0:
version "4.0.0"
@@ -12121,7 +12036,7 @@ postcss-reporter@7.1.0:
picocolors "^1.0.0"
thenby "^1.3.4"
-postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
+postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
version "6.1.2"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
@@ -12129,6 +12044,14 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector
cssesc "^3.0.0"
util-deprecate "^1.0.2"
+postcss-selector-parser@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz#41bd8b56f177c093ca49435f65731befe25d6b9c"
+ integrity sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
postcss-svgo@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
@@ -12159,13 +12082,13 @@ postcss@8.4.38:
source-map-js "^1.2.0"
postcss@^8.3.5, postcss@^8.4.27, postcss@^8.4.33:
- version "8.4.41"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681"
- integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==
+ version "8.4.49"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19"
+ integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
dependencies:
nanoid "^3.3.7"
- picocolors "^1.0.1"
- source-map-js "^1.2.0"
+ picocolors "^1.1.1"
+ source-map-js "^1.2.1"
prelude-ls@^1.2.1:
version "1.2.1"
@@ -12282,40 +12205,47 @@ proxy-addr@~2.0.7:
forwarded "0.2.0"
ipaddr.js "1.9.1"
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
psl@^1.1.33:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
- integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.10.0.tgz#1450f7e16f922c3beeb7bd9db3f312635018fa15"
+ integrity sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==
+ dependencies:
+ punycode "^2.3.1"
punycode@^1.3.2, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
-punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0:
+punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0, punycode@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
-qs@6.11.0:
- version "6.11.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
- integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
- dependencies:
- side-channel "^1.0.4"
-
-qs@^6.12.3:
+qs@6.13.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
dependencies:
side-channel "^1.0.6"
+qs@^6.12.3:
+ version "6.13.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.1.tgz#3ce5fc72bd3a8171b85c99b93c65dd20b7d1b16e"
+ integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==
+ dependencies:
+ side-channel "^1.0.6"
+
qss@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/qss/-/qss-2.0.3.tgz#630b38b120931b52d04704f3abfb0f861604a9ec"
@@ -12341,7 +12271,7 @@ quick-lru@^5.1.1:
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
-raf-schd@^4.0.3:
+raf-schd@^4.0.2, raf-schd@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a"
integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==
@@ -12403,6 +12333,19 @@ rc@1.2.8:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
+react-beautiful-dnd@13.1.1:
+ version "13.1.1"
+ resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz#b0f3087a5840920abf8bb2325f1ffa46d8c4d0a2"
+ integrity sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==
+ dependencies:
+ "@babel/runtime" "^7.9.2"
+ css-box-model "^1.2.0"
+ memoize-one "^5.1.1"
+ raf-schd "^4.0.2"
+ react-redux "^7.2.0"
+ redux "^4.0.4"
+ use-memo-one "^1.1.1"
+
react-dev-utils@12.0.1:
version "12.0.1"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73"
@@ -12465,20 +12408,20 @@ react-from-dom@0.6.2:
integrity sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==
react-intl@^6.3.2, react-intl@^6.6.2:
- version "6.6.8"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.6.8.tgz#cb60c90502d0025caf9f86ec298cdc4348da17c2"
- integrity sha512-M0pkhzcgV31h++2901BiRXWl69hp2zPyLxRrSwRjd1ErXbNoubz/f4M6DrRTd4OiSUrT4ajRQzrmtS5plG4FtA==
- dependencies:
- "@formatjs/ecma402-abstract" "2.0.0"
- "@formatjs/icu-messageformat-parser" "2.7.8"
- "@formatjs/intl" "2.10.4"
- "@formatjs/intl-displaynames" "6.6.8"
- "@formatjs/intl-listformat" "7.5.7"
- "@types/hoist-non-react-statics" "^3.3.1"
+ version "6.8.9"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.8.9.tgz#ef36b2a19a0eb97afbeaeab9679273fcbf2ea261"
+ integrity sha512-TUfj5E7lyUDvz/GtovC9OMh441kBr08rtIbgh3p0R8iF3hVY+V2W9Am7rb8BpJ/29BH1utJOqOOhmvEVh3GfZg==
+ dependencies:
+ "@formatjs/ecma402-abstract" "2.2.4"
+ "@formatjs/icu-messageformat-parser" "2.9.4"
+ "@formatjs/intl" "2.10.15"
+ "@formatjs/intl-displaynames" "6.8.5"
+ "@formatjs/intl-listformat" "7.7.5"
+ "@types/hoist-non-react-statics" "3"
"@types/react" "16 || 17 || 18"
- hoist-non-react-statics "^3.3.2"
- intl-messageformat "10.5.14"
- tslib "^2.4.0"
+ hoist-non-react-statics "3"
+ intl-messageformat "10.7.7"
+ tslib "2"
react-is@17.0.2, react-is@^17.0.1, react-is@^17.0.2:
version "17.0.2"
@@ -12510,7 +12453,7 @@ react-modal@3.16.1:
react-lifecycles-compat "^3.0.0"
warning "^4.0.3"
-react-redux@7.2.9:
+react-redux@7.2.9, react-redux@^7.2.0:
version "7.2.9"
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d"
integrity sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==
@@ -12575,6 +12518,21 @@ react-select@5.8.0:
react-transition-group "^4.3.0"
use-isomorphic-layout-effect "^1.1.2"
+react-select@5.8.1:
+ version "5.8.1"
+ resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.1.tgz#3284a93b7633b5e893306b2a8007ea0f793e62b9"
+ integrity sha512-RT1CJmuc+ejqm5MPgzyZujqDskdvB9a9ZqrdnVLsvAHjJ3Tj0hELnLeVPQlmYdVKCdCpxanepl6z7R5KhXhWzg==
+ dependencies:
+ "@babel/runtime" "^7.12.0"
+ "@emotion/cache" "^11.4.0"
+ "@emotion/react" "^11.8.1"
+ "@floating-ui/dom" "^1.0.1"
+ "@types/react-transition-group" "^4.4.0"
+ memoize-one "^6.0.0"
+ prop-types "^15.6.0"
+ react-transition-group "^4.3.0"
+ use-isomorphic-layout-effect "^1.1.2"
+
react-test-renderer@^16.0.0-0:
version "16.14.0"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae"
@@ -12689,7 +12647,7 @@ redux@4.2.0:
dependencies:
"@babel/runtime" "^7.9.2"
-redux@^4.0.0, redux@^4.2.1:
+redux@^4.0.0, redux@^4.0.4, redux@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197"
integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==
@@ -12725,10 +12683,10 @@ reflect.ownkeys@^1.1.4:
es-set-tostringtag "^2.0.1"
globalthis "^1.0.3"
-regenerate-unicode-properties@^10.1.0:
- version "10.1.1"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480"
- integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==
+regenerate-unicode-properties@^10.2.0:
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0"
+ integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==
dependencies:
regenerate "^1.4.2"
@@ -12749,30 +12707,30 @@ regenerator-transform@^0.15.2:
dependencies:
"@babel/runtime" "^7.8.4"
-regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334"
- integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==
+regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2, regexp.prototype.flags@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42"
+ integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==
dependencies:
- call-bind "^1.0.6"
+ call-bind "^1.0.7"
define-properties "^1.2.1"
es-errors "^1.3.0"
- set-function-name "^2.0.1"
+ set-function-name "^2.0.2"
regexpp@^3.0.0, regexpp@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
-regexpu-core@^5.3.1:
- version "5.3.2"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b"
- integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==
+regexpu-core@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.1.1.tgz#b469b245594cb2d088ceebc6369dceb8c00becac"
+ integrity sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==
dependencies:
- "@babel/regjsgen" "^0.8.0"
regenerate "^1.4.2"
- regenerate-unicode-properties "^10.1.0"
- regjsparser "^0.9.1"
+ regenerate-unicode-properties "^10.2.0"
+ regjsgen "^0.8.0"
+ regjsparser "^0.11.0"
unicode-match-property-ecmascript "^2.0.0"
unicode-match-property-value-ecmascript "^2.1.0"
@@ -12790,12 +12748,17 @@ registry-url@^6.0.0:
dependencies:
rc "1.2.8"
-regjsparser@^0.9.1:
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
- integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
+regjsgen@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab"
+ integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==
+
+regjsparser@^0.11.0:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.11.2.tgz#7404ad42be00226d72bcf1f003f1f441861913d8"
+ integrity sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==
dependencies:
- jsesc "~0.5.0"
+ jsesc "~3.0.2"
rehackt@^0.1.0:
version "0.1.0"
@@ -12942,10 +12905,20 @@ rimraf@^3.0.0, rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
+rollup-plugin-visualizer@^5.12.0:
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz#661542191ce78ee4f378995297260d0c1efb1302"
+ integrity sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==
+ dependencies:
+ open "^8.4.0"
+ picomatch "^2.3.1"
+ source-map "^0.7.4"
+ yargs "^17.5.1"
+
rollup@^3.27.1:
- version "3.29.4"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
- integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
+ version "3.29.5"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54"
+ integrity sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==
optionalDependencies:
fsevents "~2.3.2"
@@ -12979,16 +12952,16 @@ safe-array-concat@^1.1.2:
has-symbols "^1.0.3"
isarray "^2.0.5"
-safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
safe-regex-test@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377"
@@ -13106,10 +13079,10 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semve
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
-send@0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
- integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
+send@0.19.0:
+ version "0.19.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
+ integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
dependencies:
debug "2.6.9"
depd "2.0.0"
@@ -13159,15 +13132,15 @@ serve-index@^1.9.1:
mime-types "~2.1.17"
parseurl "~1.3.2"
-serve-static@1.15.0:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
- integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
+serve-static@1.16.2:
+ version "1.16.2"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
+ integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
dependencies:
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
parseurl "~1.3.3"
- send "0.18.0"
+ send "0.19.0"
set-function-length@^1.2.1:
version "1.2.2"
@@ -13318,10 +13291,10 @@ sockjs@^0.3.24:
uuid "^8.3.2"
websocket-driver "^0.7.4"
-source-map-js@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
- integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+source-map-js@^1.2.0, source-map-js@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
+ integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20:
version "0.5.21"
@@ -13341,7 +13314,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@^0.7.3:
+source-map@^0.7.3, source-map@^0.7.4:
version "0.7.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
@@ -13410,9 +13383,9 @@ statuses@2.0.1, statuses@^2.0.1:
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
std-env@^3.0.1:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2"
- integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5"
+ integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==
stop-iteration-iterator@^1.0.0:
version "1.0.0"
@@ -13465,13 +13438,14 @@ string-width@^7.0.0:
get-east-asian-width "^1.0.0"
strip-ansi "^7.1.0"
-string.prototype.includes@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f"
- integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==
+string.prototype.includes@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92"
+ integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==
dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.5"
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.23.3"
string.prototype.matchall@^4.0.11:
version "4.0.11"
@@ -13748,9 +13722,9 @@ terser-webpack-plugin@5.3.10, terser-webpack-plugin@^5.3.10:
terser "^5.26.0"
terser@^5.10.0, terser@^5.26.0:
- version "5.31.6"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1"
- integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==
+ version "5.36.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e"
+ integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.8.2"
@@ -13802,7 +13776,7 @@ tiny-case@^1.0.3:
resolved "https://registry.yarnpkg.com/tiny-case/-/tiny-case-1.0.3.tgz#d980d66bc72b5d5a9ca86fb7c9ffdb9c898ddd03"
integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==
-tiny-invariant@1.3.3, tiny-invariant@^1.0.2:
+tiny-invariant@1.3.3, tiny-invariant@^1.0.2, tiny-invariant@^1.0.6:
version "1.3.3"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127"
integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==
@@ -13817,11 +13791,6 @@ tmpl@1.0.5:
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
-to-fast-properties@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
- integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
-
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -13914,16 +13883,16 @@ tsconfig-paths@^3.15.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
+tslib@2, tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
tslib@^1.8.0, tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
- integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
-
tslib@~2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
@@ -13978,10 +13947,10 @@ type-fest@^2.19.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
-type-fest@^4.9.0:
- version "4.26.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.0.tgz#703f263af10c093cd6277d079e26b9e17d517c4b"
- integrity sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==
+type-fest@^4.26.1:
+ version "4.27.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.27.0.tgz#57329aae32e7b27b942b961e3ef861f0873c4b1b"
+ integrity sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==
type-is@~1.6.18:
version "1.6.18"
@@ -14043,9 +14012,9 @@ typedarray-to-buffer@^3.1.5:
is-typedarray "^1.0.0"
typescript@5, typescript@^5.2.2, typescript@^5.4.2:
- version "5.5.4"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba"
- integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==
+ version "5.6.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b"
+ integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==
uglify-js@3.18.0:
version "3.18.0"
@@ -14067,7 +14036,7 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
-undici-types@~6.19.2:
+undici-types@~6.19.8:
version "6.19.8"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
@@ -14078,9 +14047,9 @@ unfetch@4.2.0:
integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==
unicode-canonical-property-names-ecmascript@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
- integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2"
+ integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==
unicode-match-property-ecmascript@^2.0.0:
version "2.0.0"
@@ -14091,9 +14060,9 @@ unicode-match-property-ecmascript@^2.0.0:
unicode-property-aliases-ecmascript "^2.0.0"
unicode-match-property-value-ecmascript@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
- integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71"
+ integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==
unicode-property-aliases-ecmascript@^2.0.0:
version "2.1.0"
@@ -14127,13 +14096,13 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
-update-browserslist-db@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e"
- integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==
+update-browserslist-db@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5"
+ integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==
dependencies:
- escalade "^3.1.2"
- picocolors "^1.0.1"
+ escalade "^3.2.0"
+ picocolors "^1.1.0"
uri-js@^4.2.2, uri-js@^4.4.1:
version "4.4.1"
@@ -14182,6 +14151,11 @@ use-latest@^1.2.1:
dependencies:
use-isomorphic-layout-effect "^1.1.1"
+use-memo-one@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99"
+ integrity sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==
+
use-popper@1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/use-popper/-/use-popper-1.1.6.tgz#51d578084d92dd941dda466dea4cb0c3d2c5379b"
@@ -14210,11 +14184,6 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-uuid@10.0.0:
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
- integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
-
uuid@9.0.1:
version "9.0.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
@@ -14271,10 +14240,15 @@ vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+vite-bundle-analyzer@0.12.1:
+ version "0.12.1"
+ resolved "https://registry.yarnpkg.com/vite-bundle-analyzer/-/vite-bundle-analyzer-0.12.1.tgz#0a429384ab327ad6ab08e3f0aa29e4cf0693969f"
+ integrity sha512-mIYwsDvTYCqXAUtOZIL3f7NdwWUeL/MlNFhOJzlTdcZE4pye6h06IEnOvWhnc/e+HM4oVVNxuRHZt0Rz6VO7EA==
+
vite@~4.5.3:
- version "4.5.3"
- resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.3.tgz#d88a4529ea58bae97294c7e2e6f0eab39a50fb1a"
- integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==
+ version "4.5.5"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.5.tgz#639b9feca5c0a3bfe3c60cb630ef28bf219d742e"
+ integrity sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==
dependencies:
esbuild "^0.18.10"
postcss "^8.4.27"
@@ -14429,12 +14403,11 @@ webpack-sources@^3.2.3:
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
-webpack@5.92.0:
- version "5.92.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.92.0.tgz#cc114c71e6851d220b1feaae90159ed52c876bdf"
- integrity sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==
+webpack@5.94.0:
+ version "5.94.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f"
+ integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==
dependencies:
- "@types/eslint-scope" "^3.7.3"
"@types/estree" "^1.0.5"
"@webassemblyjs/ast" "^1.12.1"
"@webassemblyjs/wasm-edit" "^1.12.1"
@@ -14443,7 +14416,7 @@ webpack@5.92.0:
acorn-import-attributes "^1.9.5"
browserslist "^4.21.10"
chrome-trace-event "^1.0.2"
- enhanced-resolve "^5.17.0"
+ enhanced-resolve "^5.17.1"
es-module-lexer "^1.2.1"
eslint-scope "5.1.1"
events "^3.2.0"
@@ -14460,17 +14433,17 @@ webpack@5.92.0:
webpack-sources "^3.2.3"
webpack@^5:
- version "5.94.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f"
- integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==
+ version "5.96.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.96.1.tgz#3676d1626d8312b6b10d0c18cc049fba7ac01f0c"
+ integrity sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==
dependencies:
- "@types/estree" "^1.0.5"
+ "@types/eslint-scope" "^3.7.7"
+ "@types/estree" "^1.0.6"
"@webassemblyjs/ast" "^1.12.1"
"@webassemblyjs/wasm-edit" "^1.12.1"
"@webassemblyjs/wasm-parser" "^1.12.1"
- acorn "^8.7.1"
- acorn-import-attributes "^1.9.5"
- browserslist "^4.21.10"
+ acorn "^8.14.0"
+ browserslist "^4.24.0"
chrome-trace-event "^1.0.2"
enhanced-resolve "^5.17.1"
es-module-lexer "^1.2.1"
@@ -14752,7 +14725,7 @@ yargs@^16.2.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
-yargs@^17.7.2:
+yargs@^17.5.1, yargs@^17.7.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
diff --git a/src/.DS_Store b/src/.DS_Store
deleted file mode 100644
index dbd07c1..0000000
Binary files a/src/.DS_Store and /dev/null differ
diff --git a/validation-service/.env.example b/validation-service/.env.example
new file mode 100644
index 0000000..563a2e2
--- /dev/null
+++ b/validation-service/.env.example
@@ -0,0 +1,5 @@
+CTP_CLIENT_ID=
+CTP_CLIENT_SECRET=
+CTP_PROJECT_KEY=
+CTP_SCOPE=
+CTP_REGION=
\ No newline at end of file
diff --git a/validation-service/.eslintignore b/validation-service/.eslintignore
new file mode 100644
index 0000000..66ba005
--- /dev/null
+++ b/validation-service/.eslintignore
@@ -0,0 +1,4 @@
+node_modules
+build/
+.nvmrc
+.env
\ No newline at end of file
diff --git a/validation-service/.eslintrc.cjs b/validation-service/.eslintrc.cjs
new file mode 100644
index 0000000..8c19aef
--- /dev/null
+++ b/validation-service/.eslintrc.cjs
@@ -0,0 +1,20 @@
+module.exports = {
+ root: true,
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ ecmaVersion: 2020,
+ },
+ plugins: ['@typescript-eslint'],
+ extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
+ rules: {
+ '@typescript-eslint/no-unused-vars': 'error',
+ 'no-undef': 'error',
+ 'no-console': 'error',
+ 'no-const-assign': 'error',
+ },
+ env: {
+ es6: true,
+ jest: true,
+ node: true, //adds things like process to global
+ },
+};
diff --git a/validation-service/.gitignore b/validation-service/.gitignore
new file mode 100644
index 0000000..2eea525
--- /dev/null
+++ b/validation-service/.gitignore
@@ -0,0 +1 @@
+.env
\ No newline at end of file
diff --git a/validation-service/.nvmrc b/validation-service/.nvmrc
new file mode 100644
index 0000000..c946e1d
--- /dev/null
+++ b/validation-service/.nvmrc
@@ -0,0 +1 @@
+v20.9.0
\ No newline at end of file
diff --git a/validation-service/.prettierrc b/validation-service/.prettierrc
new file mode 100644
index 0000000..137a280
--- /dev/null
+++ b/validation-service/.prettierrc
@@ -0,0 +1,14 @@
+{
+ "trailingComma": "es5",
+ "singleQuote": true,
+ "parser": "typescript",
+ "printWidth": 80,
+ "overrides": [
+ {
+ "files": "*.json",
+ "options": {
+ "parser": "json"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/validation-service/LICENSE b/validation-service/LICENSE
new file mode 100644
index 0000000..05574e5
--- /dev/null
+++ b/validation-service/LICENSE
@@ -0,0 +1,7 @@
+Copyright
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/validation-service/README.md b/validation-service/README.md
new file mode 100644
index 0000000..42dc47d
--- /dev/null
+++ b/validation-service/README.md
@@ -0,0 +1,23 @@
+# Validation Service
+
+This is a Node.js-Express app that exposes a single endpoint to validate and create/update custom objects in Commercetools platform. The endpoint is accessible at `/validate`
+
+## API
+
+### POST /validate
+
+Validate a custom object and create or update it in Commercetools platform.
+
+#### Request body
+
+The request body should contain the custom object to be validated and created/updated in the following format:
+```
+{
+ "container": "Configuration",
+ "key": "abandoned",
+ "value": "{\"Name\":\"123ERER\",\"Key\":\"Chevy\",\"Value\":\"\"}",
+ "schemaType": "Configuration"
+}
+```
+The value field should be a JSON string. Refere to [custom object values](https://docs.commercetools.com/api/graphql#create-product-attributes-custom-fields-and-custom-objects) for more information.
+
diff --git a/validation-service/jest.config.cjs b/validation-service/jest.config.cjs
new file mode 100644
index 0000000..f25629c
--- /dev/null
+++ b/validation-service/jest.config.cjs
@@ -0,0 +1,8 @@
+module.exports = {
+ displayName: 'Tests Typescript Application - Service',
+ moduleDirectories: ['node_modules', 'src'],
+ testMatch: ['**/tests/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],
+ preset: 'ts-jest',
+ testEnvironment: 'node',
+ setupFiles: ['./jest.setup.js']
+};
diff --git a/validation-service/jest.setup.js b/validation-service/jest.setup.js
new file mode 100644
index 0000000..6e9cead
--- /dev/null
+++ b/validation-service/jest.setup.js
@@ -0,0 +1,5 @@
+process.env.CTP_CLIENT_ID = 'FxxqwjxxxbHIdGxxxv4qRxxx';
+process.env.CTP_CLIENT_SECRET = '7gIln_xxxztzDwxt9bOiEC5cRnZiqJmX';
+process.env.CTP_PROJECT_KEY = 'us-store';
+process.env.CTP_SCOPE = 'manage_project:us-store';
+process.env.CTP_REGION = 'us-central1.gcp';
diff --git a/validation-service/package.json b/validation-service/package.json
new file mode 100644
index 0000000..7d848a0
--- /dev/null
+++ b/validation-service/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "service-typescript",
+ "description": "",
+ "version": "1.0.0",
+ "main": "index.js",
+ "private": true,
+ "scripts": {
+ "start": "node build/index.js",
+ "start:dev": "concurrently -k \"tsc --watch\" \"nodemon -q build/index.js\"",
+ "build": "rimraf ./build && tsc",
+ "lint": "eslint . --ext .ts",
+ "format": "prettier --write '**/*.{js,ts}'",
+ "test": "jest --config jest.config.cjs",
+ "test:watch": "jest --watch",
+ "connector:post-deploy": "node build/connector/post-deploy.js",
+ "connector:pre-undeploy": "node build/connector/pre-undeploy.js"
+ },
+ "author": "",
+ "license": "MIT",
+ "devDependencies": {
+ "@tsconfig/recommended": "^1.0.3",
+ "@types/cors": "^2.8.17",
+ "@types/express": "^4.17.14",
+ "@types/jest": "^29.0.3",
+ "@types/node": "^18.7.18",
+ "@types/node-fetch": "^2.6.11",
+ "@types/validator": "^13.7.10",
+ "@typescript-eslint/eslint-plugin": "^5.46.0",
+ "@typescript-eslint/parser": "^5.46.0",
+ "concurrently": "^8.2.0",
+ "eslint": "^8.46.0",
+ "jest": "^29.6.2",
+ "nodemon": "^3.0.1",
+ "prettier": "^3.0.1",
+ "rimraf": "^5.0.1",
+ "ts-jest": "^29.1.1",
+ "typescript": "^5.1.6"
+ },
+ "dependencies": {
+ "@apollo/client": "^3.11.10",
+ "@commercetools-backend/loggers": "^21.19.0",
+ "@commercetools/platform-sdk": "^4.0.0",
+ "@commercetools/sdk-client-v2": "^2.0.0",
+ "body-parser": "^1.20.2",
+ "cors": "^2.8.5",
+ "dotenv": "^16.3.1",
+ "express": "^4.18.2",
+ "graphql": "^16.9.0",
+ "graphql-request": "^7.1.2",
+ "validator": "^13.11.0"
+ },
+ "packageManager": "yarn@1.22.21"
+}
diff --git a/validation-service/src/api/success.api.ts b/validation-service/src/api/success.api.ts
new file mode 100644
index 0000000..391f758
--- /dev/null
+++ b/validation-service/src/api/success.api.ts
@@ -0,0 +1,21 @@
+import { UpdateAction } from '@commercetools/sdk-client-v2';
+import { Response } from 'express';
+import { ResponseInterfaceSuccess } from '../interfaces/response.interface';
+
+/**
+ * Send a success response to the client
+ *
+ * @param {Response} response Express response
+ * @param {number} statusCode The status code of the operation
+ * @param {Array} updateActions The update actions that were made in the process
+ * @returns Success response with 200 status code and the update actions array
+ */
+export const apiSuccess = (
+ statusCode: number,
+ result: any,
+ response: Response
+) => {
+ response.status(statusCode).json({
+ result,
+ });
+};
diff --git a/validation-service/src/client/apollo.client.ts b/validation-service/src/client/apollo.client.ts
new file mode 100644
index 0000000..8d3623f
--- /dev/null
+++ b/validation-service/src/client/apollo.client.ts
@@ -0,0 +1,81 @@
+import { DocumentNode, print } from 'graphql';
+import { readConfiguration } from '../utils/config.utils';
+
+// Get token using client credentials flow
+async function getAccessToken() {
+ const config = readConfiguration();
+ const response = await fetch(
+ `https://auth.${config.region}.commercetools.com/oauth/token`,
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ Authorization: `Basic ${Buffer.from(
+ `${config.clientId}:${config.clientSecret}`
+ ).toString('base64')}`,
+ },
+ body: `grant_type=client_credentials&scope=${config.scope}`,
+ }
+ );
+
+ const data = await response.json();
+ return data.access_token;
+}
+
+const config = readConfiguration();
+
+export const getNodeClient = async () => {
+ const accessToken = await getAccessToken();
+ return {
+ query: async ({
+ query,
+ variables,
+ }: {
+ query: DocumentNode;
+ variables?: Record;
+ }) => {
+ const response = await fetch(
+ `https://api.${config.region}.commercetools.com/${config.projectKey}/graphql`,
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ Authorization: `Bearer ${accessToken}`,
+ },
+ body: JSON.stringify({
+ query: print(query),
+ variables,
+ }),
+ }
+ );
+
+ const data = await response.json();
+ return data;
+ },
+ mutate: async ({
+ mutation,
+ variables,
+ }: {
+ mutation: DocumentNode;
+ variables?: Record;
+ }) => {
+ const response = await fetch(
+ `https://api.${config.region}.commercetools.com/${config.projectKey}/graphql`,
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ Authorization: `Bearer ${accessToken}`,
+ },
+ body: JSON.stringify({
+ query: print(mutation),
+ variables,
+ }),
+ }
+ );
+
+ const data = await response.json();
+ return data;
+ },
+ };
+};
diff --git a/validation-service/src/controllers/service.controller.ts b/validation-service/src/controllers/service.controller.ts
new file mode 100644
index 0000000..9993ef7
--- /dev/null
+++ b/validation-service/src/controllers/service.controller.ts
@@ -0,0 +1,34 @@
+/* eslint-disable @typescript-eslint/ban-ts-comment */
+import { Request, Response } from 'express';
+import { apiSuccess } from '../api/success.api';
+import CustomError from '../errors/custom.error';
+import { getNodeClient } from '../client/apollo.client';
+import { CustomObjectController } from '../shared-code';
+
+export const post = async (request: Request, response: Response) => {
+ // Deserialize the action and resource from the body
+ const { container, key, value, schemaType } = request.body;
+
+ if (!container || !key || !value || !schemaType) {
+ throw new CustomError(400, 'Bad request - Missing body parameters.');
+ }
+
+ const client = await getNodeClient();
+ const customObjectController = new CustomObjectController(client);
+
+ try {
+ const result = await customObjectController.createOrUpdateCustomObject(
+ container,
+ key,
+ value,
+ schemaType
+ );
+ apiSuccess(200, result, response);
+ return result;
+ } catch (error) {
+ response.status(400).json({
+ // @ts-ignore
+ message: error.message,
+ });
+ }
+};
diff --git a/validation-service/src/errors/custom.error.ts b/validation-service/src/errors/custom.error.ts
new file mode 100644
index 0000000..9e0215f
--- /dev/null
+++ b/validation-service/src/errors/custom.error.ts
@@ -0,0 +1,26 @@
+type ErrorItem = {
+ statusCode: number | string;
+ message: string;
+ referencedBy?: string;
+};
+
+class CustomError extends Error {
+ statusCode: number | string;
+ message: string;
+ errors?: ErrorItem[];
+
+ constructor(
+ statusCode: number | string,
+ message: string,
+ errors?: ErrorItem[]
+ ) {
+ super(message);
+ this.statusCode = statusCode;
+ this.message = message;
+ if (errors) {
+ this.errors = errors;
+ }
+ }
+}
+
+export default CustomError;
diff --git a/validation-service/src/index.ts b/validation-service/src/index.ts
new file mode 100644
index 0000000..2aeeb79
--- /dev/null
+++ b/validation-service/src/index.ts
@@ -0,0 +1,85 @@
+import cors from 'cors';
+import * as dotenv from 'dotenv';
+dotenv.config();
+
+import express, { Express } from 'express';
+import bodyParser from 'body-parser';
+
+// Import routes
+import ServiceRoutes from './routes/service.route';
+
+// Import logger
+import { logger } from './utils/logger.utils';
+
+import { readConfiguration } from './utils/config.utils';
+
+const ALLOWED_ORIGINS = [
+ 'localhost:3000',
+ 'localhost:3001',
+ 'commercetools.com',
+];
+
+// Read env variables
+readConfiguration();
+
+const PORT = 8080;
+
+// Create the express app
+const app: Express = express();
+app.disable('x-powered-by');
+
+// Define configurations
+app.use(bodyParser.json());
+app.use(bodyParser.urlencoded({ extended: true }));
+
+// CORS configuration
+const corsOptions = {
+ origin: (
+ origin: string | undefined,
+ callback: (err: Error | null, allow?: boolean) => void
+ ) => {
+ // Allow requests with no origin (like mobile apps or curl requests)
+ if (!origin) {
+ callback(null, true);
+ return;
+ }
+
+ // Extract domain from origin
+ const domain = origin.replace(/^https?:\/\//, '').split(':')[0];
+
+ // Check if domain matches any allowed origin or is a subdomain of allowed origins
+ const isAllowed = ALLOWED_ORIGINS.some((allowedOrigin) => {
+ // Remove protocol and port if present
+ const cleanAllowedOrigin = allowedOrigin
+ .replace(/^https?:\/\//, '')
+ .split(':')[0];
+
+ return (
+ domain === cleanAllowedOrigin || // Exact match
+ domain.endsWith('.' + cleanAllowedOrigin) // Subdomain match
+ );
+ });
+
+ if (isAllowed) {
+ callback(null, true);
+ } else {
+ callback(new Error('Not allowed by CORS'));
+ }
+ },
+ credentials: true, // Allow credentials
+ methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
+ allowedHeaders: ['Content-Type'],
+};
+
+// Apply CORS middleware
+app.use(cors(corsOptions));
+
+// Define routes
+app.use('/validation', ServiceRoutes);
+
+// Listen the application
+const server = app.listen(PORT, () => {
+ logger.info(`⚡️ Service application listening on port ${PORT}`);
+});
+
+export default server;
diff --git a/validation-service/src/interfaces/config.interface.ts b/validation-service/src/interfaces/config.interface.ts
new file mode 100644
index 0000000..cbaf35e
--- /dev/null
+++ b/validation-service/src/interfaces/config.interface.ts
@@ -0,0 +1,8 @@
+export interface Config {
+ clientId: string;
+ clientSecret: string;
+ projectKey: string;
+ scope: string;
+ region: string;
+ port: string;
+}
diff --git a/validation-service/src/interfaces/resource.interface.ts b/validation-service/src/interfaces/resource.interface.ts
new file mode 100644
index 0000000..0dbda1d
--- /dev/null
+++ b/validation-service/src/interfaces/resource.interface.ts
@@ -0,0 +1,2 @@
+// eslint-disable-next-line @typescript-eslint/no-empty-interface
+export interface Resource {}
diff --git a/validation-service/src/interfaces/response.interface.ts b/validation-service/src/interfaces/response.interface.ts
new file mode 100644
index 0000000..8bcaf4e
--- /dev/null
+++ b/validation-service/src/interfaces/response.interface.ts
@@ -0,0 +1,9 @@
+import { UpdateAction } from '@commercetools/sdk-client-v2';
+
+export interface ResponseInterfaceSuccess {
+ actions: Array;
+}
+
+export interface ResponseInterfaceError {
+ errors: Array;
+}
diff --git a/validation-service/src/routes/service.route.ts b/validation-service/src/routes/service.route.ts
new file mode 100644
index 0000000..fb5e663
--- /dev/null
+++ b/validation-service/src/routes/service.route.ts
@@ -0,0 +1,17 @@
+import { Router } from 'express';
+import { logger } from '../utils/logger.utils';
+import { post } from '../controllers/service.controller';
+
+const serviceRouter = Router();
+
+serviceRouter.post('/', (req, res, next) => {
+ logger.info('Service post message received');
+
+ try {
+ post(req, res);
+ } catch (error) {
+ next(error);
+ }
+});
+
+export default serviceRouter;
diff --git a/validation-service/src/shared-code/constants/map-types.ts b/validation-service/src/shared-code/constants/map-types.ts
new file mode 100644
index 0000000..ebe417e
--- /dev/null
+++ b/validation-service/src/shared-code/constants/map-types.ts
@@ -0,0 +1,17 @@
+export const referenceTypeToSingleValueMap: Record = {
+ 'cart-discount': 'cartDiscount',
+ 'product-discount': 'productDiscount',
+ 'customer-group': 'customerGroup',
+ 'discount-code': 'discountCode',
+ 'key-value-document': 'customObject',
+ 'product-type': 'productType',
+ 'tax-category': 'taxCategory',
+ 'shopping-list': 'shoppingList',
+ 'shipping-method': 'shippingMethod',
+ type: 'typeDefinition',
+ 'product-price': 'standalonePrice',
+ };
+
+ export const referenceTypeSkipKey: string[] = [
+ 'order'
+ ]
\ No newline at end of file
diff --git a/validation-service/src/shared-code/custom-object.controller.ts b/validation-service/src/shared-code/custom-object.controller.ts
new file mode 100644
index 0000000..554f50e
--- /dev/null
+++ b/validation-service/src/shared-code/custom-object.controller.ts
@@ -0,0 +1,504 @@
+import { ApolloContextValue } from '@apollo/client';
+import { AttributeSchema, CustomObject, Schema } from './types/validator';
+import Create from './queries/create-custom-object';
+import Get from './queries/get-custom-object';
+import { GraphQLClient } from './types/graphql';
+import { referenceTypeToSingleValueMap } from './constants/map-types';
+import { getEntityById } from './queries/get-entity-by-id';
+import { getEntityByKey } from './queries/get-entity-by-key';
+
+const SCHEMA_CONTAINER = 'mc-custom-object-schema';
+export class CustomObjectController {
+ private apolloClient?: GraphQLClient;
+ private context?: ApolloContextValue;
+
+ constructor(
+ apolloClient?: GraphQLClient,
+ context?: ApolloContextValue & { target: string }
+ ) {
+ this.apolloClient = apolloClient;
+ this.context = context;
+ }
+
+ async fetchCustomObject(
+ container: string,
+ key: string
+ ): Promise {
+ try {
+ const response = await this.apolloClient
+ ?.query({
+ query: Get,
+ variables: { container, key },
+ ...(this.context && { context: this.context }),
+ })
+ .then((res) => {
+ return res.data as { customObject: CustomObject };
+ });
+ return response?.customObject;
+ } catch (error) {
+ console.error('Error fetching custom object:', error);
+ return undefined;
+ }
+ }
+
+ async createOrUpdateCustomObject(
+ container: string,
+ key: string,
+ value: string,
+ schemaType: string
+ ): Promise {
+ const jsonValue = JSON.parse(value);
+ await this.validateObjectBySchemaType(jsonValue, schemaType);
+
+ const response = await this.apolloClient
+ ?.mutate({
+ mutation: Create,
+ variables: {
+ draft: {
+ container,
+ key,
+ value,
+ },
+ },
+ ...(this.context && { context: this.context }),
+ })
+ .then((res) => {
+ return res.data as CustomObject;
+ });
+
+ return response;
+ }
+
+ private async validateObjectBySchemaType(
+ value: Record,
+ schemaType: string
+ ): Promise {
+ if (schemaType === SCHEMA_CONTAINER) {
+ return;
+ }
+ const schemaObject = await this.fetchCustomObject(
+ SCHEMA_CONTAINER,
+ schemaType
+ );
+
+ if (!schemaObject) {
+ throw new Error(`Schema not found for type: ${schemaType}`);
+ }
+ await this.validateObjectSchema(schemaObject.value, value);
+ }
+
+ private async validateObjectSchema(
+ schema: Schema,
+ value: Record
+ ) {
+ for (const attributeSchema of schema.attributes) {
+ const attributeValue = value[attributeSchema.name];
+
+ if (attributeSchema.required && attributeValue === undefined) {
+ throw new Error(`Required attribute missing: ${attributeSchema.name}`);
+ }
+
+ if (attributeValue != null) {
+ await this.validateAttribute(attributeSchema, attributeValue);
+ }
+ }
+ }
+
+ public async validateAttribute(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ switch (schema.type) {
+ case 'Boolean':
+ await this.validateBoolean(schema, value);
+ break;
+ case 'String':
+ await this.validateString(schema, value);
+ break;
+ case 'LocalizedString':
+ await this.validateLocalizedString(schema, value);
+ break;
+ case 'Number':
+ await this.validateNumber(schema, value);
+ break;
+ case 'Date':
+ await this.validateDate(schema, value);
+ break;
+ case 'Enum':
+ await this.validateEnum(schema, value);
+ break;
+ case 'LocalizedEnum':
+ await this.validateLocalizedEnum(schema, value);
+ break;
+ case 'Money':
+ await this.validateMoney(schema, value);
+ break;
+ case 'Time':
+ await this.validateTime(schema, value);
+ break;
+ case 'DateTime':
+ await this.validateDateTime(schema, value);
+ break;
+ case 'Reference':
+ await this.validateReference(schema, value);
+ break;
+ case 'Object':
+ await this.validateObject(schema, value);
+ break;
+ default:
+ throw new Error(`Unsupported type for attribute: ${schema.name}`);
+ }
+ }
+
+ private async validateSet(
+ schema: AttributeSchema,
+ value: any,
+ cbFuncName: string
+ ): Promise {
+ if (!schema.required && (typeof value === 'undefined' || value === null)) {
+ return;
+ } else if (!Array.isArray(value)) {
+ throw new Error(
+ `Invalid type for set attribute: ${
+ schema.name
+ }. Expected Array, got ${typeof value}`
+ );
+ }
+ for (const item of value) {
+ // @ts-ignore
+ this[cbFuncName] &&
+ // @ts-ignore
+ (await this[cbFuncName](
+ {
+ ...schema,
+ set: false,
+ },
+ item
+ ));
+ }
+ }
+
+ private async validateBoolean(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateBoolean');
+ } else {
+ if (schema.required && typeof value !== 'boolean') {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Boolean, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateString(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateString');
+ } else {
+ if (schema.required && typeof value !== 'string') {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected String, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateNumber(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateNumber');
+ } else {
+ if (schema.required && typeof value !== 'number') {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Number, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateEnum(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateEnum');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+
+ if (!schema.enum?.some((enumValue) => enumValue.value === value)) {
+ throw new Error(
+ `Invalid enum value for attribute: ${schema.name}. Value: ${value}`
+ );
+ }
+
+ if (schema.required && typeof value !== 'string') {
+ throw new Error(
+ `Invalid type for enum attribute: ${
+ schema.name
+ }. Expected String, got ${typeof value}`
+ );
+ }
+ }
+ }
+ private async validateLocalizedEnum(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateLocalizedEnum');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+
+ if (!schema.lenum?.some((enumValue) => enumValue.value === value)) {
+ throw new Error(
+ `Invalid enum value for attribute: ${schema.name}. Value: ${value}`
+ );
+ }
+
+ if (schema.required && typeof value !== 'string') {
+ throw new Error(
+ `Invalid type for enum attribute: ${
+ schema.name
+ }. Expected String, got ${typeof value}`
+ );
+ }
+ }
+ }
+
+ private async validateReference(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateReference');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (typeof value !== 'object' || !value) {
+ throw new Error(
+ `Invalid type for reference attribute: ${
+ schema.name
+ }. Expected object, got ${typeof value}`
+ );
+ }
+
+ const referenceValue = value as Record;
+ const typeId = referenceValue.typeId as string;
+ const id = referenceValue.id as string;
+ const key = referenceValue.key as string;
+
+ if (!typeId) {
+ throw new Error(
+ `Invalid reference value for attribute: ${schema.name}. Missing typeId`
+ );
+ }
+ if (schema.required && !id && !key) {
+ throw new Error(
+ `Invalid reference value for attribute: ${schema.name}. Missing id or key`
+ );
+ }
+
+ if (!schema.reference || typeId !== schema.reference.type) {
+ throw new Error(
+ `Invalid reference type for attribute: ${schema.name}. Expected ${schema.reference?.type}, got ${typeId}`
+ );
+ }
+ await this.validateReferenceValue(typeId, id, key);
+ }
+ }
+
+ private async validateMoney(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateMoney');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (
+ typeof value.amount !== 'string' ||
+ typeof value.currencyCode !== 'string'
+ ) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Money, got ${typeof value}`
+ );
+ }
+ if (isNaN(parseInt(value.amount))) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected amount, got ${typeof value.amount}`
+ );
+ }
+ }
+ }
+ private async validateTime(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateTime');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+
+ const timeRegex = /^([01]?[0-9]|2[0-3]):[0-5][0-9] ([AP]M)$/;
+ if (typeof value !== 'string' || !value.match(timeRegex)) {
+ throw new Error(
+ `Invalid value for attribute: ${schema.name}. Expected Time in format HH:mm AM/PM, got ${value}`
+ );
+ }
+ }
+ }
+ private async validateDateTime(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateDateTime');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ const dateTimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
+ if (typeof value !== 'string' || !value.match(dateTimeRegex)) {
+ throw new Error(
+ `Invalid value for attribute: ${schema.name}. Expected DateTime in format yyyy-mm-ddTHH:mm:ss.sssZ, got ${value}`
+ );
+ }
+ }
+ }
+ private async validateDate(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateDate');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
+ if (typeof value !== 'string' || !value.match(dateRegex)) {
+ throw new Error(
+ `Invalid value for attribute: ${schema.name}. Expected Date in format MM/DD/YYYY, got ${value}`
+ );
+ }
+ }
+ }
+
+ private async validateLocalizedString(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateLocalizedString');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (typeof value !== 'object' || value === null) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected LocalizedString, got ${typeof value}`
+ );
+ }
+ if (Object.keys(value).length === 0) {
+ throw new Error(
+ `Invalid type for attribute: ${schema.name}. Expected LocalizedString is empty`
+ );
+ }
+ if (schema.required) {
+ if (
+ !Object.keys(value).some(
+ (key) => typeof value[key] !== undefined || value[key] !== ''
+ )
+ ) {
+ throw new Error(`Required attribute missing: ${schema.name}`);
+ }
+ }
+ }
+ }
+
+ private async validateObject(
+ schema: AttributeSchema,
+ value: any
+ ): Promise {
+ if (schema.set) {
+ await this.validateSet(schema, value, 'validateObject');
+ } else {
+ if (!schema.required && !value) {
+ return;
+ }
+ if (typeof value !== 'object' || !value) {
+ throw new Error(
+ `Invalid type for attribute: ${
+ schema.name
+ }. Expected Object, got ${typeof value}`
+ );
+ }
+ if (schema.attributes?.length) {
+ await this.validateObjectSchema(
+ {
+ attributes: schema.attributes,
+ },
+ value
+ );
+ }
+ }
+ }
+
+ private async validateReferenceValue(
+ typeId: string,
+ id?: string,
+ key?: string
+ ): Promise {
+ if (!id && !key){
+ return;
+ }
+ const singleValueQueryDataObject = referenceTypeToSingleValueMap[typeId]
+ ? referenceTypeToSingleValueMap[typeId]
+ : typeId;
+
+ const query = id
+ ? getEntityById(singleValueQueryDataObject)
+ : getEntityByKey(singleValueQueryDataObject);
+
+ await this.apolloClient
+ ?.query({
+ query: query,
+ variables: id ? { id } : { key },
+ ...(this.context && { context: this.context }),
+ }).then((res) => {
+ if (!(res.data as any)[singleValueQueryDataObject]) {
+ throw new Error(
+ `Invalid reference value for attribute: ${typeId}. The expected ${typeId} was not found`
+ );
+ }
+ });
+ }
+}
diff --git a/validation-service/src/shared-code/index.ts b/validation-service/src/shared-code/index.ts
new file mode 100644
index 0000000..7a7740b
--- /dev/null
+++ b/validation-service/src/shared-code/index.ts
@@ -0,0 +1,2 @@
+export { CustomObjectController } from './custom-object.controller';
+export { referenceTypeToSingleValueMap } from './constants/map-types';
diff --git a/validation-service/src/shared-code/queries/create-custom-object.ts b/validation-service/src/shared-code/queries/create-custom-object.ts
new file mode 100644
index 0000000..7440df9
--- /dev/null
+++ b/validation-service/src/shared-code/queries/create-custom-object.ts
@@ -0,0 +1,12 @@
+import gql from 'graphql-tag';
+
+export default gql`
+ mutation UpdateCustomObject($draft: CustomObjectDraft!) {
+ createOrUpdateCustomObject(draft: $draft) {
+ id
+ version
+ key
+ container
+ }
+ }
+`;
diff --git a/validation-service/src/shared-code/queries/get-custom-object.ts b/validation-service/src/shared-code/queries/get-custom-object.ts
new file mode 100644
index 0000000..ae57073
--- /dev/null
+++ b/validation-service/src/shared-code/queries/get-custom-object.ts
@@ -0,0 +1,13 @@
+import gql from 'graphql-tag';
+
+export default gql`
+ query customObject($key: String!, $container: String!) {
+ customObject(key: $key, container: $container) {
+ id
+ lastModifiedAt
+ container
+ key
+ value
+ }
+ }
+`;
diff --git a/validation-service/src/shared-code/queries/get-entity-by-id.ts b/validation-service/src/shared-code/queries/get-entity-by-id.ts
new file mode 100644
index 0000000..4e68c6a
--- /dev/null
+++ b/validation-service/src/shared-code/queries/get-entity-by-id.ts
@@ -0,0 +1,14 @@
+import gql from "graphql-tag"
+import { referenceTypeSkipKey } from "../constants/map-types"
+
+export const getEntityById = (type: string) => {
+ const skipKey = referenceTypeSkipKey.includes(type)
+ return gql`
+ query ${type}($id: String!) {
+ ${type}(id: $id) {
+ id
+ ${skipKey ? '' : 'key'}
+ }
+ }
+ `
+}
\ No newline at end of file
diff --git a/validation-service/src/shared-code/queries/get-entity-by-key.ts b/validation-service/src/shared-code/queries/get-entity-by-key.ts
new file mode 100644
index 0000000..f9395a3
--- /dev/null
+++ b/validation-service/src/shared-code/queries/get-entity-by-key.ts
@@ -0,0 +1,12 @@
+import gql from "graphql-tag"
+
+export const getEntityByKey = (type: string) => {
+ return gql`
+ query ${type}($key: String!) {
+ ${type}(key: $key) {
+ id
+ key
+ }
+ }
+ `
+}
\ No newline at end of file
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.boolean.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.boolean.spec.ts
new file mode 100644
index 0000000..7c06dba
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.boolean.spec.ts
@@ -0,0 +1,126 @@
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateAttribute', () => {
+ describe('Boolean', () => {
+ const testCases = [
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: true,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: false,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: false, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Boolean',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: false },
+ value: [true],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: false },
+ value: [false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: false },
+ value: [true, false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [true],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [true, false],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [true, true],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'Boolean', set: true, required: true },
+ value: [false, false],
+ shouldThrowError: false,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'fail' : 'pass'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(
+ schema as AttributeSchema,
+ value
+ );
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.date-time.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.date-time.spec.ts
new file mode 100644
index 0000000..d17c680
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.date-time.spec.ts
@@ -0,0 +1,212 @@
+// valication-service/src/controllers/custom-object.controller.date-time.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateDateTime', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: '2022-01-01T12:34:56.999Z',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: '2022-01-01T12:34:56Z',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: false,
+ },
+ value: 'random string',
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: '2022-01-01T12:34:56.000Z',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: false,
+ required: true,
+ },
+ value: 'invalid date format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: ['2022-01-01T12:34:56.000Z'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: false,
+ },
+ value: ['invalid date format'],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: ['2022-01-01T12:34:56.333Z'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: ['invalid date'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'DateTime',
+ set: true,
+ required: true,
+ },
+ value: [''],
+ shouldThrowError: true,
+ },
+ ];
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.date.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.date.spec.ts
new file mode 100644
index 0000000..455b35a
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.date.spec.ts
@@ -0,0 +1,193 @@
+// valication-service/src/controllers/custom-object.controller.date.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateDate', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: '2022-01-01',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: false,
+ },
+ value: 'invalid date format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: '2022-01-01',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: false,
+ required: true,
+ },
+ value: 'invalid date format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: ['2022-01-01'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: false,
+ },
+ value: ['invalid date format'],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: ['2022-01-01'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Date',
+ set: true,
+ required: true,
+ },
+ value: ['invalid date format'],
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.enum.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.enum.spec.ts
new file mode 100644
index 0000000..7e6b45b
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.enum.spec.ts
@@ -0,0 +1,173 @@
+// valication-service/src/controllers/custom-object.controller.enum.spec.ts
+
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateEnum', () => {
+ const enumValues = [
+ { value: 'option1' },
+ { value: 'option2' },
+ { value: 'option3' },
+ ];
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: false,
+ enum: enumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: false,
+ enum: enumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: false,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: true,
+ enum: enumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: true,
+ enum: enumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: false,
+ required: true,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: false,
+ enum: enumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: false,
+ enum: enumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: false,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: true,
+ enum: enumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: true,
+ enum: enumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Enum',
+ set: true,
+ required: true,
+ enum: enumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.localised-string.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.localised-string.spec.ts
new file mode 100644
index 0000000..990e00e
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.localised-string.spec.ts
@@ -0,0 +1,266 @@
+// valication-service/src/controllers/custom-object.controller.localized-string.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateLocalizedString', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: {
+ en: 'hello',
+ de: 'hallo',
+ },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: {},
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: false,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: {
+ en: 'hello',
+ de: 'hallo',
+ },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: {},
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: false,
+ required: true,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: [
+ {
+ locale: 'en',
+ value: 'hello',
+ },
+ {
+ locale: 'de',
+ value: 'hallo',
+ },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: [
+ {
+ locale: 'en',
+ value: 'hello',
+ },
+ {
+ locale: 'en',
+ value: 'hello again',
+ },
+ ],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: false,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: [
+ {
+ en: 'hello',
+ de: 'hallo',
+ },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: [
+ {
+ en: 123,
+ },
+ ],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedString',
+ set: true,
+ required: true,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.localized-enum.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.localized-enum.spec.ts
new file mode 100644
index 0000000..cea8f33
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.localized-enum.spec.ts
@@ -0,0 +1,191 @@
+// valication-service/src/controllers/custom-object.controller.localized-enum.spec.ts
+
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateLocalizedEnum', () => {
+ const localizedEnumValues = [
+ {
+ value: 'option1',
+ label: {
+ en: 'Option 1',
+ de: 'Option 1 (DE)',
+ },
+ },
+ {
+ value: 'option2',
+ label: {
+ en: 'Option 2',
+ de: 'Option 2 (DE)',
+ },
+ },
+ {
+ value: 'option3',
+ label: {
+ en: 'Option 3',
+ de: 'Option 3 (DE)',
+ },
+ },
+ ];
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: 'option1',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: 'invalid',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: false,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: false,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: ['option1', 'option2'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: ['invalid'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'LocalizedEnum',
+ set: true,
+ required: true,
+ lenum: localizedEnumValues,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.money.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.money.spec.ts
new file mode 100644
index 0000000..6bc78c3
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.money.spec.ts
@@ -0,0 +1,278 @@
+// valication-service/src/controllers/custom-object.controller.money.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateMoney', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: '1000', currencyCode: 'USD' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: 1000, currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: 'invalid', currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { amount: '1000' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: false,
+ },
+ value: { currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { amount: '1000', currencyCode: 'EUR' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { amount: 'invalid', currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { amount: '1000' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: false,
+ required: true,
+ },
+ value: { currencyCode: 'USD' },
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [
+ { amount: '1000', currencyCode: 'USD' },
+ { amount: '2000', currencyCode: 'EUR' },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [{ amount: 'invalid', currencyCode: 'USD' }],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [{ amount: '1000' }],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: false,
+ },
+ value: [{ currencyCode: 'USD' }],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [
+ { amount: '1000', currencyCode: 'USD' },
+ { amount: '2000', currencyCode: 'EUR' },
+ ],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [{ amount: 'invalid', currencyCode: 'USD' }],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Money',
+ set: true,
+ required: true,
+ },
+ value: [{ amount: '1000' }],
+ shouldThrowError: true,
+ },
+ ];
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${JSON.stringify(value)} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.number.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.number.spec.ts
new file mode 100644
index 0000000..8aad096
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.number.spec.ts
@@ -0,0 +1,128 @@
+// valication-service/src/controllers/custom-object.controller.number.spec.ts
+
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateNumber', () => {
+ const testCases = [
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: false,
+ },
+ value: 42,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: false,
+ },
+ value: 'hello',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: false,
+ },
+ value: [1, 2, 3],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: false,
+ },
+ value: ['hello', 'world'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Number',
+ set: true,
+ required: true,
+ },
+ value: [1],
+ shouldThrowError: false,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.object.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.object.spec.ts
new file mode 100644
index 0000000..f55c6e6
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.object.spec.ts
@@ -0,0 +1,404 @@
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+const objectSchema: { attributes: AttributeSchema[]; value: any }[] = [
+ {
+ attributes: [
+ {
+ name: 'age',
+ type: 'Number',
+ set: false,
+ required: true,
+ },
+ ],
+ value: {
+ age: 25,
+ },
+ },
+ {
+ attributes: [
+ {
+ name: 'names',
+ type: 'String',
+ set: true,
+ required: true,
+ },
+ ],
+ value: {
+ names: ['John', 'Smith'],
+ },
+ },
+];
+
+describe('CustomObjectController - validateObject', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = () =>
+ objectSchema
+ .map((item) => [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: item.value,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: {},
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: 123,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: true,
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: item.value,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: {},
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: 123,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: false,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: true,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [item.value],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [],
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: ['string value'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [123],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [true],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: false,
+ attributes: item.attributes,
+ },
+ value: [{}],
+ shouldThrowError: true,
+ },
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [item.value],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [],
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [{}],
+ shouldThrowError: true, // missing required attribute 'age'
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: ['string value'],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [123],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: [true],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Object',
+ set: true,
+ required: true,
+ attributes: item.attributes,
+ },
+ value: 'string value',
+ shouldThrowError: true,
+ },
+ ])
+ .reduce((a, b) => a.concat(b), []);
+
+ testCases().forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.reference.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.reference.spec.ts
new file mode 100644
index 0000000..15c729b
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.reference.spec.ts
@@ -0,0 +1,252 @@
+// valication-service/src/controllers/custom-object.controller.reference.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateReference', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', id: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', key: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'category', id: '123' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', productId: '123' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', id: '123' }],
+ shouldThrowError: true,
+ },
+
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', id: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', key: '123' },
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: { typeId: 'product', productId: '123' },
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: false,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', id: '123' }],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', key: '123' }],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: false,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'category', id: '123' }],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: [{ typeId: 'product', id: '123' }],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Reference',
+ set: true,
+ required: true,
+ reference: { type: 'product' },
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ ];
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.string.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.string.spec.ts
new file mode 100644
index 0000000..77c6b5a
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.string.spec.ts
@@ -0,0 +1,101 @@
+import { AttributeSchema } from '../types/validator';
+import { CustomObjectController } from '../custom-object.controller';
+
+describe('CustomObjectController', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ describe('validateAttribute', () => {
+ describe('String', () => {
+ const testCases = [
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: 'test',
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: '',
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: true },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: false, required: false },
+ value: ['test'],
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: false },
+ value: ['test'],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: false },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: false },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: ['test'],
+ shouldThrowError: false,
+ },
+ {
+ schema: { name: 'test', type: 'String', set: true, required: true },
+ value: [''],
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(
+ schema as AttributeSchema,
+ value
+ );
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/specs/custom-object.controller.time.spec.ts b/validation-service/src/shared-code/specs/custom-object.controller.time.spec.ts
new file mode 100644
index 0000000..3549820
--- /dev/null
+++ b/validation-service/src/shared-code/specs/custom-object.controller.time.spec.ts
@@ -0,0 +1,212 @@
+// valication-service/src/controllers/custom-object.controller.time.spec.ts
+
+import { CustomObjectController } from '../custom-object.controller';
+import { AttributeSchema } from '../types/validator';
+
+describe('CustomObjectController - validateTime', () => {
+ let controller: CustomObjectController;
+
+ beforeEach(() => {
+ controller = new CustomObjectController();
+ });
+
+ const testCases = [
+ // schema.set = false, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: '12:34 AM',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: null,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: 'invalid time format',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: '22:34 AM',
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: false,
+ },
+ value: '10:34',
+ shouldThrowError: true,
+ },
+ // schema.set = false, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: '12:34 PM',
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: null,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: false,
+ required: true,
+ },
+ value: 'invalid time format',
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = false
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: ['12:34 AM'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: [],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: undefined,
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: false,
+ },
+ value: ['55:42 PM'],
+ shouldThrowError: true,
+ },
+
+ // schema.set = true, schema.required = true
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: ['12:34 PM'],
+ shouldThrowError: false,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: [],
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: undefined,
+ shouldThrowError: true,
+ },
+ {
+ schema: {
+ name: 'test',
+ type: 'Time',
+ set: true,
+ required: true,
+ },
+ value: [{ value: 'invalid time format' }],
+ shouldThrowError: true,
+ },
+ ];
+
+ testCases.forEach(({ schema, value, shouldThrowError }) => {
+ it(`should ${shouldThrowError ? 'pass' : 'fail'} validation for ${schema.set ? 'set' : 'non-set'}, required ${schema.required ? 'true' : 'false'} and value: ${typeof value === 'object' ? JSON.stringify(value) : value} attribute`, async () => {
+ try {
+ await controller.validateAttribute(schema as AttributeSchema, value);
+ expect(shouldThrowError).toBe(false);
+ } catch (error) {
+ expect(shouldThrowError).toBe(true);
+ }
+ });
+ });
+});
diff --git a/validation-service/src/shared-code/types/graphql.ts b/validation-service/src/shared-code/types/graphql.ts
new file mode 100644
index 0000000..d6b57da
--- /dev/null
+++ b/validation-service/src/shared-code/types/graphql.ts
@@ -0,0 +1,14 @@
+import { DocumentNode } from 'graphql';
+
+export interface GraphQLClient {
+ query(options: {
+ query: DocumentNode;
+ variables?: Record;
+ context?: any;
+ }): Promise<{ data: T }>;
+ mutate(options: {
+ mutation: DocumentNode;
+ variables?: Record;
+ context?: any;
+ }): Promise<{ data: T }>;
+}
diff --git a/validation-service/src/shared-code/types/index.types.ts b/validation-service/src/shared-code/types/index.types.ts
new file mode 100644
index 0000000..4e2d9ae
--- /dev/null
+++ b/validation-service/src/shared-code/types/index.types.ts
@@ -0,0 +1,17 @@
+export type Message = {
+ code: string;
+ message: string;
+ referencedBy: string;
+};
+
+export type ValidatorCreator = (
+ path: string[],
+ message: Message,
+ overrideConfig?: object
+) => [string[], [[(o: object) => boolean, string, [object]]]];
+
+export type ValidatorFunction = (o: object) => boolean;
+
+export type Wrapper = (
+ validator: ValidatorFunction
+) => (value: object) => boolean;
diff --git a/validation-service/src/shared-code/types/validator.ts b/validation-service/src/shared-code/types/validator.ts
new file mode 100644
index 0000000..3c60f13
--- /dev/null
+++ b/validation-service/src/shared-code/types/validator.ts
@@ -0,0 +1,59 @@
+// Types for schema structure
+export type AttributeType =
+ | 'Boolean'
+ | 'String'
+ | 'Number'
+ | 'Date'
+ | 'Enum'
+ | 'Reference'
+ | 'Money'
+ | 'LocalizedString'
+ | 'Time'
+ | 'DateTime'
+ | 'LocalizedEnum'
+ | 'Object';
+
+export interface EnumValue {
+ value: string;
+ label: string;
+}
+export interface LEnumValue {
+ value: string;
+ label: Record;
+}
+
+export interface ReferenceType {
+ by: string;
+ type: string;
+}
+
+export interface AttributeSchema {
+ name: string;
+ type: AttributeType;
+ set: boolean;
+ required: boolean;
+ enum?: EnumValue[];
+ lenum?: LEnumValue[];
+ reference?: ReferenceType;
+ attributes?: AttributeSchema[];
+}
+
+export interface Schema {
+ attributes: AttributeSchema[];
+}
+
+export interface CustomObject {
+ id: string;
+ container: string;
+ key: string;
+ value: T;
+ version: number;
+ createdAt: string;
+ lastModifiedAt: string;
+}
+
+export interface CustomObjectDraft {
+ container: string;
+ key: string;
+ value: T;
+}
diff --git a/validation-service/src/types/index.types.ts b/validation-service/src/types/index.types.ts
new file mode 100644
index 0000000..4e2d9ae
--- /dev/null
+++ b/validation-service/src/types/index.types.ts
@@ -0,0 +1,17 @@
+export type Message = {
+ code: string;
+ message: string;
+ referencedBy: string;
+};
+
+export type ValidatorCreator = (
+ path: string[],
+ message: Message,
+ overrideConfig?: object
+) => [string[], [[(o: object) => boolean, string, [object]]]];
+
+export type ValidatorFunction = (o: object) => boolean;
+
+export type Wrapper = (
+ validator: ValidatorFunction
+) => (value: object) => boolean;
diff --git a/validation-service/src/types/validator.ts b/validation-service/src/types/validator.ts
new file mode 100644
index 0000000..3c60f13
--- /dev/null
+++ b/validation-service/src/types/validator.ts
@@ -0,0 +1,59 @@
+// Types for schema structure
+export type AttributeType =
+ | 'Boolean'
+ | 'String'
+ | 'Number'
+ | 'Date'
+ | 'Enum'
+ | 'Reference'
+ | 'Money'
+ | 'LocalizedString'
+ | 'Time'
+ | 'DateTime'
+ | 'LocalizedEnum'
+ | 'Object';
+
+export interface EnumValue {
+ value: string;
+ label: string;
+}
+export interface LEnumValue {
+ value: string;
+ label: Record;
+}
+
+export interface ReferenceType {
+ by: string;
+ type: string;
+}
+
+export interface AttributeSchema {
+ name: string;
+ type: AttributeType;
+ set: boolean;
+ required: boolean;
+ enum?: EnumValue[];
+ lenum?: LEnumValue[];
+ reference?: ReferenceType;
+ attributes?: AttributeSchema[];
+}
+
+export interface Schema {
+ attributes: AttributeSchema[];
+}
+
+export interface CustomObject {
+ id: string;
+ container: string;
+ key: string;
+ value: T;
+ version: number;
+ createdAt: string;
+ lastModifiedAt: string;
+}
+
+export interface CustomObjectDraft {
+ container: string;
+ key: string;
+ value: T;
+}
diff --git a/validation-service/src/utils/assert.utils.ts b/validation-service/src/utils/assert.utils.ts
new file mode 100644
index 0000000..b7cff04
--- /dev/null
+++ b/validation-service/src/utils/assert.utils.ts
@@ -0,0 +1,19 @@
+export function assert(condition: unknown, message: string): asserts condition {
+ if (!condition) {
+ throw new Error(`Assertion failed: ${message}`);
+ }
+}
+
+export function assertError(
+ value: unknown,
+ message?: string
+): asserts value is Error {
+ assert(value instanceof Error, message ?? 'Invalid error value');
+}
+
+export function assertString(
+ value: unknown,
+ message?: string
+): asserts value is string {
+ assert(typeof value === 'string', message ?? 'Invalid string value');
+}
diff --git a/validation-service/src/utils/config.utils.ts b/validation-service/src/utils/config.utils.ts
new file mode 100644
index 0000000..f40b030
--- /dev/null
+++ b/validation-service/src/utils/config.utils.ts
@@ -0,0 +1,31 @@
+import CustomError from '../errors/custom.error';
+import envValidators from '../validators/env.validators';
+import { getValidateMessages } from '../validators/helpers.validators';
+
+/**
+ * Read the configuration env vars
+ * (Add yours accordingly)
+ *
+ * @returns The configuration with the correct env vars
+ */
+export const readConfiguration = () => {
+ const envVars = {
+ clientId: process.env.CTP_CLIENT_ID as string,
+ clientSecret: process.env.CTP_CLIENT_SECRET as string,
+ projectKey: process.env.CTP_PROJECT_KEY as string,
+ scope: process.env.CTP_SCOPE,
+ region: process.env.CTP_REGION as string,
+ };
+
+ const validationErrors = getValidateMessages(envValidators, envVars);
+
+ if (validationErrors.length) {
+ throw new CustomError(
+ 'InvalidEnvironmentVariablesError',
+ 'Invalid Environment Variables please check your .env file',
+ validationErrors
+ );
+ }
+
+ return envVars;
+};
diff --git a/validation-service/src/utils/logger.utils.ts b/validation-service/src/utils/logger.utils.ts
new file mode 100644
index 0000000..794f32b
--- /dev/null
+++ b/validation-service/src/utils/logger.utils.ts
@@ -0,0 +1,3 @@
+import { createApplicationLogger } from '@commercetools-backend/loggers';
+
+export const logger = createApplicationLogger();
diff --git a/validation-service/src/validators/env.validators.ts b/validation-service/src/validators/env.validators.ts
new file mode 100644
index 0000000..5f27625
--- /dev/null
+++ b/validation-service/src/validators/env.validators.ts
@@ -0,0 +1,55 @@
+import {
+ optional,
+ standardString,
+ standardKey,
+ region,
+} from './helpers.validators';
+
+/**
+ * Create here your own validators
+ */
+const envValidators = [
+ standardString(
+ ['clientId'],
+ {
+ code: 'InValidClientId',
+ message: 'Client id should be 24 characters.',
+ referencedBy: 'environmentVariables',
+ },
+ { min: 24, max: 24 }
+ ),
+
+ standardString(
+ ['clientSecret'],
+ {
+ code: 'InvalidClientSecret',
+ message: 'Client secret should be 32 characters.',
+ referencedBy: 'environmentVariables',
+ },
+ { min: 32, max: 32 }
+ ),
+
+ standardKey(['projectKey'], {
+ code: 'InvalidProjectKey',
+ message: 'Project key should be a valid string.',
+ referencedBy: 'environmentVariables',
+ }),
+
+ optional(standardString)(
+ ['scope'],
+ {
+ code: 'InvalidScope',
+ message: 'Scope should be at least 2 characters long.',
+ referencedBy: 'environmentVariables',
+ },
+ { min: 2, max: undefined }
+ ),
+
+ region(['region'], {
+ code: 'InvalidRegion',
+ message: 'Not a valid region.',
+ referencedBy: 'environmentVariables',
+ }),
+];
+
+export default envValidators;
diff --git a/validation-service/src/validators/helpers.validators.ts b/validation-service/src/validators/helpers.validators.ts
new file mode 100644
index 0000000..07b7053
--- /dev/null
+++ b/validation-service/src/validators/helpers.validators.ts
@@ -0,0 +1,149 @@
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-nocheck
+
+import validator from 'validator';
+import { ValidatorCreator, Wrapper } from '../types/index.types';
+
+/**
+ * File used to create helpers to validate the fields
+ */
+
+const required: Wrapper =
+ (fn) =>
+ (value, ...args) =>
+ !(value === undefined || value === null) && fn(...[String(value), ...args]);
+
+export const standardString: ValidatorCreator = (
+ path,
+ message,
+ overrideConfig = {}
+) => [
+ path,
+ [
+ [
+ required(validator.isLength),
+ message,
+ [{ min: 2, max: 20, ...overrideConfig }],
+ ],
+ ],
+];
+
+export const standardEmail: ValidatorCreator = (path, message) => [
+ path,
+ [[required(validator.isEmail), message]],
+];
+
+export const standardNaturalNumber = (path, message) => [
+ path,
+ [
+ [
+ required((value) =>
+ validator.isNumeric(String(value), { no_symbols: true })
+ ),
+ message,
+ ],
+ ],
+];
+
+export const standardKey = (path, message) => [
+ path,
+ [
+ [
+ required(
+ (value) =>
+ validator.isLength(String(value), { min: 2 }) &&
+ /^[a-zA-Z0-9-_]+$/.test(value)
+ ),
+
+ message,
+ ],
+ ],
+];
+
+export const standardUrl = (path, message, overrideOptions = {}) => [
+ path,
+ [
+ [
+ required(validator.isURL),
+ message,
+ [
+ {
+ require_protocol: true,
+ require_valid_protocol: true,
+ protocols: ['http', 'https'],
+ require_host: true,
+ require_port: false,
+ allow_protocol_relative_urls: false,
+ allow_fragments: false,
+ allow_query_components: true,
+ validate_length: true,
+ ...overrideOptions,
+ },
+ ],
+ ],
+ ],
+];
+
+export const getValidateMessages = (validatorConfigs, item) =>
+ validatorConfigs.flatMap(([path, validators]) => {
+ return validators.reduce((acc, [validatorFn, message, args = []]) => {
+ const valueToValidate = path.reduce((val, property) => {
+ return val[property];
+ }, item);
+ if (!validatorFn(...[valueToValidate, ...args])) {
+ return acc.concat(message);
+ }
+ return acc;
+ }, []);
+ });
+
+export const optional =
+ (fn) =>
+ (...args) => {
+ const [path, validators] = fn(...args);
+ return [
+ path,
+ validators.map(([fn, message, validatorArgs]) => [
+ (value, ...args) =>
+ value === undefined ? true : fn(...[value, ...args]),
+ message,
+ validatorArgs,
+ ]),
+ ];
+ };
+
+export const array =
+ (fn) =>
+ (...args) => {
+ const [path, validators] = fn(...args);
+ return [
+ path,
+ validators.map(([fn, message, validatorArgs]) => [
+ (value, ...args) =>
+ Array.isArray(value) &&
+ value.every((value) => fn(...[value, ...args])),
+ message,
+ validatorArgs,
+ ]),
+ ];
+ };
+
+export const region: ValidatorCreator = (path, message) => [
+ path,
+ [
+ [
+ required(
+ required((value) =>
+ validator.isIn(value, [
+ 'us-central1.gcp',
+ 'us-east-2.aws',
+ 'europe-west1.gcp',
+ 'eu-central-1.aws',
+ 'australia-southeast1.gcp',
+ ])
+ )
+ ),
+ message,
+ ],
+ ],
+];
diff --git a/validation-service/tsconfig.json b/validation-service/tsconfig.json
new file mode 100644
index 0000000..fb87b83
--- /dev/null
+++ b/validation-service/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "@tsconfig/recommended/tsconfig.json",
+ "exclude": ["node_modules", "**/*.spec.ts"],
+ "compilerOptions": {
+ "resolveJsonModule": true,
+ "outDir": "./build",
+ "rootDir": "./src",
+ "inlineSourceMap": true
+ }
+}
diff --git a/validation-service/yarn.lock b/validation-service/yarn.lock
new file mode 100644
index 0000000..9663eb5
--- /dev/null
+++ b/validation-service/yarn.lock
@@ -0,0 +1,4216 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.2.0":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
+ integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@apollo/client@^3.11.10":
+ version "3.11.10"
+ resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.11.10.tgz#e16ae82ea9b16536ffd109847d24f9293fab5c4d"
+ integrity sha512-IfGc+X4il0rDqVQBBWdxIKM+ciDCiDzBq9+Bg9z4tJMi87uF6po4v+ddiac1wP0ARgVPsFwEIGxK7jhN4pW8jg==
+ dependencies:
+ "@graphql-typed-document-node/core" "^3.1.1"
+ "@wry/caches" "^1.0.0"
+ "@wry/equality" "^0.5.6"
+ "@wry/trie" "^0.5.0"
+ graphql-tag "^2.12.6"
+ hoist-non-react-statics "^3.3.2"
+ optimism "^0.18.0"
+ prop-types "^15.7.2"
+ rehackt "^0.1.0"
+ response-iterator "^0.2.6"
+ symbol-observable "^4.0.0"
+ ts-invariant "^0.10.3"
+ tslib "^2.3.0"
+ zen-observable-ts "^1.2.5"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
+ integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.25.9"
+ js-tokens "^4.0.0"
+ picocolors "^1.0.0"
+
+"@babel/compat-data@^7.25.9":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.2.tgz#278b6b13664557de95b8f35b90d96785850bb56e"
+ integrity sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==
+
+"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40"
+ integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.26.0"
+ "@babel/generator" "^7.26.0"
+ "@babel/helper-compilation-targets" "^7.25.9"
+ "@babel/helper-module-transforms" "^7.26.0"
+ "@babel/helpers" "^7.26.0"
+ "@babel/parser" "^7.26.0"
+ "@babel/template" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.26.0"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
+"@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.7.2":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f"
+ integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==
+ dependencies:
+ "@babel/parser" "^7.26.2"
+ "@babel/types" "^7.26.0"
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
+ jsesc "^3.0.2"
+
+"@babel/helper-compilation-targets@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875"
+ integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==
+ dependencies:
+ "@babel/compat-data" "^7.25.9"
+ "@babel/helper-validator-option" "^7.25.9"
+ browserslist "^4.24.0"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
+"@babel/helper-module-imports@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715"
+ integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
+ dependencies:
+ "@babel/traverse" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/helper-module-transforms@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae"
+ integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
+ dependencies:
+ "@babel/helper-module-imports" "^7.25.9"
+ "@babel/helper-validator-identifier" "^7.25.9"
+ "@babel/traverse" "^7.25.9"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46"
+ integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==
+
+"@babel/helper-string-parser@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
+ integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
+
+"@babel/helper-validator-identifier@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
+ integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
+
+"@babel/helper-validator-option@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72"
+ integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
+
+"@babel/helpers@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4"
+ integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==
+ dependencies:
+ "@babel/template" "^7.25.9"
+ "@babel/types" "^7.26.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.2":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.2.tgz#fd7b6f487cfea09889557ef5d4eeb9ff9a5abd11"
+ integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==
+ dependencies:
+ "@babel/types" "^7.26.0"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-import-attributes@^7.24.7":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7"
+ integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.25.9"
+
+"@babel/plugin-syntax-import-meta@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.7.2":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290"
+ integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.25.9"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+
+"@babel/plugin-syntax-typescript@^7.7.2":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399"
+ integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.25.9"
+
+"@babel/runtime-corejs3@^7.20.13":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz#5af6bed16073eb4a0191233d61e158a5c768c430"
+ integrity sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==
+ dependencies:
+ core-js-pure "^3.30.2"
+ regenerator-runtime "^0.14.0"
+
+"@babel/runtime@^7.20.13", "@babel/runtime@^7.21.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1"
+ integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+"@babel/template@^7.25.9", "@babel/template@^7.3.3":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016"
+ integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==
+ dependencies:
+ "@babel/code-frame" "^7.25.9"
+ "@babel/parser" "^7.25.9"
+ "@babel/types" "^7.25.9"
+
+"@babel/traverse@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84"
+ integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==
+ dependencies:
+ "@babel/code-frame" "^7.25.9"
+ "@babel/generator" "^7.25.9"
+ "@babel/parser" "^7.25.9"
+ "@babel/template" "^7.25.9"
+ "@babel/types" "^7.25.9"
+ debug "^4.3.1"
+ globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff"
+ integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==
+ dependencies:
+ "@babel/helper-string-parser" "^7.25.9"
+ "@babel/helper-validator-identifier" "^7.25.9"
+
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@colors/colors@1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
+ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
+
+"@colors/colors@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0"
+ integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
+
+"@commercetools-backend/loggers@^21.19.0":
+ version "21.25.2"
+ resolved "https://registry.yarnpkg.com/@commercetools-backend/loggers/-/loggers-21.25.2.tgz#d7b3f70106d7c033cacd3dbe4e711c3edd6cfe22"
+ integrity sha512-+aw9ai7bNzgBBRn9bgCAKCApNavsZCpKqhuOC5KWBngaN/eao8kvuLs8Rs17MGlqkZWD+Smtt67K44LV5nZDpA==
+ dependencies:
+ "@babel/runtime" "^7.20.13"
+ "@babel/runtime-corejs3" "^7.20.13"
+ "@sentry/node" "7.43.0"
+ "@types/triple-beam" "1.3.2"
+ express-winston "4.2.0"
+ fast-safe-stringify "2.1.1"
+ lodash "4.17.21"
+ logform "2.5.1"
+ triple-beam "1.3.0"
+ winston "3.8.2"
+
+"@commercetools/platform-sdk@^4.0.0":
+ version "4.11.0"
+ resolved "https://registry.yarnpkg.com/@commercetools/platform-sdk/-/platform-sdk-4.11.0.tgz#501310f8143376939ee31c9b15b9c5db9c5bdf41"
+ integrity sha512-ftcq6mCxzpIG9wmGpTED6KQCApk4nyURh81J3PRP3d48oCLOrkZSyzDDfvflGoVZQeIcox+YdtyqZoryFrRtmQ==
+ dependencies:
+ "@commercetools/sdk-client-v2" "^2.1.6"
+ "@commercetools/sdk-middleware-auth" "^7.0.0"
+ "@commercetools/sdk-middleware-http" "^7.0.0"
+ "@commercetools/sdk-middleware-logger" "^3.0.0"
+
+"@commercetools/sdk-client-v2@^2.0.0", "@commercetools/sdk-client-v2@^2.1.6":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@commercetools/sdk-client-v2/-/sdk-client-v2-2.5.0.tgz#3fe33f733d059472896f4fd0820cf899a30cd150"
+ integrity sha512-v1y++O6yllG+IRTYm9jPE8s667+GapnysyGIf8NJDZbVwhvcanixZL4d20imXjCpOr4u1iZrgRftc90mgYqblw==
+ dependencies:
+ buffer "^6.0.3"
+ node-fetch "^2.6.1"
+
+"@commercetools/sdk-middleware-auth@^7.0.0":
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/@commercetools/sdk-middleware-auth/-/sdk-middleware-auth-7.0.1.tgz#20260740a423589d9210747e460f8ca917b3787b"
+ integrity sha512-XLRm+o3Yd0mkVoyzsOA98PUu0U0ajQdBHMhZ8N2XMOtL4OY8zsgT8ap5JneXV8zWZNiwIYYAYoUDwBlLZh2lAQ==
+ dependencies:
+ node-fetch "^2.6.7"
+
+"@commercetools/sdk-middleware-http@^7.0.0":
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/@commercetools/sdk-middleware-http/-/sdk-middleware-http-7.0.4.tgz#ea4522c45d6fc436ff82e1d6a9d969192289821f"
+ integrity sha512-YpBDTA1NqjfwqPxrll6FzDc0A7hLSRwd9OLGMlPcvUG2Je1ks8Pe34pLdPqz7jgdURwfFXRBmXxPhezDzMbnZA==
+
+"@commercetools/sdk-middleware-logger@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@commercetools/sdk-middleware-logger/-/sdk-middleware-logger-3.0.0.tgz#4bfc7441d485b3f1046001f44200d12926accb84"
+ integrity sha512-DhMXAA2yIch/AaGxy7st85Z1HFmeLtHWGkr9z5rX4xKjan4PHGB/IE5saAR+SNGHhs6+1Lp8vZEHDo3tFqVLmg==
+
+"@dabh/diagnostics@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a"
+ integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==
+ dependencies:
+ colorspace "1.1.x"
+ enabled "2.0.x"
+ kuler "^2.0.0"
+
+"@eslint-community/eslint-utils@^4.2.0":
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
+ integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
+ dependencies:
+ eslint-visitor-keys "^3.4.3"
+
+"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1":
+ version "4.12.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
+ integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
+
+"@eslint/eslintrc@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
+ integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^9.6.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
+ strip-json-comments "^3.1.1"
+
+"@eslint/js@8.57.1":
+ version "8.57.1"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2"
+ integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
+
+"@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861"
+ integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==
+
+"@humanwhocodes/config-array@^0.13.0":
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748"
+ integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
+ dependencies:
+ "@humanwhocodes/object-schema" "^2.0.3"
+ debug "^4.3.1"
+ minimatch "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
+ integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
+
+"@isaacs/cliui@^8.0.2":
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
+ integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+ dependencies:
+ string-width "^5.1.2"
+ string-width-cjs "npm:string-width@^4.2.0"
+ strip-ansi "^7.0.1"
+ strip-ansi-cjs "npm:strip-ansi@^6.0.1"
+ wrap-ansi "^8.1.0"
+ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/console@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
+ integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/core@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
+ integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/reporters" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-changed-files "^29.7.0"
+ jest-config "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-resolve-dependencies "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ jest-watcher "^29.7.0"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+"@jest/environment@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
+ integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
+ dependencies:
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+
+"@jest/expect-utils@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
+ integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
+ dependencies:
+ jest-get-type "^29.6.3"
+
+"@jest/expect@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
+ integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
+ dependencies:
+ expect "^29.7.0"
+ jest-snapshot "^29.7.0"
+
+"@jest/fake-timers@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
+ integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+"@jest/globals@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
+ integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ jest-mock "^29.7.0"
+
+"@jest/reporters@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
+ integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^6.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.1.3"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ slash "^3.0.0"
+ string-length "^4.0.1"
+ strip-ansi "^6.0.0"
+ v8-to-istanbul "^9.0.1"
+
+"@jest/schemas@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+ integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
+ dependencies:
+ "@sinclair/typebox" "^0.27.8"
+
+"@jest/source-map@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
+ integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.18"
+ callsites "^3.0.0"
+ graceful-fs "^4.2.9"
+
+"@jest/test-result@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
+ integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
+ integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/transform@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
+ integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
+"@jest/types@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
+ integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
+"@jridgewell/gen-mapping@^0.3.5":
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
+ integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
+ dependencies:
+ "@jridgewell/set-array" "^1.2.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+
+"@jridgewell/set-array@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
+ integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
+ integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
+ version "0.3.25"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
+ integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@pkgjs/parseargs@^0.11.0":
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
+ integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+
+"@sentry/core@7.43.0":
+ version "7.43.0"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.43.0.tgz#c78e79399172738c96e3b388244258153c49215f"
+ integrity sha512-zvMZgEi7ptLBwDnd+xR/u4zdSe5UzS4S3ZhoemdQrn1PxsaVySD/ptyzLoGSZEABqlRxGHnQrZ78MU1hUDvKuQ==
+ dependencies:
+ "@sentry/types" "7.43.0"
+ "@sentry/utils" "7.43.0"
+ tslib "^1.9.3"
+
+"@sentry/node@7.43.0":
+ version "7.43.0"
+ resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.43.0.tgz#bcb553486ffe3f1413063e9125fd34f9d84277d2"
+ integrity sha512-oXaTBq6Bk8Qwsd46hhRU2MLEnjYqWI41nPJmXyAWkDSYQTP7sUe1qM8bCUdsRpPwQh955Vq9qCRfgMbN4lEoAQ==
+ dependencies:
+ "@sentry/core" "7.43.0"
+ "@sentry/types" "7.43.0"
+ "@sentry/utils" "7.43.0"
+ cookie "^0.4.1"
+ https-proxy-agent "^5.0.0"
+ lru_map "^0.3.3"
+ tslib "^1.9.3"
+
+"@sentry/types@7.43.0":
+ version "7.43.0"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.43.0.tgz#e621257601e9db2a39cdd3bd75e67fe338ed51eb"
+ integrity sha512-5XxCWqYWJNoS+P6Ie2ZpUDxLRCt7FTEzmlQkCdjW6MFWOX26hAbF/wEuOTYAFKZXMIXOz0Egofik1e8v1Cg6/A==
+
+"@sentry/utils@7.43.0":
+ version "7.43.0"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.43.0.tgz#ad16efb86b94ffe6dca2ed2b299d5230ba6d815b"
+ integrity sha512-f78YfMLcgNU7+suyWFCuQhQlneXXMS+egb0EFZh7iU7kANUPRX5T4b+0C+fwaPm5gA6XfGYskr4ZnzQJLOlSqg==
+ dependencies:
+ "@sentry/types" "7.43.0"
+ tslib "^1.9.3"
+
+"@sinclair/typebox@^0.27.8":
+ version "0.27.8"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
+ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+
+"@sinonjs/commons@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
+ integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
+ dependencies:
+ type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^10.0.2":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
+ integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
+ dependencies:
+ "@sinonjs/commons" "^3.0.0"
+
+"@tsconfig/recommended@^1.0.3":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@tsconfig/recommended/-/recommended-1.0.8.tgz#16483d57b56bbbd32b8c3af0eff1a40c32d006fa"
+ integrity sha512-TotjFaaXveVUdsrXCdalyF6E5RyG6+7hHHQVZonQtdlk1rJZ1myDIvPUUKPhoYv+JAzThb2lQJh9+9ZfF46hsA==
+
+"@types/babel__core@^7.1.14":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
+ integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.6.8"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
+ integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
+ integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.20.6"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7"
+ integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==
+ dependencies:
+ "@babel/types" "^7.20.7"
+
+"@types/body-parser@*":
+ version "1.19.5"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4"
+ integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==
+ dependencies:
+ "@types/connect" "*"
+ "@types/node" "*"
+
+"@types/connect@*":
+ version "3.4.38"
+ resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858"
+ integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
+ dependencies:
+ "@types/node" "*"
+
+"@types/cors@^2.8.17":
+ version "2.8.17"
+ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b"
+ integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==
+ dependencies:
+ "@types/node" "*"
+
+"@types/express-serve-static-core@^4.17.33":
+ version "4.19.6"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267"
+ integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+ "@types/send" "*"
+
+"@types/express@^4.17.14":
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
+ integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^4.17.33"
+ "@types/qs" "*"
+ "@types/serve-static" "*"
+
+"@types/graceful-fs@^4.1.3":
+ version "4.1.9"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
+ integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/http-errors@*":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f"
+ integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
+ integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
+
+"@types/istanbul-lib-report@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf"
+ integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^3.0.0":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
+ integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
+ dependencies:
+ "@types/istanbul-lib-report" "*"
+
+"@types/jest@^29.0.3":
+ version "29.5.14"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5"
+ integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==
+ dependencies:
+ expect "^29.0.0"
+ pretty-format "^29.0.0"
+
+"@types/json-schema@^7.0.9":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+"@types/mime@^1":
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
+ integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
+
+"@types/node-fetch@^2.6.11":
+ version "2.6.12"
+ resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03"
+ integrity sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==
+ dependencies:
+ "@types/node" "*"
+ form-data "^4.0.0"
+
+"@types/node@*":
+ version "22.9.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365"
+ integrity sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==
+ dependencies:
+ undici-types "~6.19.8"
+
+"@types/node@^18.7.18":
+ version "18.19.64"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.64.tgz#122897fb79f2a9ec9c979bded01c11461b2b1478"
+ integrity sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==
+ dependencies:
+ undici-types "~5.26.4"
+
+"@types/qs@*":
+ version "6.9.17"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.17.tgz#fc560f60946d0aeff2f914eb41679659d3310e1a"
+ integrity sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==
+
+"@types/range-parser@*":
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
+ integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
+
+"@types/semver@^7.3.12":
+ version "7.5.8"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
+ integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
+
+"@types/send@*":
+ version "0.17.4"
+ resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a"
+ integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==
+ dependencies:
+ "@types/mime" "^1"
+ "@types/node" "*"
+
+"@types/serve-static@*":
+ version "1.15.7"
+ resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714"
+ integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==
+ dependencies:
+ "@types/http-errors" "*"
+ "@types/node" "*"
+ "@types/send" "*"
+
+"@types/stack-utils@^2.0.0":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
+ integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
+
+"@types/triple-beam@1.3.2":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8"
+ integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==
+
+"@types/triple-beam@^1.3.2":
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c"
+ integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
+
+"@types/validator@^13.7.10":
+ version "13.12.2"
+ resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.2.tgz#760329e756e18a4aab82fc502b51ebdfebbe49f5"
+ integrity sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==
+
+"@types/yargs-parser@*":
+ version "21.0.3"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
+ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
+
+"@types/yargs@^17.0.8":
+ version "17.0.33"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d"
+ integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@typescript-eslint/eslint-plugin@^5.46.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
+ integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==
+ dependencies:
+ "@eslint-community/regexpp" "^4.4.0"
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/type-utils" "5.62.0"
+ "@typescript-eslint/utils" "5.62.0"
+ debug "^4.3.4"
+ graphemer "^1.4.0"
+ ignore "^5.2.0"
+ natural-compare-lite "^1.4.0"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/parser@^5.46.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7"
+ integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ debug "^4.3.4"
+
+"@typescript-eslint/scope-manager@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
+ integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/visitor-keys" "5.62.0"
+
+"@typescript-eslint/type-utils@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a"
+ integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ "@typescript-eslint/utils" "5.62.0"
+ debug "^4.3.4"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/types@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
+ integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
+
+"@typescript-eslint/typescript-estree@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
+ integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/visitor-keys" "5.62.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/utils@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
+ integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ eslint-scope "^5.1.1"
+ semver "^7.3.7"
+
+"@typescript-eslint/visitor-keys@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
+ integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ eslint-visitor-keys "^3.3.0"
+
+"@ungap/structured-clone@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
+ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
+
+"@wry/caches@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@wry/caches/-/caches-1.0.1.tgz#8641fd3b6e09230b86ce8b93558d44cf1ece7e52"
+ integrity sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/context@^0.7.0":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.4.tgz#e32d750fa075955c4ab2cfb8c48095e1d42d5990"
+ integrity sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/equality@^0.5.6":
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.7.tgz#72ec1a73760943d439d56b7b1e9985aec5d497bb"
+ integrity sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/trie@^0.4.3":
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4"
+ integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/trie@^0.5.0":
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.5.0.tgz#11e783f3a53f6e4cd1d42d2d1323f5bc3fa99c94"
+ integrity sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==
+ dependencies:
+ tslib "^2.3.0"
+
+accepts@~1.3.8:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+ dependencies:
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
+
+acorn-jsx@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn@^8.9.0:
+ version "8.14.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
+ integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
+
+agent-base@6:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
+ajv@^6.12.4:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-escapes@^4.2.1:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-regex@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654"
+ integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+ansi-styles@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+ integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
+ansi-styles@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
+ integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+
+anymatch@^3.0.3, anymatch@~3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
+
+array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+async@^3.2.3:
+ version "3.2.6"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
+ integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+babel-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
+ integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
+ dependencies:
+ "@jest/transform" "^29.7.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.6.3"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
+babel-plugin-istanbul@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+ integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^5.0.4"
+ test-exclude "^6.0.0"
+
+babel-plugin-jest-hoist@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
+ integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
+babel-preset-current-node-syntax@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30"
+ integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-import-attributes" "^7.24.7"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+
+babel-preset-jest@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
+ integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
+ dependencies:
+ babel-plugin-jest-hoist "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+binary-extensions@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
+ integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
+
+body-parser@1.20.3, body-parser@^1.20.2:
+ version "1.20.3"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
+ integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
+ dependencies:
+ bytes "3.1.2"
+ content-type "~1.0.5"
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ on-finished "2.4.1"
+ qs "6.13.0"
+ raw-body "2.5.2"
+ type-is "~1.6.18"
+ unpipe "1.0.0"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+brace-expansion@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ dependencies:
+ balanced-match "^1.0.0"
+
+braces@^3.0.3, braces@~3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
+ dependencies:
+ fill-range "^7.1.1"
+
+browserslist@^4.24.0:
+ version "4.24.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580"
+ integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==
+ dependencies:
+ caniuse-lite "^1.0.30001669"
+ electron-to-chromium "^1.5.41"
+ node-releases "^2.0.18"
+ update-browserslist-db "^1.1.1"
+
+bs-logger@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
+ integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
+ dependencies:
+ fast-json-stable-stringify "2.x"
+
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+ dependencies:
+ node-int64 "^0.4.0"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
+
+bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
+call-bind@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
+ integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.1"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+camelcase@^6.2.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+caniuse-lite@^1.0.30001669:
+ version "1.0.30001680"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz#5380ede637a33b9f9f1fc6045ea99bd142f3da5e"
+ integrity sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==
+
+chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
+chokidar@^3.5.2:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
+ integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+ci-info@^3.2.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+
+cjs-module-lexer@^1.0.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170"
+ integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==
+
+cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^7.0.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
+
+collect-v8-coverage@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9"
+ integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==
+
+color-convert@^1.9.0, color-convert@^1.9.3:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.6.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
+ integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.1.3:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
+ integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
+ dependencies:
+ color-convert "^1.9.3"
+ color-string "^1.6.0"
+
+colorspace@1.1.x:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243"
+ integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
+ dependencies:
+ color "^3.1.3"
+ text-hex "1.0.x"
+
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+concurrently@^8.2.0:
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.2.tgz#353141985c198cfa5e4a3ef90082c336b5851784"
+ integrity sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==
+ 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"
+
+content-disposition@0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
+
+content-type@~1.0.4, content-type@~1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
+
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
+
+cookie@0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
+ integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
+
+cookie@^0.4.1:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
+ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+
+core-js-pure@^3.30.2:
+ version "3.39.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.39.0.tgz#aa0d54d70a15bdc13e7c853db87c10abc30d68f3"
+ integrity sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==
+
+cors@^2.8.5:
+ version "2.8.5"
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
+ dependencies:
+ object-assign "^4"
+ vary "^1"
+
+create-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
+ integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ prompts "^2.0.1"
+
+cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
+ integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+date-fns@^2.30.0:
+ version "2.30.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
+ integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
+
+debug@2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
+ integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
+ dependencies:
+ ms "^2.1.3"
+
+dedent@^1.0.0:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a"
+ integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==
+
+deep-is@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@^4.2.2:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
+
+define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+depd@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
+destroy@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
+ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+
+diff-sequences@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
+ integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ dependencies:
+ path-type "^4.0.0"
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
+dotenv@^16.3.1:
+ version "16.4.5"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
+ integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
+
+eastasianwidth@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
+
+ejs@^3.1.10:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
+ integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==
+ dependencies:
+ jake "^10.8.5"
+
+electron-to-chromium@^1.5.41:
+ version "1.5.63"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.63.tgz#69444d592fbbe628d129866c2355691ea93eda3e"
+ integrity sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==
+
+emittery@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+ integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.2.2:
+ version "9.2.2"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+ integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
+enabled@2.0.x:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
+ integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
+
+encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+
+encodeurl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
+ integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
+ dependencies:
+ get-intrinsic "^1.2.4"
+
+es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+escalade@^3.1.1, escalade@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
+ integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+escape-string-regexp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+eslint-scope@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+eslint-scope@^7.2.2:
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
+ integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+ integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint@^8.46.0:
+ version "8.57.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9"
+ integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.6.1"
+ "@eslint/eslintrc" "^2.1.4"
+ "@eslint/js" "8.57.1"
+ "@humanwhocodes/config-array" "^0.13.0"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ "@ungap/structured-clone" "^1.2.0"
+ ajv "^6.12.4"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.3.2"
+ doctrine "^3.0.0"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^7.2.2"
+ eslint-visitor-keys "^3.4.3"
+ espree "^9.6.1"
+ esquery "^1.4.2"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^6.0.1"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ graphemer "^1.4.0"
+ ignore "^5.2.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ is-path-inside "^3.0.3"
+ js-yaml "^4.1.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.2"
+ natural-compare "^1.4.0"
+ optionator "^0.9.3"
+ strip-ansi "^6.0.1"
+ text-table "^0.2.0"
+
+espree@^9.6.0, espree@^9.6.1:
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
+ integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+ dependencies:
+ acorn "^8.9.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.4.1"
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+esquery@^1.4.2:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
+ integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
+
+execa@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
+exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
+
+expect@^29.0.0, expect@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
+ integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
+ dependencies:
+ "@jest/expect-utils" "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+
+express-winston@4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/express-winston/-/express-winston-4.2.0.tgz#e9d535d52aa4c125a54a29cce132ae2e3633f4fa"
+ integrity sha512-EMD74g63nVHi7pFleQw7KHCxiA1pjF5uCwbCfzGqmFxs9KvlDPIVS3cMGpULm6MshExMT9TjC3SqmRGB9kb7yw==
+ dependencies:
+ chalk "^2.4.2"
+ lodash "^4.17.21"
+
+express@^4.18.2:
+ version "4.21.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281"
+ integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==
+ dependencies:
+ accepts "~1.3.8"
+ array-flatten "1.1.1"
+ body-parser "1.20.3"
+ content-disposition "0.5.4"
+ content-type "~1.0.4"
+ cookie "0.7.1"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "2.0.0"
+ encodeurl "~2.0.0"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "1.3.1"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ merge-descriptors "1.0.3"
+ methods "~1.1.2"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.10"
+ proxy-addr "~2.0.7"
+ qs "6.13.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.2.1"
+ send "0.19.0"
+ serve-static "1.16.2"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-glob@^3.2.9:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
+ integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
+fast-safe-stringify@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
+ integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
+
+fastq@^1.6.0:
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
+ integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
+ dependencies:
+ reusify "^1.0.4"
+
+fb-watchman@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
+ integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
+ dependencies:
+ bser "2.1.1"
+
+fecha@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
+ integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
+
+file-entry-cache@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+ integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+ dependencies:
+ flat-cache "^3.0.4"
+
+filelist@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
+ integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
+ dependencies:
+ minimatch "^5.0.1"
+
+fill-range@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+finalhandler@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
+ integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~2.0.0"
+ escape-html "~1.0.3"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ statuses "2.0.1"
+ unpipe "~1.0.0"
+
+find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.0.0"
+ path-exists "^4.0.0"
+
+flat-cache@^3.0.4:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
+ integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
+ dependencies:
+ flatted "^3.2.9"
+ keyv "^4.5.3"
+ rimraf "^3.0.2"
+
+flatted@^3.2.9:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27"
+ integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
+
+fn.name@1.x.x:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
+ integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
+
+foreground-child@^3.1.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77"
+ integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^4.0.1"
+
+form-data@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
+ integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+fsevents@^2.3.2, fsevents@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.1.3, get-intrinsic@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
+ integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+
+get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
+get-stream@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+glob-parent@^5.1.2, glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
+glob@^10.3.7:
+ version "10.4.5"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
+ integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
+ dependencies:
+ foreground-child "^3.1.0"
+ jackspeak "^3.1.2"
+ minimatch "^9.0.4"
+ minipass "^7.1.2"
+ package-json-from-dist "^1.0.0"
+ path-scurry "^1.11.1"
+
+glob@^7.1.3, glob@^7.1.4:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globals@^13.19.0:
+ version "13.24.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
+ integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
+ dependencies:
+ type-fest "^0.20.2"
+
+globby@^11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+ integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+ dependencies:
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.2.9"
+ ignore "^5.2.0"
+ merge2 "^1.4.1"
+ slash "^3.0.0"
+
+gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
+ dependencies:
+ get-intrinsic "^1.1.3"
+
+graceful-fs@^4.2.9:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+graphemer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+graphql-request@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-7.1.2.tgz#52d7fd6d8d08c9f0b00c84a091376ce9fbdfa945"
+ integrity sha512-+XE3iuC55C2di5ZUrB4pjgwe+nIQBuXVIK9J98wrVwojzDW3GMdSBZfxUk8l4j9TieIpjpggclxhNEU9ebGF8w==
+ dependencies:
+ "@graphql-typed-document-node/core" "^3.2.0"
+
+graphql-tag@^2.12.6:
+ version "2.12.6"
+ resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1"
+ integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==
+ dependencies:
+ tslib "^2.1.0"
+
+graphql@^16.9.0:
+ version "16.9.0"
+ resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f"
+ integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ dependencies:
+ es-define-property "^1.0.0"
+
+has-proto@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
+ integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
+
+has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+hasown@^2.0.0, hasown@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ dependencies:
+ function-bind "^1.1.2"
+
+hoist-non-react-statics@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+http-errors@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+ dependencies:
+ depd "2.0.0"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ toidentifier "1.0.1"
+
+https-proxy-agent@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
+ integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
+human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+iconv-lite@0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ieee754@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+ignore-by-default@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
+ integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
+
+ignore@^5.2.0:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
+ integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
+
+import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-local@^3.0.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260"
+ integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@^2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-core-module@^2.13.0:
+ version "2.15.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37"
+ integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==
+ dependencies:
+ hasown "^2.0.2"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-path-inside@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
+ integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
+
+istanbul-lib-instrument@^5.0.4:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
+ integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^6.3.0"
+
+istanbul-lib-instrument@^6.0.0:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765"
+ integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
+ dependencies:
+ "@babel/core" "^7.23.9"
+ "@babel/parser" "^7.23.9"
+ "@istanbuljs/schema" "^0.1.3"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^7.5.4"
+
+istanbul-lib-report@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
+ integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^4.0.0"
+ supports-color "^7.1.0"
+
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
+ integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+istanbul-reports@^3.1.3:
+ version "3.1.7"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b"
+ integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
+jackspeak@^3.1.2:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
+ integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
+ dependencies:
+ "@isaacs/cliui" "^8.0.2"
+ optionalDependencies:
+ "@pkgjs/parseargs" "^0.11.0"
+
+jake@^10.8.5:
+ version "10.9.2"
+ resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f"
+ integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==
+ dependencies:
+ async "^3.2.3"
+ chalk "^4.0.2"
+ filelist "^1.0.4"
+ minimatch "^3.1.2"
+
+jest-changed-files@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
+ integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
+ dependencies:
+ execa "^5.0.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+
+jest-circus@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
+ integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ co "^4.6.0"
+ dedent "^1.0.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^29.7.0"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+ pretty-format "^29.7.0"
+ pure-rand "^6.0.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-cli@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
+ integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ create-jest "^29.7.0"
+ exit "^0.1.2"
+ import-local "^3.0.2"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ yargs "^17.3.1"
+
+jest-config@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
+ integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/test-sequencer" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-jest "^29.7.0"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-circus "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ micromatch "^4.0.4"
+ parse-json "^5.2.0"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-json-comments "^3.1.1"
+
+jest-diff@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
+ integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^29.6.3"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-docblock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
+ integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
+ dependencies:
+ detect-newline "^3.0.0"
+
+jest-each@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
+ integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ jest-util "^29.7.0"
+ pretty-format "^29.7.0"
+
+jest-environment-node@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
+ integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+jest-get-type@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
+ integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
+
+jest-haste-map@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
+ integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
+jest-leak-detector@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
+ integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
+ dependencies:
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-matcher-utils@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
+ integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-message-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
+ integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.6.3"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-mock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
+ integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-util "^29.7.0"
+
+jest-pnp-resolver@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
+ integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
+
+jest-regex-util@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
+ integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
+
+jest-resolve-dependencies@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
+ integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
+ dependencies:
+ jest-regex-util "^29.6.3"
+ jest-snapshot "^29.7.0"
+
+jest-resolve@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
+ integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
+ dependencies:
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ resolve "^1.20.0"
+ resolve.exports "^2.0.0"
+ slash "^3.0.0"
+
+jest-runner@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
+ integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/environment" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ graceful-fs "^4.2.9"
+ jest-docblock "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-leak-detector "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-resolve "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-util "^29.7.0"
+ jest-watcher "^29.7.0"
+ jest-worker "^29.7.0"
+ p-limit "^3.1.0"
+ source-map-support "0.5.13"
+
+jest-runtime@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
+ integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/globals" "^29.7.0"
+ "@jest/source-map" "^29.6.3"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ cjs-module-lexer "^1.0.0"
+ collect-v8-coverage "^1.0.0"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+
+jest-snapshot@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
+ integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
+ "@babel/plugin-syntax-typescript" "^7.7.2"
+ "@babel/types" "^7.3.3"
+ "@jest/expect-utils" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+ chalk "^4.0.0"
+ expect "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ natural-compare "^1.4.0"
+ pretty-format "^29.7.0"
+ semver "^7.5.3"
+
+jest-util@^29.0.0, jest-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
+ integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+jest-validate@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
+ integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ camelcase "^6.2.0"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ leven "^3.1.0"
+ pretty-format "^29.7.0"
+
+jest-watcher@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
+ integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ jest-util "^29.7.0"
+ string-length "^4.0.1"
+
+jest-worker@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
+ integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
+ dependencies:
+ "@types/node" "*"
+ jest-util "^29.7.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jest@^29.6.2:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
+ integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ import-local "^3.0.2"
+ jest-cli "^29.7.0"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+ integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
+jsesc@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e"
+ integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==
+
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
+json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+keyv@^4.5.3:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
+ integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ dependencies:
+ json-buffer "3.0.1"
+
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+kuler@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
+ integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
+
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+locate-path@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ dependencies:
+ p-locate "^5.0.0"
+
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+
+lodash.merge@^4.6.2:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash@4.17.21, lodash@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+logform@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b"
+ integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==
+ dependencies:
+ "@colors/colors" "1.5.0"
+ "@types/triple-beam" "^1.3.2"
+ fecha "^4.2.0"
+ ms "^2.1.1"
+ safe-stable-stringify "^2.3.1"
+ triple-beam "^1.3.0"
+
+logform@^2.4.0, logform@^2.7.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/logform/-/logform-2.7.0.tgz#cfca97528ef290f2e125a08396805002b2d060d1"
+ integrity sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==
+ dependencies:
+ "@colors/colors" "1.6.0"
+ "@types/triple-beam" "^1.3.2"
+ fecha "^4.2.0"
+ ms "^2.1.1"
+ safe-stable-stringify "^2.3.1"
+ triple-beam "^1.3.0"
+
+loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+lru-cache@^10.2.0:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
+ integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
+
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
+lru_map@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
+ integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==
+
+make-dir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
+ integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
+ dependencies:
+ semver "^7.5.3"
+
+make-error@^1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+ dependencies:
+ tmpl "1.0.5"
+
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
+
+merge-descriptors@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
+ integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0, merge2@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+
+micromatch@^4.0.4:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
+ integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
+ dependencies:
+ braces "^3.0.3"
+ picomatch "^2.3.1"
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimatch@^5.0.1:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
+ integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimatch@^9.0.4:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
+ integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+ integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
+
+ms@2.1.3, ms@^2.1.1, ms@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+natural-compare-lite@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
+ integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
+negotiator@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+node-fetch@^2.6.1, node-fetch@^2.6.7:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
+
+node-releases@^2.0.18:
+ version "2.0.18"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f"
+ integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==
+
+nodemon@^3.0.1:
+ version "3.1.7"
+ resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.7.tgz#07cb1f455f8bece6a499e0d72b5e029485521a54"
+ integrity sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==
+ dependencies:
+ chokidar "^3.5.2"
+ debug "^4"
+ ignore-by-default "^1.0.1"
+ minimatch "^3.1.2"
+ pstree.remy "^1.1.8"
+ semver "^7.5.3"
+ simple-update-notifier "^2.0.0"
+ supports-color "^5.5.0"
+ touch "^3.1.0"
+ undefsafe "^2.0.5"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+npm-run-path@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+object-assign@^4, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+object-inspect@^1.13.1:
+ version "1.13.3"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a"
+ integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==
+
+on-finished@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+one-time@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"
+ integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
+ dependencies:
+ fn.name "1.x.x"
+
+onetime@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+optimism@^0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.0.tgz#e7bb38b24715f3fdad8a9a7fc18e999144bbfa63"
+ integrity sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==
+ dependencies:
+ "@wry/caches" "^1.0.0"
+ "@wry/context" "^0.7.0"
+ "@wry/trie" "^0.4.3"
+ tslib "^2.3.0"
+
+optionator@^0.9.3:
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
+ integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.5"
+
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-limit@^3.0.2, p-limit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-locate@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ dependencies:
+ p-limit "^3.0.2"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+package-json-from-dist@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
+ integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-json@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ 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"
+
+parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-scurry@^1.11.1:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+ integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
+ dependencies:
+ lru-cache "^10.2.0"
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+path-to-regexp@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b"
+ integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==
+
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+picocolors@^1.0.0, picocolors@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pirates@^4.0.4:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+ integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
+
+pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prettier@^3.0.1:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105"
+ integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==
+
+pretty-format@^29.0.0, pretty-format@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
+ integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
+prompts@^2.0.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
+prop-types@^15.7.2:
+ version "15.8.1"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.13.1"
+
+proxy-addr@~2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+ dependencies:
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
+
+pstree.remy@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
+ integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
+
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+pure-rand@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
+ integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
+
+qs@6.13.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
+ integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
+ dependencies:
+ side-channel "^1.0.6"
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.5.2:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
+ integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
+ dependencies:
+ bytes "3.1.2"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+react-is@^16.13.1, react-is@^16.7.0:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-is@^18.0.0:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
+ integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
+
+readable-stream@^3.4.0, readable-stream@^3.6.2:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
+regenerator-runtime@^0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
+
+rehackt@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.1.0.tgz#a7c5e289c87345f70da8728a7eb878e5d03c696b"
+ integrity sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+ dependencies:
+ resolve-from "^5.0.0"
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve.exports@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
+ integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
+
+resolve@^1.20.0:
+ version "1.22.8"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
+ dependencies:
+ is-core-module "^2.13.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+response-iterator@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da"
+ integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==
+
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+rimraf@^5.0.1:
+ version "5.0.10"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c"
+ integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==
+ dependencies:
+ glob "^10.3.7"
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
+rxjs@^7.8.1:
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
+ integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
+ dependencies:
+ tslib "^2.1.0"
+
+safe-buffer@5.2.1, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-stable-stringify@^2.3.1:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd"
+ integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==
+
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+semver@^6.3.0, semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3:
+ version "7.6.3"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
+ integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
+
+send@0.19.0:
+ version "0.19.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
+ integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
+ dependencies:
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ mime "1.6.0"
+ ms "2.1.3"
+ on-finished "2.4.1"
+ range-parser "~1.2.1"
+ statuses "2.0.1"
+
+serve-static@1.16.2:
+ version "1.16.2"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
+ integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
+ dependencies:
+ encodeurl "~2.0.0"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.19.0"
+
+set-function-length@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
+
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+shell-quote@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
+ integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
+
+side-channel@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
+ integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
+ dependencies:
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
+ object-inspect "^1.13.1"
+
+signal-exit@^3.0.3, signal-exit@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+signal-exit@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
+ dependencies:
+ is-arrayish "^0.3.1"
+
+simple-update-notifier@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb"
+ integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==
+ dependencies:
+ semver "^7.5.3"
+
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+source-map-support@0.5.13:
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map@^0.6.0, source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+spawn-command@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e"
+ integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+stack-trace@0.0.x:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+ integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
+
+stack-utils@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
+ integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
+statuses@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+
+string-length@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+ integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+ dependencies:
+ char-regex "^1.0.2"
+ strip-ansi "^6.0.0"
+
+"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^5.0.1, string-width@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
+ integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ dependencies:
+ eastasianwidth "^0.2.0"
+ emoji-regex "^9.2.2"
+ strip-ansi "^7.0.1"
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-ansi@^7.0.1:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ dependencies:
+ ansi-regex "^6.0.1"
+
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+supports-color@^5.3.0, supports-color@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-color@^8.0.0, supports-color@^8.1.1:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+symbol-observable@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205"
+ integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==
+
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
+text-hex@1.0.x:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
+ integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+
+tmpl@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+touch@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694"
+ integrity sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==
+
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+
+tree-kill@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
+ integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
+
+triple-beam@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
+ integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
+
+triple-beam@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984"
+ integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
+
+ts-invariant@^0.10.3:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c"
+ integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==
+ dependencies:
+ tslib "^2.1.0"
+
+ts-jest@^29.1.1:
+ version "29.2.5"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63"
+ integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==
+ dependencies:
+ bs-logger "^0.2.6"
+ ejs "^3.1.10"
+ fast-json-stable-stringify "^2.1.0"
+ jest-util "^29.0.0"
+ json5 "^2.2.3"
+ lodash.memoize "^4.1.2"
+ make-error "^1.3.6"
+ semver "^7.6.3"
+ yargs-parser "^21.1.1"
+
+tslib@^1.8.1, tslib@^1.9.3:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2.1.0, tslib@^2.3.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
+tsutils@^3.21.0:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+ integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
+ dependencies:
+ tslib "^1.8.1"
+
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+ integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+typescript@^5.1.6:
+ version "5.6.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b"
+ integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==
+
+undefsafe@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
+ integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
+
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
+undici-types@~6.19.8:
+ version "6.19.8"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
+ integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+
+unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+
+update-browserslist-db@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5"
+ integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==
+ dependencies:
+ escalade "^3.2.0"
+ picocolors "^1.1.0"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+util-deprecate@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
+
+v8-to-istanbul@^9.0.1:
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
+ integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^2.0.0"
+
+validator@^13.11.0:
+ version "13.12.0"
+ resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f"
+ integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==
+
+vary@^1, vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+
+walker@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+ dependencies:
+ makeerror "1.0.12"
+
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+
+whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+winston-transport@^4.5.0:
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.9.0.tgz#3bba345de10297654ea6f33519424560003b3bf9"
+ integrity sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==
+ dependencies:
+ logform "^2.7.0"
+ readable-stream "^3.6.2"
+ triple-beam "^1.3.0"
+
+winston@3.8.2:
+ version "3.8.2"
+ resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50"
+ integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==
+ dependencies:
+ "@colors/colors" "1.5.0"
+ "@dabh/diagnostics" "^2.0.2"
+ async "^3.2.3"
+ is-stream "^2.0.0"
+ logform "^2.4.0"
+ one-time "^1.0.0"
+ readable-stream "^3.4.0"
+ safe-stable-stringify "^2.3.1"
+ stack-trace "0.0.x"
+ triple-beam "^1.3.0"
+ winston-transport "^4.5.0"
+
+word-wrap@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
+ integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
+ integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+ dependencies:
+ ansi-styles "^6.1.0"
+ string-width "^5.0.1"
+ strip-ansi "^7.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yargs-parser@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+
+yargs@^17.3.1, yargs@^17.7.2:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ 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"
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zen-observable-ts@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58"
+ integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==
+ dependencies:
+ zen-observable "0.8.15"
+
+zen-observable@0.8.15:
+ version "0.8.15"
+ resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15"
+ integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==