├── .eslintignore ├── .eslintrc.yml ├── .github ├── dependabot.yml └── workflows │ └── test.yml ├── .gitignore ├── .node-version ├── .prettierignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── examples └── rollup │ ├── README.md │ ├── package.json │ ├── public │ ├── index.css │ └── index.html │ ├── requirements.txt │ ├── rollup.config.js │ ├── server.py │ ├── src │ └── index.js │ └── yarn.lock ├── jest.config.js ├── package.json ├── pure.d.ts ├── pure.js ├── rollup.config.js ├── scripts └── publish ├── src ├── index.test.ts ├── index.ts ├── pure.test.ts ├── pure.ts ├── shared.ts └── utils │ ├── jestHelpers.ts │ └── jestSetup.ts ├── tsconfig.json ├── types ├── .eslintrc.yml ├── checks.ts ├── config.ts ├── index.d.ts └── shared.d.ts └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | examples -------------------------------------------------------------------------------- /.eslintrc.yml: -------------------------------------------------------------------------------- 1 | --- 2 | root: true 3 | extends: 4 | - eslint:recommended 5 | - plugin:@typescript-eslint/eslint-recommended 6 | - plugin:@typescript-eslint/recommended 7 | parser: "@typescript-eslint/parser" 8 | plugins: 9 | - jest 10 | - "@typescript-eslint" 11 | env: 12 | jest/globals: true 13 | browser: true 14 | rules: 15 | no-console: 0 16 | func-style: 2 17 | prefer-spread: 0 18 | consistent-return: 2 19 | prefer-arrow-callback: 20 | - 2 21 | - allowNamedFunctions: false 22 | allowUnboundThis: false 23 | no-unused-vars: 0 24 | jest/no-disabled-tests: 2 25 | jest/no-focused-tests: 2 26 | "@typescript-eslint/no-explicit-any": 0 27 | "@typescript-eslint/no-empty-interface": 0 28 | "@typescript-eslint/triple-slash-reference": 0 29 | "@typescript-eslint/consistent-type-imports": "error" 30 | "@typescript-eslint/no-unused-vars": 31 | - 2 32 | - ignoreRestSiblings: true 33 | "object-shorthand": ["error", "always"] 34 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | # Setting to 0 blocks updates for non-security related package dependencies updates 8 | open-pull-requests-limit: 0 9 | target-branch: "master" 10 | 11 | - package-ecosystem: "npm" 12 | directory: "/" 13 | schedule: 14 | interval: "daily" 15 | open-pull-requests-limit: 0 16 | target-branch: "preview" -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | on: 3 | push: 4 | branches: [master, preview] 5 | pull_request: 6 | branches: [master, preview] 7 | jobs: 8 | test: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | - uses: actions/setup-node@v1 13 | with: 14 | node-version: 18.20.2 15 | - run: yarn install --frozen-lockfile 16 | - run: yarn run lint 17 | - run: yarn run typecheck 18 | - run: yarn run test:unit --passWithNoTests 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .cache 3 | node_modules 4 | dist 5 | *.log 6 | .vim 7 | /examples/rollup/public/index.js 8 | /examples/rollup/.yalc 9 | yalc.lock -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 18.20.2 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | package.json 4 | examples 5 | scripts -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Contributions of any kind are welcome! If you've found a bug or have a feature 4 | request, please feel free to 5 | [open an issue](https://github.com/stripe/connect-js/issues). 6 | 7 | To make changes yourself, follow these steps: 8 | 9 | 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository and 10 | [clone](https://help.github.com/articles/cloning-a-repository/) it locally. 11 | 2. Make your changes 12 | 3. Submit a 13 | [pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) 14 | 15 | ## Contributor License Agreement ([CLA](https://en.wikipedia.org/wiki/Contributor_License_Agreement)) 16 | 17 | Once you have submitted a pull request, sign the CLA by clicking on the badge in 18 | the comment from [@CLAassistant](https://github.com/CLAassistant). 19 | 20 | image 21 | 22 |
23 | Thanks for contributing to Stripe! :sparkles: 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Stripe, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Connect.js ES Module 2 | 3 | The [Connect.js library](https://stripe.com/docs/connect/get-started-connect-embedded-components) and its supporting API allows you to add connected account dashboard functionality to your website. 4 | This NPM package contains initialization logic for Connect embedded components along with related types. 5 | 6 | Calling `loadConnectAndInitialize` always loads the latest version of Connect.js, regardless of which version of `@stripe/connect-js` you use. Updates for this package only impact tooling around the `loadConnectAndInitialize` helper itself and the TypeScript type definitions provided for Connect.js. Updates do not affect runtime availability of features of Connect.js. 7 | 8 | The embedded onboarding component is generally available now. Please refer to our [documentation](https://stripe.com/docs/connect/supported-embedded-components#account-onboarding) for more information. 9 | 10 | Note: Some Connect embedded components are currently still in preview. These can be [viewed on our doc site](https://docs.stripe.com/connect/supported-embedded-components), where you can also request preview access. 11 | 12 | ## Installation 13 | 14 | Use `npm` to install the Connect.js module: 15 | 16 | ```sh 17 | npm install @stripe/connect-js 18 | ``` 19 | 20 | ## Documentation 21 | 22 | - [Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components) 23 | - [Quickstart guide](https://stripe.com/docs/connect/connect-embedded-components/quickstart) 24 | 25 | ## Usage 26 | 27 | ### `loadConnectAndInitialize` 28 | 29 | This synchronous function takes in a publishable key, a function to retrieve the client secret returned from the [Account Session API](https://stripe.com/docs/api/account_sessions/create), and other [initialization parameters](https://stripe.com/docs/connect/get-started-connect-embedded-components#configuring-connect-js). It returns a `StripeConnectInstance`. If necessary, it will load Connect.js for you by inserting the Connect.js script tag. 30 | 31 | ```js 32 | import { loadConnectAndInitialize } from "@stripe/connect-js"; 33 | const fetchClientSecret = async () => { 34 | // Fetch the AccountSession client secret by making an API call to your service 35 | }; 36 | 37 | const instance = loadConnectAndInitialize({ 38 | publishableKey: "{{pk test123}}", 39 | fetchClientSecret: fetchClientSecret, 40 | }); 41 | ``` 42 | 43 | We’ve placed a random API key in this example. Replace it with your 44 | [actual publishable API keys](https://dashboard.stripe.com/account/apikeys) to 45 | test this code through your Connect account. 46 | 47 | If you have deployed a 48 | [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP), 49 | make sure to 50 | [include Connect.js in your directives](https://stripe.com/docs/connect/get-started-connect-embedded-components?platform=web#csp-and-http-header-requirements). 51 | 52 | ### Import as a side effect 53 | 54 | Import `@stripe/connect-js` as a side effect in code that will be included 55 | throughout your site (e.g. your root module). This will make sure the Connect.js 56 | script tag is inserted immediately upon page load. 57 | 58 | ```js 59 | import "@stripe/connect-js"; 60 | ``` 61 | 62 | ### Importing `loadConnectAndInitialize` without side effects 63 | 64 | If you would like to use `loadConnectAndInitialize` in your application, but defer loading the 65 | Connect.js script until `loadConnectAndInitialize` is first called, use the alternative 66 | `@stripe/connect-js/pure` import path: 67 | 68 | ```js 69 | import { loadConnectAndInitialize } from "@stripe/connect-js/pure"; 70 | 71 | // Connect.js will not be loaded until `loadConnect` is called 72 | const instance = loadConnectAndInitialize({ 73 | publishableKey: "{{pk test123}}", 74 | fetchClientSecret: fetchClientSecret, 75 | }); 76 | ``` 77 | -------------------------------------------------------------------------------- /examples/rollup/README.md: -------------------------------------------------------------------------------- 1 | # Simple test app for testing the connect-js package 2 | This is a simple app that renders the embedded payments component and loads the connect-js script using this npm package. Use this app to test out the library. 3 | 4 | ## Replace the following variables 5 | 6 | Ensure that you have replaced the following placeholders in the downloaded code sample: 7 | 8 | - `{{CONNECTED_ACCOUNT_ID}}` 9 | - `pk_INSERT_YOUR_PUBLISHABLE_KEY` 10 | - `sk_INSERT_YOUR_SECRET_KEY` 11 | 12 | ## Running the sample 13 | 14 | 1. Build the server 15 | 16 | ``` 17 | pip3 install -r requirements.txt 18 | ``` 19 | 20 | 2. Compile and run the server 21 | 22 | ``` 23 | Run 24 | yarn install # installs all packages 25 | yarn start # runs rollup to compile and starts the server 26 | ``` 27 | 28 | 3. Go to [http://localhost:4242/index.html](http://localhost:4242/index.html) 29 | 30 | Note: if you are doing local development, you can use yalc to test local changes 31 | 32 | 1. yarn build # from the root of this repository 33 | 2. yalc publish # from the root of this repository 34 | 3. yalc add @stripe/connect-js # in this sample 35 | 4. Repeat this process whenever there are any changes to the package -------------------------------------------------------------------------------- /examples/rollup/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stripe-sample-code", 3 | "version": "1.0.0", 4 | "description": "Build a full, working integration using Connect embedded UIs. Included are some basic build and run scripts you can use to start up the application.", 5 | "main": "index.js", 6 | "dependencies": { 7 | "@stripe/connect-js": ">=3.0.0" 8 | }, 9 | "devDependencies": { 10 | "@babel/core": "^7.7.7", 11 | "@babel/plugin-transform-runtime": "^7.7.6", 12 | "@babel/preset-env": "^7.7.7", 13 | "@babel/runtime": "^7.7.7", 14 | "@rollup/plugin-commonjs": "^11.0.0", 15 | "@rollup/plugin-node-resolve": "^6.0.0", 16 | "rimraf": "^3.0.0", 17 | "rollup": "^2.79.2", 18 | "rollup-plugin-babel": "^4.3.3" 19 | }, 20 | "scripts": { 21 | "build": "rollup -c", 22 | "server": "FLASK_APP=server.py python -m flask run --port 4242", 23 | "start": "yarn build && yarn server" 24 | }, 25 | "author": "", 26 | "license": "ISC" 27 | } 28 | -------------------------------------------------------------------------------- /examples/rollup/public/index.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | body { 6 | font-family: -apple-system, BlinkMacSystemFont, sans-serif; 7 | font-size: 16px; 8 | -webkit-font-smoothing: antialiased; 9 | } 10 | 11 | .container { 12 | width: 100%; 13 | padding: 16px; 14 | display: flex; 15 | justify-content: center; 16 | align-content: center; 17 | flex-direction: column; 18 | } 19 | -------------------------------------------------------------------------------- /examples/rollup/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Connect embedded UIs 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /examples/rollup/requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2024.7.4 2 | chardet==4.0.0 3 | Click==8.1.3 4 | Flask==2.3.2 5 | idna==3.7 6 | itsdangerous==2.1.2 7 | Jinja2==3.1.6 8 | MarkupSafe>=2.0.1 9 | requests==2.32.2 10 | stripe==5.1.0b1 11 | toml==0.10.2 12 | Werkzeug==3.0.6 -------------------------------------------------------------------------------- /examples/rollup/rollup.config.js: -------------------------------------------------------------------------------- 1 | const babel = require("rollup-plugin-babel"); 2 | const commonjs = require("@rollup/plugin-commonjs"); 3 | const resolve = require("@rollup/plugin-node-resolve"); 4 | 5 | module.exports.default = [ 6 | { 7 | input: "src/index.js", 8 | output: { 9 | dir: "public", 10 | format: "esm" 11 | }, 12 | plugins: [ 13 | babel({ runtimeHelpers: true }), 14 | resolve(), 15 | commonjs() 16 | ] 17 | } 18 | ]; 19 | -------------------------------------------------------------------------------- /examples/rollup/server.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python3.6 2 | """ 3 | Python 3.6 or newer required. 4 | """ 5 | import stripe 6 | 7 | stripe.api_key = 'sk_test_sample_key' 8 | 9 | from flask import Flask, jsonify 10 | 11 | app = Flask(__name__, static_folder='public', 12 | static_url_path='', template_folder='public') 13 | 14 | @app.route('/account_session', methods=['POST']) 15 | def create_account_session(): 16 | try: 17 | account_session = stripe.AccountSession.create( 18 | # We currently only support US custom accounts for onboarding 19 | # https://stripe.com/docs/connect/supported-embedded-components#account-onboarding for more info 20 | account="{{CONNECTED_ACCOUNT_ID}}", 21 | components={ 22 | "account_onboarding": { 23 | "enabled": True 24 | }, 25 | }, 26 | ) 27 | return jsonify({ 28 | 'client_secret': account_session.client_secret, 29 | }) 30 | except Exception as e: 31 | print('An error occurred when calling the Stripe API to create an account session: ', e) 32 | return jsonify(error=str(e)), 500 33 | 34 | if __name__ == '__main__': 35 | app.run(port=4242) -------------------------------------------------------------------------------- /examples/rollup/src/index.js: -------------------------------------------------------------------------------- 1 | import { loadConnectAndInitialize } from "@stripe/connect-js"; 2 | 3 | const fetchClientSecret = async () => { 4 | // Fetch the AccountSession client secret 5 | const response = await fetch("/account_session", { method: "POST" }); 6 | if (!response.ok) { 7 | // Handle errors on the client side here 8 | const { error } = await response.json(); 9 | console.log("An error occurred: ", error); 10 | document.querySelector(".container").setAttribute("hidden", ""); 11 | document.querySelector(".error").removeAttribute("hidden"); 12 | return undefined; 13 | } else { 14 | const { client_secret: clientSecret } = await response.json(); 15 | document.querySelector(".container").removeAttribute("hidden"); 16 | document.querySelector(".error").setAttribute("hidden", ""); 17 | return clientSecret; 18 | } 19 | }; 20 | 21 | const connectInstance = loadConnectAndInitialize({ 22 | publishableKey: "{{pk test123}}", 23 | fetchClientSecret: fetchClientSecret, 24 | appearance: { 25 | variables: { 26 | colorPrimary: "#FF3333", 27 | }, 28 | } 29 | }); 30 | 31 | const onboarding = connectInstance.create("account-onboarding"); 32 | document.getElementById("onboarding").append(onboarding); 33 | connectInstance.update({ 34 | appearance: { 35 | variables: { 36 | colorPrimary: "#7F3D73", 37 | }, 38 | }, 39 | }); 40 | -------------------------------------------------------------------------------- /examples/rollup/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.2.1" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" 8 | integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": 14 | version "7.21.4" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" 16 | integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/code-frame@^7.25.7": 21 | version "7.25.7" 22 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.7.tgz#438f2c524071531d643c6f0188e1e28f130cebc7" 23 | integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== 24 | dependencies: 25 | "@babel/highlight" "^7.25.7" 26 | picocolors "^1.0.0" 27 | 28 | "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": 29 | version "7.21.7" 30 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" 31 | integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== 32 | 33 | "@babel/core@^7.7.7": 34 | version "7.21.8" 35 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" 36 | integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== 37 | dependencies: 38 | "@ampproject/remapping" "^2.2.0" 39 | "@babel/code-frame" "^7.21.4" 40 | "@babel/generator" "^7.21.5" 41 | "@babel/helper-compilation-targets" "^7.21.5" 42 | "@babel/helper-module-transforms" "^7.21.5" 43 | "@babel/helpers" "^7.21.5" 44 | "@babel/parser" "^7.21.8" 45 | "@babel/template" "^7.20.7" 46 | "@babel/traverse" "^7.21.5" 47 | "@babel/types" "^7.21.5" 48 | convert-source-map "^1.7.0" 49 | debug "^4.1.0" 50 | gensync "^1.0.0-beta.2" 51 | json5 "^2.2.2" 52 | semver "^6.3.0" 53 | 54 | "@babel/generator@^7.21.5": 55 | version "7.21.5" 56 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" 57 | integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== 58 | dependencies: 59 | "@babel/types" "^7.21.5" 60 | "@jridgewell/gen-mapping" "^0.3.2" 61 | "@jridgewell/trace-mapping" "^0.3.17" 62 | jsesc "^2.5.1" 63 | 64 | "@babel/generator@^7.25.7": 65 | version "7.25.7" 66 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.7.tgz#de86acbeb975a3e11ee92dd52223e6b03b479c56" 67 | integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA== 68 | dependencies: 69 | "@babel/types" "^7.25.7" 70 | "@jridgewell/gen-mapping" "^0.3.5" 71 | "@jridgewell/trace-mapping" "^0.3.25" 72 | jsesc "^3.0.2" 73 | 74 | "@babel/helper-annotate-as-pure@^7.18.6": 75 | version "7.18.6" 76 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" 77 | integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== 78 | dependencies: 79 | "@babel/types" "^7.18.6" 80 | 81 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": 82 | version "7.21.5" 83 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz#817f73b6c59726ab39f6ba18c234268a519e5abb" 84 | integrity sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== 85 | dependencies: 86 | "@babel/types" "^7.21.5" 87 | 88 | "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": 89 | version "7.21.5" 90 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" 91 | integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== 92 | dependencies: 93 | "@babel/compat-data" "^7.21.5" 94 | "@babel/helper-validator-option" "^7.21.0" 95 | browserslist "^4.21.3" 96 | lru-cache "^5.1.1" 97 | semver "^6.3.0" 98 | 99 | "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": 100 | version "7.21.8" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" 102 | integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== 103 | dependencies: 104 | "@babel/helper-annotate-as-pure" "^7.18.6" 105 | "@babel/helper-environment-visitor" "^7.21.5" 106 | "@babel/helper-function-name" "^7.21.0" 107 | "@babel/helper-member-expression-to-functions" "^7.21.5" 108 | "@babel/helper-optimise-call-expression" "^7.18.6" 109 | "@babel/helper-replace-supers" "^7.21.5" 110 | "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" 111 | "@babel/helper-split-export-declaration" "^7.18.6" 112 | semver "^6.3.0" 113 | 114 | "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": 115 | version "7.21.8" 116 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" 117 | integrity sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g== 118 | dependencies: 119 | "@babel/helper-annotate-as-pure" "^7.18.6" 120 | regexpu-core "^5.3.1" 121 | semver "^6.3.0" 122 | 123 | "@babel/helper-define-polyfill-provider@^0.3.3": 124 | version "0.3.3" 125 | resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" 126 | integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== 127 | dependencies: 128 | "@babel/helper-compilation-targets" "^7.17.7" 129 | "@babel/helper-plugin-utils" "^7.16.7" 130 | debug "^4.1.1" 131 | lodash.debounce "^4.0.8" 132 | resolve "^1.14.2" 133 | semver "^6.1.2" 134 | 135 | "@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": 136 | version "7.21.5" 137 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" 138 | integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== 139 | 140 | "@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": 141 | version "7.21.0" 142 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" 143 | integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== 144 | dependencies: 145 | "@babel/template" "^7.20.7" 146 | "@babel/types" "^7.21.0" 147 | 148 | "@babel/helper-hoist-variables@^7.18.6": 149 | version "7.18.6" 150 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 151 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 152 | dependencies: 153 | "@babel/types" "^7.18.6" 154 | 155 | "@babel/helper-member-expression-to-functions@^7.21.5": 156 | version "7.21.5" 157 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" 158 | integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== 159 | dependencies: 160 | "@babel/types" "^7.21.5" 161 | 162 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": 163 | version "7.21.4" 164 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" 165 | integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== 166 | dependencies: 167 | "@babel/types" "^7.21.4" 168 | 169 | "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": 170 | version "7.21.5" 171 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" 172 | integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== 173 | dependencies: 174 | "@babel/helper-environment-visitor" "^7.21.5" 175 | "@babel/helper-module-imports" "^7.21.4" 176 | "@babel/helper-simple-access" "^7.21.5" 177 | "@babel/helper-split-export-declaration" "^7.18.6" 178 | "@babel/helper-validator-identifier" "^7.19.1" 179 | "@babel/template" "^7.20.7" 180 | "@babel/traverse" "^7.21.5" 181 | "@babel/types" "^7.21.5" 182 | 183 | "@babel/helper-optimise-call-expression@^7.18.6": 184 | version "7.18.6" 185 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" 186 | integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== 187 | dependencies: 188 | "@babel/types" "^7.18.6" 189 | 190 | "@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.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": 191 | version "7.21.5" 192 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" 193 | integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== 194 | 195 | "@babel/helper-remap-async-to-generator@^7.18.9": 196 | version "7.18.9" 197 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" 198 | integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== 199 | dependencies: 200 | "@babel/helper-annotate-as-pure" "^7.18.6" 201 | "@babel/helper-environment-visitor" "^7.18.9" 202 | "@babel/helper-wrap-function" "^7.18.9" 203 | "@babel/types" "^7.18.9" 204 | 205 | "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": 206 | version "7.21.5" 207 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" 208 | integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== 209 | dependencies: 210 | "@babel/helper-environment-visitor" "^7.21.5" 211 | "@babel/helper-member-expression-to-functions" "^7.21.5" 212 | "@babel/helper-optimise-call-expression" "^7.18.6" 213 | "@babel/template" "^7.20.7" 214 | "@babel/traverse" "^7.21.5" 215 | "@babel/types" "^7.21.5" 216 | 217 | "@babel/helper-simple-access@^7.21.5": 218 | version "7.21.5" 219 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" 220 | integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== 221 | dependencies: 222 | "@babel/types" "^7.21.5" 223 | 224 | "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": 225 | version "7.20.0" 226 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" 227 | integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== 228 | dependencies: 229 | "@babel/types" "^7.20.0" 230 | 231 | "@babel/helper-split-export-declaration@^7.18.6": 232 | version "7.18.6" 233 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 234 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 235 | dependencies: 236 | "@babel/types" "^7.18.6" 237 | 238 | "@babel/helper-string-parser@^7.21.5": 239 | version "7.21.5" 240 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" 241 | integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== 242 | 243 | "@babel/helper-string-parser@^7.25.7": 244 | version "7.25.7" 245 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54" 246 | integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== 247 | 248 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 249 | version "7.19.1" 250 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 251 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 252 | 253 | "@babel/helper-validator-identifier@^7.25.7": 254 | version "7.25.7" 255 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" 256 | integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== 257 | 258 | "@babel/helper-validator-option@^7.21.0": 259 | version "7.21.0" 260 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" 261 | integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== 262 | 263 | "@babel/helper-wrap-function@^7.18.9": 264 | version "7.20.5" 265 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" 266 | integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== 267 | dependencies: 268 | "@babel/helper-function-name" "^7.19.0" 269 | "@babel/template" "^7.18.10" 270 | "@babel/traverse" "^7.20.5" 271 | "@babel/types" "^7.20.5" 272 | 273 | "@babel/helpers@^7.21.5": 274 | version "7.21.5" 275 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" 276 | integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== 277 | dependencies: 278 | "@babel/template" "^7.20.7" 279 | "@babel/traverse" "^7.21.5" 280 | "@babel/types" "^7.21.5" 281 | 282 | "@babel/highlight@^7.18.6": 283 | version "7.18.6" 284 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 285 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 286 | dependencies: 287 | "@babel/helper-validator-identifier" "^7.18.6" 288 | chalk "^2.0.0" 289 | js-tokens "^4.0.0" 290 | 291 | "@babel/highlight@^7.25.7": 292 | version "7.25.7" 293 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.7.tgz#20383b5f442aa606e7b5e3043b0b1aafe9f37de5" 294 | integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== 295 | dependencies: 296 | "@babel/helper-validator-identifier" "^7.25.7" 297 | chalk "^2.4.2" 298 | js-tokens "^4.0.0" 299 | picocolors "^1.0.0" 300 | 301 | "@babel/parser@^7.20.7", "@babel/parser@^7.21.8": 302 | version "7.21.8" 303 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" 304 | integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== 305 | 306 | "@babel/parser@^7.25.7": 307 | version "7.25.7" 308 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.7.tgz#99b927720f4ddbfeb8cd195a363ed4532f87c590" 309 | integrity sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw== 310 | dependencies: 311 | "@babel/types" "^7.25.7" 312 | 313 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": 314 | version "7.18.6" 315 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" 316 | integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== 317 | dependencies: 318 | "@babel/helper-plugin-utils" "^7.18.6" 319 | 320 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": 321 | version "7.20.7" 322 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" 323 | integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== 324 | dependencies: 325 | "@babel/helper-plugin-utils" "^7.20.2" 326 | "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" 327 | "@babel/plugin-proposal-optional-chaining" "^7.20.7" 328 | 329 | "@babel/plugin-proposal-async-generator-functions@^7.20.7": 330 | version "7.20.7" 331 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" 332 | integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== 333 | dependencies: 334 | "@babel/helper-environment-visitor" "^7.18.9" 335 | "@babel/helper-plugin-utils" "^7.20.2" 336 | "@babel/helper-remap-async-to-generator" "^7.18.9" 337 | "@babel/plugin-syntax-async-generators" "^7.8.4" 338 | 339 | "@babel/plugin-proposal-class-properties@^7.18.6": 340 | version "7.18.6" 341 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" 342 | integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== 343 | dependencies: 344 | "@babel/helper-create-class-features-plugin" "^7.18.6" 345 | "@babel/helper-plugin-utils" "^7.18.6" 346 | 347 | "@babel/plugin-proposal-class-static-block@^7.21.0": 348 | version "7.21.0" 349 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" 350 | integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== 351 | dependencies: 352 | "@babel/helper-create-class-features-plugin" "^7.21.0" 353 | "@babel/helper-plugin-utils" "^7.20.2" 354 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 355 | 356 | "@babel/plugin-proposal-dynamic-import@^7.18.6": 357 | version "7.18.6" 358 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" 359 | integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== 360 | dependencies: 361 | "@babel/helper-plugin-utils" "^7.18.6" 362 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 363 | 364 | "@babel/plugin-proposal-export-namespace-from@^7.18.9": 365 | version "7.18.9" 366 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" 367 | integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== 368 | dependencies: 369 | "@babel/helper-plugin-utils" "^7.18.9" 370 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 371 | 372 | "@babel/plugin-proposal-json-strings@^7.18.6": 373 | version "7.18.6" 374 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" 375 | integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== 376 | dependencies: 377 | "@babel/helper-plugin-utils" "^7.18.6" 378 | "@babel/plugin-syntax-json-strings" "^7.8.3" 379 | 380 | "@babel/plugin-proposal-logical-assignment-operators@^7.20.7": 381 | version "7.20.7" 382 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" 383 | integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== 384 | dependencies: 385 | "@babel/helper-plugin-utils" "^7.20.2" 386 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 387 | 388 | "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": 389 | version "7.18.6" 390 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" 391 | integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== 392 | dependencies: 393 | "@babel/helper-plugin-utils" "^7.18.6" 394 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 395 | 396 | "@babel/plugin-proposal-numeric-separator@^7.18.6": 397 | version "7.18.6" 398 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" 399 | integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== 400 | dependencies: 401 | "@babel/helper-plugin-utils" "^7.18.6" 402 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 403 | 404 | "@babel/plugin-proposal-object-rest-spread@^7.20.7": 405 | version "7.20.7" 406 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" 407 | integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== 408 | dependencies: 409 | "@babel/compat-data" "^7.20.5" 410 | "@babel/helper-compilation-targets" "^7.20.7" 411 | "@babel/helper-plugin-utils" "^7.20.2" 412 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 413 | "@babel/plugin-transform-parameters" "^7.20.7" 414 | 415 | "@babel/plugin-proposal-optional-catch-binding@^7.18.6": 416 | version "7.18.6" 417 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" 418 | integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== 419 | dependencies: 420 | "@babel/helper-plugin-utils" "^7.18.6" 421 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 422 | 423 | "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": 424 | version "7.21.0" 425 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" 426 | integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== 427 | dependencies: 428 | "@babel/helper-plugin-utils" "^7.20.2" 429 | "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" 430 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 431 | 432 | "@babel/plugin-proposal-private-methods@^7.18.6": 433 | version "7.18.6" 434 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" 435 | integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== 436 | dependencies: 437 | "@babel/helper-create-class-features-plugin" "^7.18.6" 438 | "@babel/helper-plugin-utils" "^7.18.6" 439 | 440 | "@babel/plugin-proposal-private-property-in-object@^7.21.0": 441 | version "7.21.0" 442 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" 443 | integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== 444 | dependencies: 445 | "@babel/helper-annotate-as-pure" "^7.18.6" 446 | "@babel/helper-create-class-features-plugin" "^7.21.0" 447 | "@babel/helper-plugin-utils" "^7.20.2" 448 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 449 | 450 | "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": 451 | version "7.18.6" 452 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" 453 | integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== 454 | dependencies: 455 | "@babel/helper-create-regexp-features-plugin" "^7.18.6" 456 | "@babel/helper-plugin-utils" "^7.18.6" 457 | 458 | "@babel/plugin-syntax-async-generators@^7.8.4": 459 | version "7.8.4" 460 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" 461 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 462 | dependencies: 463 | "@babel/helper-plugin-utils" "^7.8.0" 464 | 465 | "@babel/plugin-syntax-class-properties@^7.12.13": 466 | version "7.12.13" 467 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" 468 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 469 | dependencies: 470 | "@babel/helper-plugin-utils" "^7.12.13" 471 | 472 | "@babel/plugin-syntax-class-static-block@^7.14.5": 473 | version "7.14.5" 474 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" 475 | integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== 476 | dependencies: 477 | "@babel/helper-plugin-utils" "^7.14.5" 478 | 479 | "@babel/plugin-syntax-dynamic-import@^7.8.3": 480 | version "7.8.3" 481 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" 482 | integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== 483 | dependencies: 484 | "@babel/helper-plugin-utils" "^7.8.0" 485 | 486 | "@babel/plugin-syntax-export-namespace-from@^7.8.3": 487 | version "7.8.3" 488 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" 489 | integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== 490 | dependencies: 491 | "@babel/helper-plugin-utils" "^7.8.3" 492 | 493 | "@babel/plugin-syntax-import-assertions@^7.20.0": 494 | version "7.20.0" 495 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" 496 | integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== 497 | dependencies: 498 | "@babel/helper-plugin-utils" "^7.19.0" 499 | 500 | "@babel/plugin-syntax-import-meta@^7.10.4": 501 | version "7.10.4" 502 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" 503 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== 504 | dependencies: 505 | "@babel/helper-plugin-utils" "^7.10.4" 506 | 507 | "@babel/plugin-syntax-json-strings@^7.8.3": 508 | version "7.8.3" 509 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" 510 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 511 | dependencies: 512 | "@babel/helper-plugin-utils" "^7.8.0" 513 | 514 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": 515 | version "7.10.4" 516 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" 517 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 518 | dependencies: 519 | "@babel/helper-plugin-utils" "^7.10.4" 520 | 521 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 522 | version "7.8.3" 523 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" 524 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 525 | dependencies: 526 | "@babel/helper-plugin-utils" "^7.8.0" 527 | 528 | "@babel/plugin-syntax-numeric-separator@^7.10.4": 529 | version "7.10.4" 530 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" 531 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 532 | dependencies: 533 | "@babel/helper-plugin-utils" "^7.10.4" 534 | 535 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 536 | version "7.8.3" 537 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" 538 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 539 | dependencies: 540 | "@babel/helper-plugin-utils" "^7.8.0" 541 | 542 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 543 | version "7.8.3" 544 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" 545 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 546 | dependencies: 547 | "@babel/helper-plugin-utils" "^7.8.0" 548 | 549 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 550 | version "7.8.3" 551 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" 552 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 553 | dependencies: 554 | "@babel/helper-plugin-utils" "^7.8.0" 555 | 556 | "@babel/plugin-syntax-private-property-in-object@^7.14.5": 557 | version "7.14.5" 558 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" 559 | integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== 560 | dependencies: 561 | "@babel/helper-plugin-utils" "^7.14.5" 562 | 563 | "@babel/plugin-syntax-top-level-await@^7.14.5": 564 | version "7.14.5" 565 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" 566 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== 567 | dependencies: 568 | "@babel/helper-plugin-utils" "^7.14.5" 569 | 570 | "@babel/plugin-transform-arrow-functions@^7.21.5": 571 | version "7.21.5" 572 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" 573 | integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== 574 | dependencies: 575 | "@babel/helper-plugin-utils" "^7.21.5" 576 | 577 | "@babel/plugin-transform-async-to-generator@^7.20.7": 578 | version "7.20.7" 579 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" 580 | integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== 581 | dependencies: 582 | "@babel/helper-module-imports" "^7.18.6" 583 | "@babel/helper-plugin-utils" "^7.20.2" 584 | "@babel/helper-remap-async-to-generator" "^7.18.9" 585 | 586 | "@babel/plugin-transform-block-scoped-functions@^7.18.6": 587 | version "7.18.6" 588 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" 589 | integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== 590 | dependencies: 591 | "@babel/helper-plugin-utils" "^7.18.6" 592 | 593 | "@babel/plugin-transform-block-scoping@^7.21.0": 594 | version "7.21.0" 595 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" 596 | integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== 597 | dependencies: 598 | "@babel/helper-plugin-utils" "^7.20.2" 599 | 600 | "@babel/plugin-transform-classes@^7.21.0": 601 | version "7.21.0" 602 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" 603 | integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== 604 | dependencies: 605 | "@babel/helper-annotate-as-pure" "^7.18.6" 606 | "@babel/helper-compilation-targets" "^7.20.7" 607 | "@babel/helper-environment-visitor" "^7.18.9" 608 | "@babel/helper-function-name" "^7.21.0" 609 | "@babel/helper-optimise-call-expression" "^7.18.6" 610 | "@babel/helper-plugin-utils" "^7.20.2" 611 | "@babel/helper-replace-supers" "^7.20.7" 612 | "@babel/helper-split-export-declaration" "^7.18.6" 613 | globals "^11.1.0" 614 | 615 | "@babel/plugin-transform-computed-properties@^7.21.5": 616 | version "7.21.5" 617 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" 618 | integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== 619 | dependencies: 620 | "@babel/helper-plugin-utils" "^7.21.5" 621 | "@babel/template" "^7.20.7" 622 | 623 | "@babel/plugin-transform-destructuring@^7.21.3": 624 | version "7.21.3" 625 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" 626 | integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== 627 | dependencies: 628 | "@babel/helper-plugin-utils" "^7.20.2" 629 | 630 | "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": 631 | version "7.18.6" 632 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" 633 | integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== 634 | dependencies: 635 | "@babel/helper-create-regexp-features-plugin" "^7.18.6" 636 | "@babel/helper-plugin-utils" "^7.18.6" 637 | 638 | "@babel/plugin-transform-duplicate-keys@^7.18.9": 639 | version "7.18.9" 640 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" 641 | integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== 642 | dependencies: 643 | "@babel/helper-plugin-utils" "^7.18.9" 644 | 645 | "@babel/plugin-transform-exponentiation-operator@^7.18.6": 646 | version "7.18.6" 647 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" 648 | integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== 649 | dependencies: 650 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" 651 | "@babel/helper-plugin-utils" "^7.18.6" 652 | 653 | "@babel/plugin-transform-for-of@^7.21.5": 654 | version "7.21.5" 655 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" 656 | integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== 657 | dependencies: 658 | "@babel/helper-plugin-utils" "^7.21.5" 659 | 660 | "@babel/plugin-transform-function-name@^7.18.9": 661 | version "7.18.9" 662 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" 663 | integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== 664 | dependencies: 665 | "@babel/helper-compilation-targets" "^7.18.9" 666 | "@babel/helper-function-name" "^7.18.9" 667 | "@babel/helper-plugin-utils" "^7.18.9" 668 | 669 | "@babel/plugin-transform-literals@^7.18.9": 670 | version "7.18.9" 671 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" 672 | integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== 673 | dependencies: 674 | "@babel/helper-plugin-utils" "^7.18.9" 675 | 676 | "@babel/plugin-transform-member-expression-literals@^7.18.6": 677 | version "7.18.6" 678 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" 679 | integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== 680 | dependencies: 681 | "@babel/helper-plugin-utils" "^7.18.6" 682 | 683 | "@babel/plugin-transform-modules-amd@^7.20.11": 684 | version "7.20.11" 685 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" 686 | integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== 687 | dependencies: 688 | "@babel/helper-module-transforms" "^7.20.11" 689 | "@babel/helper-plugin-utils" "^7.20.2" 690 | 691 | "@babel/plugin-transform-modules-commonjs@^7.21.5": 692 | version "7.21.5" 693 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" 694 | integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== 695 | dependencies: 696 | "@babel/helper-module-transforms" "^7.21.5" 697 | "@babel/helper-plugin-utils" "^7.21.5" 698 | "@babel/helper-simple-access" "^7.21.5" 699 | 700 | "@babel/plugin-transform-modules-systemjs@^7.20.11": 701 | version "7.20.11" 702 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" 703 | integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== 704 | dependencies: 705 | "@babel/helper-hoist-variables" "^7.18.6" 706 | "@babel/helper-module-transforms" "^7.20.11" 707 | "@babel/helper-plugin-utils" "^7.20.2" 708 | "@babel/helper-validator-identifier" "^7.19.1" 709 | 710 | "@babel/plugin-transform-modules-umd@^7.18.6": 711 | version "7.18.6" 712 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" 713 | integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== 714 | dependencies: 715 | "@babel/helper-module-transforms" "^7.18.6" 716 | "@babel/helper-plugin-utils" "^7.18.6" 717 | 718 | "@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": 719 | version "7.20.5" 720 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" 721 | integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== 722 | dependencies: 723 | "@babel/helper-create-regexp-features-plugin" "^7.20.5" 724 | "@babel/helper-plugin-utils" "^7.20.2" 725 | 726 | "@babel/plugin-transform-new-target@^7.18.6": 727 | version "7.18.6" 728 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" 729 | integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== 730 | dependencies: 731 | "@babel/helper-plugin-utils" "^7.18.6" 732 | 733 | "@babel/plugin-transform-object-super@^7.18.6": 734 | version "7.18.6" 735 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" 736 | integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== 737 | dependencies: 738 | "@babel/helper-plugin-utils" "^7.18.6" 739 | "@babel/helper-replace-supers" "^7.18.6" 740 | 741 | "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": 742 | version "7.21.3" 743 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" 744 | integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== 745 | dependencies: 746 | "@babel/helper-plugin-utils" "^7.20.2" 747 | 748 | "@babel/plugin-transform-property-literals@^7.18.6": 749 | version "7.18.6" 750 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" 751 | integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== 752 | dependencies: 753 | "@babel/helper-plugin-utils" "^7.18.6" 754 | 755 | "@babel/plugin-transform-regenerator@^7.21.5": 756 | version "7.21.5" 757 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" 758 | integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== 759 | dependencies: 760 | "@babel/helper-plugin-utils" "^7.21.5" 761 | regenerator-transform "^0.15.1" 762 | 763 | "@babel/plugin-transform-reserved-words@^7.18.6": 764 | version "7.18.6" 765 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" 766 | integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== 767 | dependencies: 768 | "@babel/helper-plugin-utils" "^7.18.6" 769 | 770 | "@babel/plugin-transform-runtime@^7.7.6": 771 | version "7.21.4" 772 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" 773 | integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA== 774 | dependencies: 775 | "@babel/helper-module-imports" "^7.21.4" 776 | "@babel/helper-plugin-utils" "^7.20.2" 777 | babel-plugin-polyfill-corejs2 "^0.3.3" 778 | babel-plugin-polyfill-corejs3 "^0.6.0" 779 | babel-plugin-polyfill-regenerator "^0.4.1" 780 | semver "^6.3.0" 781 | 782 | "@babel/plugin-transform-shorthand-properties@^7.18.6": 783 | version "7.18.6" 784 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" 785 | integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== 786 | dependencies: 787 | "@babel/helper-plugin-utils" "^7.18.6" 788 | 789 | "@babel/plugin-transform-spread@^7.20.7": 790 | version "7.20.7" 791 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" 792 | integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== 793 | dependencies: 794 | "@babel/helper-plugin-utils" "^7.20.2" 795 | "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" 796 | 797 | "@babel/plugin-transform-sticky-regex@^7.18.6": 798 | version "7.18.6" 799 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" 800 | integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== 801 | dependencies: 802 | "@babel/helper-plugin-utils" "^7.18.6" 803 | 804 | "@babel/plugin-transform-template-literals@^7.18.9": 805 | version "7.18.9" 806 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" 807 | integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== 808 | dependencies: 809 | "@babel/helper-plugin-utils" "^7.18.9" 810 | 811 | "@babel/plugin-transform-typeof-symbol@^7.18.9": 812 | version "7.18.9" 813 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" 814 | integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== 815 | dependencies: 816 | "@babel/helper-plugin-utils" "^7.18.9" 817 | 818 | "@babel/plugin-transform-unicode-escapes@^7.21.5": 819 | version "7.21.5" 820 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" 821 | integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== 822 | dependencies: 823 | "@babel/helper-plugin-utils" "^7.21.5" 824 | 825 | "@babel/plugin-transform-unicode-regex@^7.18.6": 826 | version "7.18.6" 827 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" 828 | integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== 829 | dependencies: 830 | "@babel/helper-create-regexp-features-plugin" "^7.18.6" 831 | "@babel/helper-plugin-utils" "^7.18.6" 832 | 833 | "@babel/preset-env@^7.7.7": 834 | version "7.21.5" 835 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb" 836 | integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== 837 | dependencies: 838 | "@babel/compat-data" "^7.21.5" 839 | "@babel/helper-compilation-targets" "^7.21.5" 840 | "@babel/helper-plugin-utils" "^7.21.5" 841 | "@babel/helper-validator-option" "^7.21.0" 842 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" 843 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" 844 | "@babel/plugin-proposal-async-generator-functions" "^7.20.7" 845 | "@babel/plugin-proposal-class-properties" "^7.18.6" 846 | "@babel/plugin-proposal-class-static-block" "^7.21.0" 847 | "@babel/plugin-proposal-dynamic-import" "^7.18.6" 848 | "@babel/plugin-proposal-export-namespace-from" "^7.18.9" 849 | "@babel/plugin-proposal-json-strings" "^7.18.6" 850 | "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" 851 | "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" 852 | "@babel/plugin-proposal-numeric-separator" "^7.18.6" 853 | "@babel/plugin-proposal-object-rest-spread" "^7.20.7" 854 | "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" 855 | "@babel/plugin-proposal-optional-chaining" "^7.21.0" 856 | "@babel/plugin-proposal-private-methods" "^7.18.6" 857 | "@babel/plugin-proposal-private-property-in-object" "^7.21.0" 858 | "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" 859 | "@babel/plugin-syntax-async-generators" "^7.8.4" 860 | "@babel/plugin-syntax-class-properties" "^7.12.13" 861 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 862 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 863 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 864 | "@babel/plugin-syntax-import-assertions" "^7.20.0" 865 | "@babel/plugin-syntax-import-meta" "^7.10.4" 866 | "@babel/plugin-syntax-json-strings" "^7.8.3" 867 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 868 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 869 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 870 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 871 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 872 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 873 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 874 | "@babel/plugin-syntax-top-level-await" "^7.14.5" 875 | "@babel/plugin-transform-arrow-functions" "^7.21.5" 876 | "@babel/plugin-transform-async-to-generator" "^7.20.7" 877 | "@babel/plugin-transform-block-scoped-functions" "^7.18.6" 878 | "@babel/plugin-transform-block-scoping" "^7.21.0" 879 | "@babel/plugin-transform-classes" "^7.21.0" 880 | "@babel/plugin-transform-computed-properties" "^7.21.5" 881 | "@babel/plugin-transform-destructuring" "^7.21.3" 882 | "@babel/plugin-transform-dotall-regex" "^7.18.6" 883 | "@babel/plugin-transform-duplicate-keys" "^7.18.9" 884 | "@babel/plugin-transform-exponentiation-operator" "^7.18.6" 885 | "@babel/plugin-transform-for-of" "^7.21.5" 886 | "@babel/plugin-transform-function-name" "^7.18.9" 887 | "@babel/plugin-transform-literals" "^7.18.9" 888 | "@babel/plugin-transform-member-expression-literals" "^7.18.6" 889 | "@babel/plugin-transform-modules-amd" "^7.20.11" 890 | "@babel/plugin-transform-modules-commonjs" "^7.21.5" 891 | "@babel/plugin-transform-modules-systemjs" "^7.20.11" 892 | "@babel/plugin-transform-modules-umd" "^7.18.6" 893 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" 894 | "@babel/plugin-transform-new-target" "^7.18.6" 895 | "@babel/plugin-transform-object-super" "^7.18.6" 896 | "@babel/plugin-transform-parameters" "^7.21.3" 897 | "@babel/plugin-transform-property-literals" "^7.18.6" 898 | "@babel/plugin-transform-regenerator" "^7.21.5" 899 | "@babel/plugin-transform-reserved-words" "^7.18.6" 900 | "@babel/plugin-transform-shorthand-properties" "^7.18.6" 901 | "@babel/plugin-transform-spread" "^7.20.7" 902 | "@babel/plugin-transform-sticky-regex" "^7.18.6" 903 | "@babel/plugin-transform-template-literals" "^7.18.9" 904 | "@babel/plugin-transform-typeof-symbol" "^7.18.9" 905 | "@babel/plugin-transform-unicode-escapes" "^7.21.5" 906 | "@babel/plugin-transform-unicode-regex" "^7.18.6" 907 | "@babel/preset-modules" "^0.1.5" 908 | "@babel/types" "^7.21.5" 909 | babel-plugin-polyfill-corejs2 "^0.3.3" 910 | babel-plugin-polyfill-corejs3 "^0.6.0" 911 | babel-plugin-polyfill-regenerator "^0.4.1" 912 | core-js-compat "^3.25.1" 913 | semver "^6.3.0" 914 | 915 | "@babel/preset-modules@^0.1.5": 916 | version "0.1.5" 917 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" 918 | integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== 919 | dependencies: 920 | "@babel/helper-plugin-utils" "^7.0.0" 921 | "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" 922 | "@babel/plugin-transform-dotall-regex" "^7.4.4" 923 | "@babel/types" "^7.4.4" 924 | esutils "^2.0.2" 925 | 926 | "@babel/regjsgen@^0.8.0": 927 | version "0.8.0" 928 | resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" 929 | integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== 930 | 931 | "@babel/runtime@^7.7.7", "@babel/runtime@^7.8.4": 932 | version "7.21.5" 933 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" 934 | integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== 935 | dependencies: 936 | regenerator-runtime "^0.13.11" 937 | 938 | "@babel/template@^7.18.10", "@babel/template@^7.20.7": 939 | version "7.20.7" 940 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" 941 | integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== 942 | dependencies: 943 | "@babel/code-frame" "^7.18.6" 944 | "@babel/parser" "^7.20.7" 945 | "@babel/types" "^7.20.7" 946 | 947 | "@babel/template@^7.25.7": 948 | version "7.25.7" 949 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.7.tgz#27f69ce382855d915b14ab0fe5fb4cbf88fa0769" 950 | integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA== 951 | dependencies: 952 | "@babel/code-frame" "^7.25.7" 953 | "@babel/parser" "^7.25.7" 954 | "@babel/types" "^7.25.7" 955 | 956 | "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5": 957 | version "7.25.7" 958 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8" 959 | integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== 960 | dependencies: 961 | "@babel/code-frame" "^7.25.7" 962 | "@babel/generator" "^7.25.7" 963 | "@babel/parser" "^7.25.7" 964 | "@babel/template" "^7.25.7" 965 | "@babel/types" "^7.25.7" 966 | debug "^4.3.1" 967 | globals "^11.1.0" 968 | 969 | "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.4.4": 970 | version "7.21.5" 971 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" 972 | integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== 973 | dependencies: 974 | "@babel/helper-string-parser" "^7.21.5" 975 | "@babel/helper-validator-identifier" "^7.19.1" 976 | to-fast-properties "^2.0.0" 977 | 978 | "@babel/types@^7.25.7": 979 | version "7.25.7" 980 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b" 981 | integrity sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ== 982 | dependencies: 983 | "@babel/helper-string-parser" "^7.25.7" 984 | "@babel/helper-validator-identifier" "^7.25.7" 985 | to-fast-properties "^2.0.0" 986 | 987 | "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": 988 | version "0.3.3" 989 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" 990 | integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== 991 | dependencies: 992 | "@jridgewell/set-array" "^1.0.1" 993 | "@jridgewell/sourcemap-codec" "^1.4.10" 994 | "@jridgewell/trace-mapping" "^0.3.9" 995 | 996 | "@jridgewell/gen-mapping@^0.3.5": 997 | version "0.3.5" 998 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" 999 | integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== 1000 | dependencies: 1001 | "@jridgewell/set-array" "^1.2.1" 1002 | "@jridgewell/sourcemap-codec" "^1.4.10" 1003 | "@jridgewell/trace-mapping" "^0.3.24" 1004 | 1005 | "@jridgewell/resolve-uri@3.1.0": 1006 | version "3.1.0" 1007 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 1008 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 1009 | 1010 | "@jridgewell/resolve-uri@^3.1.0": 1011 | version "3.1.2" 1012 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 1013 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 1014 | 1015 | "@jridgewell/set-array@^1.0.1": 1016 | version "1.1.2" 1017 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 1018 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 1019 | 1020 | "@jridgewell/set-array@^1.2.1": 1021 | version "1.2.1" 1022 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" 1023 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 1024 | 1025 | "@jridgewell/sourcemap-codec@1.4.14": 1026 | version "1.4.14" 1027 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 1028 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 1029 | 1030 | "@jridgewell/sourcemap-codec@^1.4.10": 1031 | version "1.4.15" 1032 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" 1033 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 1034 | 1035 | "@jridgewell/sourcemap-codec@^1.4.14": 1036 | version "1.5.0" 1037 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" 1038 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 1039 | 1040 | "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": 1041 | version "0.3.18" 1042 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" 1043 | integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== 1044 | dependencies: 1045 | "@jridgewell/resolve-uri" "3.1.0" 1046 | "@jridgewell/sourcemap-codec" "1.4.14" 1047 | 1048 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": 1049 | version "0.3.25" 1050 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" 1051 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 1052 | dependencies: 1053 | "@jridgewell/resolve-uri" "^3.1.0" 1054 | "@jridgewell/sourcemap-codec" "^1.4.14" 1055 | 1056 | "@rollup/plugin-commonjs@^11.0.0": 1057 | version "11.1.0" 1058 | resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz#60636c7a722f54b41e419e1709df05c7234557ef" 1059 | integrity sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA== 1060 | dependencies: 1061 | "@rollup/pluginutils" "^3.0.8" 1062 | commondir "^1.0.1" 1063 | estree-walker "^1.0.1" 1064 | glob "^7.1.2" 1065 | is-reference "^1.1.2" 1066 | magic-string "^0.25.2" 1067 | resolve "^1.11.0" 1068 | 1069 | "@rollup/plugin-node-resolve@^6.0.0": 1070 | version "6.1.0" 1071 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-6.1.0.tgz#0d2909f4bf606ae34d43a9bc8be06a9b0c850cf0" 1072 | integrity sha512-Cv7PDIvxdE40SWilY5WgZpqfIUEaDxFxs89zCAHjqyRwlTSuql4M5hjIuc5QYJkOH0/vyiyNXKD72O+LhRipGA== 1073 | dependencies: 1074 | "@rollup/pluginutils" "^3.0.0" 1075 | "@types/resolve" "0.0.8" 1076 | builtin-modules "^3.1.0" 1077 | is-module "^1.0.0" 1078 | resolve "^1.11.1" 1079 | 1080 | "@rollup/pluginutils@^3.0.0", "@rollup/pluginutils@^3.0.8": 1081 | version "3.1.0" 1082 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 1083 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 1084 | dependencies: 1085 | "@types/estree" "0.0.39" 1086 | estree-walker "^1.0.1" 1087 | picomatch "^2.2.2" 1088 | 1089 | "@stripe/connect-js@>=3.0.0": 1090 | version "3.3.14" 1091 | resolved "https://registry.yarnpkg.com/@stripe/connect-js/-/connect-js-3.3.14.tgz#4510042e5b9bab98ef4706a79010cacd11c74b48" 1092 | integrity sha512-jQ6ee5JVY4XMDL6PhAFv47om1/H0JjE6G4GpuEItRQkmVScAi3tTzx7g7/1/2LhvYW+4HejZJAIq51ymFIneLw== 1093 | 1094 | "@types/estree@*": 1095 | version "1.0.1" 1096 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" 1097 | integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== 1098 | 1099 | "@types/estree@0.0.39": 1100 | version "0.0.39" 1101 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 1102 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 1103 | 1104 | "@types/node@*": 1105 | version "18.16.3" 1106 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.3.tgz#6bda7819aae6ea0b386ebc5b24bdf602f1b42b01" 1107 | integrity sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q== 1108 | 1109 | "@types/resolve@0.0.8": 1110 | version "0.0.8" 1111 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" 1112 | integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== 1113 | dependencies: 1114 | "@types/node" "*" 1115 | 1116 | ansi-styles@^3.2.1: 1117 | version "3.2.1" 1118 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 1119 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 1120 | dependencies: 1121 | color-convert "^1.9.0" 1122 | 1123 | babel-plugin-polyfill-corejs2@^0.3.3: 1124 | version "0.3.3" 1125 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" 1126 | integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== 1127 | dependencies: 1128 | "@babel/compat-data" "^7.17.7" 1129 | "@babel/helper-define-polyfill-provider" "^0.3.3" 1130 | semver "^6.1.1" 1131 | 1132 | babel-plugin-polyfill-corejs3@^0.6.0: 1133 | version "0.6.0" 1134 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" 1135 | integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== 1136 | dependencies: 1137 | "@babel/helper-define-polyfill-provider" "^0.3.3" 1138 | core-js-compat "^3.25.1" 1139 | 1140 | babel-plugin-polyfill-regenerator@^0.4.1: 1141 | version "0.4.1" 1142 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" 1143 | integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== 1144 | dependencies: 1145 | "@babel/helper-define-polyfill-provider" "^0.3.3" 1146 | 1147 | balanced-match@^1.0.0: 1148 | version "1.0.2" 1149 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 1150 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 1151 | 1152 | brace-expansion@^1.1.7: 1153 | version "1.1.11" 1154 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 1155 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 1156 | dependencies: 1157 | balanced-match "^1.0.0" 1158 | concat-map "0.0.1" 1159 | 1160 | browserslist@^4.21.3, browserslist@^4.21.5: 1161 | version "4.21.5" 1162 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" 1163 | integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== 1164 | dependencies: 1165 | caniuse-lite "^1.0.30001449" 1166 | electron-to-chromium "^1.4.284" 1167 | node-releases "^2.0.8" 1168 | update-browserslist-db "^1.0.10" 1169 | 1170 | builtin-modules@^3.1.0: 1171 | version "3.3.0" 1172 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" 1173 | integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== 1174 | 1175 | caniuse-lite@^1.0.30001449: 1176 | version "1.0.30001482" 1177 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz#8b3fad73dc35b2674a5c96df2d4f9f1c561435de" 1178 | integrity sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ== 1179 | 1180 | chalk@^2.0.0, chalk@^2.4.2: 1181 | version "2.4.2" 1182 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 1183 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 1184 | dependencies: 1185 | ansi-styles "^3.2.1" 1186 | escape-string-regexp "^1.0.5" 1187 | supports-color "^5.3.0" 1188 | 1189 | color-convert@^1.9.0: 1190 | version "1.9.3" 1191 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 1192 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1193 | dependencies: 1194 | color-name "1.1.3" 1195 | 1196 | color-name@1.1.3: 1197 | version "1.1.3" 1198 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 1199 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 1200 | 1201 | commondir@^1.0.1: 1202 | version "1.0.1" 1203 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 1204 | integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== 1205 | 1206 | concat-map@0.0.1: 1207 | version "0.0.1" 1208 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1209 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 1210 | 1211 | convert-source-map@^1.7.0: 1212 | version "1.9.0" 1213 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" 1214 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== 1215 | 1216 | core-js-compat@^3.25.1: 1217 | version "3.30.1" 1218 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.1.tgz#961541e22db9c27fc48bfc13a3cafa8734171dfe" 1219 | integrity sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw== 1220 | dependencies: 1221 | browserslist "^4.21.5" 1222 | 1223 | debug@^4.1.0, debug@^4.1.1: 1224 | version "4.3.4" 1225 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 1226 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 1227 | dependencies: 1228 | ms "2.1.2" 1229 | 1230 | debug@^4.3.1: 1231 | version "4.3.7" 1232 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" 1233 | integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== 1234 | dependencies: 1235 | ms "^2.1.3" 1236 | 1237 | electron-to-chromium@^1.4.284: 1238 | version "1.4.379" 1239 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.379.tgz#c9b597e090ce738e7a76db84e5678f27817bd644" 1240 | integrity sha512-eRMq6Cf4PhjB14R9U6QcXM/VRQ54Gc3OL9LKnFugUIh2AXm3KJlOizlSfVIgjH76bII4zHGK4t0PVTE5qq8dZg== 1241 | 1242 | escalade@^3.1.1: 1243 | version "3.1.1" 1244 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 1245 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1246 | 1247 | escape-string-regexp@^1.0.5: 1248 | version "1.0.5" 1249 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1250 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 1251 | 1252 | estree-walker@^0.6.1: 1253 | version "0.6.1" 1254 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 1255 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 1256 | 1257 | estree-walker@^1.0.1: 1258 | version "1.0.1" 1259 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 1260 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 1261 | 1262 | esutils@^2.0.2: 1263 | version "2.0.3" 1264 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1265 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1266 | 1267 | fs.realpath@^1.0.0: 1268 | version "1.0.0" 1269 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1270 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1271 | 1272 | fsevents@~2.3.2: 1273 | version "2.3.3" 1274 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 1275 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 1276 | 1277 | function-bind@^1.1.1: 1278 | version "1.1.1" 1279 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1280 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1281 | 1282 | gensync@^1.0.0-beta.2: 1283 | version "1.0.0-beta.2" 1284 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1285 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1286 | 1287 | glob@^7.1.2, glob@^7.1.3: 1288 | version "7.2.3" 1289 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1290 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1291 | dependencies: 1292 | fs.realpath "^1.0.0" 1293 | inflight "^1.0.4" 1294 | inherits "2" 1295 | minimatch "^3.1.1" 1296 | once "^1.3.0" 1297 | path-is-absolute "^1.0.0" 1298 | 1299 | globals@^11.1.0: 1300 | version "11.12.0" 1301 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1302 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1303 | 1304 | has-flag@^3.0.0: 1305 | version "3.0.0" 1306 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1307 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1308 | 1309 | has@^1.0.3: 1310 | version "1.0.3" 1311 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1312 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1313 | dependencies: 1314 | function-bind "^1.1.1" 1315 | 1316 | inflight@^1.0.4: 1317 | version "1.0.6" 1318 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1319 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1320 | dependencies: 1321 | once "^1.3.0" 1322 | wrappy "1" 1323 | 1324 | inherits@2: 1325 | version "2.0.4" 1326 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1327 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1328 | 1329 | is-core-module@^2.11.0: 1330 | version "2.12.0" 1331 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" 1332 | integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== 1333 | dependencies: 1334 | has "^1.0.3" 1335 | 1336 | is-module@^1.0.0: 1337 | version "1.0.0" 1338 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" 1339 | integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== 1340 | 1341 | is-reference@^1.1.2: 1342 | version "1.2.1" 1343 | resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" 1344 | integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== 1345 | dependencies: 1346 | "@types/estree" "*" 1347 | 1348 | js-tokens@^4.0.0: 1349 | version "4.0.0" 1350 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1351 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1352 | 1353 | jsesc@^2.5.1: 1354 | version "2.5.2" 1355 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1356 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1357 | 1358 | jsesc@^3.0.2: 1359 | version "3.0.2" 1360 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" 1361 | integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== 1362 | 1363 | jsesc@~0.5.0: 1364 | version "0.5.0" 1365 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1366 | integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== 1367 | 1368 | json5@^2.2.2: 1369 | version "2.2.3" 1370 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1371 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1372 | 1373 | lodash.debounce@^4.0.8: 1374 | version "4.0.8" 1375 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1376 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 1377 | 1378 | lru-cache@^5.1.1: 1379 | version "5.1.1" 1380 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1381 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1382 | dependencies: 1383 | yallist "^3.0.2" 1384 | 1385 | magic-string@^0.25.2: 1386 | version "0.25.9" 1387 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" 1388 | integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== 1389 | dependencies: 1390 | sourcemap-codec "^1.4.8" 1391 | 1392 | minimatch@^3.1.1: 1393 | version "3.1.2" 1394 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1395 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1396 | dependencies: 1397 | brace-expansion "^1.1.7" 1398 | 1399 | ms@2.1.2: 1400 | version "2.1.2" 1401 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1402 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1403 | 1404 | ms@^2.1.3: 1405 | version "2.1.3" 1406 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1407 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1408 | 1409 | node-releases@^2.0.8: 1410 | version "2.0.10" 1411 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" 1412 | integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== 1413 | 1414 | once@^1.3.0: 1415 | version "1.4.0" 1416 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1417 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1418 | dependencies: 1419 | wrappy "1" 1420 | 1421 | path-is-absolute@^1.0.0: 1422 | version "1.0.1" 1423 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1424 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1425 | 1426 | path-parse@^1.0.7: 1427 | version "1.0.7" 1428 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1429 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1430 | 1431 | picocolors@^1.0.0: 1432 | version "1.0.0" 1433 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1434 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1435 | 1436 | picomatch@^2.2.2: 1437 | version "2.3.1" 1438 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1439 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1440 | 1441 | regenerate-unicode-properties@^10.1.0: 1442 | version "10.1.0" 1443 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" 1444 | integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== 1445 | dependencies: 1446 | regenerate "^1.4.2" 1447 | 1448 | regenerate@^1.4.2: 1449 | version "1.4.2" 1450 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" 1451 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== 1452 | 1453 | regenerator-runtime@^0.13.11: 1454 | version "0.13.11" 1455 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" 1456 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== 1457 | 1458 | regenerator-transform@^0.15.1: 1459 | version "0.15.1" 1460 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" 1461 | integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== 1462 | dependencies: 1463 | "@babel/runtime" "^7.8.4" 1464 | 1465 | regexpu-core@^5.3.1: 1466 | version "5.3.2" 1467 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" 1468 | integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== 1469 | dependencies: 1470 | "@babel/regjsgen" "^0.8.0" 1471 | regenerate "^1.4.2" 1472 | regenerate-unicode-properties "^10.1.0" 1473 | regjsparser "^0.9.1" 1474 | unicode-match-property-ecmascript "^2.0.0" 1475 | unicode-match-property-value-ecmascript "^2.1.0" 1476 | 1477 | regjsparser@^0.9.1: 1478 | version "0.9.1" 1479 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" 1480 | integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== 1481 | dependencies: 1482 | jsesc "~0.5.0" 1483 | 1484 | resolve@^1.11.0, resolve@^1.11.1, resolve@^1.14.2: 1485 | version "1.22.2" 1486 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" 1487 | integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== 1488 | dependencies: 1489 | is-core-module "^2.11.0" 1490 | path-parse "^1.0.7" 1491 | supports-preserve-symlinks-flag "^1.0.0" 1492 | 1493 | rimraf@^3.0.0: 1494 | version "3.0.2" 1495 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1496 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1497 | dependencies: 1498 | glob "^7.1.3" 1499 | 1500 | rollup-plugin-babel@^4.3.3: 1501 | version "4.4.0" 1502 | resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" 1503 | integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== 1504 | dependencies: 1505 | "@babel/helper-module-imports" "^7.0.0" 1506 | rollup-pluginutils "^2.8.1" 1507 | 1508 | rollup-pluginutils@^2.8.1: 1509 | version "2.8.2" 1510 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 1511 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 1512 | dependencies: 1513 | estree-walker "^0.6.1" 1514 | 1515 | rollup@^2.79.2: 1516 | version "2.79.2" 1517 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.2.tgz#f150e4a5db4b121a21a747d762f701e5e9f49090" 1518 | integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ== 1519 | optionalDependencies: 1520 | fsevents "~2.3.2" 1521 | 1522 | semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: 1523 | version "6.3.1" 1524 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 1525 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 1526 | 1527 | sourcemap-codec@^1.4.8: 1528 | version "1.4.8" 1529 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1530 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1531 | 1532 | supports-color@^5.3.0: 1533 | version "5.5.0" 1534 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1535 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1536 | dependencies: 1537 | has-flag "^3.0.0" 1538 | 1539 | supports-preserve-symlinks-flag@^1.0.0: 1540 | version "1.0.0" 1541 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1542 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1543 | 1544 | to-fast-properties@^2.0.0: 1545 | version "2.0.0" 1546 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1547 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1548 | 1549 | unicode-canonical-property-names-ecmascript@^2.0.0: 1550 | version "2.0.0" 1551 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" 1552 | integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== 1553 | 1554 | unicode-match-property-ecmascript@^2.0.0: 1555 | version "2.0.0" 1556 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" 1557 | integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== 1558 | dependencies: 1559 | unicode-canonical-property-names-ecmascript "^2.0.0" 1560 | unicode-property-aliases-ecmascript "^2.0.0" 1561 | 1562 | unicode-match-property-value-ecmascript@^2.1.0: 1563 | version "2.1.0" 1564 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" 1565 | integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== 1566 | 1567 | unicode-property-aliases-ecmascript@^2.0.0: 1568 | version "2.1.0" 1569 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" 1570 | integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== 1571 | 1572 | update-browserslist-db@^1.0.10: 1573 | version "1.0.11" 1574 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" 1575 | integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== 1576 | dependencies: 1577 | escalade "^3.1.1" 1578 | picocolors "^1.0.0" 1579 | 1580 | wrappy@1: 1581 | version "1.0.2" 1582 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1583 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1584 | 1585 | yallist@^3.0.2: 1586 | version "3.1.1" 1587 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1588 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1589 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | roots: ["/src"], 3 | testMatch: [ 4 | "**/__tests__/**/*.+(ts|tsx|js)", 5 | "**/?(*.)+(spec|test).+(ts|tsx|js)", 6 | ], 7 | transform: { 8 | "^.+\\.(ts|tsx)$": ["ts-jest", { diagnostics: { ignoreCodes: [151001] } }], 9 | }, 10 | setupFilesAfterEnv: ["/src/utils/jestSetup.ts"], 11 | testEnvironment: "jsdom", 12 | }; 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@stripe/connect-js", 3 | "version": "3.3.25", 4 | "description": "Connect.js loading utility package", 5 | "main": "dist/connect.js", 6 | "module": "dist/connect.esm.js", 7 | "types": "types/index.d.ts", 8 | "typings": "types/index.d.ts", 9 | "scripts": { 10 | "test": "yarn lint && yarn test:unit --passWithNoTests && yarn typecheck && yarn build", 11 | "test:unit": "jest", 12 | "test:types": "zx ./tests/types/scripts/test.mjs", 13 | "lint": "eslint '{src,types}/**/*.{ts,js}' && yarn prettier-check", 14 | "lint-fix": "eslint '{src,types}/**/*.{ts,js}' --fix && yarn prettier-check", 15 | "typecheck": "tsc --noEmit", 16 | "build": "yarn clean && rollup -c", 17 | "validate-change": "yarn run test", 18 | "clean": "rimraf dist", 19 | "prettier": "prettier './**/*.{js,ts,md,html,css}' --write", 20 | "prettier-check": "prettier './**/*.{js,ts,md,html,css}' --check" 21 | }, 22 | "repository": { 23 | "type": "git", 24 | "url": "https://github.com/stripe/connect-js.git" 25 | }, 26 | "keywords": [ 27 | "Stripe", 28 | "connect.js" 29 | ], 30 | "author": "Stripe (https://www.stripe.com)", 31 | "license": "MIT", 32 | "bugs": { 33 | "url": "https://github.com/stripe/connect-js/issues" 34 | }, 35 | "files": [ 36 | "dist", 37 | "src", 38 | "types", 39 | "pure.js", 40 | "pure.d.ts" 41 | ], 42 | "homepage": "https://github.com/stripe/connect-js#readme", 43 | "devDependencies": { 44 | "@babel/core": "^7.7.2", 45 | "@babel/preset-env": "^7.7.1", 46 | "@rollup/plugin-json": "^6.0.0", 47 | "@rollup/plugin-replace": "^2.3.1", 48 | "@types/jest": "^24.0.25", 49 | "@typescript-eslint/eslint-plugin": "^7", 50 | "@typescript-eslint/parser": "^7", 51 | "@typescript-eslint/rule-tester": "^7", 52 | "@typescript-eslint/scope-manager": "^7", 53 | "@typescript-eslint/utils": "^7", 54 | "babel-eslint": "^10.0.3", 55 | "babel-jest": "^24.9.0", 56 | "conditional-type-checks": "^1.0.5", 57 | "eslint": "8.56.0", 58 | "eslint-config-prettier": "^8.3.0", 59 | "eslint-plugin-import": "^2.20.1", 60 | "eslint-plugin-jest": "^26.6.0", 61 | "eslint-plugin-prettier": "^4.2.1", 62 | "jest": "^29.5.0", 63 | "jest-environment-jsdom": "^29.5.0", 64 | "prettier": "2.8.8", 65 | "rimraf": "^2.6.2", 66 | "rollup": "^2.79.2", 67 | "rollup-plugin-babel": "^4.4.0", 68 | "rollup-plugin-typescript2": "^0.25.3", 69 | "ts-jest": "^29.1.0", 70 | "typescript": "^4.1.2", 71 | "yalc": "^1.0.0-pre.53", 72 | "zx": "^4.2.0" 73 | }, 74 | "dependencies": {} 75 | } 76 | -------------------------------------------------------------------------------- /pure.d.ts: -------------------------------------------------------------------------------- 1 | import { LoadConnectAndInitialize } from "./src/shared"; 2 | 3 | export declare const loadConnectAndInitialize: LoadConnectAndInitialize; 4 | export * from "./types/shared"; 5 | -------------------------------------------------------------------------------- /pure.js: -------------------------------------------------------------------------------- 1 | module.exports = require("./dist/pure.js"); 2 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from "rollup-plugin-babel"; 2 | import ts from "rollup-plugin-typescript2"; 3 | import replace from "@rollup/plugin-replace"; 4 | import json from "@rollup/plugin-json"; 5 | 6 | import pkg from "./package.json"; 7 | 8 | const PLUGINS = [ 9 | ts({ 10 | tsconfigOverride: { exclude: ["**/*.test.ts"] }, 11 | }), 12 | babel({ 13 | extensions: [".ts", ".js", ".tsx", ".jsx"], 14 | }), 15 | replace({ 16 | // This string is replaced by the npm package version when bundling 17 | _NPM_PACKAGE_VERSION_: pkg.version, 18 | }), 19 | json(), 20 | ]; 21 | 22 | export default [ 23 | { 24 | input: "src/index.ts", 25 | output: [ 26 | { file: pkg.main, format: "cjs" }, 27 | { file: pkg.module, format: "es" }, 28 | ], 29 | plugins: PLUGINS, 30 | }, 31 | { 32 | input: "src/pure.ts", 33 | output: [ 34 | { file: "dist/pure.js", format: "cjs" }, 35 | { file: "dist/pure.esm.js", format: "es" }, 36 | ], 37 | plugins: PLUGINS, 38 | }, 39 | ]; 40 | -------------------------------------------------------------------------------- /scripts/publish: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | IFS=$'\n\t' 5 | 6 | RELEASE_TYPE=${1:-} 7 | 8 | echo_help() { 9 | cat << EOF 10 | USAGE: 11 | ./scripts/publish 12 | 13 | ARGS: 14 | 15 | A Semantic Versioning release type used to bump the version number. Either "patch", "minor", or "major". 16 | EOF 17 | } 18 | 19 | create_github_release() { 20 | if which hub | grep -q "not found"; then 21 | create_github_release_fallback 22 | return 23 | fi 24 | 25 | # Get the last two releases. For example, `("v1.3.1" "v1.3.2")` 26 | local versions=($(git tag --sort version:refname | grep '^v' | tail -n 2)) 27 | 28 | # If we didn't find exactly two previous version versions, give up 29 | if [ ${#versions[@]} -ne 2 ]; then 30 | create_github_release_fallback 31 | return 32 | fi 33 | 34 | local previous_version="${versions[0]}" 35 | local current_version="${versions[1]}" 36 | local commit_titles=$(git log --pretty=format:"- %s" "$previous_version".."$current_version"^) 37 | local release_notes="$(cat << EOF 38 | $current_version 39 | 40 | 41 | 42 | 43 | $commit_titles 44 | 45 | ### New features 46 | 47 | ### Fixes 48 | 49 | ### Changed 50 | 51 | EOF 52 | )" 53 | 54 | local release_url=$(hub release create -em "$release_notes" "$current_version") 55 | 56 | cat << EOF 57 | Created GitHub release: 58 | 59 | $release_url 60 | EOF 61 | 62 | } 63 | 64 | create_github_release_fallback() { 65 | cat << EOF 66 | Remember to create a release on GitHub with a changelog notes: 67 | 68 | https://github.com/stripe/connect-js/releases/new 69 | 70 | EOF 71 | } 72 | 73 | # Show help if no arguments passed 74 | if [ $# -eq 0 ]; then 75 | echo "Error! Missing release type argument" 76 | echo "" 77 | echo_help 78 | exit 1 79 | fi 80 | 81 | # Show help message if -h, --help, or help passed 82 | case $1 in 83 | -h | --help | help) 84 | echo_help 85 | exit 0 86 | ;; 87 | esac 88 | 89 | # Validate passed release type 90 | case $RELEASE_TYPE in 91 | patch | minor | major) 92 | ;; 93 | 94 | *) 95 | echo "Error! Invalid release type supplied" 96 | echo "" 97 | echo_help 98 | exit 1 99 | ;; 100 | esac 101 | 102 | # Make sure our working dir is the repo root directory 103 | cd "$(git rev-parse --show-toplevel)" 104 | 105 | echo "Fetching git remotes" 106 | git fetch 107 | 108 | GIT_STATUS=$(git status) 109 | 110 | if ! grep -q 'On branch master' <<< "$GIT_STATUS"; then 111 | echo "Error! Must be on master branch to publish" 112 | exit 1 113 | fi 114 | 115 | if ! grep -q "Your branch is up to date with 'origin/master'." <<< "$GIT_STATUS"; then 116 | echo "Error! Must be up to date with origin/master to publish" 117 | exit 1 118 | fi 119 | 120 | if ! grep -q 'working tree clean' <<< "$GIT_STATUS"; then 121 | echo "Error! Cannot publish with dirty working tree" 122 | exit 1 123 | fi 124 | 125 | echo "Installing dependencies according to lockfile" 126 | yarn -s install --frozen-lockfile 127 | 128 | echo "Linting, testing, and building" 129 | yarn -s run test 130 | 131 | echo "Tagging and publishing $RELEASE_TYPE release" 132 | yarn -s --ignore-scripts publish --$RELEASE_TYPE --access=public 133 | 134 | echo "Pushing git commit and tag" 135 | git push --follow-tags 136 | 137 | echo "Publish successful!" 138 | echo "" 139 | 140 | create_github_release -------------------------------------------------------------------------------- /src/index.test.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-var-requires */ 2 | import { SCRIPT_SELECTOR } from "./utils/jestHelpers"; 3 | 4 | describe("Stripe module loader", () => { 5 | jest.spyOn(global, "setTimeout"); 6 | it("injects the Connect.js script as a side effect after a tick", () => { 7 | require("./index"); 8 | 9 | expect(document.querySelector(SCRIPT_SELECTOR)).toBe(null); 10 | return Promise.resolve().then(() => { 11 | expect(document.querySelector(SCRIPT_SELECTOR)).not.toBe(null); 12 | }); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import type { IStripeConnectInitParams, StripeConnectInstance } from "../types"; 2 | import type { LoadConnectAndInitialize } from "./shared"; 3 | import { loadScript, initStripeConnect } from "./shared"; 4 | 5 | // Execute our own script injection after a tick to give users time to do their 6 | // own script injection. 7 | const stripePromise = Promise.resolve().then(() => loadScript()); 8 | 9 | let loadCalled = false; 10 | 11 | stripePromise.catch((err: Error) => { 12 | if (!loadCalled) { 13 | console.warn(err); 14 | } 15 | }); 16 | 17 | export const loadConnectAndInitialize: LoadConnectAndInitialize = ( 18 | initParams: IStripeConnectInitParams 19 | ): StripeConnectInstance => { 20 | loadCalled = true; 21 | return initStripeConnect(stripePromise, initParams); 22 | }; 23 | -------------------------------------------------------------------------------- /src/pure.test.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-var-requires */ 2 | 3 | import type { IStripeConnectInitParams } from "../types"; 4 | import { SCRIPT_SELECTOR } from "./utils/jestHelpers"; 5 | 6 | describe("pure module", () => { 7 | test("does not inject the script if loadConnectAndInitialize is not called", async () => { 8 | require("./pure"); 9 | 10 | expect(document.querySelector(SCRIPT_SELECTOR)).toBe(null); 11 | }); 12 | 13 | test("it injects the script if loadConnectAndInitialize is called", async () => { 14 | const { loadConnectAndInitialize } = require("./pure"); 15 | const mockInitParams: IStripeConnectInitParams = { 16 | publishableKey: "pk_123", 17 | fetchClientSecret: async () => { 18 | return "secret_123"; 19 | }, 20 | }; 21 | loadConnectAndInitialize(mockInitParams); 22 | 23 | expect(document.querySelector(SCRIPT_SELECTOR)).not.toBe(null); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /src/pure.ts: -------------------------------------------------------------------------------- 1 | import type { IStripeConnectInitParams, StripeConnectInstance } from "../types"; 2 | import type { LoadConnectAndInitialize } from "./shared"; 3 | import { loadScript, initStripeConnect } from "./shared"; 4 | 5 | export const loadConnectAndInitialize: LoadConnectAndInitialize = ( 6 | initParams: IStripeConnectInitParams 7 | ): StripeConnectInstance => { 8 | const maybeConnect = loadScript(); 9 | if (initParams == null) { 10 | throw new Error( 11 | "You must provide required parameters to initialize Connect" 12 | ); 13 | } 14 | return initStripeConnect(maybeConnect, initParams); 15 | }; 16 | -------------------------------------------------------------------------------- /src/shared.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | IStripeConnectInitParams, 3 | StripeConnectInstance, 4 | ConnectElementTagName, 5 | ConnectHTMLElementRecord, 6 | } from "../types"; 7 | import { 8 | ConnectElementCommonMethodConfig, 9 | ConnectElementCustomMethodConfig, 10 | } from "../types/config"; 11 | 12 | export type LoadConnectAndInitialize = ( 13 | initParams: IStripeConnectInitParams 14 | ) => StripeConnectInstance; 15 | 16 | type ConnectElementHTMLName = 17 | | "stripe-connect-account-onboarding" 18 | | "stripe-connect-disputes-list" 19 | | "stripe-connect-payments" 20 | | "stripe-connect-payment-details" 21 | | "stripe-connect-payment-disputes" 22 | | "stripe-connect-account-management" 23 | | "stripe-connect-notification-banner" 24 | | "stripe-connect-issuing-card" 25 | | "stripe-connect-issuing-cards-list" 26 | | "stripe-connect-financial-account" 27 | | "stripe-connect-financial-account-transactions" 28 | | "stripe-connect-payouts" 29 | | "stripe-connect-payouts-list" 30 | | "stripe-connect-balances" 31 | | "stripe-connect-documents" 32 | | "stripe-connect-tax-registrations" 33 | | "stripe-connect-tax-settings"; 34 | 35 | export const componentNameMapping: Record< 36 | ConnectElementTagName, 37 | ConnectElementHTMLName 38 | > = { 39 | "account-onboarding": "stripe-connect-account-onboarding", 40 | "disputes-list": "stripe-connect-disputes-list", 41 | payments: "stripe-connect-payments", 42 | "payment-details": "stripe-connect-payment-details", 43 | "payment-disputes": "stripe-connect-payment-disputes", 44 | payouts: "stripe-connect-payouts", 45 | "payouts-list": "stripe-connect-payouts-list", 46 | balances: "stripe-connect-balances", 47 | "account-management": "stripe-connect-account-management", 48 | "notification-banner": "stripe-connect-notification-banner", 49 | "issuing-card": "stripe-connect-issuing-card", 50 | "issuing-cards-list": "stripe-connect-issuing-cards-list", 51 | "financial-account": "stripe-connect-financial-account", 52 | "financial-account-transactions": 53 | "stripe-connect-financial-account-transactions", 54 | documents: "stripe-connect-documents", 55 | "tax-registrations": "stripe-connect-tax-registrations", 56 | "tax-settings": "stripe-connect-tax-settings", 57 | }; 58 | 59 | type StripeConnectInstanceExtended = StripeConnectInstance & { 60 | debugInstance: () => Promise; 61 | }; 62 | 63 | interface StripeConnectWrapper { 64 | initialize: (params: IStripeConnectInitParams) => StripeConnectInstance; 65 | } 66 | 67 | const EXISTING_SCRIPT_MESSAGE = 68 | "loadConnect was called but an existing Connect.js script already exists in the document; existing script parameters will be used"; 69 | const V0_URL = "https://connect-js.stripe.com/v0.1/connect.js"; 70 | const V1_URL = "https://connect-js.stripe.com/v1.0/connect.js"; 71 | 72 | export const findScript = (): HTMLScriptElement | null => { 73 | return ( 74 | document.querySelectorAll( 75 | `script[src="${V1_URL}"]` 76 | )[0] || 77 | document.querySelectorAll( 78 | `script[src="${V0_URL}"]` 79 | )[0] || 80 | null 81 | ); 82 | }; 83 | 84 | const injectScript = (): HTMLScriptElement => { 85 | const script = document.createElement("script"); 86 | script.src = V1_URL; 87 | 88 | const head = document.head; 89 | 90 | if (!head) { 91 | throw new Error( 92 | "Expected document.head not to be null. Connect.js requires a element." 93 | ); 94 | } 95 | 96 | document.head.appendChild(script); 97 | 98 | return script; 99 | }; 100 | 101 | let stripePromise: Promise | null = null; 102 | 103 | export const isWindowStripeConnectDefined = (stripeConnect: unknown) => { 104 | // We only consider `StripeConnect` defined if `init` is a function 105 | // Why? HTML markup like: 106 | // in the of the page 107 | // can end up "contaminating" the window.StripeConnect object and cause issues in connect.js initialization 108 | return !!( 109 | stripeConnect && 110 | typeof stripeConnect === "object" && 111 | "init" in stripeConnect && 112 | typeof (stripeConnect as { init: unknown } & Record) 113 | .init === "function" 114 | ); 115 | }; 116 | 117 | export const loadScript = (): Promise => { 118 | // Ensure that we only attempt to load Connect.js at most once 119 | if (stripePromise !== null) { 120 | return stripePromise; 121 | } 122 | 123 | stripePromise = new Promise((resolve, reject) => { 124 | if (typeof window === "undefined") { 125 | reject( 126 | "ConnectJS won't load when rendering code in the server - it can only be loaded on a browser. This error is expected when loading ConnectJS in SSR environments, like NextJS. It will have no impact in the UI, however if you wish to avoid it, you can switch to the `pure` version of the connect.js loader: https://github.com/stripe/connect-js#importing-loadconnect-without-side-effects." 127 | ); 128 | return; 129 | } 130 | 131 | if (isWindowStripeConnectDefined((window as any).StripeConnect)) { 132 | console.warn(EXISTING_SCRIPT_MESSAGE); 133 | const wrapper = createWrapper((window as any).StripeConnect); 134 | resolve(wrapper); 135 | return; 136 | } 137 | 138 | try { 139 | let script = findScript(); 140 | 141 | if (script) { 142 | console.warn(EXISTING_SCRIPT_MESSAGE); 143 | } else if (!script) { 144 | script = injectScript(); 145 | } 146 | 147 | script.addEventListener("load", () => { 148 | if (isWindowStripeConnectDefined((window as any).StripeConnect)) { 149 | const wrapper = createWrapper((window as any).StripeConnect); 150 | resolve(wrapper); 151 | } else { 152 | reject(new Error("Connect.js did not load the necessary objects")); 153 | } 154 | }); 155 | 156 | script.addEventListener("error", () => { 157 | reject(new Error("Failed to load Connect.js")); 158 | }); 159 | } catch (error) { 160 | reject(error); 161 | } 162 | }); 163 | 164 | return stripePromise; 165 | }; 166 | 167 | const hasCustomMethod = ( 168 | tagName: ConnectElementTagName 169 | ): tagName is keyof typeof ConnectElementCustomMethodConfig => { 170 | return tagName in ConnectElementCustomMethodConfig; 171 | }; 172 | 173 | export const initStripeConnect = ( 174 | stripePromise: Promise, 175 | initParams: IStripeConnectInitParams 176 | ): StripeConnectInstanceExtended => { 177 | const eagerClientSecretPromise = (() => { 178 | try { 179 | return initParams.fetchClientSecret(); 180 | } catch (error) { 181 | return Promise.reject(error); 182 | } 183 | })(); 184 | const metaOptions = (initParams as any).metaOptions ?? {}; 185 | const stripeConnectInstance = stripePromise.then((wrapper) => 186 | wrapper.initialize({ 187 | ...initParams, 188 | metaOptions: { ...metaOptions, eagerClientSecretPromise }, 189 | } as any) 190 | ); 191 | 192 | return { 193 | create: (tagName) => { 194 | let htmlName = componentNameMapping[tagName]; 195 | if (!htmlName) { 196 | htmlName = tagName as unknown as ConnectElementHTMLName; 197 | } 198 | const element = document.createElement(htmlName); 199 | 200 | const customMethods = hasCustomMethod(tagName) 201 | ? ConnectElementCustomMethodConfig[tagName] 202 | : {}; 203 | const methods = { ...customMethods, ...ConnectElementCommonMethodConfig }; 204 | for (const method in methods) { 205 | (element as any)[method] = function (value: any) { 206 | stripeConnectInstance.then(() => { 207 | this[`${method}InternalOnly`](value); 208 | }); 209 | }; 210 | } 211 | 212 | stripeConnectInstance.then((instance) => { 213 | if (!element.isConnected && !(element as any).setConnector) { 214 | // If the element is not connected to the DOM and the `setConnector` method is not 215 | // defined, this indicates the element was created before connect.js was loaded, and has 216 | // not been transformed into a custom element yet 217 | 218 | // To load the custom element code on it, we need to connect and disconnect it to the DOM 219 | // This isn't a problem, as the element will be invisible, and we know the element is already 220 | // not currently connected to the DOM 221 | 222 | const oldDisplay = element.style.display; 223 | element.style.display = "none"; 224 | document.body.appendChild(element); 225 | document.body.removeChild(element); 226 | element.style.display = oldDisplay; 227 | } 228 | 229 | if (!element || !(element as any).setConnector) { 230 | throw new Error( 231 | `Element ${tagName} was not transformed into a custom element. Are you using a documented component? See https://docs.stripe.com/connect/supported-embedded-components for a list of supported components` 232 | ); 233 | } 234 | 235 | (element as any).setConnector((instance as any).connect); 236 | }); 237 | 238 | return element as ConnectHTMLElementRecord[typeof tagName]; 239 | }, 240 | update: (updateOptions) => { 241 | stripeConnectInstance.then((instance) => { 242 | instance.update(updateOptions); 243 | }); 244 | }, 245 | debugInstance: () => { 246 | return stripeConnectInstance; 247 | }, 248 | logout: () => { 249 | return stripeConnectInstance.then((instance) => { 250 | return instance.logout(); 251 | }); 252 | }, 253 | }; 254 | }; 255 | 256 | const createWrapper = (stripeConnect: any) => { 257 | (window as any).StripeConnect = (window as any).StripeConnect || {}; 258 | (window as any).StripeConnect.optimizedLoading = true; 259 | const wrapper: StripeConnectWrapper = { 260 | initialize: (params: IStripeConnectInitParams) => { 261 | const metaOptions = (params as any).metaOptions ?? {}; 262 | const stripeConnectInstance = stripeConnect.init({ 263 | ...params, 264 | metaOptions: { 265 | ...metaOptions, 266 | sdk: true, 267 | sdkOptions: { 268 | // This will be replaced by the npm package version when bundling 269 | sdkVersion: "_NPM_PACKAGE_VERSION_", 270 | }, 271 | }, 272 | }); 273 | return stripeConnectInstance; 274 | }, 275 | }; 276 | return wrapper; 277 | }; 278 | -------------------------------------------------------------------------------- /src/utils/jestHelpers.ts: -------------------------------------------------------------------------------- 1 | export const SCRIPT_SELECTOR = 2 | 'script[src^="https://connect-js.stripe.com/v1.0/connect.js"]'; 3 | 4 | export {}; 5 | -------------------------------------------------------------------------------- /src/utils/jestSetup.ts: -------------------------------------------------------------------------------- 1 | import { SCRIPT_SELECTOR } from "./jestHelpers"; 2 | 3 | global.beforeEach(() => { 4 | jest.spyOn(console, "warn").mockReturnValue(); 5 | jest.useFakeTimers(); 6 | }); 7 | 8 | global.afterEach(() => { 9 | const script = document.querySelector(SCRIPT_SELECTOR); 10 | if (script && script.parentElement) { 11 | script.parentElement.removeChild(script); 12 | } 13 | jest.resetModules(); 14 | jest.restoreAllMocks(); 15 | jest.runOnlyPendingTimers(); 16 | jest.useRealTimers(); 17 | }); 18 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | // Let Babel deal with transpiling new language features 4 | "target": "ES6", 5 | 6 | // These are overridden by the Rollup plugin, but are left here in case you 7 | // run `tsc` directly for typechecking or debugging purposes 8 | "outDir": "./dist", 9 | "declaration": true, 10 | "declarationDir": "types", 11 | "module": "esnext", 12 | "moduleResolution": "node", 13 | "noEmit": true, 14 | "allowJs": false, 15 | "removeComments": false, 16 | "strict": true, 17 | "forceConsistentCasingInFileNames": true, 18 | "resolveJsonModule": true, 19 | 20 | // Turn on additional typechecking flags 21 | "noUnusedLocals": true, 22 | "noUnusedParameters": true, 23 | "noUncheckedIndexedAccess": true, 24 | "noPropertyAccessFromIndexSignature": true, 25 | "noImplicitThis": true, 26 | "noImplicitReturns": true, 27 | "noImplicitOverride": true, 28 | "noImplicitAny": true, 29 | "noFallthroughCasesInSwitch": true, 30 | "exactOptionalPropertyTypes": true, 31 | }, 32 | "include": ["src", "types/index.d.ts", "types/shared.d.ts"] 33 | } 34 | -------------------------------------------------------------------------------- /types/.eslintrc.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | "@typescript-eslint/triple-slash-reference": 0 3 | "@typescript-eslint/adjacent-overload-signatures": 0 4 | -------------------------------------------------------------------------------- /types/checks.ts: -------------------------------------------------------------------------------- 1 | import type { ConnectElementCustomMethodConfig } from "./config"; 2 | import type { ConnectElementTagName } from "./shared.d"; 3 | 4 | // ensure that keys of ConnectElementCustomMethodConfig are from ConnectElementTagName 5 | export type HasType = Q; 6 | export type CustomMethodConfigValidation = HasType< 7 | ConnectElementTagName, 8 | keyof typeof ConnectElementCustomMethodConfig 9 | >; 10 | -------------------------------------------------------------------------------- /types/config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-empty-function */ 2 | /* eslint-disable @typescript-eslint/no-unused-vars */ 3 | 4 | export type FetchEphemeralKeyFunction = (fetchParams: { 5 | issuingCard: string; 6 | nonce: string; 7 | }) => Promise<{ 8 | issuingCard: string; 9 | nonce: string; 10 | ephemeralKeySecret: string; 11 | }>; 12 | 13 | export type CollectionOptions = { 14 | fields: "currently_due" | "eventually_due"; 15 | futureRequirements?: "omit" | "include"; 16 | }; 17 | 18 | export type Status = 19 | | "blocked" 20 | | "canceled" 21 | | "disputed" 22 | | "early_fraud_warning" 23 | | "failed" 24 | | "incomplete" 25 | | "partially_refunded" 26 | | "pending" 27 | | "refund_pending" 28 | | "refunded" 29 | | "successful" 30 | | "uncaptured"; 31 | 32 | export type PaymentMethod = 33 | | "ach_credit_transfer" 34 | | "ach_debit" 35 | | "acss_debit" 36 | | "affirm" 37 | | "afterpay_clearpay" 38 | | "alipay" 39 | | "alma" 40 | | "amazon_pay" 41 | | "amex_express_checkout" 42 | | "android_pay" 43 | | "apple_pay" 44 | | "au_becs_debit" 45 | | "nz_bank_account" 46 | | "bancontact" 47 | | "bacs_debit" 48 | | "bitcoin_source" 49 | | "bitcoin" 50 | | "blik" 51 | | "boleto" 52 | | "boleto_pilot" 53 | | "card_present" 54 | | "card" 55 | | "cashapp" 56 | | "crypto" 57 | | "customer_balance" 58 | | "demo_pay" 59 | | "dummy_passthrough_card" 60 | | "gbp_credit_transfer" 61 | | "google_pay" 62 | | "eps" 63 | | "fpx" 64 | | "giropay" 65 | | "grabpay" 66 | | "ideal" 67 | | "id_bank_transfer" 68 | | "id_credit_transfer" 69 | | "jp_credit_transfer" 70 | | "interac_present" 71 | | "kakao_pay" 72 | | "klarna" 73 | | "konbini" 74 | | "kr_card" 75 | | "kr_market" 76 | | "link" 77 | | "masterpass" 78 | | "mb_way" 79 | | "meta_pay" 80 | | "multibanco" 81 | | "mobilepay" 82 | | "naver_pay" 83 | | "netbanking" 84 | | "ng_bank" 85 | | "ng_bank_transfer" 86 | | "ng_card" 87 | | "ng_market" 88 | | "ng_ussd" 89 | | "vipps" 90 | | "oxxo" 91 | | "p24" 92 | | "payto" 93 | | "pay_by_bank" 94 | | "paper_check" 95 | | "payco" 96 | | "paynow" 97 | | "paypal" 98 | | "pix" 99 | | "promptpay" 100 | | "revolut_pay" 101 | | "samsung_pay" 102 | | "sepa_credit_transfer" 103 | | "sepa_debit" 104 | | "sofort" 105 | | "south_korea_market" 106 | | "swish" 107 | | "three_d_secure" 108 | | "three_d_secure_2" 109 | | "three_d_secure_2_eap" 110 | | "twint" 111 | | "upi" 112 | | "us_bank_account" 113 | | "visa_checkout" 114 | | "wechat" 115 | | "wechat_pay" 116 | | "zip"; 117 | 118 | export type PaymentsListDefaultFilters = { 119 | amount?: 120 | | { equals: number } 121 | | { greaterThan: number } 122 | | { lessThan: number } 123 | | { between: { lowerBound: number; upperBound: number } }; 124 | date?: 125 | | { before: Date } 126 | | { after: Date } 127 | | { between: { start: Date; end: Date } }; 128 | status?: Array; 129 | paymentMethod?: PaymentMethod; 130 | }; 131 | 132 | export type NotificationCount = { 133 | total: number; 134 | actionRequired: number; 135 | }; 136 | 137 | export type LoaderStart = { 138 | elementTagName: string; 139 | }; 140 | 141 | export type LoadError = { 142 | elementTagName: string; 143 | error: EmbeddedError; 144 | }; 145 | 146 | export type StepChange = { 147 | step: string; 148 | }; 149 | 150 | export type EmbeddedError = { 151 | type: EmbeddedErrorType; 152 | message?: string; 153 | }; 154 | 155 | export type EmbeddedErrorType = 156 | /** 157 | * Failure to connect to Stripe's API. 158 | */ 159 | | "api_connection_error" 160 | /** 161 | * Failure to perform the authentication flow within Connect Embedded Components 162 | */ 163 | | "authentication_error" 164 | /** 165 | * Account session create failed 166 | */ 167 | | "account_session_create_error" 168 | /** 169 | * Request failed with an 4xx status code, typically caused by platform configuration issues 170 | */ 171 | | "invalid_request_error" 172 | /** 173 | * Too many requests hit the API too quickly. 174 | */ 175 | | "rate_limit_error" 176 | /** 177 | * API errors covering any other type of problem (e.g., a temporary problem with Stripe's servers), and are extremely uncommon. 178 | */ 179 | | "api_error"; 180 | 181 | export const ConnectElementCommonMethodConfig = { 182 | setOnLoadError: ( 183 | _listener: (({ error, elementTagName }: LoadError) => void) | undefined 184 | ): void => {}, 185 | setOnLoaderStart: ( 186 | _listener: (({ elementTagName }: LoaderStart) => void) | undefined 187 | ): void => {}, 188 | }; 189 | 190 | export const ConnectElementCustomMethodConfig = { 191 | "account-onboarding": { 192 | setFullTermsOfServiceUrl: ( 193 | _termOfServiceUrl: string | undefined 194 | ): void => {}, 195 | setRecipientTermsOfServiceUrl: ( 196 | _recipientTermsOfServiceUrl: string | undefined 197 | ): void => {}, 198 | setPrivacyPolicyUrl: (_privacyPolicyUrl: string | undefined): void => {}, 199 | setSkipTermsOfServiceCollection: ( 200 | _skipTermsOfServiceCollection: boolean | undefined 201 | ): void => {}, 202 | setCollectionOptions: ( 203 | _collectionOptions: CollectionOptions | undefined 204 | ): void => {}, 205 | setOnExit: (_listener: (() => void) | undefined): void => {}, 206 | setOnStepChange: ( 207 | _listener: (({ step }: StepChange) => void) | undefined 208 | ): void => {}, 209 | }, 210 | "account-management": { 211 | setCollectionOptions: ( 212 | _collectionOptions: CollectionOptions | undefined 213 | ): void => {}, 214 | }, 215 | "notification-banner": { 216 | setCollectionOptions: ( 217 | _collectionOptions: CollectionOptions | undefined 218 | ): void => {}, 219 | setOnNotificationsChange: ( 220 | _listener: 221 | | (({ total, actionRequired }: NotificationCount) => void) 222 | | undefined 223 | ): void => {}, 224 | }, 225 | "issuing-card": { 226 | setDefaultCard: (_defaultCard: string | undefined): void => {}, 227 | setCardSwitching: (_cardSwitching: boolean | undefined): void => {}, 228 | setFetchEphemeralKey: ( 229 | _fetchEphemeralKey: FetchEphemeralKeyFunction | undefined 230 | ): void => {}, 231 | setShowSpendControls: (_showSpendControls: boolean | undefined): void => {}, 232 | }, 233 | "issuing-cards-list": { 234 | setFetchEphemeralKey: ( 235 | _fetchEphemeralKey: FetchEphemeralKeyFunction | undefined 236 | ): void => {}, 237 | setShowSpendControls: (_showSpendControls: boolean | undefined): void => {}, 238 | setIssuingProgram: (_issuingProgram: string | undefined): void => {}, 239 | }, 240 | "financial-account": { 241 | setFinancialAccount: (_financialAccount: string): void => {}, 242 | }, 243 | "financial-account-transactions": { 244 | setFinancialAccount: (_financialAccount: string): void => {}, 245 | }, 246 | payments: { 247 | setDefaultFilters: ( 248 | _filters: PaymentsListDefaultFilters | undefined 249 | ): void => {}, 250 | }, 251 | "payment-details": { 252 | setPayment: (_payment: string | undefined): void => {}, 253 | setOnClose: (_listener: (() => void) | undefined): void => {}, 254 | }, 255 | "payment-disputes": { 256 | setPayment: (_payment: string | undefined): void => {}, 257 | setOnDisputesLoaded: ( 258 | _listener: (({ total }: { total: number }) => void) | undefined 259 | ): void => {}, 260 | }, 261 | "tax-settings": { 262 | setHideProductTaxCodeSelector: (_hidden: boolean | undefined): void => {}, 263 | setDisplayHeadOfficeCountries: ( 264 | _countries: string[] | undefined 265 | ): void => {}, 266 | setOnTaxSettingsUpdated: ( 267 | _listener: (({ id }: { id: string }) => void) | undefined 268 | ): void => {}, 269 | }, 270 | "tax-registrations": { 271 | setOnAfterTaxRegistrationAdded: ( 272 | _listener: (({ id }: { id: string }) => void) | undefined 273 | ): void => {}, 274 | setDisplayCountries: (_countries: string[] | undefined): void => {}, 275 | }, 276 | }; 277 | -------------------------------------------------------------------------------- /types/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { IStripeConnectInitParams, StripeConnectInstance } from "../types"; 2 | 3 | export declare const loadConnectAndInitialize: ( 4 | initParams: IStripeConnectInitParams 5 | ) => StripeConnectInstance; 6 | export * from "./shared"; 7 | export * from "./config"; 8 | -------------------------------------------------------------------------------- /types/shared.d.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | ConnectElementCustomMethodConfig, 3 | ConnectElementCommonMethodConfig, 4 | } from "./config"; 5 | 6 | export declare type LoadConnectAndInitialize = ( 7 | initParams: IStripeConnectInitParams 8 | ) => StripeConnectInstance; 9 | 10 | export declare type OverlayOption = "dialog" | "drawer"; 11 | 12 | /* 13 | * Use a `CssFontSource` to pass custom fonts via a stylesheet URL when initializing a Connect instance. 14 | */ 15 | export declare type CssFontSource = { 16 | /** 17 | * A relative or absolute URL pointing to a CSS file with [@font-face](https://developer.mozilla.org/en/docs/Web/CSS/@font-face) definitions, for example: 18 | * 19 | * https://fonts.googleapis.com/css?family=Open+Sans 20 | * 21 | * Note that if you are using a [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) (CSP), [additional directives](https://stripe.com/docs/security#content-security-policy) may be necessary. 22 | */ 23 | cssSrc: string; 24 | }; 25 | 26 | /* 27 | * Use a `CustomFontSource` to pass custom fonts when initializing a Connect instance. 28 | */ 29 | export declare type CustomFontSource = { 30 | /** 31 | * The name to give the font 32 | */ 33 | family: string; 34 | 35 | /** 36 | * A valid [src](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src) value pointing to your custom font file. 37 | * This is usually (though not always) a link to a file with a `.woff` , `.otf`, or `.svg` suffix. 38 | */ 39 | src: string; 40 | 41 | /** 42 | * A valid [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display) value. 43 | */ 44 | display?: string; 45 | 46 | /** 47 | * Defaults to `normal`. 48 | */ 49 | style?: "normal" | "italic" | "oblique"; 50 | 51 | /** 52 | * A valid [unicode-range](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/unicode-range) value. 53 | */ 54 | unicodeRange?: string; 55 | 56 | /** 57 | * A valid [font-weight](https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight), as a string. 58 | */ 59 | weight?: string; 60 | }; 61 | 62 | /** 63 | * Appearance options for the Connect instance. 64 | */ 65 | export declare type AppearanceOptions = { 66 | /** 67 | * The type of overlay used throughout the Connect.js design system. Set this to be either a Dialog or Drawer. 68 | */ 69 | overlays?: OverlayOption; 70 | variables?: AppearanceVariables; 71 | }; 72 | 73 | export declare type AppearanceVariables = { 74 | // Commonly used 75 | 76 | /** 77 | * The font family value used throughout embedded components. If an embedded component inherits a font-family value from an element on your site in which it’s placed, this setting overrides that inheritance. 78 | */ 79 | fontFamily?: string; 80 | 81 | /** 82 | * The baseline font size set on the embedded component root. This scales the value of other font size variables. This supports pixel values only ranging from 1px to 40px, 0.1em to 4em, and 0.1rem to 4rem. 83 | */ 84 | fontSizeBase?: string; 85 | 86 | /** 87 | * The base spacing unit that derives all spacing values. Increase or decrease this value to make your layout more or less spacious. This supports pixel values only ranging from 8px to 20px. 88 | */ 89 | spacingUnit?: string; 90 | 91 | /** 92 | * The general border radius used in embedded components. This sets the default border radius for all components. This supports pixel values only, with a maximum value of 24px. 93 | */ 94 | borderRadius?: string; 95 | 96 | /** 97 | * The primary color used throughout embedded components. Set this to your primary brand color. This accepts hex values or RGB/HSL strings. 98 | */ 99 | colorPrimary?: string; 100 | 101 | /** 102 | * The background color for embedded components, including overlays, tooltips, and popovers. This accepts hex values or RGB/HSL strings. 103 | */ 104 | colorBackground?: string; 105 | 106 | /** 107 | * The color used for regular text. This accepts hex values or RGB/HSL strings. 108 | */ 109 | colorText?: string; 110 | 111 | /** 112 | * The color used to indicate errors or destructive actions. This accepts hex values or RGB/HSL strings. 113 | */ 114 | colorDanger?: string; 115 | 116 | // Less commonly used 117 | 118 | // Primary Button 119 | /** 120 | * The color used as a background for primary buttons. This accepts hex values or RGB/HSL strings. 121 | */ 122 | buttonPrimaryColorBackground?: string; 123 | /** 124 | * The border color used for primary buttons. This accepts hex values or RGB/HSL strings. 125 | */ 126 | buttonPrimaryColorBorder?: string; 127 | /** 128 | * The text color used for primary buttons. This accepts hex values or RGB/HSL strings. 129 | */ 130 | buttonPrimaryColorText?: string; 131 | 132 | // Secondary Button 133 | /** 134 | * The color used as a background for secondary buttons. This accepts hex values or RGB/HSL strings. 135 | */ 136 | buttonSecondaryColorBackground?: string; 137 | /** 138 | * The color used as a border for secondary buttons. This accepts hex values or RGB/HSL strings. 139 | */ 140 | buttonSecondaryColorBorder?: string; 141 | /** 142 | * The text color used for secondary buttons. This accepts hex values or RGB/HSL strings. 143 | */ 144 | buttonSecondaryColorText?: string; 145 | 146 | /** 147 | * The color used for secondary text. This accepts hex values or RGB/RGBA/HSL strings. 148 | */ 149 | colorSecondaryText?: string; 150 | /** 151 | * The color used for primary actions and links. This accepts hex values or RGB/HSL strings. 152 | */ 153 | actionPrimaryColorText?: string; 154 | /** 155 | * The line type used for text decoration of primary actions and links. This accepts a valid text decoration line value. 156 | */ 157 | actionPrimaryTextDecorationLine?: string; 158 | /** 159 | * The color used for text decoration of primary actions and links. This accepts hex values or RGB/HSL strings. 160 | */ 161 | actionPrimaryTextDecorationColor?: string; 162 | /** 163 | * The style of text decoration of primary actions and links. This accepts a valid text decoration style value. 164 | */ 165 | actionPrimaryTextDecorationStyle?: string; 166 | /** 167 | * The thickness of text decoration of primary actions and links. This accepts a valid text decoration thickness value. 168 | */ 169 | actionPrimaryTextDecorationThickness?: string; 170 | /** 171 | * The color used for secondary actions and links. This accepts hex values or RGB/HSL strings. 172 | */ 173 | actionSecondaryColorText?: string; 174 | /** 175 | * The line type used for text decoration of secondary actions and links. This accepts a valid text decoration line value. 176 | */ 177 | actionSecondaryTextDecorationLine?: string; 178 | /** 179 | * The color used for text decoration of secondary actions and links. This accepts hex values or RGB/HSL strings. 180 | */ 181 | actionSecondaryTextDecorationColor?: string; 182 | /** 183 | * The style of text decoration of secondary actions and links. This accepts a valid text decoration style value. 184 | */ 185 | actionSecondaryTextDecorationStyle?: string; 186 | /** 187 | * The thickness of text decoration of secondary actions and links. This accepts a valid text decoration thickness value. 188 | */ 189 | actionSecondaryTextDecorationThickness?: string; 190 | 191 | // Neutral Badge Colors 192 | /** 193 | * The background color used to represent neutral state or lack of state in status badges. This accepts hex values or RGB/HSL strings. 194 | */ 195 | badgeNeutralColorBackground?: string; 196 | /** 197 | * The text color used to represent neutral state or lack of state in status badges. This accepts hex values or RGB/HSL strings. 198 | */ 199 | badgeNeutralColorText?: string; 200 | /** 201 | * The border color used to represent neutral state or lack of state in status badges. This accepts hex values or RGB/RGBA/HSL strings. 202 | */ 203 | badgeNeutralColorBorder?: string; 204 | 205 | // Success Badge Colors 206 | /** 207 | * The background color used to reinforce a successful outcome in status badges. This accepts hex values or RGB/HSL strings. 208 | */ 209 | badgeSuccessColorBackground?: string; 210 | /** 211 | * The text color used to reinforce a successful outcome in status badges. This accepts hex values or RGB/HSL strings. 212 | */ 213 | badgeSuccessColorText?: string; 214 | /** 215 | * The border color used to reinforce a successful outcome in status badges. This accepts hex values or RGB/RGBA/HSL strings. 216 | */ 217 | badgeSuccessColorBorder?: string; 218 | 219 | // Warning Badge Colors 220 | /** 221 | * The background color used in status badges to highlight things that might require action, but are optional to resolve. This accepts hex values or RGB/HSL strings. 222 | */ 223 | badgeWarningColorBackground?: string; 224 | /** 225 | * The text color used in status badges to highlight things that might require action, but are optional to resolve. This accepts hex values or RGB/HSL strings. 226 | */ 227 | badgeWarningColorText?: string; 228 | /** 229 | * The border color used in status badges to highlight things that might require action, but are optional to resolve. This accepts hex values or RGB/RGBA/HSL strings. 230 | */ 231 | badgeWarningColorBorder?: string; 232 | 233 | // Danger Badge Colors 234 | /** 235 | * The background color used in status badges for high-priority, critical situations that the user must address immediately, and to indicate failed or unsuccessful outcomes. This accepts hex values or RGB/HSL strings. 236 | */ 237 | badgeDangerColorBackground?: string; 238 | /** 239 | * The text color used in status badges for high-priority, critical situations that the user must address immediately, and to indicate failed or unsuccessful outcomes. This accepts hex values or RGB/HSL strings. 240 | */ 241 | badgeDangerColorText?: string; 242 | /** 243 | * The border color used in status badges for high-priority, critical situations that the user must address immediately, and to indicate failed or unsuccessful outcomes. This accepts hex values or RGB/RGBA/HSL strings. 244 | */ 245 | badgeDangerColorBorder?: string; 246 | 247 | // Background 248 | /** 249 | * The background color used when highlighting information, like the selected row on a table or particular piece of UI. This accepts hex values or RGB/HSL strings. 250 | */ 251 | offsetBackgroundColor?: string; 252 | /** 253 | * The background color used for form items. This accepts hex values or RGB/HSL strings. 254 | */ 255 | formBackgroundColor?: string; 256 | 257 | /** 258 | * The color used for borders throughout the component. This accepts hex values or RGB/RGBA/HSL strings. 259 | */ 260 | colorBorder?: string; 261 | 262 | // Form 263 | /** 264 | * The color used to highlight form items when focused. This accepts hex values or RGB/RGBA/HSL strings. 265 | */ 266 | formHighlightColorBorder?: string; 267 | /** 268 | * The color used for to fill in form items like checkboxes, radio buttons and switches. This accepts hex values or RGB/HSL strings. 269 | */ 270 | formAccentColor?: string; 271 | 272 | // Border Sizing 273 | /** 274 | * The border radius used for buttons. This supports pixel values only. 275 | */ 276 | buttonBorderRadius?: string; 277 | /** 278 | * The border radius used for form elements. This supports pixel values only, with a maximum value of 24px. 279 | */ 280 | formBorderRadius?: string; 281 | /** 282 | * The border radius used for badges. This supports pixel values only, with a maximum value of 24px. 283 | */ 284 | badgeBorderRadius?: string; 285 | /** 286 | * The border radius used for overlays. This supports pixel values only, with a maximum value of 24px. 287 | */ 288 | overlayBorderRadius?: string; 289 | 290 | // Font Sizing 291 | 292 | // Overlay 293 | /** 294 | * A z-index to use for the overlay throughout embedded components. Set this number to control the z-order of the overlay. 295 | */ 296 | overlayZIndex?: number; 297 | /** 298 | * The backdrop color when an overlay is opened. This accepts hex values or RGB/RGBA/HSL strings. 299 | */ 300 | overlayBackdropColor?: string; 301 | 302 | // Body Typography 303 | /** 304 | * The font size for the medium body typography. Body typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 305 | */ 306 | bodyMdFontSize?: string; 307 | /** 308 | * The font weight for the medium body typography. Body typography variables accept a valid font weight value. 309 | */ 310 | bodyMdFontWeight?: string; 311 | /** 312 | * The font size for the small body typography. Body typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 313 | */ 314 | bodySmFontSize?: string; 315 | /** 316 | * The font weight for the small body typography. Body typography variables accept a valid font weight value. 317 | */ 318 | bodySmFontWeight?: string; 319 | 320 | // Heading Typography 321 | /** 322 | * The font size for the extra large heading typography. Heading typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 323 | */ 324 | headingXlFontSize?: string; 325 | /** 326 | * The font weight for the extra large heading typography. Heading typography variables accept a valid font weight value. 327 | */ 328 | headingXlFontWeight?: string; 329 | /** 330 | * The text transform for the extra large heading typography. Heading typography variables accept a valid text transform value. 331 | */ 332 | headingXlTextTransform?: string; 333 | /** 334 | * The font size for the large heading typography. Heading typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 335 | */ 336 | headingLgFontSize?: string; 337 | /** 338 | * The font weight for the large heading typography. Heading typography variables accept a valid font weight value. 339 | */ 340 | headingLgFontWeight?: string; 341 | /** 342 | * The text transform for the large heading typography. Heading typography variables accept a valid text transform value. 343 | */ 344 | headingLgTextTransform?: string; 345 | /** 346 | * The font size for the medium heading typography. Heading typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 347 | */ 348 | headingMdFontSize?: string; 349 | /** 350 | * The font weight for the medium heading typography. Heading typography variables accept a valid font weight value. 351 | */ 352 | headingMdFontWeight?: string; 353 | /** 354 | * The text transform for the medium heading typography. Heading typography variables accept a valid text transform value. 355 | */ 356 | headingMdTextTransform?: string; 357 | /** 358 | * The font size for the small heading typography. Heading typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 359 | */ 360 | headingSmFontSize?: string; 361 | /** 362 | * The font weight for the small heading typography. Heading typography variables accept a valid font weight value. 363 | */ 364 | headingSmFontWeight?: string; 365 | /** 366 | * The text transform for the small heading typography. Heading typography variables accept a valid text transform value. 367 | */ 368 | headingSmTextTransform?: string; 369 | /** 370 | * The font size for the extra small heading typography. Heading typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 371 | */ 372 | headingXsFontSize?: string; 373 | /** 374 | * The font weight for the extra small heading typography. Heading typography variables accept a valid font weight value. 375 | */ 376 | headingXsFontWeight?: string; 377 | /** 378 | * The text transform for the extra small heading typography. Heading typography variables accept a valid text transform value. 379 | */ 380 | headingXsTextTransform?: string; 381 | 382 | // Label Typography 383 | /** 384 | * The font size for the medium label typography. Label typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 385 | */ 386 | labelMdFontSize?: string; 387 | /** 388 | * The font weight for the medium label typography. Label typography variables accept a valid font weight value. 389 | */ 390 | labelMdFontWeight?: string; 391 | /** 392 | * The text transform for the medium label typography. Label typography variables accept a valid text transform value. 393 | */ 394 | labelMdTextTransform?: string; 395 | /** 396 | * The font size for the small label typography. Label typography variables accept a valid font size value ranging from 1px to 200px, 0.1em to 12em, and 0.1rem to 12rem. 397 | */ 398 | labelSmFontSize?: string; 399 | /** 400 | * The font weight for the small label typography. Label typography variables accept a valid font weight value. 401 | */ 402 | labelSmFontWeight?: string; 403 | /** 404 | * The text transform for the small label typography. Label typography variables accept a valid text transform value. 405 | */ 406 | labelSmTextTransform?: string; 407 | }; 408 | 409 | export type IStripeConnectUpdateParams = { 410 | /** 411 | * Appearance options for the Connect instance. 412 | */ 413 | appearance?: AppearanceOptions; 414 | 415 | /** 416 | * The locale to use for the Connect instance. 417 | */ 418 | locale?: string; 419 | }; 420 | 421 | /** 422 | * Initialization parameters for Connect JS. See https://stripe.com/docs/connect/get-started-connect-embedded-components#configuring-connect-js for more details. 423 | */ 424 | export interface IStripeConnectInitParams { 425 | /** 426 | * The publishable key for the connected account. 427 | */ 428 | publishableKey: string; 429 | 430 | /** 431 | * Function that fetches client secret 432 | * @returns A promise that resolves with a new client secret. 433 | */ 434 | fetchClientSecret: () => Promise; 435 | 436 | /** 437 | * Appearance options for the Connect instance. 438 | * @see https://stripe.com/docs/connect/customize-connect-embedded-components 439 | */ 440 | appearance?: AppearanceOptions; 441 | 442 | /** 443 | * The locale to use for the Connect instance. 444 | */ 445 | locale?: string; 446 | 447 | /** 448 | * An array of custom fonts, which embedded components created from a ConnectInstance can use. 449 | */ 450 | fonts?: Array; 451 | } 452 | 453 | type ConnectElementCustomMethods = typeof ConnectElementCustomMethodConfig; 454 | type ConnectElementCommonMethods = typeof ConnectElementCommonMethodConfig; 455 | 456 | export type ConnectHTMLElementRecord = { 457 | [K in keyof ConnectElementCustomMethods]: HTMLElement & 458 | ConnectElementCustomMethods[K] & 459 | ConnectElementCommonMethods; 460 | } & { 461 | [key: string]: HTMLElement & ConnectElementCommonMethods; 462 | }; 463 | 464 | export interface StripeConnectInstance { 465 | /** 466 | * Creates a Connect element. 467 | * @tagName Name of the Connect component to create. 468 | * @returns An HTML component corresponding to that connect component 469 | */ 470 | create: ( 471 | tagName: T 472 | ) => ConnectHTMLElementRecord[T]; 473 | 474 | /** 475 | * Updates the Connect instance with new parameters. 476 | * @options New parameters to update the Connect instance with. 477 | */ 478 | update: (options: IStripeConnectUpdateParams) => void; 479 | 480 | /** 481 | * Logs the user out of Connect JS sessions 482 | * @returns A promise that resolves when the user is logged out. 483 | */ 484 | logout: () => Promise; 485 | } 486 | 487 | /** 488 | * Tagnames to be used with the `create` method of the Connect instance. 489 | */ 490 | export type ConnectElementTagName = 491 | | "account-onboarding" 492 | | "disputes-list" 493 | | "payments" 494 | | "payment-details" 495 | | "payment-disputes" 496 | | "account-management" 497 | | "notification-banner" 498 | | "issuing-card" 499 | | "issuing-cards-list" 500 | | "financial-account" 501 | | "financial-account-transactions" 502 | | "payouts" 503 | | "payouts-list" 504 | | "balances" 505 | | "documents" 506 | | "tax-registrations" 507 | | "tax-settings"; 508 | --------------------------------------------------------------------------------